Elektroniknet Logo

Einsatz von modellbasierten Entwicklungswerkzeugen

FlexRay-Projekte leicht gemacht


Fortsetzung des Artikels von Teil 2

Konfigurieren Schritt für Schritt


Das Konfigurationswerkzeug liest die Netzwerkbeschreibung aus einer FIBEX-Datei. Zusätzlich zur Validierung einer solchen Datei gegen das FIBEX-Schema werden Plausibilitätsprüfungen durchgeführt, die sicherstellen, dass später auf Basis der importierten Daten Code generiert werden kann. Nicht relevante Angaben werden ignoriert. Die Struktur der Netzwerkbeschreibung wird in einer Baumdarstellung angezeigt. Parameter zu ausgewählten Elementen werden in einer weiteren tabellarischen Ansicht visualisiert. Verschiedene Filter und Darstellungsoptionen sowie Suchmasken erleichtern den Umgang auch mit sehr großen Beschreibungen.

Durch Markieren von Elementen aus der Baumdarstellung erfolgt eine Auswahl von Signalen und Frames, für die später Blöcke aus dem RTI FlexRay Configuration Blockset erstellt werden. Die gewählten Objekte sind somit in der Simulation verwendbar. Je nach Einsatzszenario bietet es sich an, eine Selektion auf unterschiedlichen Ebenen vorzunehmen, wobei beliebige Kombinationen unterstützt werden. Für das Rapid Control Prototyping kann es ausreichen, nur einzelne Signale bzw. Frames zu berücksichtigen, die zur Modellierung und Simulation eines Reglers notwendig sind. Im Rahmen einer Restbussimulation wird man eher ganze ECU-Einträge selektieren und damit alle zugeordneten Signale bzw. Frames aufnehmen. Um die Bedienung zu vereinfachen, können alle Frames, die an eine reale ECU gesendet werden sollen, automatisch identifiziert und für eine Simulation konfiguriert werden.

Es können sowohl Sende- als auch Empfangs-Frames verwendet werden. Die dSPACE-Hardware wird durch das Werkzeug zu einem vollwertigen aktiven Teilnehmer an einem FlexRay-Bus. Oft reicht es jedoch, Signale und Frames lediglich zu lesen. Dafür ist eine spezielle Monitoring-Ansicht vorgesehen, in der die ausgewählten Objekte gesammelt werden.

Um eine Synchronisation mit der zeitgesteuerten Übertragung von Frames auf dem Bus zu erzielen, kann die Simulation auf der dSPACE-Hardware ebenfalls nach einem zeitgesteuerten Schema durchgeführt werden. Das schließt eigenständige Kommunikationsroutinen ein, die als Sende- bzw. Empfangs-Tasks für die Verarbeitung der FlexRay-Frames angelegt werden. Eine Sende-Task packt Signale in Frames und kopiert diese in den Puffer eines FlexRay-Controllers. Eine Empfangs-Task implementiert den umgekehrten Signalpfad. Die Aktivierungszeitpunkte dieser Tasks sind an die Kommunikationszeitpunkte der zugeordneten Frames gebunden, die durch Festlegungen zum „Base Cycle“, zur „Cycle Repetition“ und zum „Offset“ im Detail spezifiziert werden.

Zur Vereinfachung bietet das Konfigurationswerkzeug eine automatische Erzeugung und Konfiguration von Kommunikations-Tasks auf der Grundlage einer vorgenommenen Auswahl von Signalen und Frames an. Dieser Ansatz erfordert nur einen einzigen Mausklick und ist immer dann geeignet, wenn die Anforderungen an die zeitliche Synchronisation weniger anspruchsvoll sind, beispielsweise im Fall einer einfachen statischen Restbussimulation. Für weitergehen-de Einsatzszenarien können alle benötigten Angaben auch manuell erfolgen. Zur Unterstützung während der Eingabe werden Konsistenzprüfungen angeboten, die eine ungültige Konfiguration ausschließen. Beispielsweise wird verhindert, dass eine Kommunikations-Task aus der Simulation heraus auf einen Puffer des FlexRay-Controllers zugreift, während zeitgleich ein Datentransport für diesen Puffer auf dem Bus ausgeführt wird.

Die Simulationsmodelle werden in so genannten Applikations-Tasks ausgeführt. Diese lassen sich ebenfalls nach den zuvor beschriebenen Mechanismen konfigurieren. Je nach Anforderung können sehr detaillierte Ausführungsmuster modelliert werden – bis hin zum schnellen „in cycle response“. Darunter wird das Einlesen eines Frames als Eingabe für eine Berechnung und das Versenden von Resultaten auf Basis der neu berechneten Werte innerhalb eines Zyklus verstanden.
Mit der Festlegung der Task-Konfiguration sind die Benutzereingaben abgeschlossen. Das Resultat kann als Projekt gespeichert und später wieder aufgerufen werden. Es soll betont werden, dass es trotz der umfangreichen Leistungsmerkmale des Konfigurationswerkzeugs möglich ist, eine grundlegende Konfiguration mit wenigen Eingaben durchzuführen – ebenso wie die anschließenden Generierungsschritte, auf die jetzt eingegangen wird.

Der FlexRay-Kommunikations-Stack auf der dSPACE-Hardware wird anwendungsspezifisch generiert. Hierzu wird zum einen der Code zur Konfiguration eines FlexRay-Controllers (so genannter „CHI Code“) erzeugt. Dabei handelt es sich um einen Satz von Registereinstellungen, die dem Controller das gewünschte Kommunikationsverhalten aufprägen. Zum anderen wird der eigentliche Code für die Kommunikations-Tasks generiert, der als Treiber für den Zugriff auf den Pufferspeicher des Controllers genutzt wird.

Das Konfigurationswerkzeug minimiert automatisch die Anzahl der benötigten FlexRay-Controller. Im Allgemeinen werden die vorhandenen Controller einer dSPACE-Hardware aufgefüllt, d.h., den Puffern werden Frames zugewiesen, bis sie vollständig belegt sind und ein weiterer Controller benötigt wird. Als Sonderfall ist das korrekte Startup- und Synchronisationsverhalten zu beachten. Das FlexRay-Protokoll sieht pro Zyklus nur einen Slot für einen Startup- bzw. für einen Synchronisations-Frame vor. Wenn im Rahmen einer Restbussimulation mehrere solcher Frames versendet werden sollen, so ist eine entsprechende Anzahl von FlexRay-Controllern notwendig.

Beim RTI FlexRay Configuration Blockset handelt es sich um eine Bibliothek von Simulink-Blöcken. Eine Besonderheit dieser Bibliothek ist die Zweiteilung der Menge der Blöcke. Der eine Teil kann wie gewöhnlich von einem Anwender in ein Modell gezogen und manuell parametriert werden. Bei dem anderen Teil erfolgt dieser Schritt automatisch auf der Grundlage einer generierten Konfigurationsdatei.


  1. FlexRay-Projekte leicht gemacht
  2. Restbussimulation
  3. Konfigurieren Schritt für Schritt