Prototyping direkt auf dem Target Entwicklung von Steuergeräte-Funktionen

Nur selten werden für neue Fahrzeuggenerationen alle Softwarefunktionen neu entwickelt. In der Regel passen die Entwickler den bereits existierenden Steuergerätecode an und erweitern ihn. Typischerweise kommt hier die servicebasierte externe Bypass-Methode zum Einsatz, bei der parallel zum Steuergerät die neuen Funktionen auf einem Rapid-Prototyping-System berechnet werden. Dieser Ansatz erweist sich aber zunehmend als zu teuer und zu zeitaufwändig. Eine neue On-Target-Prototyping-Werkzeugkette kann da eine Lösung bieten.

Elektromobilität, CO2-Reduktion und Verkehrssicherheit sind als die aktuellen Leitthemen wesentliche Innovations-treiber in der Automobilindustrie. Folglich gibt es immer mehr entsprechende Entwicklungsprojekte, und mehr und mehr Funktionsentwickler sind mit geeigneten Prototyping-Umgebungen auszustatten. Da moderne Steuergeräte (Electronic Control Unit; ECU) immer komplexer werden, schreiben sie nur selten alle Softwarefunktionen für eine neue Fahrzeuggeneration neu.

In der Regel passen sie den bereits existierenden Steuergerätecode an und erweitern ihn. Die servicebasierte externe Bypass-Methode stellt hier einen etablierten Entwicklungsansatz dar, bei dem parallel zum Steuergerät die neuen Funktionen auf einem Rapid-Prototyping-System berechnet werden. Bisher werden dazu die notwendigen Schnittstellen in der Steuergeräte-Software, auch Freischnitte genannt, in Form von Service-Aufrufen durch den Steuergeräte-Zulieferer im Quellcode integriert.

Dieser Prozess kennzeichnet sich in der Regel durch iterative Diskussionen zwischen Fahrzeughersteller und Zulieferer, und in einigen Fällen werden im Projektverlauf zusätzliche, vorab nicht eingeplante Software-Anpassungen gefordert. Für den Fahrzeughersteller können entsprechend lange Projektlaufzeiten und hohe Projektkosten die Folge sein.

Gleichzeitig stößt man bei der Entwicklung von sehr schnellen Regelschleifen für Elektro- und Hybridantriebe mit der externen Bypass-Methode an Grenzen. Zudem ist in der Regel die Ausstattung aller Funktionsentwickler oder vieler Erprobungsfahrzeuge mit Rapid-Prototyping-Systemen aus Budgetgründen nicht möglich. Die Antwort auf diese Herausforderungen bietet dSpace mit einer neuen Werkzeugkette für das interne Bypassing, auch On-Target-Prototyping genannt.

Auf Basis einer durchgängigen Entwicklungsumgebung in »MATLAB/Simulink« lassen sich Softwarefunktionen direkt auf dem vorhandenen Steuergerät unter Ausnutzung der freien RAM- und Flash-Speicherressourcen entwickeln. Endanwender haben dabei die Möglichkeit, selbstständig Freischnitte für neue Funktionen in die kompilierte Steuergeräte-Software einzubinden.

Der Zulieferer muss dann die Steuergeräte-Software nicht mehr spezifisch anpassen. Da beim internen Bypassing keine Daten mit einem externen Prototyping-System ausgetauscht werden müssen, entfallen Kommunikationslatenzen und sehr schnelle Regelschleifen können im Bypass-Betrieb realisiert werden.

Integration von Freischnitten

Mit dem »ECU Interface Manager« steht ein neues Werkzeug zur Verfügung, mit dem sich Service-Aufrufe direkt in die kompilierte Steuergeräte-Software (HEX-Datei) ohne Modifikation des Steuergeräte-Quellcodes integrieren lassen. Dabei können Funktionsentwickler Freischnitte sowohl für das externe als auch für das interne Bypassing integrieren.

Neben der HEX-Datei und der zugehörigen Steuergeräte-Variablenbeschreibung (A2L-Datei) sind für das Arbeiten mit dem ECU-Interface-Manager nur wenige Zusatzinformationen erforderlich, zum Beispiel freie RAM- und Flash-Speicherbereiche auf dem Steuergerät und mindestens eine Einsprungadresse für den HEX-Code-Parser. Diese Zusatzinformationen werden in einer XML-Konfigurationsdatei abgelegt, die der Steuergeräte-Zulieferer typischerweise in verschlüsselter Form bereitstellt.

Der ECU-Interface-Manager analysiert den HEX-Code und ermittelt Funktionsaufrufe, Zugriffe auf Steuergeräte-Variablen und konditionale Verzweigungen im Programmablauf der Steuergeräte-Software. Über die Konfigurationsdatei lässt sich dabei definieren, welche Informationen tatsächlich dem Endanwender im ECU-Interface-Manager bereitgestellt werden.

