In den letzten Jahren ist der Software-Anteil in Automotive-Anwendungen drastisch angewachsen. Dies hat zu einer gestiegenen Zahl von Herausforderungen in Bezug auf software-bedingte Rückrufe und Neuentwürfe geführt. Die Folgen dieser Rückrufe hatten negativen Einfluss sowohl auf die Kosten als auch auf das Markenimage. Eine einfache Recherche der jüngsten Rückrufe und aktuellen Diskussionen in der Industrie macht diesen Trend deutlich. Beispielsweise beleuchtete ein Artikel von IEEE-Spectrum die „Rückrufe von 936.000 Fahrzeugen zwecks elektrischer und software-bezogener Reparaturen“. In diesem Artikel wurde die folgende Aussage bezüglich software-bezogener Probleme besonders herausgestellt: „Ohne die aktualisierte Software können in betroffenen Fahrzeugen mit Automatikgetriebe die Nockenwellenlager beschädigt werden, wenn das Getriebe zu schnell zwischen Rückwärtsgang, Leerlauf und Vorwärtsgängen umgeschaltet wird, was zum Beispiel beim Versuch, ein in Matsch oder Schnee feststeckendes Auto frei zu bekommen, leicht passieren kann. Werden die Lager in diesem ungewöhnlichen Szenario beschädigt, kann dies den Motor abwürgen oder zu Schwierigkeiten führen, das Getriebe in Parkstellung zu bringen. Die Aktualisierung der Steuermodul-Software des Automatikgetriebes soll das Umschalten zwischen Gängen erleichtern, um die Möglichkeit von Beschädigungen zu reduzieren.“

47533.jpg

Synopsys

Jeder Fahrzeughersteller ist von der zunehmenden Problematik wachsender Software-Anteile in der Automotive-Entwicklung betroffen. Der Einfluss von Software lässt sich durch die folgenden Fakten zur Software-Entwicklung im Automotive-Sektor abschätzen: So enthält die Software in Fahrzeugen 10 bis 100 Millionen Zeilen Code, und neue Features, Entwicklungszeit sowie Qualität werden allesamt durch die Software bestimmt. Die Systemintegration umfasst 50 bis 100 Controller, mehr als 150 verteilte Funktionen, Software von mehreren Quellen sowie Entwicklerteams, die global und über mehrere Firmen hinweg verteilt sind.

So ist die Software-Entwicklung zur größten Herausforderung für Automotive-Unternehmen geworden. Gerade bei sicherheitskritischen Anwendungen ist es entscheidend, neue Methoden und Tools zu identifizieren, die die Qualität und Zuverlässigkeit der Software verbessern, skalieren und die die Software-Testkosten für Unternehmen in Grenzen halten.

Technologien und Evolution des Entwicklungsprozesses

Arbeiten mit virtuellen Prototypen

Virtuelle Prototypen und VDKs erweitern Modellierungs- und Simulationskonzepte auf die ECU-Hardware und ermöglichen somit die Erstellung einer virtuellen Plattform, welche die eingebettete Software, die ECU-Hardware und die zu steuernde Umgebung umfasst. Die Integration einer virtuellen HiL-Lösung in den Entwicklungsprozess für ECUs ermöglicht es den Automotive-OEMs und Tier-1s, die Entwicklungskosten zu reduzieren beziehungsweise in Grenzen zu halten, die Software-Qualität zu steigern und die Zuverlässigkeit des Gesamtsystems zu erhöhen.

Während der letzten 20 Jahre hat die Entwicklung von Steuergeräten (ECUs) signifikante Veränderungen erfahren. Hier sind die drei Technologiebereiche Modellierung und Simulation, Code-Generierung sowie Autosar von Interesse.

Die grundlegenden Komponenten von ECUs sind die Hardware-Plattform (digital und analog), die Embedded-Software (Betriebssystem, Connectivity etc.) und die Steuerungsalgorithmen. Aus Sicht der Entwicklung kann die Validierung und die Verifikation der ECU nicht unabhängig von der Umgebung stattfinden, mit welcher die ECU interagiert. Seit Mitte der 90er Jahre hat sich die die Modellierung und Simulations-Technologie als entscheidender Ansatz entwickelt, um Prototypen sowohl des Algorithmus‘ als auch der Umgebung zu erproben. Tools wie Matlab/Simulink von Mathworks ermöglichten die funktionale Simulation von Algorithmen. Die Notwendigkeit einer solchen Simulation wurde getrieben von der gestiegenen Komplexität der zu entwickelnden Systeme. Eine derartige Simulationsumgebung ist auch bekannt als „Model-in-the-Loop“ (MIL).

