Teil 1: Entwicklung und Test von Steuergerätefunktionen mit der Bypass-Methode

Operation am offenen Herzen

6. Oktober 2008, 11:36 Uhr | Markus Gebhardt, Dr. rer. nat. Ulrich Lauff und Kilian Schnellbacher
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 4

Operation am offenen Herzen

Servicebasierter Bypass-Austausch von Ein- und Ausgabewerten

Beim servicebasierten Bypass werden in den Prozesslisten (Tasks – eine Menge von verschiedenen Aufgabeneinheiten (Prozessen) mit identischen Echtzeit-Anforderungen werden in einer Task, zum Beispiel in einer 10-ms-Task, einer 100-ms-Task oder in einer drehzahlsynchronen Task, zusammengefasst) der Steuergeräte-Software zusätzliche Serviceroutinen eingefügt (Bild 2, oberer Teil). Mit Hilfe dieser Bypass-Services können Ein- und Ausgabewerte zwischen Steuergeräte- und Bypass-Funktionen ausgetauscht werden. Ein Bypass-Service schreibt entweder die Werte von Steuergerätegrößen in Zellen des Speicherbereichs, der von der Bypass-Funktion gelesen wird (Eingangswerte der Bypass-Funktion) oder – umgekehrt – die Werte der Größe aus dem Speicherbereich der Bypass-Funktion in Speicherzellen, die von der bestehenden Steuergeräte-Software verwendet werden (Ausgabewert der Bypass-Funktion).

Die Verwendung des servicebasierten Bypass hat den Vorteil, dass der Funktionscode im Steuergerät nicht verändert werden muss. Mit Hilfe der Bypass-Services können alle bekannten Steuergerätegrößen gelesen oder geschrieben werden. Die Bypass-Services können zur Laufzeit des Steuergeräts aktiviert oder deaktiviert werden und damit der Bypass an- oder abgeschaltet werden.

Der Nachteil des servicebasierten Bypass besteht darin, dass Dateninkonsistenzen nicht ausgeschlossen werden können. Ein Wert, der von einer Steuergerätefunktion berechnet wurde, kann gelesen werden, bevor er durch den Ausgabewert der Bypass-Funktion überschrieben wird. Das ist möglich, da in Fahrzeugsteuergeräten mehrere Tasks um Rechenzeit konkurrieren – das heißt, Tasks mit niederer Priorität können durch höher priorisierte Tasks unterbrochen werden.

Bei dem aus diesem Grund häufig verwendeten Message-Konzept werden zu Beginn einer Task lokale Kopien der globalen Steuergerätegrößen angelegt, die von Prozessen dieser und mindestens einer weiteren Task gelesen und beschrieben werden. Dadurch werden konsistente Ein- und Ausgangsgrößen (Messages) von Prozessen innerhalb einer Task gewährleistet. Am Ende der Task werden die Werte der Messages in die Speicherzellen der globalen Größen zurückgeschrieben.

Im normalen Betrieb ohne Bypass hat das Arbeiten mit lokalen Kopien den Vorteil, dass Dateninkonsistenzen bei der Unterbrechung einer Task durch eine höher priorisierte Task vermieden werden. Wenn die Werte von Messages in Speicherzellen, deren Adressen nicht deklariert sind, auf dem Stack gespeichert werden, können Bypass- Services nicht auf Messages zugreifen. In diesem Fall sollte der Bypass-Service deshalb unmittelbar vor oder nach dem Erstellen der lokalen Kopie eingefügt werden (Bild 2, untere Bildhälfte). Dabei ist es notwendig, dass die Eingangswerte der Bypass-Funktion bereits bei Beginn der Task zur Verfügung stehen und nicht innerhalb der Task berechnet werden.

Freischnittbasierter Bypass

Um Dateninkonsistenzen beim Bypass auszuschließen, muss sichergestellt sein, dass die Ausgabewerte der Bypass-Funktion nicht von den Steuergerätefunktionen überschrieben werden können. Um dies zu garantieren, werden Schalter in die betreffenden Steuergerätefunktionen eingebaut: Bei aktivem Bypass wird das jeweilige Berechnungsergebnis der Bypass-Funktion als Ausgabewert der Steuergerätefunktion zur Verfügung gestellt. Bei inaktivem Bypass wird das Berechnungsergebnis der Steuergerätefunktion verwendet. Alternativ zum Ersatzwert kann bei aktivem Bypass auch das Ergebnis einer Verrechnung – typischerweise einer Addition – der Resultate von Bypass- und Steuergerätefunktion ausgegeben werden (Bild 3).

86ah0502_tm_02.jpg
Bild 2. Beim servicebasierten Bypass werden in den Prozesslisten (Tasks) der Steuergeräte-Software zusätzliche Service-Routinen eingefügt.

  1. Operation am offenen Herzen
  2. Operation am offenen Herzen
  3. Bypass-Methoden
  4. Operation am offenen Herzen
  5. Operation am offenen Herzen

Jetzt kostenfreie Newsletter bestellen!