Zur Lokalisierung von dedizierten Variablenzugriffen und Funktionsaufrufen im Programmablauf stehen leistungsfähige Filter- und Suchmechanismen zur Verfügung. Nach Festlegung der Freischnittpositionen lassen sich über eine Benutzerschnittstelle die Service-Aufrufe in den Steuergerätecode einfügen und auf Knopfdruck eine modifizierte A2L- und HEX-Datei generieren.

Der Zugriff auf die Build-Umgebung des Steuergeräte-Zulieferers ist dafür nicht erforderlich. Endanwender können somit selbstständig und innerhalb von wenigen Minuten die notwendigen Freischnitte in die Steuergeräte-Software integrieren. Veränderungen an dem Original-Softwarestand können daher auf die jeweilige Bypass-Aufgabe beschränkt werden, Speicheranforderungen und Einflüsse auf das Laufzeitverhalten des Steuergeräts lassen sich somit auf ein Mindestmaß reduzieren.

Zum Beispiel benötigen der interne Bypass-Service und die zugehörigen Service-Aufrufe bei Infineons »TriCore«-Mikrocontrollern insgesamt etwa 32 Byte im Steuergeräte-RAM und bei typischen Anwendungen 2 KByte im Steuergeräte-Flash-Speicher.

Rapid-Prototyping auf dem Steuergerät

Mit der neuen internen Bypass-Option von dSpace wird die modellbasierte Funktionsentwicklung direkt auf dem Zielsteuergerät unterstützt. Dabei legten die Entwickler des Unternehmens insbesondere Wert darauf, ohne Veränderungen am Funktionsmodell flexibel zwischen dem externen und internen Bypassing umschalten zu können. Stellt sich beispielsweise während der Funktionsentwicklung im internen Bypass-Betrieb heraus, dass der verfügbare RAM- und Flash-Speicher des Steuergeräts nicht ausreicht oder zusätzliche Sensorsignale notwendig werden, kann ohne Modelländerung schnell auf ein externes Prototyping-System gewechselt werden.

Gleiches gilt in umgekehrter Reihenfolge, wenn Funktionsentwickler zum Beispiel eine im externen Bypass-Betrieb entwickelte Funktion nun im Flottentest direkt auf Steuergeräten erproben wollen.

Nach dem Einlesen der A2L- und HEX-Datei über entsprechende Bypass-Blöcke können Funktionsentwickler in der Modellierungsumgebung die zuvor mit Hilfe des ECU Interface Managers integrierten Service-Aufrufe auswählen und zum Lesen und Schreiben von beliebigen Steuergeräte-Variablen oder zum Aufrufen der Bypass-Funktion verwenden.

Auf Knopfdruck generiert das Tool den zugehörigen Code für das Funktionsmodell, linkt ihn in den freien Bereich des Steuergeräte-Flash-Speichers und führt ihn mit der ursprünglichen Steuergeräte-Software zusammen.

Das Ergebnis ist eine um die Variablen der internen Bypass-Funktion erweiterte A2L-Datei und ein neuer Hex-Code, den etablierte Werkzeuge auf das Steuergerät flashen können (Bild 1).

Um während der Modellierung jederzeit die noch freien RAM- und Flash-Speicherressourcen im Steuergerät überprüfen zu können, steht ein spezieller Infoblock zur Verfügung. Kommt der »Simulink Coder« zur Generierung von 32-Bit-Fließkomma-Code zum Einsatz, sind beispielsweise bei einem Funktionsmodell mit 400 Blöcken und 30 Ein- und Ausgangsgrößen etwa 30 KByte Flash-Speicher und weniger als 4 KByte RAM-Speicher beim TriCore erforderlich.

Bild 2 zeigt beispielhaft die Abarbeitungsreihenfolge beim servicebasierten Funktions-Bypassing. In ähnlicher Weise lassen sich mit diesem Ansatz auch Zugriffe auf Steuergeräte-Variablen freischneiden. Der ECU-Interface-Manager und die interne Bypass-Option von dSpace unterstützen aktuell Steuergeräte mit TriCore-Mikrocontrollern.

Spezielle Abhängigkeiten von Steuergeräte-Plattformen bestimmter Zulieferer existieren nicht. Weitere Mikrocontrollerfamilien, zum Beispiel die Serie »MPC5xxx« von Freescale, sollen in der zweiten Hälfte des Jahres 2012 hinzukommen.

Über die Autoren:

Thorsten Hufnagel ist Team- und Projektleiter, André Rolfsmeier ist Senior Produktmanager, beide bei dSpace.