In der Folge des verbreiteten Einsatzes von Modellierungs- und Simulations-Technologien kam dann das Konzept der Code-Generierung auf. Die Idee bestand darin, die Modelle ausgehend von der in Algorithmen-Entwürfen enthaltenen grafischen Darstellung in Hochsprachen wie C zu compilieren. Der generierte Code konnte auf einem PC, in spezialisierter Hardware oder in einem Embedded-Zielsystem ausgeführt werden. Code konnte für die Steuerungsalgorithmen oder die Umgebungsmodelle generiert werden. Der Einsatz der Code-Generierung führte zu mehreren Entwicklungsplattformen, zu denen auch SiL, PiL und HiL gehören.

Bild 1: Verschiebung der ECU-Entwicklung in frühere Phasen.

Bild 1: Verschiebung der ECU-Entwicklung in frühere Phasen.Synopsys

SiL, PiL, HiL

Im Rahmen des SiL-Ansatzes (Software-in-the-Loop) wurde der für den Steuerungsalgorithmus generierte Code auf einem Host-PC compiliert und gemeinsam mit dem Umgebungsmodell ausgeführt. Der Fokus dieses Ansatzes liegt auf Software-Korrektheit und Ausführungsgeschwindigkeit. Beim PiL-Ansatz (Processor-in-the-Loop) erfolgt die Ausführung des Steuerungsalgorithmus‘ auf einem Evaluierungsboard. Dadurch ist es möglich, die Software auf der Ziel-Hardware-Architektur laufen zu lassen. Bei HiL (Hardware-in-the-Loop) wird die tatsächliche dedizierte Hardware-Plattform zur Ausführung der Embedded-Software in Verbindung mit dem für das Umgebungsmodell generierten Code genutzt.

Autosar

Schließlich kam vor einigen Jahren, vorangetrieben von führenden Automotive-OEMs und Tier-1s, Autosar als standardisierte Automotive-Software-Architektur auf. Autosar-Simulatoren unterstützen die Entwicklung der Embedded-Software, berücksichtigen allerdings keinerlei Hardware-Aspekte.

Die Evolution dieses Entwicklungsprozesses war fokussiert auf frühzeitige Validierung des Designs und des dazugehörigen Codes, um Entwurfs-Iterationen in späten Entwicklungsphasen zu vermeiden. Die zuvor beschriebenen Ansätze boten eine Menge Vorteile für Automotive-ECU-Entwickler, ließen die Entwickler aber dennoch mit einigen Lücken zurück.

MIL und PIL berücksichtigen nicht die zugrunde liegende Hardware-Plattform, deren Komplexität und Möglichkeiten immer weiter zunehmen. So nutzen zum Beispiel neuere Mikrocontroller für Automotive-Anwendungen Multicore-Implementierungen. Gleichzeitig erfordert HiL die Verfügbarkeit der ECU-Hardware, und außerdem gibt es eine signifikante zeitliche sowie aufwandsbezogene Lücke zwischen der PIL- und HL-Verfügbarkeit.

Vorteile einer virtuellen hardware-basierten Entwicklungsumgebung

Bild 2: Einschränkungen der „In-the-Loop“-Technologien.

Bild 2: Einschränkungen der „In-the-Loop“-Technologien.Synopsys

Schaut man auf den gesamten Entwicklungsprozess, so ist es klar, dass Modellierung und Simulation einen signifikanten Nutzen mit sich brachten. Allerdings sind diese Konzepte bislang nur auf den Steuerungsalgorithmus und die Umgebungsmodelle angewandt worden, nicht jedoch auf die Hardware-Plattform. Dies liegt im Wesentlichen an der Tatsache, dass die hardware-orientierte Simulation es bis heute nicht geschafft hat, die Erwartungen der Entwickler an die Ausführungsgeschwindigkeit zu erfüllen. Außerdem sind diese Simulationsumgebungen häufig nur innerhalb von Halbleiterfirmen vorhanden und daher für Entwickler bei OEMs und Tier-1s nicht einfach zugänglich.

