Software & Security Mit dem Auto in die Cloud

Bild: Syda Productions, K2L
24.03.2014

Die heterogenen Umgebungen von Fahrzeugen und der Konsumelektronik mit ihren kurzen Entwicklungszyklen stellen für den Auf- und Ausbau eines modernen Infotainment-Systems eine besondere Herausforderung dar. Um die Anbindung der Fahrzeugnetzwerke an die Welt der Unterhaltungselektronik schnell und zuverlässig zu meistern, spielt die Software eine große Rolle. Mit passendem Entwicklungsprozess und Automatisierung lässt sich das notwendige Tempo bei hoher Zuverlässigkeit erreichen.

Der rasante Fortschritt der Consumer-Elektronik zwingt die Fahrzeughersteller beim Aufbau eines neuen Infotainments oder bei der Implementierung neuer Merkmale in bestehende Systeme ihr Time-to-Market stark zu verkürzen. Sowohl der wachsende Wert der Software in der Automobilindustrie als auch die Komplexität moderner Systeme verstärken die Bedeutung des Software-Entwicklungsprozesses. Die Time-to-Market lässt sich durch die Beschleunigung dieses Prozesses verbessern, allerdings darf dadurch die Zuverlässigkeit der Softwarekomponenten nicht gefährdet werden. Die Automatisierung des Prozesses und seine Parallelisierung sind typische Methoden, die Software-Entwicklung zu beschleunigen. Das wiederum heißt, dass die Entwicklungswerkzeuge diese Methoden unterstützen müssen.

Die Konvergenz zwischen Endverbrauchergeräten und Rechnernetzen ist eine weitere Herausforderung aus der Welt der Consumer-Elektronik. Nutzerdaten werden von den diversen Geräten gemeinsam verwendet, ebenso Internetdienste und Betriebsanwendungen. Der nächste Schritt ist, dem Kunden die Möglichkeit zu bieten, alle Daten in der Cloud zu speichern und die Geräte sich damit synchronisieren zu lassen. Das Infotainment-System im Fahrzeug wird zu einem Teil dieser Infrastruktur, natürlich aber mit Einschränkungen gemäß automobiler Sicherheitsanforderungen.

In der Regel beginnt ein Projekt mit den folgenden Schritten: einer Analyse, der Erstellung einer Spezifikation und einem Prototyp. Jene Schritte sind Teil einer Iteration und lassen sich wiederholen. Nach diversen Iterationen liegen die Artefakte wie Anforderungen, Architektur- und Design-Dokument-Spezifikationen vor. Die Software-Implementierung, die auf diesen Artefakten basiert, muss man dann natürlich testen und verifizieren. Im Analyseschritt wird ein auf der Unified Modeling Language (UML) basierender System-Modell-Entwurf geschaffen, der spezifische Anforderungen, Anwendungsfälle, usw. beinhaltet.

Automatisierungsmethode Code-Generierung

Eine der möglichen Automatisierungsmethoden ist die Code-Generierung. Sie schafft die Möglichkeit, fertig nutzbaren Programm-Code direkt aus dem UML-Modell oder aus einem Austauschformat zu erzeugen. Dieser erzeugte Code arbeitet mit einem Software-Framework und implementiert offen zugängliche Schnittstellen der Betriebslogik der Komponente. Sie hilft, schnell eine Prototyp-Applikation aufzubauen. Eine Prototyp-Applikation ist ein Skelett mit der Standard(Dummy)-Implementierung der Schnittstellen. Bestehende Software kann man in dieses Skelett integrieren. Eine andere Möglichkeit besteht darin, dieses Skelett mit Funktionen zu erweitern, die das Verhalten eines bestimmten Geräts oder einer Komponente simulieren.

Simulation des Geräteverhaltens

Eine Simulation des Geräteverhaltens hat verschiedene Vorteile. Zunächst ist die Simulation selbst der Konzeptnachweis des UML-Modells. Sie schafft die Möglichkeit, eine fehlende Übereinstimmung zwischen UML-Modell und realem System offenzulegen. Dies ist eine der Hauptherausforderungen in einem frühen Projektstadium. Eine weitere Herausforderung ist die Möglichkeit, effizient Modifikationen des abstrakten Modells in späteren Projektetappen zu erzeugen, nämlich dann, wenn die Software-Implementierung bereits begonnen hat oder sogar fertiggestellt wurde. Die Code-Generierung macht Änderungen im Entwurfsmodell bezogen auf den Integrations-Code zwischen erzeugtem Code und Betriebslogik sichtbar. Zweitens integriert die den Projektbeteiligten bereitgestellte Simulation ihre Systemkomponenten, denn diese Simulation ist ein dynamisches Modell und zeigt den Entwicklern die Funktionsweise des Systems.

Der Entwickler eines Geräts, das mit einem oder mehreren anderen Geräten kommuniziert, kann die Simulation weiterer Geräte während des Software-Entwicklungsprozesses unmittelbar nutzen, anstatt auf ihre Bereitstellung durch einen anderen Projektteilnehmer zu warten. Der Tester kann unmittelbar beginnen, Geräte-spezifische Tests gegenüber der Simulation zu implementieren. Außerdem kann die Projektgruppe des Fahrzeugherstellers anfangen, eine Reihe von Akzeptanz- und Produktionstests unmittelbar nach Fertigstellung der Arbeit an der Simulation zu kreieren.

