Ziel und Ergebnis
Auf der Basis vorhandener Entwicklungen (Tür-Demonstrator aus dem Projekt EASP) wurde für unseren Partner eine Demonstrationsumgebung für die »Embedded Software Entwicklung von morgen« erstellt.
Dieser Demonstrationsaufbau besteht einerseits aus einer durchgängigen Software-Werkzeugkette, die vom Modellentwurf bis zur Microcontroller-Programmierung reicht und andererseits aus einer realen Fahrzeug-Komponente (Autotür). In dieser Kombination dient das System zum Nachweis der Möglichkeiten zur Beschleunigung von Software-Entwicklungsprozessen in der Automobilbranche sowie der Praxistauglichkeit im realen Einsatz bei der Ansteuerung von Bord-Elektronik.
Hierbei werden drei Aspekte besondere Berücksichtigung finden:
- Anwendung der modellbasierten Entwicklung im Bereich Embedded-Automotive
- Optimierte Entwicklungsmethodik von Embedded-Software mit Standard-Tools der Automobilindustrie
- Dynamische, UML-basierte Microcontroller-Programmierung
- Als Proof-of-Concept und zur Demonstration der Funktionsfähigkeit der aufzubauenden Werkzeugkette wird eine PKW-Tür vom BMW E90 verwendet, die Ansteuerungsmöglichkeiten für Fensterheber, Zentralverriegelung und Spiegeleinstellung bietet.
In dem verfolgten Ansatz können bestehende Software-Artefakte (z.B. Bibliotheken, Legacy-Code) und weitere Modelle (z.B. Matlab/Simulink) referenziert und in ein UML-Modell der Steuergeräte-Software eingebunden werden. Daraus ergibt sich ein optimierter und durch Automatisierung ermöglichter, durchgängiger Entwicklungsprozess, der automatisierte Codegenerierung, Kompilierung und den Flash-Prozess der entstehenden Software auf das eingebettet Steuergerät beinhaltet.
Die optimierte Vorgehensweise basiert auf den Konzepten der Model-Driven Architecture (MDA) und insbesondere der angestrebten Entwicklungsmethodiken. Für die Entwicklung einer neuen Fahrzeugfunktion, welche in Software realisiert werden soll, kann der Systementwickler diese Funktionalität in einem UML-Modell, Matlab/Simulink-Modellen oder C-Code spezifizieren. Die angestoßene Codegenerierung ermöglicht sodann einen Automatismus, welcher diese Spezifikation in Embedded-Code realisiert und schließlich auf dem realen Steuergerät ausführt. Der entstandene Code wird hierbei über HIS-konforme Treiber auf den Mikrocontroller geflasht.
Der Systementwickler erhält somit sofort die Möglichkeit, seinen Entwurf unmittelbar in einer realen Umgebung bzw. an einem Steuergerät angeschlossenen Aktuator sichtbar zu machen.