Virtual-Prototyping hat sich während der letzten paar Jahre zu einer Schlüsselmethodik entwickelt, welche eine frühzeitige Software-Entwicklung möglich macht. Virtual-Prototyping modelliert digitale Hardware auf einer höheren Abstraktionsebene mittels der IEEE-1666- Sprache SystemC einschließlich der Anwendung von Transaction-Level-Modellierungs-Konzepten. Virtuelle Prototypen sind somit schnelle softwarebasierte Modelle, die eine Hardware-Plattform (Mikrocontroller, ECUs oder ein Netzwerk von ECUs) emulieren und auf einem Desktop-PC (Windows oder Linux) ausführbar sind. Virtuelle Prototypen führen Software-Binärcode ohne Modifikationen aus, wie er auch auf der tatsächlichen Hardware-Plattform zum Einsatz kommt. Virtuelle Prototypen zeichnen sich unter anderem durch die folgenden Eigenschaften aus:

  • Beobachtbarkeit
  • Kontrollierbarkeit
  • Kein verfälschender Einfluss durch das Debuggen
  • Determinismus
  • Skript-Automatisierung

Software-Entwicklungstools für virtuelle Prototypen ermöglichen diese Fähigkeiten, wobei diese Tools parallel zu existierenden Software-Toolsets arbeiten. So können Entwickler beispielsweise beim Einsatz virtueller Prototypen die Systemausführung zu einem beliebigen Zeitpunkt anhalten – und zwar auch in einer heterogenen Multicore-Hardware-Plattform. Sie können dann beliebige internen Werte auslesen und modifizieren, Hardware- und Softwareausführung korrelieren oder Skripte ausführen.

Ein Virtual-Development-Kit (VDK) ist ein Software-Entwicklungskit, das einen virtuellen Prototypen als Hardware-Zielobjekt enthält. Ein VDK kann auf einfache Weise gewartet, archiviert und für weltweit verteilte Teams bereitgestellt werden.

Vom Virtual-Development-Kit zur virtuellen HiL-Umgebung

Virtuelle Prototypen stellen die Technologie zur Verfügung, die zur Überwindung der oben beschriebenen Einschränkungen des aktuell existierenden Entwicklungsansatzes benötigt wird. Eine virtuelle HiL-Umgebung, die ein VDK zur Ausführung der Embedded-Software in Verbindung mit der Umgebungssimulation umfasst, kann frühzeitiger verfügbar sein, auf einfachere Weise zum Einsatz kommen und eine effizientere Entwicklungsplattform darstellen. Insgesamt ermöglicht sie Entwicklern, das letzte Schlüsselelement der ECU in einer Simulationsumgebung zu integrieren: die physische Hardware. Alles in allem führt der Einsatz einer solchen Technologie zu geringeren Entwicklungskosten, erhöhter Software-Qualität und größerer System-Zuverlässigkeit.

Bild 3: Beispiel für virtuelle Hardware-in-the-Loop auf einem PC mit Simulink.

Bild 3: Beispiel für virtuelle Hardware-in-the-Loop auf einem PC mit Simulink.Synopsys

Diese Vorteile werden im Wesentlichen in vier Bereichen erzielt: Frühe Verfügbarkeit, Produktivität, erweiterte Verfügbarkeit sowie einfache Bereitstellung und Wartung. Die frühe Verfügbarkeit ermöglicht einen frühzeitigen Start der Software-Entwicklung, eine Vorab-Test-Entwicklung sowie deren Vorab-Ausführung. Die höhere Produktivität zeigt sich in einer effizienteren Identifizierung und Behebung von Problemen durch die von einer virtuellen HiL-Umgebung bereitgestellte Sichtbarkeit und Steuerbarkeit. Die erweiterte Verfügbarkeit wiederum ermöglicht einen raschen und einfachen Zugriff auf die Umgebung – gerade auch für weltweit verteilt arbeitende Ingenieure – sowie die Durchführung von Regression-Tests über Nacht. Die einfache Bereitstellung und Wartung wiederum spiegelt sich in einer zentral organisierten Einrichtung und Wartung der Umgebung, einer einfachen Archivierung, der Nutzung durch FTP oder eine Server-Farm sowie durch einfach Rekonfigurierbarkeit wider.

