Die neu zu entwickelnde oder

Entwicklung + Test IIII Software-Verifikation Operation am offenen Herzen Teil 1: Entwicklung und Test von Steuergerätefunktionen mit der Bypass-Met...
Author: Samuel Gerber
7 downloads 2 Views 359KB Size
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