FlexRay wird je nach Anwendung wegen des deterministischen Verhaltens oder wegen der schnellen Datenübermittlung eingeführt. Die Nutzung für sicherheitsrelevante Anwendungen spielt derzeit nur eine geringe Rolle. Für die Entscheidung, welches Betriebssystem in Verbindung mit FlexRay eingesetzt werden soll, sind neben Deterministik und Performance weitere Kriterien wie Speicherschutz oder Zeitüberwachung zu berücksichtigen. Der Beitrag erläutert, worauf es bei der Wahl des Betriebssystems ankommt, und zeigt konkrete Lösungen, die Vector Informatik auch im Rahmen von AUTOSAR anbietet.
FlexRay wird je nach Anwendung wegen des deterministischen Verhaltens oder wegen der schnellen Datenübermittlung eingeführt. Die Nutzung für sicherheitsrelevante Anwendungen spielt derzeit nur eine geringe Rolle. Für die Entscheidung, welches Betriebssystem in Verbindung mit FlexRay eingesetzt werden soll, sind neben Deterministik und Performance weitere Kriterien wie Speicherschutz oder Zeitüberwachung zu berücksichtigen. Der Beitrag erläutert, worauf es bei der Wahl des Betriebssystems ankommt, und zeigt konkrete Lösungen, die Vector Informatik auch im Rahmen von AUTOSAR anbietet.
Als skalierbares Highspeed-Kommunikationssystem mit deterministischem Verhalten ist FlexRay die passende Lösung als Data-Backbone für verteilte Regelungen oder sicherheitsrelevante Anwendungen im Automobil-Bereich. Im Gegensatz zur ereignisgesteuerten Kommunikation über CAN werden alle Botschaften einem festen Kommunikationsraster zugeordnet. Daraus ergibt sich für jedes beteiligte Steuergerät eine zeitlich eindeutige Verfügbarkeit der Eingangsdaten. Der Entwurf eines FlexRay-Netzwerkes erfordert bereits in einer sehr frühen Entwicklungsphase grundlegende Festlegungen wie Baudrate, Zykluslänge, Anzahl und Länge der Slots im statischen und dynamischen Segment bzw. Macrotick-Dauer für alle beteiligten Netzwerkknoten. Diese Planung der Kommunikationsabläufe ist in den kommunikationsspezifischen Software-Komponenten abgebildet, sie kann aber auch Einfluss auf die zeitliche Gestaltung der Anwendungs-Software haben.
Das Betriebssystem (OS) sorgt für das Zusammenspiel aller beteiligten Software-Komponenten. Zur Verfügung stehen ereignisgesteuerte (event triggered) oder zeitgesteuerte (time triggered) Betriebssysteme mit jeweils unterschiedlichen Diensten. Als weitere Option sind Betriebssysteme mit Speicherschutz verfügbar. Bei der Auswahl des optimalen Betriebssystems für FlexRay-basierte Anwendungen stellt sich insbesondere die Frage, ob ein zeitgesteuertes Betriebssystem für die synchronisierte Kommunikation über FlexRay zwingend erforderlich ist.
Ereignisgesteuerte und zeitgesteuerte Betriebssysteme
Bisher wurden im Automobilbereich meist ereignisgesteuerte Betriebssysteme eingesetzt. Dabei genießt das OSEK/VDX-OS [1], das künftig auch in einer ISO-Norm vorliegen soll, die breiteste Akzeptanz. Ziel eines Betriebssystems ist es, unter optimaler Nutzung der verwendeten Hardware eine zusätzliche Laufzeitumgebung zur Verwaltung von Funktionseinheiten bereitzustellen. Definierte Betriebssystem-Dienste bieten diese Funktionalität an. Beim Design einer Anwendung werden zunächst zeitlich unabhängige Teilaufgaben definiert. Die daraus resultierenden Tasks oder Interrupts konkurrieren gemäß dem Scheduling-Algorithmus des Betriebssystems um die Laufzeitzuweisung:
Bei einem zeitgesteuerten Betriebssystem sind sämtliche Abläufe und Aktionen unter der Kontrolle des Betriebssystems ausschließlich abhängig von der Zeit. Für die Applikation ergibt sich damit ein streng deterministisches Zeitverhalten.
AUTOSAR-OS
AUTOSAR hat das OSEK-OS als Basis genommen und erweitert, so dass auch zeitgesteuerte Funktionalitäten unterstützt werden können. In vier Ausbaustufen, den so genannten Scalability Classes (SC), werden die spezifischen Eigenschaften des AUTOSAR-OS [2] zur Verfügung gestellt. Die Tabelle stellt einen Überblick ihrer Zuordnung zu den Scalability Classes dar. Es sind nur die Eigenschaften eingetragen, die im Zusammenhang mit einer FlexRay-basierten Anwendung von Bedeutung sind. Die derzeit verfügbaren Spezifikationen von BSW (Basic Software) und RTE (Runtime Environment) decken Speicherschutz noch nicht ab. Dies wird in zukünftigen Versionen der BSW- und RTE-Spezifikationen nachgezogen.
Schedule Tables
Das Betriebssystem verwaltet mehrere Schedule Tables. Jede Schedule Table besteht aus einer Liste von zeitlich definierten Aktionen, die entweder Tasks aktivieren oder Events an Tasks verschicken.
Bei einem Echtzeit-System kommt es darauf an, alle Aufgaben rechtzeitig abzuarbeiten. In der Entwurfsphase werden Teilaufgaben festen Zeitfenstern zugeordnet. Damit zur Laufzeit keine Verzögerung entsteht, darf eine Aufgabe die CPU nicht länger in Anspruch nehmen, als im Design vorgegeben. Deshalb überwacht das Betriebssystem die Laufzeit jeder einzelnen Task bzw. jedes Interrupts. OSEKtime [3] sieht dafür ein klassisches Deadline Monitoring vor: Tasks müssen fertig sein, bevor ihre zugeordnete Deadline erreicht ist. Liegt eine Verletzung vor, löst das gesamte System ein Reset aus. Bei Extended Tasks, die auf Events warten können, ist diese Art von Überwachung nicht ausreichend. Deshalb hat die AUTOSAR-OS-Arbeitsgruppe eine Laufzeitüberwachung für jede einzelne Task und jeden Interrupt definiert. Sie wird mit unterschiedlichen Parametern im Konfigurator festgelegt.
Bei Verletzung eines Überwachungsparameters leitet das Betriebssystem je nach Konfiguration entweder ein „Reset_OS“, „Kill_Application“, „Kill_Task“ oder „Kill_Interrupt“ als Fehlerreaktion ein.
Bild 1 zeigt die Überwachung einer Anwendung, bestehend aus einer Extended Task, die von einem Interrupt mehrmals unterbrochen wird. Wegen einer längeren Laufzeit der Extended Task, z.B. für die Behandlung des Events 1 (Ev1) kann es zur Fehlerbehandlung kommen (Bild 2). Diese betrifft ausschließlich den Verursacher. Die Zeitüberwachung garantiert je nach Budget Tasks und Interrupts mit niedriger Priorität den Zugang zum Prozessor für die Abwicklung ihrer Aufgabe.
Sollte wie in Bild 3 ein Interrupt zu lange dauern, wird dieser abgebrochen damit die Extended Task weiterlaufen kann. Die Bilder 1 bis 3 stellen ein AUTOSAR-OS der Scalability Class 2 mit Zeitüberwachungs-Tasks und Interrupts dar.