Steigerung des Datendurchsatzes bei der Programmierung von Steuergeräten Fahrzeug-Update

Das Flashen von Steuergeräten ist eine elegante Möglichkeit, um die Funktionen eines Fahrzeugs auf dem aktuellen Stand zu halten. Die wachsende Anzahl der elektronischen Komponenten und der immer größer werdende Datenumfang verschärfen auch die Herausforderung, diese Aktualisierung in immer kürzerer Zeit durchzuführen.

Steigerung des Datendurchsatzes bei der Programmierung von Steuergeräten

Das Flashen von Steuergeräten ist eine elegante Möglichkeit, um die Funktionen eines Fahrzeugs auf dem aktuellen Stand zu halten. Die wachsende Anzahl der elektronischen Komponenten und der immer größer werdende Datenumfang verschärfen auch die Herausforderung, diese Aktualisierung in immer kürzerer Zeit durchzuführen.

Das Automobil, einst eines der Vorzeigeobjekte für mechanische Ingenieurleistungen, entwickelt sich zunehmend zu einem Schwerpunkt der Informationstechnik. Nahezu alle mechanischen Einheiten im Fahrzeug sind heute mit einem oder mehreren Steuergeräten gekoppelt, die die Funktionsfähigkeit dieser Einheiten steuern, überwachen und komplexe Eingriffe zulassen, um den wachsenden Anforderungen an Sicherheit, Komfort und Umweltverträglichkeit gerecht zu werden.

Das aus der klassischen Informationstechnik bekannte Mooresche Gesetz gilt auch für die Steuergeräteentwicklung. Mit der wachsenden Anzahl an Steuergeräten und den immer komplexer werdenden Funktionsumfängen steigen der Software-Umfang und somit auch der Speicherbedarf massiv an.

Der Austausch der Software (Flashen) ist eine elegante Möglichkeit, den Funktionsumfang der Steuergeräte aktuell zu halten. Um dem wachsenden Datenumfang gerecht zu werden und gleichzeitig den Zeitaufwand zu verringern, werden bei BMW zwei unterschiedliche Ansätze verfolgt: Reduzierung des zu übertragenden Datenvolumens und Erhöhung des Datendurchsatzes.

Partitionierung der Software

In der Vergangenheit war die Software eines Steuergerätes in nur wenige, unabhängig voneinander programmierbare Einheiten aufgeteilt. Als Konsequenz aus dieser grob-granularen Aufteilung der Steuergeräte-Software musste bei jeder noch so kleinen Veränderung der Software ein sehr großer Anteil des Gesamtvolumens neu übertragen werden. Mit wachsendem Datenvolumen erhöht eine solche Aufteilung der Steuergeräte-Software die bei Updates zu übertragende Datenmenge erheblich.

Durch Partitionierung der Steuergeräte-Software in mehrere, unabhängig voneinander programmierbare Einheiten wird das zu übertragende Software-Volumen signifikant reduziert. Um diesen Ansatz möglichst effizient umsetzen zu können, wurde die Reprogrammierung von Steuergeräten bereits beim Zuschnitt der Software-Einheiten berücksichtigt. Die Realisierung dieser Idee erfordert ein Umdenken in der logistischen Verwaltung von Steuergeräten und deren Software. Eine Steuergerätekonfiguration wird nicht mehr durch eine einzige logistische Identität beschrieben, sondern durch eine Stückliste der enthaltenen Soft- und Hardware-Module. Die Realisierung stellt also weniger eine Anforderung an das Programmiersystem als vielmehr an das IT-System zur logistischen Verwaltung der Software-Einheiten.

zurück zur Übersicht

Heute werden die auf ein Steuergerät zu installierenden Software-Einheiten über einen zentralen Zugang in das Bordnetz des Fahrzeugs übermittelt und von diesem zum Zielsteuergerät transportiert. Werden die Steuergeräte eines Fahrzeugs sequentiell programmiert, bleibt der jeweilige Bus, über den das Steuergerät angesprochen wird, während dieser Wartezeiten ungenutzt, wobei Transportkapazität verlorengeht. Bei einem „High Speed CAN“-Bus (500 kbit/s) summiert sich dieser Verlust in zehn Sekunden auf ca. 375 kbyte; das entspricht dem Flash-Speicherinhalt eines mittleren Steuergeräts. Eine weitere Verringerung der Busauslastung entsteht dadurch, dass ein Steuergerät die über den Bus empfangenen Daten nicht so schnell in den Flash-Speicher schreiben kann, wie der Bus sie anliefert. Als Konsequenz bleibt bei der sequentiellen Programmierung an einem Bus immer ein Teil der maximalen Datenrate ungenutzt.

Um die Kapazität eines Busses sinnvoll zu nutzen, bietet es sich an, gleichzeitig mehrere Steuergeräte an einem Bus zu programmieren. Optimal ist es, so viele Steuergeräte gleichzeitig zu programmieren, dass die Summe der Flash-Schreibraten über die gesamte Dauer des Programmierprozesses der maximalen Netto-Datenrate des Busses entspricht. Durch die verschiedenen Datenvolumina und unterschiedliche Verarbeitungszeiten verschieben sich die Verarbeitungsschritte der gleichzeitig programmierten Steuergeräte so gegeneinander, dass der Bus immer belegt ist und keine längeren Übertragungslücken entstehen (Bild 1).

Das Bordnetz enthält eine Vielzahl von unterschiedlichen Bussen, die ihrerseits über Gateway-Steuergeräte miteinander verbunden sind. Werden zu einem Zeitpunkt nur Steuergeräte innerhalb eines Busses programmiert, so bleibt die gesamte Übertragungskapazität der anderen Busse ungenutzt. Durch die gleichzeitige Programmierung von Steuergeräten an verschiedenen Bussen eines Fahrzeugs werden die zur Verfügung stehenden Übertragungskapazitäten der vorhandenen Busse optimal genutzt (Bild 2).

Die parallele Bearbeitung von Steuergeräten über die Grenze von Bus-Domänen hinaus stellt hohe Anforderungen an die Gateways im Bordnetz. Sie müssen in der Lage sein, zeitgleich über eine große Zahl von Verbindungen hinweg eine hohe Datenmenge zu übertragen. Insbesondere muss der zentrale Zugangspunkt in der Lage sein, die Daten für alle gleichzeitig programmierten Steuergeräte vom Tester entgegenzunehmen und auf die verschiedenen Busdomänen im Fahrzeug zu verteilen.

Durch die Kombination der beiden Verfahren zur parallelen Programmierung erreicht man eine bestmögliche Auslastung der vorhandenen Übertragungskapazitäten.