Des Weiteren können alle Projektteilnehmer weiterarbeiten, wenn eine Simulation mit einem Tool entwickelt wird, welches die Netzwerkkommunikation sichtbar macht, und zwar sogar auch dann, wenn die Hardware noch nicht stabil läuft oder nicht einmal verfügbar ist. Dabei können die Firmware-Entwickler, die an den Entwicklungsboards arbeiten, Firmware-Komponenten nutzen, die in der Lage sind, sich mit den virtuellen Netzwerken zu verbinden, die von diesem Tool bereitgestellt werden. Es erlaubt, Firmware- und Hardware-Tests parallel zu entwickeln. Das heißt, dass die Simulation eines Systems, das Komponenten einschließt, die über Netzwerke miteinander kommunizieren, der Schlüssel zur Parallelisierung der Projektarbeit ist.

Ein Automotive-Testsystem

K2L bietet als Lösung das Automotive Test System (ATS), welches die Simulation und den Test automobiler Geräte oder Systeme ermöglicht. Es ist ein umfangreiches PC-Entwicklungswerkzeug, das auf dem .NET Framework aufgebaut ist. Es besteht aus den folgenden Teilen: der Hardware-Schnittstelle, der Betrachter-Software, dem Service, dem Framework und dem Code-Generator. Die Hardware, genannt OptoLyzer Mocca Compact, wird über USB mit dem PC verbunden und erlaubt den Zugriff auf Feldbusse wie MOST, CAN und LIN. Die Applikation dient dazu, eingehende und ausgehende Nachrichten auf alle Bussen sichtbar zu machen, inklusive aller Detailinformationen. Der ATS Service ist das Kommunikationszentrum, das virtuelles MOST auf dem PC implementiert und es mit der Hardware (falls vorhanden) verbindet.

Das Framework besteht aus einem Satz von .NET-Bibliotheken, die in auf ATS aufgebauten Kundenanwendungen genutzt werden können. Der Code-Generator, mit Namen MAG.NET, erzeugt die .NET Assemblies aus Dateien die das Netzwerk-Protokoll beschreiben. Der Generator unterstützt CAN DBC, LIN Description Dateien (LDF) und einen MOST-XML-Funktionskatalog. MAG.NET erzeugt .NET-Klassen, die die Informationen für CAN-, MOST- und LIN-Protokolle repräsentieren. Der für das LIN-Protokoll erzeugte Code umfasst auch die Treiberkonfiguration. Der Code, der aus einer MOST-XML-Datei erzeugt wurde, beinhaltet die .NET-Klassen, die das vorgegebene Verhalten für beide Seiten der Kommunikation implementieren: den Controller/Shadow (Client) und den Slave/FBlock (Server). Moderne Techniken, die zum Beispiel parametrierte Tests einschließen, sind im .NET-Umfeld weit verbreitet und erlauben den Entwicklungsaufwand für automatisierte Tests zu verkleinern.

Anbindung von Kfz- und Consumer-Elektronik

Es wurde schon erwähnt, dass zukünftige Infotainment-Systeme ein Tool brauchen, um die Anbindung von Automobil- und Consumer-Elektronik über ein Computer-Netzwerk zu unterstützen. Die Anordnung diverser Netzwerk-Topologien ist abhängig davon, wie Consumer-Geräte und Infotainment-Systeme verbunden werden können.

Angemerkt werden muss, dass einige Teile des Infotainment-Systems, wie die Navigationskomponenten, Internetdienste nutzen können, zum Beispiel zur Aktualisierung von Verkehrsinformationen einer Route. Software-Applikationen, die einen Dienst anbieten oder nutzen, im Besonderen über ein Netzwerk, werden dienstorientierte Anwendungen genannt. Ein Teil des .NET Frameworks zum Aufbau Service-orientierter Anwendungen ist die Windows Communication Foundation (WCF). Im WCF spezifiziert ein .NET Interface, das im Code oder durch eine WSDL(Web Services Description Language)-Datei definiert wird, die Diensteorientierung. K2L ATS ebnet die Art der Verbindung zwischen MOST und WCF, um die neuen Merkmale der durch das Fahrzeug-Web bereitgestellten Verbindung zu simulieren.

Der Client oder Dienst kann auf anderen Plattformen implementiert werden. Das Tool svcutil.exe (Teil von Windows SDK) kann man nutzen, um die WSDL-Datei aus dem .NET Interface zu generieren. Die WSDL-Datei dient als Zugang für andere Tool-Ketten, um Dienste zu installieren oder um Client Code für andere Programmiersprachen oder Plattformen wie C++, JavaScript und andere zu erzeugen. Dieser Ansatz zeigt, dass MOST als die dedizierte Technologie der Infotainment-Anbindung bereits Elemente enthält, die zur Kommunikation mit den im Internet bereitgestellten Diensten geeignet sind. Die Integration der besten Teile dieser Technologien eröffnet neue und interessante Möglichkeiten für MOST-Anwendungen.

Bildergalerie

  • Infotainment-Systeme benötigen ein Tool, um die Anbindung von Kfz- und Konsumelektronik über ein Computernetzwerk zu unterstützen.

    Infotainment-Systeme benötigen ein Tool, um die Anbindung von Kfz- und Konsumelektronik über ein Computernetzwerk zu unterstützen.

    Bild: Syda Productions, K2L

  • Das Auto der Zukunft soll es ermöglichen, Daten in der Cloud zu speichern und diverse Geräte sich damit synchronisieren zu lassen.

    Das Auto der Zukunft soll es ermöglichen, Daten in der Cloud zu speichern und diverse Geräte sich damit synchronisieren zu lassen.

    Bild: Syda Productions, K2L

Firmen zu diesem Artikel
Verwandte Artikel