Zeitgesteuerte Tasks für FlexRay-Simulationen und XCP-Bypassing Zielgerechte Planung

Zahlreiche FlexRay-Projekte befinden sich an der Schwelle zum Serieneinsatz. Die zur Absicherung dieser Systeme notwendigen Testfunktionen werden durch die bereits in vielen Projekten bewährten Testsysteme zur Verfügung gestellt. Besonders wichtig ist eine enge zeitliche Kopplung zwischen dem Simulator als Testsystem und dem FlexRay-Bus.

Zeitgesteuerte Tasks für FlexRay-Simulationen und XCP-Bypassing

Zahlreiche FlexRay-Projekte befinden sich an der Schwelle zum Serieneinsatz. Die zur Absicherung dieser Systeme notwendigen Testfunktionen werden durch die bereits in vielen Projekten bewährten Testsysteme zur Verfügung gestellt. Besonders wichtig ist eine enge zeitliche Kopplung zwischen dem Simulator als Testsystem und dem FlexRay-Bus.

Einhergehend mit der steigenden Anzahl von Anwendungen wachsen auch die Anforderungen an die benötigten Testwerkzeuge und Infrastrukturen für das neue Bussystem FlexRay. Die dSpace-Testlösung basiert auf verschiedenen Hardware-Plattformen und dem FlexRay Configuration Package.

Die dSpace-Toolkette mit ihren echtzeit-fähigen Simulationsplattformen und den Modellierungsmöglichkeiten unter Matlab/Simulink besteht aus mehreren Teilen. Der sich daraus ergebende Arbeitsablauf zur Konfiguration eines Testsystems ist in Bild 1 gezeigt.

Mit Hilfe des „dSpace FlexRay Configuration Tools“ wählt der Anwender aus dem Inhalt einer FIBEX-Datei diejenigen Kommunikationsanteile aus, die auf dem Simulator zur Verfügung stehen sollen. Auf Grundlage dieser Konfiguration generiert das Werkzeug Code-Teile für Kommunikationsroutinen sowie die Parameter für die FlexRay-Controller, die für die Integration auf der dSpace-Hardware zur Verfügung stehen.

Zudem werden Kommunikationsdaten nach Matlab/Simulink übertragen. Sie werden hier als Parameter von FlexRay-Kommunikationsblöcken aus dem „RTI FlexRay Configuration Blockset“ verwendet. Diese Blöcke können vom Testentwickler in modellbasierten Testroutinen verwendet werden, die sich in einer Simulation auf einer dSpace-Hardware ausführen lassen. Die Hardware ist über die dSpace-FlexRay-Schnittstelle mit dem FlexRay-Bus und den FlexRay-Steuergeräten als Testobjekte verbunden.

Modellierung zeitgesteuerter Tasks

Für die zeitliche Platzierung der Tasks sind verschiedene Szenarien realisierbar. Für eine einfache Restbussimulation können Communication Tasks platziert werden, die die Signale blockweise einlesen (Bild 2). Das bedeutet, dass alle benötigten Signale aus dem statischen FlexRay-Anteil im Rahmen einer Task eingelesen werden. Ebenso lassen sich Signale für den statischen Anteil des nächsten Zyklus blockweise schreiben. Zwischen diesen beiden Tasks kann die benötigte Berechnung für die Restbussimulation platziert werden. Mit Hilfe des „dSpace FlexRay Configuration Tools“ lassen sich die Tasks automatisch für den statischen und den dynamischen Anteil anlegen.

Für eine detailliertere Restbussimulation besteht die Möglichkeit, Tasks anzulegen, um Signale direkt nach einem Slot einzulesen, eine Berechnung auszuführen und im selben Zyklus wieder eine Antwort zu verschicken (In-Cycle-Response, Bild 3). Dies kann entweder über eine Task-Kette oder auch durch eine Application Task realisiert werden, die zu Beginn die Signale einliest und nach der Berechnung direkt wieder schreiben kann.

Das FlexRay Configuration Tool kann mehrere Arten von zeitgesteuerten Tasks für die unterschiedlichen Szenarien erzeugen. Nach dem FIBEX-Import legt das Tool automatisch eine Synchronisations-Task an, die die zeitgesteuerten Tasks mit dem FlexRay-Bus synchronisiert. Dabei kann eine harte oder weiche Aufsynchronisierung der zeitgesteuerten Task zum Bus eingestellt werden.

Rein zeitgesteuerte Communication Tasks realisieren das Empfangen und/oder Senden von statischen und dynamischen Frames. Zu diesen Tasks existiert unter Simulink eine blockbasierte Signalschnittstelle, die in beliebigen Berechnungs-Tasks eingesetzt werden kann. So ist diese Signalschnittstelle in anderen zeitgesteuerten Berechnungs-Tasks oder auch asynchronen Tasks einsetzbar. Communication Tasks lassen sich je nach gewünschtem Szenario manuell oder automatisch erzeugen.

Für eine einfachere Modellierung einer Kette mit den Funktionen Empfangen, Berechnen und Senden existieren die Application Tasks. Mit ihnen ist es möglich, Frames einzulesen, zu verarbeiten und wieder zu verschicken. Auch kann die Kette nur teilweise abgearbeitet werden, zum Beispiel nur Einlesen und Verarbeiten. Für diese Application Tasks wird unter Simulink ein Task-Trigger-Block generiert, der ein Subsystem für die Berechung aufruft. In diesem Subsystem ist dann die Signalschnittstelle verfügbar, die explizit der modellierten Task zugewiesen ist.