Operation am offenen Herzen

Transcription

Operation am offenen Herzen
Entwicklung + Test
IIII Software-Verifikation
Operation am
offenen Herzen
Teil 1: Entwicklung und Test von
Steuergerätefunktionen mit der
Bypass-Methode
(Foto: pixelio.de)
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,
Von Markus Gebhardt, Dr. rer. nat. Ulrich Lauff und Kilian Schnellbacher
der von der Bypass-Funktion gelesen
wird (Eingangswerte der Bypass-Funktion) oder – umgekehrt – die Werte der
ie neu zu entwickelnde oder ergebnisse der Bypass-Funktion und Größe aus dem Speicherbereich der
zu adaptierende Bypass- der Steuergerätefunktion miteinander Bypass-Funktion in Speicherzellen,
Funktion verwendet existie- vergleichen und aufzeichnen. Darüber die von der bestehenden Steuergeräterende Signale im Steuergerät als Ein- hinaus stehen so jederzeit sinnvolle Al- Software verwendet werden (Ausgagangswerte und schreibt die berechne- ternativwerte für den Fall bereit, dass bewert der Bypass-Funktion).
Die Verwendung des servicebasierten Ergebnisse wieder in das Steuer- der Bypass zur Laufzeit unterbrochen
oder beendet wird (Rückfallebene).
ten Bypass hat den Vorteil, dass der
gerät zurück (Bild 1).
Funktionscode im Steuergerät nicht
verändert werden muss. Mit Hilfe der
Servicebasierter
Bypass-Austausch
Instrumentierung
Bypass-Services können alle bekannvon
Einund
Ausgabewerten
der Steuergeräte-Software
ten Steuergerätegrößen gelesen oder
Die Implementierung einer Bypass- Beim servicebasierten Bypass werden geschrieben werden. Die Bypass-SerFunktion erfordert eine geeignete In- in den Prozesslisten (Tasks – eine Men- vices können zur Laufzeit des Steuerstrumentierung des Steuergerätecodes. ge von verschiedenen Aufgabenein- geräts aktiviert oder deaktiviert werDie Auswahl der Steuergerätegrößen heiten (Prozessen) mit identischen den und damit der Bypass an- oder abfür den Bypass kann entweder statisch Echtzeit-Anforderungen werden in ei- geschaltet werden.
Der Nachteil des servicebasierten
im Steuergerätecode festgelegt sein ner Task, zum Beispiel in einer 10-msoder flexibel über etablierte Mechanis- Task, einer 100-ms-Task oder in einer Bypass besteht darin, dass Dateninkonsistenzen nicht
men ähnlich wie beim Messen von
ausgeschlossen werSteuergerätegrößen erfolgen. Dabei
Bypassfunktion
den können. Ein Wert,
werden die Adressen der zu erfassender von einer Steuerden Größen vom Entwicklungswerkgerätefunktion bezeug aus der Steuergerätebeschreirechnet wurde, kann
bungsdatei (A2L) gelesen und die Wer+
gelesen werden, bete in den Speicherzellen dieser Adresvor er durch den Aussen vom Steuergerät angefordert bzw.
gabewert der Bypassbeschrieben.
Steuergerätefunktion 1 Steuergerätefunktion 2 Steuergerätefunktion 3
Funktion überschrieNormalerweise werden im Bypassben wird. Das ist mögBetrieb die Steuergerätefunktionen, I Bild 1. Die neu zu entwickelnde oder zu adaptierende Bypasslich, da in Fahrzeugwelche durch die Bypass-Funktion erFunktion verwendet existierende Signale im Steuergerät als Einsteuergeräten mehrere
setzt werden, weiterhin berechnet. Dagangswerte und schreibt die berechneten Ergebnisse wieder in
Tasks um Rechenzeit
durch lassen sich die Berechnungsdas Steuergerät zurück.
Die Software von Steuergeräten komplexer mechatronischer Systeme im
Automobil ist sehr umfangreich. Aus Gründen der Kosten, der Entwicklungszeit und der Zuverlässigkeit dieser Systeme wird die Software von
Steuergeräten nur im Ausnahmefall komplett neu entwickelt. In der Regel
wird der Funktionsumfang existierender, bereits im Feld erprobter
Software angepasst, verändert oder erweitert. Dabei kommt die
Bypassmethode zum Einsatz.
D
34
Elektronik automotive 6.2008
www.elektroniknet.de
Software-Verifikation IIII
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
www.elektroniknet.de
Servicebasierter Bypass:
BypassFunktion
r
r
r
/
/
/
Proc 1 w Proc 2 w Proc 3 w Proc 4
time
Servicebasierter Bypass bei Verwendung
eines Message-Konzepts:
BypassFunktion
w
r
i
t
e
M
S
G
c
p Proc 1
r
e
a
d Proc 2
Start of
task
r
e
a
d Proc 3
r
e
a
d Proc 4
time
Legende:
Warteschleife
Prozess
Bypass-Service
Alternativer Pfad
I Bild 2. Beim servicebasierten Bypass werden
in den Prozesslisten (Tasks) der Steuergeräte-Software zusätzliche Service-Routinen
eingefügt.
Entwicklung + Test
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 BypassFunktion 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
Elektronik automotive 6.2008
35
Entwicklung + Test
IIII Software-Verifikation
Freischnittbasierter Bypass:
Bypass
w
r
i
t
Proc 1 e Proc 2 Proc 3
time
Freischnittbasierter Bypass bei
Verwendung eines Message-Konzepts:
Bypass
w
r
i
t
e
M
S
G
c
p Proc 1 Proc 2 Proc 3
Start of
task
time
I Bild 3. In Bezug auf den freischnittbasierten
Bypass besteht die optimale Lösung in Bezug auf die Datenkonsistenz darin, den
Bypass-Service, der die Eingangswerte der
Bypass-Funktion beschreibt, direkt vor
demjenigen Prozess einzuhängen, der die
freigeschnittene Funktion beinhaltet.
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).
Unabhängig davon, ob eine TaskUmschaltung stattfindet und damit unabhängig von der Priorität der Tasks,
sorgt dieser Mechanismus dafür, dass
die Speicherzellen der Steuergerätegrößen entweder mit den Ausgabewerten der Bypass-Funktion oder der Steuergerätefunktionen beschrieben werden. Die Instrumentierung der Steuergerätefunktionen mit Schaltern wird
Freischneiden von Steuergerätegrößen
oder einfach Freischnitt genannt. Beim
so genannten Funktionsfreischnitt werden alle von einem Prozess beschriebenen Speicherzellen freigeschnitten.
In Bezug auf die Datenkonsistenz
besteht die optimale Lösung darin, den
Bypass-Service, der die Eingangswerte der Bypass-Funktion beschreibt, direkt vor demjenigen Prozess einzuhängen, der die freigeschnittene Funktion
beinhaltet (Bild 3, oben). Das Verfahren erfordert auf Kosten der Rechenzeit einen separaten Schreibvorgang
36
Elektronik automotive 6.2008
pro Bypass. Bei Verwendung eines
Message-Konzepts werden die Eingangswerte der Bypass-Funktion zu
Beginn einer Task beschrieben. Dabei
lassen sich alle Werte in einem Schreibvorgang en bloc übergeben, wodurch
sich die Beeinflussung des EchtzeitVerhaltens minimieren lässt (Bild 3,
unten).
Eine Variante des Freischnittverfahrens besteht darin, die Berechnung
der Bypass-Funktion erst nach der
Übergabe der Eingangswerte anzustoßen. Daraufhin wartet das Steuergerät bis zum Ende der Bypass-Berechnung und kopiert dann die Ergebnisse in die Speicherzellen der betreffenden Steuergerätegrößen. Diese Variante sorgt für absolut synchrone
Daten. Wegen der damit einhergehenden Verzögerung ist diese Variante allerdings nur für zeitlich unkritische
Bypass-Funktionen geeignet.
Die Bypass-Funktion muss an die
Steuergeräte-Hardware angepasst sein
und in den Berechnungsablauf des
Steuergeräts eingebunden werden. Für
viele Steuergeräte muss die BypassFunktion in Festkomma-Arithmetik
implementiert werden. Da die Bypass-Funktion vom Steuergerät berechnet wird, kann – mit Ausnahme
von Steuergeräten mit Multicore-Prozessoren – keine parallele Ausführung
erfolgen.
Der interne Bypass ist nicht ausfallsicher. Ein Fehlverhalten der BypassFunktion kann zu einem Absturz des
Steuergeräts führen. Aufgrund der
knappen Ressourcen von Fahrzeugsteuergeräten sind dem Bedarf der Bypass-Funktion an Rechenzeit und Speicher enge Grenzen gesetzt. Durch Deaktivierung der Originalfunktion können Ressourcen für die Bypass-Funktion gewonnen werden.
Bypass-System
HardwareKosten
Anschluss von
zusätzlichen
Sensoren, Aktoren
und Bussen
Möglicher
Umfang
der BypassFunktion
Konfiguration
Steuergerät
gering
nicht möglich
gering
komplex, BuildUmgebung notwendig
Entwicklungssteuergerät
mit zusätzlichem Speicher
moderat
nicht möglich
moderat
komplex, BuildUmgebung notwendig
Experimentiersystem
hoch
einfach möglich
hoch
unabhängig von der
Steuergeräte-Softeware,
schnelle Turn-aroundZeiten bei Änderungen
der Funktion
I Vor- und Nachteile von Bypass-Systemen
Der Vorteil der Datenkonsistenz
wird beim freischnittbasierten Bypass
dadurch erkauft, dass jede Größe, die
ersetzt werden soll, für den Bypass
vorbereitet werden muss.
Bypasssysteme
Die Bypass-Funktion kann entweder
intern auf dem Steuergerät (interner
Bypass) oder extern auf einem separaten, über eine Datenschnittstelle mit
dem Steuergerät verbundenen System
(externer Bypass) berechnet werden
(Tabelle).
Am Steuergerät ohne zusätzliche
Hardware durchführbar
Der steuergeräte-interne Bypass erfordert keine zusätzliche Hardware.
Bei einer Änderung der BypassFunktion muss eine neue Version der
Steuergeräte-Software generiert werden. Dazu ist die Build-Umgebung für
das Steuergerät erforderlich. Im zweiten Schritt muss der Flash-Speicher
des Steuergeräts mit dem geänderten
Steuergerätecode neu programmiert
werden.
Wegen der Verwendung der ZielHardware kann der interne Bypass zum
Test der Integrierbarkeit der BypassFunktion in die Steuergeräte-Software
dienen. Aufgrund der genannten Einschränkungen wird der steuergeräteinterne Bypass typischerweise als Variablen-Bypass eingesetzt (s.u.). Dabei
werden Variablen im Steuergerät, beispielsweise Sensorsignale, von außen
bedatet und zu einem einstellbaren Parameter gemacht.
www.elektroniknet.de
Software-Verifikation IIII
Steuergerät mit zusätzlichem Speicher
Um den verfügbaren Speicher für den
internen Bypass zu erhöhen, kann im
Entwicklungssteuergerät ein Mikrocontroller mit größerem internen Speicher oder zusätzlich externer Speicher
eingebaut werden. Alternativ wird
auch der Speicher eines im Entwicklungssteuergerät vorhandenen Speicheremulators, zum Beispiel eines
Emulatortastkopfs (ETK) [1], verwendet.
Wenn die Ressourcen des Steuergeräts für die Bypass-Funktion nicht
ausreichen, muss zusätzliche Hardware eingesetzt werden. Dabei kommen parallel betriebene Steuergeräte
oder Mikrocontroller oder spezielle
Experimentiersysteme zum Einsatz.
Experimentiersysteme
Experimentiersysteme stellen eine hohe Rechenleistung und Speicherkapazität zur Verfügung. Sie ermöglichen
www.elektroniknet.de
die Integration zusätzlicher Signale
von Sensoren, Aktoren oder Fahrzeugbussen. Prozessoren mit Fließkomma-Arithmetik ermöglichen eine
physikalische Simulation von BypassFunktionen in der realen Umgebung.
In einem zweiten Schritt kann diese
Simulation mit dem Verhalten der
Bypass-Funktion in der späteren Implementierung verglichen werden. Bei
einer Änderung der Bypass-Funktion
benötigt der Download in den RAMSpeicher über die leistungsfähige PCSchnittstelle des Experimentiersystems nur einen Bruchteil der Zeit des
Flash-Vorgangs beim internen Bypass.
Um die Ausgabewerte der BypassFunktion und der Steuergerätefunktion
direkt vergleichen zu können, wird die
Steuergerätefunktion bei aktivem Bypass parallel auf dem Steuergerät ausgeführt. Die Anbindung des Experimentiersystems an das Steuergerät erfolgt entweder über eine echtzeit-fähige Schnittstellen-Hardware, bei-
Entwicklung + Test
Entwicklungswerkzeug
BypassFunktionen
Experimentiersystem
Datenschnittstelle
Aktoren,
Sensoren
ETK
ECU
Steuergerätefunktionen
CAN, LIN, FlexRay
I Bild 4. Um die Ausgabewerte der Bypass-Funktion und der
Steuergerätefunktion direkt vergleichen zu können, wird die
Steuergerätefunktion bei aktivem Bypass parallel auf dem Steuergerät ausgeführt. Die Anbindung des Experimentiersystems an
das Steuergerät erfolgt entweder über eine echtzeit-fähige
Schnittstellen-Hardware oder über eine leistungsfähige Busschnittstelle des Steuergeräts.
spielsweise einen ETK, oder über eine
leistungsfähige Busschnittstelle des
Steuergeräts (Bild 4).
Elektronik automotive 6.2008
37
IIII Software-Verifikation
Umgebung
Fahrzeug
Regelstrecke/
HIL-System
Funktions-Bypass
Eingabetreiber
Signalkonditionierung
Ausgabetreiber
Fahrer
Signalkonditionierung
Entwicklung + Test
Variablen-Bypass
(Slewing)
Test- oder Diagnosezwecke können
mit dieser Methode gezielt Werte von
Sensorsignalen vorgegeben oder Einträge im Fehlerspeicher gesetzt werden. Wenn ein Variablen-Bypass
steuergeräteintern implementiert ist,
kann er mit gängigen Kalibrationswerkzeugen, wie zum Beispiel INCA,
bedient werden.
+
Proc 2
Proc 2
Proc 3
Proc 3
Ausgabetreiber
c
o
p
y
Signalkonditionierung
Signalkonditionierung
Eingabetreiber
Funktions-Bypass – der „Klassiker“
M
S
c M
G
+
oc GS
p c Proc 1
y p
Proc 1
Echtzeit-Betriebssystem
Steuergeräte-Hardware
Applikations-Bypass
Fullpass
Strecken-Bypass
I Bild 5. Je nach Art und Umfang der Bypass-Funktion lassen sich verschiedene Arten von BypassMethoden unterscheiden.
Bypass-Methoden
Je nach Art und Umfang der BypassFunktion lassen sich verschiedene Arten von Bypass-Methoden unterscheiden (Bild 5).
Variablen-Bypass wird auch
Slewing genannt
Im einfachsten Fall überschreibt eine
Bypass-Funktion nur eine Speicherzel-
Dipl.-Ing.
Markus Gebhardt
studierte Elektrotechnik an der TU Darmstadt
und arbeitet seit 1995 als Ingenieur bei ETAS.
Er sammelte langjährige Erfahrung in Kundenprojekten zur Steuergeräte-Software- und
-funktionsentwicklung. Seit 2005 ist er als
technischer Experte im Marketing mit der
Entwicklung neuer Methoden für die Steuergeräte-Software-Entwicklung betraut.
[email protected]
38
Elektronik automotive 6.2008
le mit einem Wert, ohne dass eine Berechnung stattfindet. Diese Variante
wird als Variablen-Bypass oder auch
als „Slewing“ bezeichnet. Typische
Anwendungsfälle für diese BypassMethode sind das Festhalten einer
Steuergerätevariablen auf einem bestimmten Wert, beispielsweise zur Kalibrierung von Steuergerätefunktionen,
oder die Deaktivierung eines Berechnungspfads durch das Setzen eines
neutralen Wertes („0“ oder „1“). Für
Dr. rer. nat. Ulrich Lauff
studierte Physik an den Universitäten Heidelberg und Stuttgart und ist in der Unternehmenskommunikation der ETAS GmbH für die
Anwendungsfelder Software Engineering,
Applikation, Messtechnik und Steuergerätediagnose verantwortlich.
[email protected]
Der klassische Bypass, der im Rahmen
der Weiterentwicklung von vorhandenen Steuergerätefunktionen zum Einsatz kommt, wird auch als FunktionsBypass bezeichnet. Neue Funktionen
werden per Bypass mit den bestehenden Funktionen des Steuergeräts gekoppelt. Die bestehende Software des
Steuergeräts übernimmt zum überwiegenden Teil die Steuerung und Regelung des Fahrzeugsystems und wird
durch die neuen Funktionen erweitert.
Wenn die Bypass-Funktion extern auf
einem Experimentiersystem berechnet
wird, können über dieses System zusätzliche Signale von Sensoren oder
von Fahrzeugbussen eingebunden werden.
Applikations-Bypass mit einem
Seriensteuergerät als Vehikel
Beim Applikations-Bypass werden die
Ein- und Ausgangssignale der BypassFunktion direkt an den Schnittstellen
Dipl.-Ing.
Kilian Schnellbacher
studierte Elektrotechnik mit dem Schwerpunkt
Technik der Informationsverarbeitung an der
Universität Karlsruhe. Er ist im Strategischen
Marketing der ETAS GmbH im Bereich Messen,
Kalibrieren und Steuergerätediagnose tätig.
[email protected]
www.elektroniknet.de
der Plattform-Software zur Applikationsschicht abgegriffen. Bei
der Methode werden Hardware, Treiber und Betriebssystem eines vorhandenen Steuergeräts genutzt, um eine neue Funktion
ohne Einbeziehung von bestehender Applikations-Software zu
entwickeln.
Der Vorteil dieser Methode besteht darin, eine neue Funktion
auf Basis von existierender Seriensteuergeräte-Hardware zu entwickeln. Beispielsweise können die originalen Ein- und Ausgangssignale des Steuergeräts verwendet werden, welche die Reaktion der Treiberschicht des Steuergeräts enthalten, zum Beispiel der Diagnoseprotokolle. Mit Hilfe eines Experimentiersystems können gegebenenfalls zusätzliche Sensoren, Aktoren oder
Fahrzeugbusse eingebunden werden.
Fullpass auf dem Experimentiersystem
Beim Fullpass wird das Steuergerät vollständig durch ein Experimentiersystem ersetzt. Zusätzlich zur Applikations-Software
integriert das Fullpass-System auch Treiber für die Schnittstellen und das Steuergeräte-Betriebssystem sowie Schnittstellen für
Sensoren, Aktoren und Fahrzeugbusse, wie zum Beispiel CANController. Fullpass-Systeme werden typischerweise bei Neuentwicklungen eingesetzt, bei denen entweder die SteuergeräteHardware oder die Plattform-Software noch nicht zur Verfügung
stehen.
Die Signalkonditionierung im Experimentiersystem und im
späteren Seriensteuergerät ist in der Regel nicht identisch. Jedoch sollten die Schnittstellen zur Treiberschicht ähnlich sein,
damit die neu entwickelten Funktionen später ohne größere Änderungen auf das Zielsystem portiert werden können.
Fullpass-Systeme werden häufig auch bei der Restbussimulation verwendet. Dabei wird das Verhalten eines oder mehrerer
Steuergeräte an einem Fahrzeugbus nachgebildet. Mit einem
Fullpass-System kann die Simulation durch reale Signale von
Sensoren, Aktoren und vom Fahrzeugbus gespeist und das Systemverhalten eines Steuergeräteverbunds getestet werden.
Strecken-Bypass – für den fließenden Übergang
In einer Hardware-in-the-Loop-Umgebung (HiL), in der das
Steuergerät mit einer simulierten Regelstrecke gestestet wird,
kann die Bypass-Funktion einen Teil der Regelstrecke abbilden.
Dadurch lassen sich einzelne Funktionen des Steuergeräts im geschlossenen Regelkreis ohne Austausch von Signalen über die
Schnittstellen-Hardware von Steuergerät und HiL-System testen. Die Methode erlaubt einen fließenden Übergang zwischen
Software-in-the-Loop-Simulationen (SiL) ohne elektrische
Streckensimulation und HiL-Simulationen.
In einer der kommenden Elektronik-automotive-Ausgaben
werden in einem zweiten Beitrag die vielfältigen Einsatzmöglichkeiten von Bypassmethoden bei der Entwicklung und beim
Test von Steuergerätefunktionen diskutiert.
go
Literatur
[1] Triess, B.; Müller, Ch.; Lauff, U.; Mößner, C.: Entwicklung und Applikation von Motor- und Getriebesteuerungen mit der ETK-Steuergeräteschnittstelle. ATZ Automobiltechnische Zeitschrift 109 (2007), Heft 1.
www.elektroniknet.de
Elektronik automotive 6.2008
39