Die Software-Architektur von AUTOSAR

Transcrição

Die Software-Architektur von AUTOSAR
Seminar Sommersemester 2012:
Automobile Systeme in der Automatisierung
Prof. Dr. Dieter Zöbel, Universität Koblenz-Landau, FB Informatik
Die Software-Architektur von AUTOSAR
Oliver Busch
Eingereicht: 27.06.2012 / Fertiggestellt: 04.09.2012
Zusammenfassung Die Automobilindustrie hat 2003 die Entwicklungspartnerschaft
AUTOSAR (AUTomotive Open System ARchitecture) gegründet. Sie beabsichtigte
den explodierenden Kosten, sowie der wachsenden Komplexität und Vielfältigkeit
der verwendeten Herstellungstools für die Erzeugung von Steuergeräte-Software entgegenzuwirken. Ziel dieses Konsortiums war die Bereitstellung einer einheitlichen
Software-Architektur zur Kostenreduzierung, Qualitätsverbesserung und Wiederverwendbarkeit von bereits entwickelten Komponenten. Dieses Papier zeigt die Gründe
für die Einführung einer neuen Softwarearchitektur auf. Anschließend werden die Bestandteile von AUTOSAR erklärt. Weiterhin wird versucht, den Aufwand für eine Umstellung auf die neue Softwarearchitektur abzuwägen.
Schlüsselwörter AUTOSAR, Software-Architektur, Methodik
1 Einleitung
1.1 Das AUTOSAR-Konsortium
Das AUTOSAR-Konsortium ist eine Entwicklungspartnerschaft bestehend aus Automobilhersteller, Zulieferer, Werkzeug- und Halbleiterhersteller, sowie Softwarehersteller. Das Konsortium ist in verschiedene Bereiche unterteilt: [1]
1. Core Members: Besteht zurzeit aus neun Mitgliedern. Es setzt sich zusammen aus
Automobilherstellern und Zulieferern (Tier1-Supplier). Sie arbeiten aktiv in den
verschiedenen Bereichen des Konsortiums mit.
2. Premium Members: Die Zahl der Premium-Members variiert. Zurzeit sind es 50
Mitglieder. Es handelt sich hauptsächlich um Zulieferer (Tier1-Supplier), Automobilhersteller und Werkzeughersteller. Auch die Premium-Mitglieder arbeiten aktiv
im Projekt mit.
3. Development Members: Zurzeit gehören diesem Bereich 12 Firmen an, die über
Know-How verfügen, das für AUTOSAR relevant ist.
Universität Koblenz-Landau, Institut für Informatik
[email protected]
http://www.uni-koblenz-landau.de/koblenz/fb4/institute/IST/AGZoebel
2
O. Busch
4. Associate Members: 84 Firmen gehören dieser Gruppe an. Hierbei handelt es sich
meistens um sonstige Zulieferer oder andere Unternehmen, die den AUTOSARStandard kommerziell nutzen wollen. Sie sind nicht aktiv an der Entwicklung
beteiligt, sondern erwerben durch eine jährliche Gebühr die Nutzungsrechte an
AUTOSAR.
1.2 Motivation für die Entwicklung der Softwarearchitektur AUTOSAR
Die Herausforderungen in der Entwicklung der Steuergeräte (ECU)-Software sind in
jüngster Zeit stetig gewachsen. Immer mehr Funktionalitäten für tief eingebettete
Automotivsysteme wie z.B. Tür-, Heck-, Licht-, Motor- und Sonnendachsteuergeräte
werden benötigt. Diese Steuergeräte bilden ein stark verteiltes und vernetztes System, auf dem die gewünschte Funktionalität installiert ist. Die Entwicklung der
Steuergerätesoftware erfolgte bislang steuergerätezentriert und nicht funktionsbasiert.
Das bedeutet, dass z.B. eine Warnblinkersteuerung zu einem Warnblinkersteuergerät
führt. Da die geforderten Funktionalitäten aber extrem anwachsen, führt diese Vorgehensweise zu einem unüberschaubaren System aus Steuergeräten, die zum Teil gleiche
Aufgaben erledigen. Beispielsweise wird die Blinkeranlage im Auto von verschiedenen Funktionen wie z.B. Fernbedienung für die Zentralverriegelung, Warnblinktaster,
usw. angesteuert. Für jede dieser Funktionen ein eigenes Steuergerät bereitzustellen ist
unsinnig. Das führt zu komplexer Software mit hohem Fehlerpotential. Dazu kommt
eine große Vielfalt an verschiedenen Hardwarekomponenten der ECUs, mit unterschiedlichen Prozessoren, Rechenleistung und Speicher. Jeder OEM fordert zudem
für die von ihm beim Tier1-Supplier bestellten ECUs die Verwendung seines eigenen
Betriebssystems (Basissoftware). Das alles führt dazu, dass Anforderungsänderungen
aufwändig und teuer sind. Abbildung 1 zeigt auf der linken Seite die Arbeitsweise vor
dem Einsatz von AUTOSAR.
Abb. 1 Kosten der ECU-Entwicklung [4].
Die Software-Architektur von AUTOSAR
3
Ein anderes großes Problem in der Herstellung der Steuergeräte-Software ist die
starke Vermischung von funktionalem Code (Anwendungslogik, Algorithmen) mit technischem (hardwarespezifischem) Code, siehe Abbildung 2. Das macht die Wiederverwendung von bereits erstellter Anwendungslogik schwierig, zeitaufwändig und damit
teuer.
Abb. 2 Klassische Steuergeräteentwicklung vs. Entwicklung mit AUTOSAR [5], p.41.
1.3 Ziele von AUTOSAR
Der Automobilmarkt ist ein Massenmarkt mit großem Konkurrenzdruck. Folglich
ist die oberste Maxime Kostenreduzierung. Mit AUTOSAR wird eine strikte Trennung von funktionalem und technischem Code erreicht. AUTOSAR schreibt die
Verwendung der Basissoftware und deren Module für die Steuergeräte exakt vor.
Dadurch soll dem AUTOSAR-Leitspruch ’Cooperate on standards, compete on implementation.’ [2] Rechnung getragen werden. Das bedeutet, der technische Anteil der
Steuergerätesoftware gehört zum Standard und ist von AUTOSAR genau vorgegeben,
während die Anwendungslogik oder der funktionale Code zum ’Implementierungs’Bereich zählt, indem Wettbewerb zwischen den verschiedenen Herstellern ausdrücklich
erwünscht ist. Weitere Ziele von AUTOSAR sind die leichte Austauschbarkeit von Modulen und die Wiederverwendung von Softwarekomponenten des funktionalen Codes.
Diese Ziele sollen zu einer Vereinfachung der Arbeitsprozesse bei allen beteiligten
Firmen führen, was sich dann in einer Kostenreduzierung widerspiegeln soll. Durch die
strikte Trennung von technischem und funktionalem Code kann es auch zur Reduktion
von Hardwarekosten kommen, wie nachfolgendes Beispiel zeigt. Durch den Einsatz von
AUTOSAR wird unnötiger Code, wie er durch die Vermischung von funktionalem und
technischem Code schnell entstehen kann, vermieden, was wiederum zum Einsatz eines
Steuergerätes mit dem nächst kleineren Speicher führt. Der Zulieferer spart dadurch pro
verwendetes Steuergerät ca. 10 Cent. VW hat 2007 ca. 6 Millionen Autos verkauft. Pro
Auto wurden ca. 50 ECU verbaut. Damit belaufen sich die Kosten für die Einsparungen
4
O. Busch
auf 30 Millionen EURO [3]. Ob alle Ziele auch tatsächlich umgesetzt werden können,
wird die Praxis zeigen.
1.4 Vorteile von AUTOSAR
Mit AUTOSAR wird eine standardisierte Softwarearchitektur eingeführt, die als
Schichtenmodell eine klare Hardwareunabhängigkeit garantiert. Das ermöglicht die
Wiederverwendung von Anwendungslogik immens und erleichtert die Umsetzung von
Anforderungsänderungen. Die Modularität verbessert die Qualität der Software, da
einzelne Modultests möglich sind. Die lose Kopplung der Module ermöglicht den Einsatz dieser in verschiedenen Softwareprojekten ohne großen Aufwand. Wird ein Modul
mit einem bestimmten Algorithmus schon längere Zeit in einem Softwareprojekt fehlerfrei eingesetzt, so kann dieses mit geringem Aufwand in einem weiteren Softwareprojekt verwendet werden. Die fehlerfreie Laufzeit des Moduls in dem bisherigen Projekt stellt dabei eine starke Qualitätsaussage dar. Weiterhin wird über AUTOSAR die
funktions- oder architekturbasierte Sicht verwendet. Zuerst werden alle zu realisierenden Funktionen gesammelt und entwickelt. Erst danach erfolgt eine Zuordnung der
Anwendungslogik auf die verschiedenen ECUs. Damit wird eine Explosion an zu verwendenden Steuergeräten verhindert. AUTOSAR verwendet genau eine Basissoftware,
deren Module exakt beschrieben sind. Das hat mehrere Vorteile:
– Die Austauschbarkeit von Modulen ist relativ einfach möglich.
– Zulieferer, die mehrere verschiedene OEMs bedienen, müssen nicht mehr für jeden
OEM eigene Basissoftware und Entwicklungswerkzeuge vorhalten.
– Bereits entwickelte Anwendungslogik lässt sich leicht wiederverwenden.
– Die Systemintegration auf Seiten des OEM wird vereinfacht.
– Durch die späte Zuordnung der Software auf die ECU ist eine hohe Designflexibilität
gegeben.
Für die Zulieferer ergibt sich als weiterer Vorteil die Möglichkeit, neue
Geschäftsmodelle zu etablieren. Kindel et al. beschreiben in [5], dass Zulieferer fertige
Bibliotheken an Softwarekomponenten mit reinem funktionalem Code anbieten können,
oder kombinierte Hardware/Software-Produkte im Bereich der Sensorik/Aktorik entwickeln und verkaufen. Auch die verteilte Entwicklung mit Offshore-Kräften ist
denkbar, da der AUTOSAR-Standard eine klar definierte Arbeitsteilung ermöglicht.
1.5 AUTOSAR und andere Standards des Automotive-Bereiches
Alle Fahrzeughersteller sind in allen großen Standards, die für den AutomotiveBereich bestehen, vertreten. In Kooperationsverträgen haben die Fahrzeughersteller
geregelt, dass sich verschiedene Standards gegenseitig nicht Konkurrenz machen dürfen.
Darüber hinaus sind die Fahrzeughersteller nur an Standards interessiert, die sie als
Global Player auch weltweit unverändert einsetzen können. Kommt es doch mal zu
Überschneidungen, wenn ein neuer Standard etabliert wird, dann werden bestehende
Überschneidungen beseitigt. Am Beispiel der Standards HIS und JasPar haben das
Kindel et. al [5] verdeutlicht.
Die Software-Architektur von AUTOSAR
5
1.5.1 HIS (Hersteller Initiative Software)
HIS wurde von den deutschen Automobilherstellern ins Leben gerufen und hat sich
zum Ziel gesetzt, die Qualität mikroprozessorbasierter Steuergeräte zu verbessern.
Der Fokus von HIS liegt auf der eigentlichen Software-Entwicklung und SoftwareTest, nicht auf der Bereitstellung einer Software-Architektur. Trotzdem kam es zu
Überschneidungen im Teilbereich ’Standard-Software’. HIS hat mit Erscheinen von AUTOSAR die Arbeiten in diesem Bereich eingestellt und diesen in eine Schnittstelle zur
AUTOSAR-Entwicklung umgewandelt: ”Der Arbeitskreis Standardsoftware ist zur Zeit
inaktiv. Er hat einen aktiven Unterarbeitskreis: AUTOSAR User Group. Die Resultate
des Arbeitskreises (Beschlüsse und Dokumente) können hier gefunden werden...” [6].
1.5.2 JasPar (Japan Automotive Software Platform and Architecture)
JasPar wurde von den japanischen Automobilherstellern etabliert, mit dem Ziel eine
Standard-Software für die Entwicklung im Automotive-Bereich bereitzustellen. JasPar
konzentriert sich dabei allerdings nur auf das Bussystem FlexRay. Mit dem Aufkommen des AUTOSAR-Standards hat sich JasPar darauf spezialisiert den AUTOSARStandard zu nutzen und für FlexRay-Bussysteme zu erweitern. JasPar unterstützt die
Arbeit am AUTOSAR-Standard mit einer eigenen Arbeitsgruppe [7].
2 Der AUTOSAR-Standard
AUTOSAR lässt sich in drei Bereiche aufteilen, siehe Abbildung 3
Abb. 3 AUTOSAR-Bereiche.
– Methodik: Die AUTOAR-Methodik beschreibt die Herstellung von SteuergeräteSoftware aus Sicht des Produktes, das erzeugt werden soll. In der Methodik werden
keine Arbeits- oder Geschäftsprozesse beschrieben; es fehlen sämtliche Rollen und
Verantwortlichkeiten. Die Methodik erlaubt eine teilweise Parallelisierung der Herstellung von Steuergerätesoftware dadurch, dass sie drei verschiedene Sichten auf
Teilaspekte des Herstellungsprozesses hat. Die Sichten fokussieren auf die Architektur, Kommunikation und Codegenerierung, sowie übergeordnet die Integration der
entwickelten Komponenten.
– Architektur: Ein Schichtenmodell zur Abstraktion der Software von der zugrunde
liegenden Hardware. Dabei unterscheidet man grob drei Schichten:
6
O. Busch
1. Die Applikationsschicht, in der der funktionale Code in Softwarekomponenten
realisiert wird.
2. Die Run-Time-Environment-Schicht (RTE), die die Kommunikation zwischen
den Softwarekomponenten realisiert.
3. Die Basis-Software-Schicht (BSW), die die Module und Interfaces zur darunterliegenden Hardware bereitstellt.
– Interfaces: Hierbei handelt es sich um eine vollständige Beschreibung aller technischen Schnittstellen, die zur Herstellung von Steuergeräte-Software auf unterschiedlicher Hardware nötig ist.
2.1 Die AUTOSAR-Methodik
Die AUTOAR-Methodik beschreibt den Herstellungsprozess von Steuergeräte-Software
aus drei Sichten, siehe Abbildung 4
Abb. 4 AUTOSAR-Methodik. [8]
In Abbildung 4 bedeuten:
– Gelb: Aktivitäten die von Menschen durchgeführt werden.
– Gestrichelte Linien geben Abhängigkeiten an: Das Template am Pfeilende ist
abhängig von dem ausgewählten Format der Datei an der Pfeilspitze.
Die Software-Architektur von AUTOSAR
7
Bevor die AUTOSAR-Methodik greift oder gestartet werden kann, muss im allgemeinen Entwicklungsprozess die Anforderungsanalyse bereits abgeschlossen sein. Es
steht also fest, welche Funktionalitäten (wie z.B. elektrische Sitzverstellung Fahrer,
Dachbedieneinheit, reversibler Gurtstraffer usw.) der Fahrzeughersteller für die geplante Fahrzeugtyp-Serie implementieren will. Während des Prozesses werden zwischendrin verschiedene Werkzeuge zur Erstellung der benötigten Dateien verwendet.
Die Werkzeuge sind austauschbar, da AUTOSAR die .XML-Formate für die Dateien
fest definiert hat.
2.1.1 Die Systemsicht
In der Systemsicht hat der Automobilhersteller die Gesamtsicht auf den Fahrzeugtyp
und sämtliche für dieses Fahrzeug zu erstellende Funktionen. Nun wird im ersten Schritt
die ’System Configuration Input’-Datei erzeugt. Das ist ein vorgegebenes AUTOSARTemplate, indem die geplanten Soft- und Hardware-Komponenten zur Realisierung
der Funktionen erfasst werden. Im Schritt ’Configure System’ wird entschieden welche
Softwarekomponenten zum Einsatz kommen. Die grundsätzliche Funktionalität der
Softwarekomponenten wird auf einem Virtual Functional Bus (VFB) weitestgehend
hardwareunabhängig getestet (siehe entsprechender Abschnitt). Die Entwicklung der
Softwarekomponenten kann der OEM selbst durchführen oder an andere vergeben.
Erst nach erfolgreichem Abschluss dieses Schrittes wird entschieden, auf welchen
Steuergeräten (ECU) die Softwarekomponenten laufen sollen. Mit dieser Entscheidung
wird auch das benötigte Kommunikationsnetz zwischen den verschiedenen ECUs, den
darauf laufenden Softwarekomponenten und den benötigten Aktoren und Sensoren
definiert. Das Ergebnis dieser Arbeit wird in der Datei ’System Configuration Description’ gespeichert. Aus dieser Datei extrahiert der Automobilhersteller im Schritt
’Extract ECU specific Information’ für jede ECU einzeln die ’ECU Extract of System
Configuration’-Datei und gibt diese an die Zulieferer, die diese dann in der ECU-Sicht
herstellen können.
Virtueller Funktioneller Bus (VFB) und Softwarekomponenten Der VFB dient dazu
die Kommunikationsbeziehungen zwischen verschiedenen Softwarekomponenten weitgehend hardwareunabhängig darzustellen. Softwarekomponenten dienen als Modellierungswerkzeug zur Strukturierung und Anordnung des funktionalen Codes. Der
eigentliche Code wird in sogenannten ’Runnables’ innerhalb der Softwarekomponente gekapselt. Man unterscheidet verschiedene Softwarekomponenten, wobei die Softwarekomponenten für Aktoren und Sensoren noch besonders zu erwähnen sind. Diese
sind als einzige nicht hardwareunabhängig, da diese an Aktoren und Sensoren bestimmter Hersteller und den dazu passenden Steuergeräten gebunden sind. Detailliertere
Informationen zu Softwarekomponenten findet man unter [5], Kapitel 6.
Der Informationsaustausch zwischen Softwarekomponenten erfolgt über sogenannte
Ports. Man unterscheidet drei verschiedene Port-Typen, wobei eine Kommunikationsstrecke auf Sende und Empfangsseite immer vom selben Port-Typ sein muss:
1. Sender/Receiver - Senden/Empfangen von Daten.
2. Client/Server - Aufrufen/Bereitstellen von Operationen.
3. Calibration - Bereitstellen und Nutzen statischer Kalibrierungswerte.
An dem nachfolgenden Beispiel ’Ansteuerung der Blinkeranlage’ von Robert
Warschofsky [9], Abbildung 5 soll die Vorgehensweise verdeutlicht werden. Sie zeigt
8
O. Busch
eine mögliche Implementierung einer Anlage zum Ansteuern der Blinker. Die Anlage
ist in fünf verschiedene Softwarekomponenten aufgeteilt. Auf der rechten Seite stehen
stellvertretend für alle Blinklichter am Auto jeweils nur der vordere linke und vordere
rechte Blinker.
Abb. 5 Ansteuerung der Blinkeranlage. [9]
– DirectionIndicatorSwitch: Sensor-Softwarekomponente, die den Status des Blinkerhebels an die Softwarekomponente ’DirectionIndicationManager’ über ein
Client/Server-Port weiterleitet.
– WarnLightSwitch: Sensor-Softwarekomponente, die den Status des Warnblinktasters an die Softwarekomponente ’DirectionIndicationManager’ über ein
Sender/Receiver-Port weiterleitet.
– DirectionIndicationManager: Softwarekomponente, die die Sensorwerte der
oben beschriebenen Softwarekomponenten entgegennimmt, diese auswertet und
über die Aktor-Sensorkomponenten ’DFrontLeft:DirectionIndicator’ und ’DFrontRight:DirectionIndicator’ den linken und den rechten Frontblinker entsprechend
setzt.
– DFrontLeft:DirectionIndicator: Aktor-Softwarekomponente, die das linke Blinklicht
ein- oder ausschaltet.
– DFrontRight:DirectionIndicator: Aktor-Softwarekomponente, die das rechte Blinklicht ein- oder ausschaltet.
– nv: AUTOSAR-Service. Stellt Schnittstelle zur Basis-Software der ECU zur
Verfügung. Für das Beispiel ohne Bedeutung.
Eine Zuordnung der Softwarekomponenten zu ECUs ist noch nicht erfolgt.
2.1.2 Die Komponentensicht
Die Kommunikationsbeziehungen zwischen den Softwarekomponenten wurden in der
Systemsicht auf dem VFB realisiert. Mit der Zuordnung der Softwarekomponenten
zu den ECU wird in dieser Sicht die tatsächliche Kommunikation zwischen den Softwarekomponenten auf den ECU realisiert. Man unterscheidet hierbei Intra- und Interkommunikation zwischen den Softwarekomponenten, je nachdem ob die kommunizierenden Softwarekomponenten auf ein und derselben ECU, oder auf verschiede-
Die Software-Architektur von AUTOSAR
9
nen ECUs untergebracht sind. Zur Erstellung der RTE kommen Werkzeuge zum Einsatz, die die tatsächlich benötigten Kommunikationsbeziehungen in Object-Code erstellen. Das können einzelne Werkzeugtools oder ein ganzer Satz an Tools sein, je nach
dem von welchem Hersteller die Tools angeboten werden. Die Qualität und Effizienz
des erzeugten Codes ist abhängig davon, ob bei der Generierung Randbedingungen
wie verwendetes Speichermodell oder Zuordnung der Runnables zu bestimmten Tasks
berücksichtigt werden. Dieser Code wird an die ECU-Schicht gegeben, in der dieser
dann mit dem Komponenten-Code verlinkt wird.
Am Beispiel ’Ansteuerung der Blinkeranlage’ aus dem Abschnitt ’System Sicht’
wird zunächst der Code in den Runnables realisiert. In Abbildung 6 ist beispielhaft
für den Warnblinkschalter die Softwarekomponente ’WarnLightSwitch’ und die Softwarekomponente ’DirectionIndicationManager’ um Runnables erweitert worden. Das
Sender/Receiver-Interface zwischen den beiden Softwarekomponenten hat den Namen
’WLSInterface’. Über dieses Interface wird das Daten-Element ’SwitchVal’ (8 Bit breiter Integer) gesendet. Die acht Bit ermöglichen nicht nur das Übertragen des Status des
Warnblinkschalters an oder aus, sondern auch beliebige Fehlercodes für unbestimmte
Zustände des Schalters.
Abb. 6 Ansteuerung der Blinkeranlage. [9]
Nachfolgend ist der mögliche C-Code der beiden Runnables abgebildet. Der
Code ist angelehnt an das Beispiel von [5], Kapitel 7.8.1. Der SensorRunnableCode ermittelt den Status des Schalters (an, aus, undefiniert, Fehlercode). Die
Methode ’Rte Write Status SwitchVal’ sendet den aktuellen Status. Hier ist deutlich zu sehen, dass kein Empfänger für den Statuswert angegeben ist. Die RTE
sorgt dafür das der richtige Empfänger die Nachricht erhält. Mit der Generierung
der RTE werden die notwendigen Kommunikationsbeziehungen zur Übertragung
dieser Daten hergestellt. Im TasterRunnable-Code, der in der Softwarekom-
10
O. Busch
ponente ’DirectionIndicationManager’ implementiert ist, empfängt die Methode
’Rte ReadWarningLightSwitch SwitchVal’ den aktuellen Status-Wert des WarnblinkSchalters. Zur Unterscheidung merhfach instanziierter Objekte wird in der Methode
der self-Parameter mitgeführt.
void SensorRunnable (const Rte_WarnLightSwitch* self)
{
/*individuelle Implementierung beginnt hier */
UInt8 SwitchVal;
/*Taster-Wert ermitteln*/
/*Taster-Wert versenden*/
Rte_Write_Status_SwitchVal (self, SwitchVal);
/*individuelle Implementierung endet hier*/
}
void TasterRunnable (const Rte_DirectionIndicationManager* self)
{
/*individuelle Implementierung beginnt hier */
UInt8 SwitchVal;
Rte_Read_WarningLightSwitch_SwitchVal (self, &SwitchVal);
/*Taster-Wert verarbeiten*/
/*individuelle Implementierung endet hier*/
}
Ein Ausschnitt über die mögliche Verteilung der Softwarekomponenten aus
dem Beispiel ”Ansteuerung einer Blinkeranlage” ist in Abbildung 7 dargestellt.
Hier sind die Softwarekomponenten ’DirectionIndicationManager’ und ’DirectionIndicatorSwitch’ der ECU1 zugeordnet, während die Softwarekomponente ’DFrontRight:DirectionIndicator’ auf der ECU3 läuft. Das Werkzeug zur Erzeugung der
RTE erstellt eine Intra-Kommunikationsbeziehung zwischen den Softwarekomponenten ’DirectionIndicationManager’ und ’DirectionIndicatorSwitch’, da diese auf derselben ECU laufen. Die Kommunikationsbeziehung zwischen ’DirectionIndicationManager’ und ’DFrontRight:DirectionIndicator’ ist eine Inter-Kommunikationsbeziehung.
Sie wird über die IO-Ports der ECU1 auf den Fahrzeug-Bus (z.B.: CAN-Bus) geführt
und dann über die IO-Ports der ECU3 nach oben in die Applikationsebene, in der die
Softwarekomponente ’DFrontRight:DirectionIndicator’ läuft.
Die Software-Architektur von AUTOSAR
11
Abb. 7 Verteilung der SW-C auf ECUs. [9]
2.1.3 Die ECU Sicht
Diese Sicht ist auf die Erstellung der Steuergerätesoftware bezogen auf die tatsächlich
verwendete Steuergeräte-Hardware ausgerichtet. Ausgehend von der ’ECU Extract of
System Configuration’-Datei wird zuerst die Basis-Software, das Betriebssystem und
die RTE für die ECU konfiguriert und in der ’ECU Configuration Description’-XMLDatei dokumentiert. Anschließend wird aus diesem Ergebnis mit den Softwarekomponenten via Linker und Compiler ein ausführbares Programm erzeugt.
12
O. Busch
2.2 Die AUTOSAR-Architektur
Die AUTOAR-Architektur ist ein Schichtenmodell, in dem mit jeder Schicht weiter
von der zugrunde liegenden Hardware abstrahiert wird. Somit weist diese Architektur
Schichtenmodell typische Eigenschaften aus. Die Schichten sind lose gekoppelt. Jede
Schicht kennt nur die darunter liegende Schicht. Ausnahme von der Regel bilden die
’Complex Drivers’, auf die später nochmal eingegangen wird.
Abbildung 8 zeigt die AUTOSAR-Architektur mit ihren verschiedenen Schichten.
Abb. 8 AUTOSAR-Schichtenmodell. [10]
2.2.1 Application Layer (Applikationsschicht)
In dieser Schicht finden wir die Softwarekomponenten mit ihrem funktionalen Code
wieder. Die Entwicklung dieser findet hier unabhängig vom Fahrzeugbus und der verwendeten Hardware statt. Ausnahme bilden hier, wie im Abschnitt ”VFB und Softwarekomponenten” erwähnt, die Softwarekomponenten für Sensoren und Aktoren.
2.2.2 RTE Layer (Laufzeitumgebungsschicht)
Während im VFB der Systemsicht die Kommunikation zwischen den Softwarekomponenten ECU-unabhängig realisiert wurde, stellt die RTE die Kommunikation zwischen
den Softwarekomponenten abhängig von der Zuordnung der Softwarekomponenten auf
die ECUs sicher. Befinden sich zwei miteinander kommunizierende Softwarekomponenten auf ein und derselben ECU, so stellt die RTE die Kommunikationsverbindung
direkt zwischen den Softwarekomponenten her. Befinden sich die Softwarekomponenten
auf verschiedenen ECUs wird die Verbindung zur anderen Softwarekomponente über
Basissoftware und Fahrzeugbus durch die RTE realisiert.
Die Software-Architektur von AUTOSAR
13
2.2.3 Basis Software Layer (Basissoftwareschicht)
Die Basis Software Schicht ist selbst nochmal in drei Schichten und sechs Spalten
unterteilt.
BSW Service Layer In diesem Layer befinden sich das Betriebssystem und grundlegende Dienste für die Applikationsschicht. Beim BS handelt es sich um ein OSEKBetriebssystem, das um einige Features wie z.B. Speicherschutz oder erweiterte Zähler
ergänzt wurde. Die Systemdienste dieses Layers schirmen die übrige Basissoftware
vom direkten Zugriff der darüber liegenden RTE ab. Zu den Systemdiensten gehören
Diagnose- und Kommunikationsfunktionen, sowie die Speicherverwaltung.
BSW ECU Abstraction Layer Diese Schicht abstrahiert von den Eigenschaften des
Steuergerätes und der verbauten Controller für den Zugriff auf den Bus (z.B. onBoard
verbauter CAN-Controller).
BSW Microcontroller Abstraction Layer Diese Schicht liegt direkt über der Hardware
und ist abhängig vom verbauten Microcontroller. Sie erlaubt Initialisierung und Konfiguration des Microcontrollers. Wenn der Microcontroller getauscht wird, dann wird
auch diese Schicht komplett ausgetauscht.
Complex Drivers Die Complex Drivers gehören keiner Schicht an. Dieser Bereich ist im
AUTOSAR Standard nicht näher definiert und sollte eigentlich nur in den nachfolgenden Situationen verwendet werden, da die Complex Driver die Schichtenlogik komplett
umgehen:
1. Bei einer schrittweisen Migration auf den AUTOSAR-Standard.
2. Bei der Umsetzung von Funktionen, die im AUTOSAR-Standard (noch) nicht
vorgesehen sind.
3. Zeitkritische Funktionen: Viele Module bedeuten auch viel Kommunikation, sodass
unter Umständen ein verkürzter und damit schnellerer Zugriff auf die Hardware
erforderlich sein kann.
Basis Software Stacks Die Basis-Software wird in sechs vertikale Bereiche, die sogenannten Stacks aufgeteilt. Die Stacks und die Layer überschneiden sich und bilden
sogenannte Funktionsblöcke. Innerhalb der Funktionsblöcke definiert der AUTOSARStandard sogenannte Module. Die Module innerhalb eines Funktionsblockes besitzen
ähnliche Aufgaben oder erledigen gemeinsam eine Aufgabe. Die Abbildung 9 zeigt die
Stacks, die Funktionsblöcke und die zugehörigen Module. Die Complex Device Drivers
sind in dieser Abbildung weggelassen worden.
14
O. Busch
Abb. 9 BSW-Module. [11], p.28
Außer den Complex Device Driver-Stack gibt es noch fünf weitere Stacks. Beispielhaft wird hier nur näher auf die einzelnen Module des Communication-Stacks eingegangen. Weiterführende Informationen liefert [5], Kapitel 9.4 ff oder die Dokumentation
unter [1].
1. System Service-Stack: Bereitstellung grundlegender Netzwerk- und Betriebssystemdienste.
2. Device-Stack: Er enthält die zwei funktionalen Blöcke ’onBoard Device Abstraction’
und ’Micro Controller Drivers’. Sie stellen Treiber für WatchDog-Funktionalitäten
bereit.
3. Memory-Stack: Erlaubt das Speichern in nicht flüchtigen Speicher. Er besteht aus
den Blöcken ’Memory Services’, ’Memory Hardware Abstraction’ und ’Memory
Drivers’.
4. Communication-Stack: Stellt Kommunikationsdienste zum Datenaustausch mit anderen ECUs für Application-Layer und BSW-Layer zur Verfügung. Zu diesem Stack
gehören die Funktionsblöcke ’Communication Services’, ’Communication Hardware
Abstraction’ und ’Communication Drivers’.
– Communication Services: Zu den hier bereitgestellten Modulen gehören unter
anderem das Routen von Nachrichten, Mehrfachausnutzung eines Kanals durch
Multiplexen und das Bereitstellen der Transportprotokolle für die Bussysteme
CAN, LIN und FlexRay.
– Communication Hardware Abstraction: Die hier zusammengefassten Module
abstrahieren die busspezifische Hardware für CAN-, LIN- und FlexRay-Busse.
Die Interfaces stellen Funktionen für den Zugriff auf die verfügbaren Kanäle
des jeweiligen Bussystems zur Verfügung.
Die Software-Architektur von AUTOSAR
15
– Communication Drivers: Alle Module dieses Funktionblocks bieten je nach
Bustyp Funktionen zum Start von Übertragungen oder Call-Back Funktionen
zur Verfügung.
5. I/O-Hardware-Stack: In diesem Stack sind alle Funktionsblöcke zum Setzen und
Lesen digitaler Ein- und Ausgabewerte konzentriert. Der Stack umfasst die Funktionsblöcke ’I/O Hardware Abstraction’ und ’I/O Drivers’.
In Abbildung 10 wird anhand des Beispiels ’Frontlicht-Management’ veranschaulicht, wie die Funktionalitäten, über die AUTOSAR-Architektur verteilt, arbeiten. Konkret betrachtet wird das Betätigen des Lichtschalters zum Einschalten des
Abblendlichtes durch den Fahrer.
Abb. 10 Frontlicht-Management. [11], p.66
Die Funktionalität ist auf vier Softwarekomponenten verteilt, die wiederum auf drei
verschiedene ECUs verteilt sind. Die Softwarekomponente ’SwitchEvent’ ist eine hardwareabhängige Softwarekomponente, die den Schalterstatus des Lichtschalters über die
Methode ’check switch()’ periodisch überwacht. Das ermöglicht die AUTOSAR-RTE,
die die Verbindung zur Lichtschalter überwachenden Einheit über den I/O-Stack der
Basissoftware und den DIO-Treibern zum Auslesen und Setzen von digitalen Ein- und
Ausgabeports zur Überwachungseinheit leitet.
Ändert sich der Status des Lichtschalters, feuert die Methode ’switch event(event)’.
Die Auswertung der Methode ’switch event (event)’ erfolgt in der Softwarekomponente
’LightRequest’, die auf derselben ECU wie die Softwarekomponente ’SwitchEvent’ implementiert ist. Die Kommunikationsverbindung zwischen diesen beiden Softwarekomponenten erfolgt direkt über die RTE, ohne Einbindung der tieferliegenden Schichten.
In der Softwarekomponente ’LightRequest’ wird der neue Schalter-Status ausgewertet und die Methode ’request light (type, mode)’ ausgeführt. Für das konkrete
16
O. Busch
Beispiel hätte mode als Parameter der Methode ausgereicht, da nur Licht vom Typ
Xenon vorhanden ist. Damit diese Softwarekomponente aber universell wiederverwendbar wird, gibt man der Methode noch den Parameter type mit, um verschiedene
Lichtarten (z.B. Tageslicht-LED) ansteuern zu können. Die Methode ’request light
(type, mode)’ wird in der Softwarekomponente ’Front-Light-Manager’ auf einer anderen ECU ausgewertet. Die RTE stellt die Kommunikationsverbindung zur anderen
ECU über den Communication-Stack der Basissoftware und den CAN-Bus her.
Die Methode ’get keyposition()’ ermittelt den aktuellen Zustand des Autoschlüssels
(z. B. Auto aus, Zündung an, Motor an), um abhängig davon den gewünschten neuen
Licht-Modus zu ermitteln. Beispielsweise kann beim Einschalten des Lichtschalters
bei gleichzeitig ausgeschaltetem Motor, nur das Standlicht anstatt des Abblendlichtes
eingeschaltet werden. Nachdem der neue Licht-Modus ermittelt wurde, wird dieser in
der Methode ’set light (type, mode)’ angefordert.
’Set light (type, mode)’ wird in der Softwarekomponente ’Xenonlight’ verarbeitet.
Softwarekomponenten die Daten aus Sensoren herauslesen oder Aktoren ansteuern sind
nicht hardwareunabhängig. Sie sind an die Hardwarespezifika der verwendeten Sensoren und Aktoren gebunden und laufen auf derselben ECU auf der auch der Sensor
oder Aktor verbaut ist. ’Xenonlight’ ist eine Softwarekomponente, die einen Aktor
ansteuert (Fahrzeuglicht) und deshalb auf der ECU des Aktors läuft. Über die Methode ’set current(..)’ wird das Licht entsprechend den Anforderungen geschaltet. Die
RTE stellt die benötigten Verbindungen über den I/O-Stack der Basissoftware und die
PWM-Treiber zur eigentlichen Lampe her.
In dem Beispiel wird anschaulich dargestellt, wie funktionaler Code, der in den
beiden Softwarekomponenten ’LightRequest’ und ’FrontLightManager’ gekapselt ist,
hardwareunabhängig wiederverwendet werden kann. Das ist auch der Grund dafür, dass
in der Softwarekomponente ’FrontLightManager’ der Status des Autoschlüssels nicht
über eine Sensor-Softwarekomponente ermittelt wird, da diese ja hardwareabhängig
ist. Der Status des Autoschlüssels wird also nicht über DIO-ECU-Hardware-Treiber
ermittelt, sondern über andere hardwareunabhängige Dienste bereitgestellt.
3 Umstieg auf AUTOSAR
Kindel et al. [5] haben in ihrem Buch versucht den Aufwand zu ermitteln, den ein
Umstieg auf AUTOSAR verursachen kann. Dabei wurde festgestellt, dass dieser von
vielen Faktoren abhängig ist. Die Vorteile, die ein Umstieg mit sich bringt, sind unter
anderem Kostenreduzierung, Wiederverwendung von Softwarekomponenten und die
Möglichkeit neue Geschäftsmodelle zu etablieren.
3.1 Pilotphase
Für eine Aufwands- und Kostenabschätzung empfehlen [5] einen vertikalen Prototypen zu erstellen. Hierbei werden alle Schritte des neuen auf AUTOSAR basierenden Erstellungsprozesses für ECU-Software durchlaufen (System-, Komponenten- und
ECU-Sicht). Das hat den Vorteil, dass alle Arbeitsschritte einmal durchgeführt werden müssen und somit eine halbwegs realistische Abschätzung des Gesamtaufwandes möglich wird. Um den Prototypen durchführen zu können, müssen Mitarbeiter
Die Software-Architektur von AUTOSAR
17
freigestellt und entsprechend eingewiesen bzw. ausgebildet werden. Die AUTOSARMethodik verschiebt den Aufwand weg von der Entwicklung hin zur Modellierung und
Architektur. Das kann die (zeitweise) Einstellung weiterer Mitarbeiter zur Folge haben.
Zur Durchführung werden auch die Werkzeuge für den AUTOSAR-Prozess benötigt.
Diese sind sehr teuer und unterscheiden sich in Leistungsmerkmalen und Qualität der
erzeugten Software. Deshalb sollte man bei der Auswahl der Werkzeuge viel Sorgfalt
verwenden, da ein späterer Wechsel der Werkzeuge sehr teuer wird.
3.2 Umstieg auf AUTOSAR
Entscheidet sich eine Firma für den Umstieg auf AUTOSAR, dann kommen weitere Aufwände auf sie zu. Die Projektprozesse müssen angepasst werden, Prozessdokumente erstellt werden, was im Hinblick auf eine verteilte Entwicklung (Offshore) extrem wichtig ist. Die Mitarbeiter müssen (um-)geschult bzw. neue Mitarbeiter müssen
eingestellt werden. Die Migration auf die neue Softwarearchitektur wird parallel zum
Tagesgeschäft durchgeführt werden. Problematisch wird dann die Überführung der
bereits entwickelten Steuergerätesoftware auf den AUTOSAR-Standard. Entscheidend
hierbei ist, wie gut die bisherige Steuergerätesoftware dokumentiert ist:
– Sind alle Anforderungen bekannt und dokumentiert?
– Wurde nach diesen Anforderungen auch entwickelt?
Im schlimmsten Fall muss ein Reverse Engineering des alten Codes durchgeführt
werden, um die tatsächlich verbauten Anforderungen zu ermitteln. Möglicherweise muss
eine stufenweise Migration durchgeführt werden, was den Nachteil hat, das parallel also
nach neuem und altem Standard entwickelt werden wird.
4 Fazit
AUTOSAR tut sich schwer, sich als Standard durchzusetzen. In 2011 wurden 25 Millionen ECUs nach diesem Standard entwickelt. Für 2016 sind 300 Millionen ECUs geplant.
Weltweit wurden 2011 circa 65,4 Millionen Fahrzeuge verkauft, siehe [15]. Nimmt man
an, dass pro Auto 50 ECUs verbaut wurden, kommt man auf 3,27 Milliarden verbauter
ECU in 2011. Der Anteil der ECU die nach dem AUTOSAR-Standard entwickelt wurden liegt demnach bei ca. 0,8 %. Die Core-Partner beabsichtigen bis 2015 sämtliche
Steuergeräte-Software-Entwicklung mit diesem Standard zu entwickeln [1].
Außerhalb Europas spielt AUTOSAR zurzeit kaum eine Rolle. Als Lichtblick ist
hier China zu nennen. Viele westliche Automobilhersteller bauen vermehrt Entwicklungszentren für Autos in China auf. Dort wird bevorzugt der AUTOSAR-Standard
eingeführt, da hier keine etablierten Altsysteme die Einführung von AUTOSAR behindern [16]. AUTOSAR bietet viele Vorteile für OEM und Zulieferer. Allerdings steht dem
ein nicht unerheblicher Aufwand bei der Umstellung auf die neue Softwarearchitektur
gegenüber. Prof. Dr. Dieter Nazareth von der Universität Landshut bewertet die Akzeptanz von AUTOSAR durch die OEM und Zulieferer in den AUTOSAR-Bereichen unterschiedlich. Für den Bereich der Architektur, die Standardisierung der Basis-Software
und Trennung von Hard- und Software sieht er eine hohe Akzeptanz. Im Bereich Interfaces erwartet er den geringsten Nutzen, so dass hier die Firmen das Thema am wenig
beachten werden [17].
18
O. Busch
Ob die vom AUTOSAR-Konsortium propagierten Vorteile und Ziele wie die
Verbesserung der Qualität der erstellten Softwaremodule, Kostenreduzierung und
Etablierung neuer Geschäftsmodelle tatsächlich so zu Buche schlagen, wird erst die
langjährige Praxis und die daraus resultierende Erfahrung mit AUTOSAR zeigen.
Literatur
1. AUTomotive Open System ARchitecture (2012): Autosar WebSite: www.autosar.org.
2. AUTomotive Open System ARchitecture (2012): Autosar WebSite: www.autosar.org/
index.php?p=1&up=6&uup=0.
3. Kindel, Olaf / Friedrich, Mario: Softwareentwicklung mit AUTOSAR. Grundlagen, Engineering, Management in der Praxis. Heidelberg, 1. Auflage 2009, p.152.
4. Dr. Florian Wohlgemut (2008): Erfahrungen bei der Einführung der modellbasierten
AUTOSAR-Funktionsentwicklung, Mercedes Benz.
5. Kindel, Olaf / Friedrich, Mario: Softwareentwicklung mit AUTOSAR. Grundlagen, Engineering, Management in der Praxis. Heidelberg, 1. Auflage 2009.
6. HIS Hersteller Initiative Software (2012): HIS WebSite: http://portal.automotive-his.
de/index.php?option=com_content&task=view&id=16&Itemid=29.
7. AUTomotive Open System ARchitecture (2012): Autosar WebSite: http://www.autosar.
org/index.php?p=1&up=6&uup=0&uuup=0&uuuup=0&uuuuup=0, Q22.
8. EETimes europe automotive (2012): EETimes WebSite: FIBEX XML format
and AUTOSAR development (30.07.2009) http://www.automotive-eetimes.com/en/
fibex-xml-format-and-autosar-development.html?cmp_id=7&news_id=218900156.
9. Warschofsky, Robert (2009): AUTOSAR Software Architecture. Hasso-Plattner-Institute
für Softwaresystemtechnik: http://www.hpi.uni-potsdam.de/fileadmin/hpi/FG_Giese/
Ausarbeitungen_AUTOSAR0809/Software_Architecture_Warschofsky.pdf .
10. Bunzel, Stefan (2010): AUTOSAR: The Standardized Software Architecture. SpringerVerlag.
11. Fürst, Simon: AUTOSAR: An open standardized software architecture for the automotive
industry. October 23rd, 2008, Cobo Center, Detroit, MI, USA: http://www.autosar.org/
download/conferencedocs/03_AUTOSAR_Tutorial.pdf.
12. Dr. Freund, Ulrich / Reckels, Bernhard: Praktischer Einsatz von AUTOSARAnwendungen. (2011): http://www.elektroniknet.de/automotive/technik-know-how/
prozesse-standards-und-qualitaet/article/75805/0/Praktischer_Einsatz_von_
AUTOSAR-Anwendungen/ .
13. ] Leitner, Florian: AUTomotive Open System Architecture. Seminar Software Engineering
for Automotive Systems WS 07/08.: http://www.inf.uni-konstanz.de/soft/teaching/
ws07/autose/leitner-autosar.pdf .
14. heise online (2012): Heise Developer WebSite: Friedrich,Mario/Kindel,Olaf(2009):
AUTOSAR:
Chance
der
Softwareentwicklung
im
Automotive-Bereich:
http://www.auto.de/magazin/showArticle/article/67647/Weltweit-wurden-ueber-65Millionen-Neuwagen-verkauft.
15. auto.de (2012): Auto.de WebSite: Weltweit wurden über 65 Millionen
Neuwagen
verkauft.
http://www.auto.de/magazin/showArticle/article/67647/
Weltweit-wurden-ueber-65-Millionen-Neuwagen-verkauft.
16. elektroniknet.de
(2011):
elektroniknet.de
WebSite:
Die
AUTOSARWerkzeuglandschaft im Reich der Mitte. http://www.elektroniknet.de/automotive/
technik-know-how/prozesse-standards-und-qualitaet/article/84724/0/Die_
AUTOSAR-Werkzeuglandschaft_im_Reich_der_Mitte/.
17. heise online (2012): heise.de/iX WebSite: Interdisziplinär. Barbara Lange interviewt Professor Dr. Dieter Nazareth zur Automobilinformatik http://www.heise.de/ix/artikel/
Interdisziplinaer-1108269.html.