Die Komplexität von Mikrocontroller-Systemen steigt an. Die Validierung und Verifikation von Embedded-Software erfordern, dass Entwickler mit diesen Aktivitäten so früh wie möglich beginnen, um spätere Neuentwürfe oder Qualitätsprobleme zu vermeiden. Basierend auf der Verfügbarkeit eines VDK und einer virtuellen HiL-Umgebung können Automotive-Unternehmen eine große Vielfalt von Anwendungsfällen adressieren. Der gebräuchlichste Fall bezieht sich auf den Zeitpunkt vor der Hardware-Verfügbarkeit. Software-Entwickler können dann bereits mit der Programmierung und dem Testen komplexer Treiber, Multicore- und Autosar-Software beginnen. In dieser Phase stellen die erweiterten Debugging-Fähigkeiten eines VDK einen signifikanten Vorteil dar, wenn es darum geht, eine hohe anfängliche Qualität der Software-Stacks sicherzustellen.

Sobald das VDK in eine virtuelle HiL-Umgebung integriert ist, lässt sich ein umfangreiches Spektrum von Anwendungsfällen bearbeiten. Zunächst können die Systemintegration und der Test virtuell erfolgen, so dass sich die Entwicklung des Tests und dessen Ausführung vorziehen lassen. Es ist allgemein bekannt, dass das frühzeitige Aufspüren von Fehlern die Kosten der Korrekturmaßnahmen drastisch verringert. Der zweite Anwendungsfall bezieht sich auf die Testabdeckung und die Fehlerprüfung. In diesem Fall bietet eine virtuelle HiL-Umgebung deutliche Vorteile, zumal Fehler an beliebigen Stellen injiziert, der Zustand des Systems modifiziert und auch permanente Fehler generiert werden können. Spezialfälle lassen sich ebenfalls testen und validieren. Auch hierbei stellt das rechtzeitige Verständnis, welche Fehlerkorrekturen oder Modifikationen vorgenommen werden sollten, einen großen Vorteil dar.

Ein letztes Beispiel ist das Regression-Testing. Eine virtuelle Umgebung lässt sich leicht in einer Server-Farm einsetzen und erlaubt auf diese Weise die frühzeitige Validierung mehrerer Software-Stacks, welche unterschiedliche Fahrzeuge oder Fahrzeug-Konfigurationen repräsentieren.

Strategische Aspekte

Wenn das Management die Anwendung eines virtuellen Ansatzes für Automotive-Elektronik in Erwägung zieht, fallen einem mehrere Überlegungen ein. Die Entscheidung für den breiten Einsatz von VDKs im Entwicklungsprozess wird höchstwahrscheinlich auf einer strategischen Ausrichtung zur Verbesserung des Entwicklungsprozesses beruhen. Von führenden OEMs und Tier-1s durchgeführte Analysen zeigen, dass ein qualitativer Entscheidungsfaktor die verringerten Entwicklungsrisiken sind, während der quantitative Entscheidungsfaktor die erhöhte Produktivität der Entwickler ist.

Unternehmen, für die dieser Ansatz neu ist, sollten ein Pilotprojekt in Erwägung ziehen, um interne Erfahrung zu sammeln. Ein Pilotprojekt wird dann am effizientesten sein, wenn es klar definiert und parallel zu einem Produktiv-Projekt durchgeführt wird. Es sollte auch die große Vielfalt des von Industrie-Events und Konferenzen her vorhandenen Wissens über diese Thematik eingebracht werden. Und wenn es schließlich zum Einsatz virtueller Technologien kommt, sollten diese von einem Anbieter mit einer breiten Palette von Erfahrungen bezogen werden. Dazu gehören: Erfahrung mit Simulations- und Tool-Technologien für Hardware, langfristig ausgerichtete Kooperationen mit der Automotive-IP- und Halbleiter-Zulieferkette, eine globale Präsenz für lokalen Support und Service bei der Anwendung sowie ein finanziell stabiler Anbieter mit einem Investitionsplan, welcher langfristige Automotive-Projekte und Industriewachstum unterstützt.