- IT

Transcription

- IT
Telematikmoderierter Software-Download in Kfz-Steuergeräte
Dipl.-Ing. (FH) Cornelia Heinisch, MSc – STZ Softwaretechnik Esslingen
Dr. Martin Simons – DaimlerChrysler RIC/TA Esslingen
[email protected][email protected]
1. Abstract
Die in diesem Beitrag vorgestellte Software-Architektur für einen telematikmoderierten Software-Download erlaubt es, die Steuergeräte eines Kraftfahrzeugs nicht über einen extern
anzuschließenden Tester zu reprogrammieren, sondern durch eine Software-Komponente,
die sich in einem Telematiksteuergerät befindet. Diese Software-Komponente wird für die
Reprogrammierung jedes einzelnen Steuergerätes speziell konfiguriert. Gesteuert – in
anderen Worten „moderiert“ – wird der Download von Software in Kfz-Steuergeräte durch ein
Telematiksteuergerät wie z.B. die Head Unit. Eine Konfigurationsverwaltung, die anteilig im
Fahrzeug und in der fahrzeugexternen Infrastruktur realisiert wird, stellt sicher, dass nur
Updates durchgeführt werden können, die zu einer konsistenten, gültigen und funktionsfähigen Fahrzeugkonfiguration führen. Die Software-Architektur für den telematikmoderierten
Software-Download erlaubt den Download der Flashware-Module in das Fahrzeug über
beliebige drahtgebundene oder drahtlose Übertragungsmedien wie z.B. GSM, GPRS, WLAN, UMTS oder Bluetooth als auch über Datenträger wie eine CD-Rom oder ein USB
Memory Stick.
2. Einleitung
Software-Download in ein Kraftfahrzeug dient zum Installieren neuer Software als auch zur
Aktualisierung bestehender Software – sei es zur Fehlerbeseitigung oder zur Anpassung der
Funktion an den Stand der Technik. Der Software-Download – oder die Möglichkeit der
Reprogrammierung von Steuergeräten – wird künftig in allen Fahrzeugdomänen (Chassis,
Motorraum, Komfort & Karosserie und Telematik) zum Einsatz kommen. Jedes Steuergerät,
das einen Flashspeicher besitzt und über ein Fahrzeug-Subnetz erreichbar ist, soll im Feld
reprogrammierbar sein. Die zunehmende Anzahl der reprogrammierbaren Steuergeräte ist
die Antwort auf das steigende Software-Volumen im Kraftfahrzeug. Das Software-Volumen
heutiger Oberklassen-Fahrzeuge hat bereits die 10 MByte Grenze überschritten und wird
vermutlich bis 2010 die 1GByte Grenze überschreiten [1]. Ohne die Möglichkeit einer Reprogrammierung können Software-Fehler nur durch einen Hardwaretausch behoben werden.
Unter der optimistischen Annahme, dass sich in 1000 Zeilen Programmcode nur 8 Entwicklungsfehler1 und 0,4 Restfehler befinden2, erhält man für das heutige Software-Volumen
im Fahrzeug von ca. 10.000.000 Zeilen Programmcode [2] immerhin noch 80.000 Entwicklungsfehler und 4000 Restfehler [1]. Unter Betrachtung dieser Statistik ist die Notwendigkeit
von Software-Updates im Kraftfahrzeug außer Frage gestellt (siehe hierzu auch [3 - 6]).
Die Aufmerksamkeit ist deshalb auf die Beantwortung folgender Fragestellungen zu richten:
•
•
1
2
Wie kann ein einheitliches Konzept für die Reprogrammierung von Steuergeräten in den
unterschiedlichen Fahrzeugdomänen aussehen?
Wie kann sichergestellt werden, dass nach der Reprogrammierung eines Steuergerätes
eine gültige und funktionsfähige Fahrzeugkonfiguration vorliegt?
Unter Entwicklungsfehler werden hierbei Entwurfsfehler und unter Restfehler Codierfehler
verstanden.
Das entspricht dem höchsten Reifegrad des Capability Maturity Models.
Die hier vorgestellte Architektur für einen telematikmoderierten Software-Download gibt Antworten auf beide Fragestellungen. Bevor auf die Beschreibung der Architektur eingegangen
wird, werden in Kapitel 3 die Grundlagen für die Reprogrammierung von Steuergeräten
behandelt und in Kapitel 4 die Besonderheiten bei der Verwaltung von Software für ein
Fahrzeug vorgestellt.
3. Reprogrammierung von Steuergeräten
Zur Reprogrammierung von Steuergeräten wird heute das KWP2000-Protokoll [7] eingesetzt.
Das KWP2000-Protokoll, das herkömmlich zur Diagnose von Steuergeräten eingesetzt
wurde, enthält einige KWP2000-Services, die für die Reprogrammierung von Steuergeräten
verwendet werden. Steuergeräte, die flashbar und über ein Fahrzeugsubnetz erreichbar
sind, integrieren einen sogenannten Flashloader. Der Flashloader interpretiert die KWP2000Nachrichten, die zur Reprogrammierung an das Steuergerät gesandt werden, und führt die
entsprechenden Aktionen wie zum Beispiel das Löschen oder das Beschreiben des Flashspeichers aus. In Bild 3-1 repräsentiert die Download-Steuerung im Steuergerät den Flashloader. Zur Reprogrammierung eines Steuergerätes wird der sogenannte E-Tester oder
Werkstatt-Tester an den Diagnosestecker des Fahrzeugs angeschlossen. Der WerkstattTester sendet KWP2000-Request-Kommandos, die über ein oder mehrere Gateways zu
demjenigen Steuergerät weitergeleitet werden, das reprogrammiert werden soll. Das Steuergerät antwortet zu jedem Request mit einer KWP2000-Response-Nachricht, die angibt, ob
der empfangene Request erfolgreich ausgeführt werden konnte.
E-Tester
Diagnosestecker
Gateway
Fahrzeugsubnetz
KWP2000-Request
KWP2000-Request
KWP2000-Response
KWP2000-Response
Steuergerät
: Flashware
: Download-Steuerung
Bild 3-1 Reprogrammierung von Steuergeräten
Der E-Tester muss innerhalb der Download-Steuerung Informationen aus verschiedenen
Beschreibungs-Dokumenten extrahieren, um ein spezielles Steuergerät reprogrammieren zu
können. Hierbei handelt es sich beispielsweise um folgende Informationen:
•
•
•
•
•
•
•
Einteilung der Flashware eines Steuergerätes in Segmente,
Security-Klasse der Flashware,
Checksumme und Signatur der Flashware,
Sachnummer und Versionsnummer der Flashware,
Beschreibung des eigentlichen Ablaufs zur Reprogrammierung3,
Beschreibung der zu verwendenden KWP2000-Nachrichten inklusive der Übergabe- und
Ergebnis-Parameter,
Seed-And-Key-Algorithmus [7] für die Entriegelung des Steuergerätes.
Die wesentlichen Aufgaben des Flashloader in einem Steuergerät sind:
•
•
•
•
3
Löschen des Flashspeichers,
Beschreiben des Flashspeichers,
Entgegennahme der Flashware über ein Fahrzeug-Subnetz (zum Beispiel CAN, MOST,
LIN, TT-CAN, FlexRay, etc.),
Kommunikation mit einer Tester-Einheit über KWP2000,
Steuergeräte von unterschiedlichen Zulieferern können unterschiedliche Flashloader in den
Steuergeräten verwenden, die für die Reprogrammierung einen individuellen Ablauf verwenden.
•
•
Implementieren von Security-Funktionen (Seed-and-Key-Algorithmus, Signaturprüfung,
Checksummenberechnung),
Überwachen der Reprogrammierung.
Soll der E-Tester durch eine Software-Komponente ersetzt werden, die sich in einem
Telematiksteuergerät befindet, so muss sich diese Komponente gegenüber dem Flashloader
in einem speziellen Steuergerät genau gleich wie ein E-Tester verhalten, da die einzelnen
Steuergeräte und insbesondere die integrierten Flashloader für einen telematikmoderierten
Software-Download nicht modifiziert werden sollen.
4. Konfigurationsverwaltung für Fahrzeug-Software
Die Konfigurationsverwaltung von Software ist eine Disziplin des Software-Engineerings, die
folgende Aktivitäten umfasst [8]:
•
•
•
•
•
•
Identifikation von Bausteinen, die der Konfigurationsverwaltung unterliegen.
Bereitstellung und Verwaltung von Versionen (Entwicklungs-Basisständen), die von
anderen Entwicklern genutzt werden können.
Verwaltung von Versionen (Releases), die an den Kunden ausgeliefert werden.
Verwaltung von parallelen Entwicklungen (Branches).
Verwaltung von Software-Varianten.
Verwaltung von Änderungen eines Bausteins, welcher der Konfigurationsverwaltung
unterliegt.
All diese Aktivitäten der Konfigurationsverwaltung sind auch bei der Erstellung und Distribution von Fahrzeug-Software vorzufinden und werden in Zukunft in Folge der Möglichkeit
der getrennten Handhabung von Hard- und Software durch den Einsatz von Flashspeichern
sowie das Flashen von Steuergeräten in der Entwicklung, Produktion und Außenorganisation
[9] noch mehr an Bedeutung gewinnen. Bei der Konfigurationsverwaltung kommt allerdings
erschwerend hinzu, dass die Abhängigkeiten von Funktionen auf den verschiedenen Steuergeräten gegenwärtig nicht ausreichend beschrieben sind. Damit ist es aktuell nicht möglich,
Basisstände oder Releases für Fahrzeugfunktionen oder einzelne Steuergeräte zu definieren. Durch die Vernetzung der Fahrzeugfunktionen und die hohen Sicherheitsanforderungen
erscheint es derzeit beinahe unmöglich, Teilfunktionen zu separieren und diese einer
getrennten Entwicklung und Konfigurationsverwaltung zu unterziehen. Ist eine Separierung
nicht möglich, da die Abhängigkeiten untereinander nicht ausreichend beschrieben und/oder
auflösbar sind, so bleibt nur eine Möglichkeit – die gesamte Software für ein Fahrzeug in
einer speziellen Ausstattung muss einem einzigen Basisstand zugeordnet werden. Dieser
Basisstand, der komplett mit allen Einzelfunktionen getestet und abgenommen werden
muss, kann schließlich in einem Release für das Flashen der Steuergeräte am Band oder in
der Außenorganisation freigegeben werden.
Bild 4-1 zeigt die Zusammenhänge zwischen Baureihen, Ausstattungen, Steuergeräten,
Software-Releases und Flashware-Modulen. In einer Baureihe existieren mehrere Ausstattungen. Eine Ausstattung gibt an, welche Steuergeräte in einem Fahrzeug mit dieser
Ausstattung zu verbauen sind und welche Software-Releases auf diesen Steuergeräten
installiert werden können. Ein Software-Release gibt eindeutig an, welche Version von
welchem Flashware-Modul zum Einsatz kommt. Für ein individuelles Fahrzeug muss damit
festgehalten werden, zu welcher Baureihe das Fahrzeug gehört, welche Ausstattung gewählt
wurde, und welches Software-Release in den Steuergeräten installiert wurde. Für jede
Flashware muss zusätzlich noch angegeben werden, auf welchem Steuergerät diese zu
installieren ist. Eine solch starre Zuordnung von Software-Releases zu einer Ausstattungsvariante bedeutet allerdings, dass durch das Hinzufügen einer Funktion zu einer Flashware
auch automatisch ein neues Software-Release erzeugt werden muss, welches die neue
Version der Flashware beinhaltet.
Baureihe
A
Baureihe
B
Baureihe
N
.
..
Ausstattung
N
Ausstattung
B
Ausstattung
A
.
..
Steuergerät
1
Steuergerät
2
...
SW-Release
n
SW-Release
2
Steuergerät
n
SW-Release
1
Flashware A
V2.0
Flashware B
V1.0
..
.
...
Flashware N
V3.0
Bild 4-1 Zuordnung von Software-Releases zu einer Ausstatung einer Baureihe
Komponenten, die neue Dienste realisieren (wie zum Beispiel Nearest- oder CheapestServices, etc.) und keinen Einfluss auf die zentralen Fahrfunktionen haben, können vom
Fahrzeugnutzer dynamisch zu jeder Zeit in das Fahrzeug geladen und auf einer speziell
abgesicherten Diensteplattform installiert werden. Die Releases für diese ladbaren Dienste
sollen jedoch unabhängig von dem Software-Release einer Ausstattung eines Fahrzeugs
gehandhabt werden. Die Diensteplattform selbst und ausgewählte Basiskomponenten4
werden jedoch dem Software-Release einer Ausstattung zugeordnet (siehe Bild 4-2). Ein
Software-Release für eine Ausstattung eines Fahrzeugs umfasst also mehrere FlashwareModule und eine Diensteplattform mit ihren Basiskomponenten.
Baureihe
A
Baureihe
B
Baureihe
N
.
..
Ausstattung
N
Ausstattung
B
Ausstattung
A
Steuergerät
1
Steuergerät
2
...
Steuergerät
n
Diensteplattform
Basiskomponente A
Basiskomponente B
Flashware A
V2.0
...
SW-Release
n
SW-Release
2
SW-Release
1
Flashware B
V1.0
..
...
.
Flashware N
V3.0
Basiskomponente N
Bild 4-2 Integration einer Diensteplattform für dynamisch nachladbare Dienste
4
Basiskomponenten realisieren hierbei zum Beispiel Zugriffe auf Fahrzeugsubnetze.
Auf der Diensteplattform können beliebige Komponenten vom Fahrzeugnutzer installiert
werden, die Dienste wie Nearest-Services, Cheapest-Services, Fahrtenbuch, etc. realisieren,
solange die neuen Dienste nur Fahrzeugdienste benötigen, die von den Basiskomponenten
angeboten werden. Soll jedoch eine Komponente installiert werden, die eine Basiskomponente benötigt, die nicht auf der Diensteplattform angeboten wird, so muss das Fahrzeug auf
ein Software-Release aktualisiert werden, das den entsprechenden Basisdienst anbietet.
5. Telematikmoderierter Software-Download
Steuergeräte müssen künftig in der Entwicklung – zum Beispiel auf Versuchsfahrten – am
Band während der Fertigung und in der Werkstatt reprogrammiert werden können. Bislang
ist dies nur unter Verwendung des E-Testers (einer speziellen Hard- und Software) möglich.
Ist die Komponente (fortan als Flashware-Reprogramming-Controller bezeichnet), die eine
Reprogrammierung eines Steuergerätes durchführen kann, in einem Steuergerät im Fahrzeug integriert, so erreicht man eine weitaus größere Flexibilität – die Reprogrammierung
von Steuergeräten kann auch ohne das Vorhandensein eines E-Testers an einem beliebigen
Ort zu einem beliebigen Zeitpunkt durchgeführt werden. Der Flashware-ReprogrammingController befindet sich in diesem Artikel in der Head-Unit. Damit "moderiert" ein Telematiksteuergerät – die Head-Unit – den Download von Software in beliebige Kfz-Steuergeräte.
Bedingt durch die vergleichsweisen großen Speicher, performanten Prozessoren und die
Nähe zu externen Schnittstellen (wie GSM oder CD-ROM) zum Bezug der Flashware, macht
es durchaus Sinn, den Flashware-Reprogramming-Controller in ein Telematiksteuergerät zu
integrieren. Konzeptuell ist dies aber keinesfalls erforderlich – die Integration kann in jedes
beliebige andere Steuergerät erfolgen, sofern Performance und Speicher ausreichend sind
und die Flashware über ein Fahrzeug-Subnetz oder direkt über eine externe Schnittstelle
bezogen werden kann.
Die Software-Architektur für den telematikmoderierten Software-Download erlaubt den
Download der Flashware-Module in das Fahrzeug über beliebige Übertragungswege und
-medien. Sowohl drahtgebundene als auch beliebige drahtlose Übertragungsmedien wie
GSM, GPRS, W-LAN, UMTS oder Bluetooth sind denkbar, genauso wie eine CD-ROM oder
ein USB Memory Stick (siehe Bild 5-1).
GSM, GPRS, UMTS
Bluetooth, W-LAN
drahtgebunden
Internet
Flashware-Server mit
Konfigurationsverwaltung
Portable Übertragungsmedien CD-ROM,
Memory-Stick
beliebige Übertragungswege und -medien
Bild 5-1 Bezug von Flashware über beliebige Übertragungswege und -medien
Nachdem die Flashware mit den zusätzlichen Daten zur Konfiguration des Flashablaufs in
das Fahrzeug transferiert worden ist, übernimmt der Flashware-Reprogramming-Controller
die Reprogrammierung des Steuergerätes, für das die Flashware bestimmt ist. Auch in der
Werkstatt kann der integrierte Flashware-Reprogramming-Controller vorteilhaft eingesetzt
werden: Das Fahrzeug bezieht zum Beispiel über W-LAN die neue Flashware und führt dann
eigenständig den Update auf ein neues Software-Release durch. Der E-Tester steht damit
für andere Aufgaben wie zum Beispiel die Diagnose von Fahrzeugen zur Verfügung.
5.1. Systemarchitektur
Für den telematikmoderierten Software-Download sind Software-Komponenten zu entwickeln, die im Fahrzeug ablaufen, und Software-Komponenten, die in der fahrzeugexternen
Infrastruktur ablaufen. Die Komponenten, die im Fahrzeug ablaufen, befinden sich auf einer
Diensteplattform – einem OSGi-Service-Gateway [10 - 14] – hier in der Head-Unit. Ein OSGiService-Gateway bietet unter anderem Dienste an, die den Lebenszyklus einer Komponente
verwalten. Durch den Einsatz eines OSGi-Service-Gateways kann die Entwicklung von
wiederverwendbaren Software-Komponenten vereinfacht und beschleunigt werden.
Bild 5-2 zeigt eine schematische Systemarchitektur für einen telematikmoderierten SoftwareDownload. Die Übertragung der Flashware erfolgt in diesem Beispiel über eine Luftschnittstelle.
Infrastruktur
Flashbare Steuergeräte mit Flashloader
FlashwareReprogrammingController /
Installations- und
Konfigurationsüberwachung
VPN
GSM/
Konfigurationsverwaltung /
Steuerung einer
Baureihenaktualisierung
BaureihenDatenbank
FlashwareDatenbank
GPRS/
UMTS/
W-LAN
Bild 5-2 Schematische Systemarchitektur für den telematikmoderierten SW-Download
Ein VPN (Virtual Private Network), das die Kommunikation zwischen Fahrzeug und Infrastruktur kapselt, sorgt dafür, dass die Kommunikation über die Luftschnittstelle so sicher wie
eine drahtgebundene Kommunikation mit dem E-Tester ist. Eine zusätzliche Verbindungsverwaltung (connection management), die im Fahrzeug und in der Infrastruktur integriert ist,
sorgt dafür, dass die Kommunikation zwischen den Komponenten im Fahrzeug und in der
Infrastruktur vollkommen transparent abläuft. Dass über eine Luftschnittstelle kommuniziert
wird, ist für die Komponenten verborgen.
5.2. Konfigurierbare
Komponente
zur
Steuerung
der
Reprogrammierung
Der Flashware-Reprogramming-Controller ersetzt den E-Tester bei der Reprogrammierung
von Steuergeräten. Entsprechend muss der Flashware-Reprogramming-Controller Konfigurations-Informationen aus Beschreibungs-Dokumenten extrahieren und die erforderlichen
KWP2000-Nachrichten an das Steuergerät senden, das reprogrammiert werden soll (siehe
Kapitel 3). Da Steuergeräte an beliebigen Fahrzeug-Subnetzen durch den FlashwareReprogramming-Controller neu geflasht werden sollen, ist konzeptuell eine Möglichkeit
vorzusehen, die es erlaubt, KWP2000-Nachrichten über beliebige Fahrzeug-Subnetze zu
transportieren. Bild 5-3 zeigt Bundles (Komponenten, die von einem OSGi-Service-Gateway
verwaltet werden können), die für den telematikmoderierten Software-Download eingesetzt
werden.
OSGi-Service-Gateway
KWP2000
CAN-TPProxy
MOST-TPProxy
...
FlexRay-TPProxy
...
FlexRay-TP
Bundles
Flashware-Reprogramming-Controller
Java Virtual Machine
Operating-System
ISO-TP
MOST-TP
CAN-Driver
MOST-Driver
FlexRay-Driver
Bild 5-3 Schichteneinteilung in der Head-Unit für einen telematikmoderierten SW-Download
Der Flashware-Reprogramming-Controller interpretiert hierbei die Konfigurationsinformation
für einen konkreten Flashvorgang, stellt die Parameter für die KWP2000-Nachrichten zusammen, die an das zu programmierende Steuergerät gesendet werden müssen, und interpretiert die Response-Nachrichten, die vom Steuergerät als Antwort zurückgesandt werden.
Das KWP2000-Bundle bietet alle KWP2000-Services an, die für die Reprogrammierung von
Steuergeräten benötigt werden. Die Bundles CAN-TP-Proxy, MOST-TP-Proxy, FlexRayProxy, etc. bieten dem KWP2000-Bundle eine einheitliche Schnittstelle, um KWP2000Nachrichten synchron über ein Fahrzeug-Subnetz zu versenden. Die Proxys übernehmen
die Anpassung auf die unterschiedlichen Transportprotokolle5 und leiten die Aufrufe über das
Java Native Interface an die entsprechenden Transportprotokoll-Implementierungen im Betriebssystem weiter. Je nach Fahrzeug-Architektur können unterschiedliche TP-Proxys integriert werden. Kann ein Zugriff auf ein Fahrzeug-Subnetz auch über ein Gateway erfolgen,
so kann auf ein TP-Proxy im Service-Gateway verzichtet werden.
Die restlichen Komponenten des telematikmoderierten Software-Downloads sind Bestandteil
der Konfigurationsverwaltung und werden im nächsten Kapitel vorgestellt.
5.3. Konfigurationsverwaltung
Die Konfigurationsverwaltung, die in der Architektur für den telematikmoderierten SoftwareDownload zum Einsatz kommt, wird anteilig im Fahrzeug und im in der fahrzeugexternen
Infrastruktur realisiert (siehe Bild 5-2). Hierbei wird im Fahrzeug von einer Installations- bzw.
Konfigurations-Überwachung und in der Infrastruktur von der eigentlichen Konfigurationsverwaltung und von einer zentralen Steuerung, die ein Release-Update einer ganzen Baureihe ermöglicht, gesprochen. Bild 5-4 zeigt eine stark vereinfachte Kollaboration zur
Installation eines neuen Software-Releases in einem speziellen Fahrzeug X. Aktuell ist auf
dem Fahrzeug X das Software-Release A installiert. Es soll eine Aktualisierung auf das
Software-Release B erfolgen. Software-Release A und Software-Release B unterscheiden
sich lediglich in der Version des Flashware-Moduls Y. Alle Objekte bis auf das Objekt vom
Typ VehicleReleaseInstallationController befinden sich in der Infrastruktur.
Nachdem sich das Objekt vom Typ BackendReleaseInstallationController die Versionslisten
für die einzelnen Releases besorgt hat, wird eine Differenzbildung in Nachricht 7 durchgeführt. Es wird eine Aktualisierungs-Anfrage in Nachricht 8 an das Fahrzeug gestellt. Das
5
Der Einfachheit halber wird hier von MOST-TP gesprochen und nicht von benötigten F-Blocks und
NetServices. Da der MOST-TP-Proxy diese MOST-Spezifikas kapselt, ist die vereinfachte Sichtweise ausreichend.
Objekt vom Typ VehicleReleaseInstallationController, das sich im Fahrzeug X befindet,
nimmt diese Nachricht entgegen und sendet erst dann die Nachricht 9 zurück, wenn sich das
Fahrzeug in einem Zustand befindet, in dem eine Reprogrammierung von Steuergeräten
möglich ist. Das Objekt vom Typ BackendReleaseInstallationController besorgt sich die neue
Flashware aus dem FlashwareRepository (Nachricht 10, 11) und sendet diese zum Fahrzeug
(Nachricht 12). Konnte der Update erfolgreich ausgeführt werden, so sendet das Objekt vom
Typ VehicleReleaseInstallationController eine entsprechende Bestätigung zurück (Nachricht
13). In der letzten Nachricht wird dem Objekt X vom Typ Fahrzeug mitgeteilt, dass die
Aktualisierung erfolgreich war.
:FlashwareRepository
11: Flashware Y V 2.0
7: Differenzbildung
10: Anfrage Flashware Y V2.0
8: Aktualisierungs-Anfrage
:BackendReleaseInstallationController
:VehicleReleaseInstallationController
9: Start Aktualisierung
12: Update Flashware Y V2.0
13: Installation OK
2: Update
von A nach B
14: Update
erfolgreich
6: Flashware-Liste
5: Anfrage Flashware-Liste
B:SoftwareRelease
4: Flashware-Liste
A:SoftwareRelease
1: Installation Release B
X:Fahrzeug
3: Anfrage Flashware-Liste
Bild 5-4 Vereinfachte Kollaboration zur Installation eines neuen Software-Releases
Das Objekt vom Typ VehicleReleaseInstallationController wird als Bundle auf dem OSGiService-Gateway im Fahrzeug installiert. Zusätzlich sind für die Installations- und Konfigurationsüberwachung im Fahrzeug noch folgende Bundles vorgesehen: VehicleConfiguration-Controller und für jedes installierte Flashware-Modul ein Flashware-ProxyBundle. Bild 5-5 zeigt alle Bundles, die für einen telematikmoderierten Software-Download
auf dem OSGi-Service-Gateway im Fahrzeug installiert sind6.
...
Flashware
Proxy N
Flashware
Proxy B
Flashware
Proxy A
OSGi-Service-Gateway
Flashware-ReprogrammingController
VehicleReleaseInstallationController
VehicleConfigurationController
KWP2000
CAN-TPProxy
MOST-TPProxy
Bild 5-5 Bundles auf dem OSGi-Service-Gateway im Fahrzeug
6
In diesem Beispiel sind nur 2 TP-Proxys integriert. Steuergeräte an anderen Fahrzeug-Subnetzen
können über Gateways erreicht werden.
Der Vehicle-Release-Installation-Controller kommuniziert hierbei mit dem Backend-ReleaseInstallation-Controller in der Infrastruktur, wie in der Kollaboration in Bild 5-4 zu sehen ist.
Der Vehicle-Configuration-Controller wird vom Vehicle-Release-Installation-Controller über
die Aktualisierungs-Anfrage informiert und bestimmt, ob eine Aktualisierung der FahrzeugSoftware im aktuellen Zustand durchgeführt werden kann. Erteilt der Vehicle-ConfigurationController die Erlaubnis für die Aktualisierung, so kann das Fahrzeug nicht mehr gestartet
werden, bis wieder eine gültige Konfiguration vorliegt.
Die Flashware-Proxys haben zwei unterschiedliche Bedeutungen:
•
•
Bei einem vollständig installierten Release einer Fahrzeug-Software stellen diese
Bundles die Stellvertreter für die Flashware-Module dar, die in den einzelnen Steuergeräten installiert sind. Der Vehicle-Configuration-Controller kann von diesen Proxys die
Sachnummern der installierten Flashware-Module abfragen und verifizieren, ob die
Sachnummernkombination von allen installierten Flashware-Modulen ein gültiges
Software-Release für dieses Fahrzeug ergibt. Die Proxys können hierzu über die
KWP2000-Komponente die Sachnummern von den Flashware-Modulen in den
Steuergeräten direkt abfragen oder diese zwischenspeichern.
Bei einem Aktualisierungsvorgang beinhaltet ein Flashware-Proxy-Bundle die Flashware,
die zu installieren ist, und die zugehörige Konfigurationsinformation. Sobald ein
Flashware-Proxy-Bundle auf dem Service-Gateway des Fahrzeugs installiert wird,
beginnt dieses nach einer Rückfrage beim Vehicle-Release-Installation-Controller mit der
Installation der Flashware, wobei diese und die zugehörige Konfigurationsinformation an
den Flashware-Reprogramming-Controller übergeben wird. Ist die Installation erfolgreich
abgeschlossen, löscht das Flashware-Proxy-Bundle die Flashware und nicht mehr
benötigte Konfigurationsinformationen und stellt fortan den Repräsentanten für das
installierte Flashware-Modul im Service-Gateway dar.
6. Ausblick und Zusammenfassung
Eine erhebliche Vereinfachung des eigentlichen Flashvorgangs kann erreicht werden, wenn
in allen Steuergeräten standardisierte Flashloader zum Einsatz kommen. Die Spezifikationen
für einen Standard-Flashloader werden in der Hersteller Initiative Software (HIS) [18] erarbeitet. Ein weiteres Potential für Standardisierungen bieten die Basiskomponenten, die auf
dem OSGi-Service-Gateway ablaufen und zum Beispiel Zugriffe auf Fahrzeugdaten ermöglichen. Die Standardisierung dieser Basisdienste würde einen herstellerübergreifenden Einsatz von Zusatzdiensten möglich machen und könnte richtungsweisenden Einfluss auf den
Gedanken „Software als Produkt“ [15 - 17] mit sich bringen.
In diesem Beitrag wurde empfohlen, für die gesamte Fahrzeug-Software funktionsfähige
Releases auszuweisen, da sich heute noch keine triviale Möglichkeit abzeichnet, wie alle
Abhängigkeiten zwischen den einzelnen Flashware-Modulen (sowohl statische als auch
dynamische) beschrieben werden können. Die Architektur für den telematikmoderierten
Software-Download ermöglicht ein Release-Update von Fahrzeug-Software ohne Verwendung eines externen Testers. Die Flashware und zugehörige Konfigurationsinformation kann
über eine beliebige Kommunikations-Schnittstelle in Form eines OSGi-Bundles in das
Fahrzeug geladen werden. In einem überwachten Installationsvorgang wird die Flashware
dann in das individuelle Steuergerät übertragen. Eine Konfigurationsverwaltung, die anteilig
im Fahrzeug und in der fahrzeugexternen Infrastruktur realisiert wird, stellt sicher, dass nur
Updates durchgeführt werden können, die zu einer konsistenten, gültigen und funktionsfähigen Fahrzeugkonfiguration führen.
7. Danksagung
Wir danken den Kollegen der Mercedes-Benz PKW Entwicklung und des Centers für
Diagnose und Flash-Technologien. Des Weiteren geht unser Dank an Herrn Prof. Dr.
Wolfgang Rosenstiel von der Universität Tübingen für die wissenschaftliche Betreuung und
an Herrn Prof. Dr. Joachim Goll von der Fachhochschule Esslingen – Hochschule für
Technik für seine Unterstützung und fachliche Beratung.
8. Literatur
[1]
H.-E. Schurk, „Spiel ohne Grenzen oder am Band mit unbegrenzten Möglichkeiten?
Einführung in die Thematik Flashen“, Software-Flashen im Kfz, Stuttgart, Jan. 2003
[2]
DaimlerChrysler Hightech Report, „Programme für mehr Intelligenz im Auto“, 1/2002
[3]
DaimlerChrysler Hightech Report, „Innovation im Augenblick – Flashen in Produktion
und Service“, 2/2002
[4]
W. Herrmann, „Software-Update für BMW-Fahrzeuge“, Software-Flashen im Kfz,
Stuttgart, Jan. 2003
[5]
M. Faulbacher, „Updateprogrammierung entlang der Prozesskette aus Sicht eines
Automobilherstellers“, Software-Flashen im Kfz, Stuttgart, Jan. 2003
[6]
H. Alminger, „Downloading software during development, end of line and on the
aftermarket, experiences from Volvo Cars“, Software-Flashen im Kfz, Stuttgart, Jan.
2003
[7]
ISO 14230: „Road vehicles – Diagnostic systems – Keyword Protocol 2000 – Part 3:
Application Layer“
[8]
Standard: IEEE 1042, „A guide to Software Configuration Managment“.
[9]
T. Kühner, S. Kreuser, „Prozessicheres Flashen in der Entwicklung, der Produktion und
der Außenorganisation bei DaimlerChrysler“, Software-Flashen im Kfz, Stuttgart, Jan.
2003
[10] H.-U. Michel, „Open Services Gateway Initiative (OSGi) – Standardisierung einer
offenen Infotainment-Plattform“, Telematik im Kraftfahrzeug, VDI-Berichte 1728, 27 –
39, 2002
[11] S. Schwarze, „Was sind Vorteile einer OSGi-Lösung für Hersteller und Service
Provider?“, Embedded World Conference, Nürnberg, 2003
[12] M. Wagner, „Hardware- und Softwarevoraussetzungen für OSGi in Embedded
Systemen“, Embedded World Conference, Nürnberg, 2003
[13] K. Hackbarth, „Offene Plattformen für Infotainment- und Telematik-Systeme“,
Embedded World Conference, Nürnberg, 2003
[14] V. Fricke, „Embedded Java und OSGi – Neue Technologien im Fahrzeug der Zukunft“,
Embedded World Conference, Nürnberg, 2003
[15] U. Schrey, „Software als Produkt“, Automotive Electronics ATZ MTZ, März 2003
[16] H. Fennel, S. Stölzl, „Software-Funktionen auf dem Weg zu eigenständigen Produkten
im Automobil“, Automotive Electronics ATZ MTZ, März 2003
[17] A. Saad, „Software im Automobil – Ausgangslage, Zielsetzung und Aufgabe der BMW
Car IT“, Automotive Electronics ATZ MTZ, März 2003
[18] G. Wagner, H. Merkle, J. Bortolazzi, D. Marx, K. Lange, „Herstellerinitiative Software“,
Automotive Electronics ATZ MTZ, März 2003