Ausarbeitung - Software and Systems Engineering

Werbung
Technische Universität München
Lehrstuhl IV: Software & Systems Engineering
Hauptseminar Automotive Software Engineering
Verteilte Echtzeit
Antje Neve
28. Januar 2005
Betreuer: Christian Kühnel
Kurzfassung
In der vorliegenden Arbeit werden zwei Kommunikationssysteme für den Einsatz im Automobil vorgestellt. Für FlexRay wird hierbei insbesondere auf die Uhrensynchronisation
eingangen. Anhand der Time Triggered Architecture werden verschiedene Dienste eines
Kommunikationsystems erläutert. Abschließend werden die Aspekte Fehlertoleranz und
Flexibilität beider Systeme verglichen.
Inhaltsverzeichnis
1 Einleitung
1.1 Grundlegende Definitionen und Erklärungen . . . . . . . . . . . . . . . .
1
1
2 FlexRay
2.1 Allgemeine Anforderungen an FlexRay . . . . . . .
2.2 Kommunikationszyklus . . . . . . . . . . . . . . . .
2.3 Uhrensynchronisation bei FlexRay . . . . . . . . . .
2.3.1 Offset-Korrektur . . . . . . . . . . . . . . .
2.3.2 Steigungskorrektur . . . . . . . . . . . . . .
2.3.3 Kombination beider Methoden bei FlexRay
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
6
6
8
8
9
3 Time Triggered Architecture
3.1 Allgemeines . . . . . . . . . . .
3.2 Dienste . . . . . . . . . . . . . .
3.2.1 Uhrensynchronisation . .
3.2.2
interactive consistency“
”
3.2.3
master-shadow“ . . . .
”
3.2.4
membership service“ . .
”
3.2.5 Umsetzung bei der TTA
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
13
13
13
13
14
14
.
.
.
.
.
.
.
16
16
16
17
18
18
19
19
4 Vergleich von FlexRay und
4.1 Fehler Hypothese . . .
4.1.1 Begriffe . . . .
4.1.2 TTA . . . . . .
4.1.3 FlexRay . . . .
4.2 Flexibilität . . . . . . .
4.2.1 TTA . . . . . .
4.2.2 FlexRay . . . .
5 Fazit
TTA
. . .
. . .
. . .
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
i
Abbildungsverzeichnis
ii
1.1
Vernetzung der Bussysteme in Fahrzeugen der Premiumklasse . . . . . .
2.1
2.2
2.3
2.4
2.5
Verschiedene Bustopologien bei FlexRay . . . . . . . . . . . .
Steigungs- und Offset-Korrektur bei FlexRay . . . . . . . . . .
Senden und Empfangen bei der Messung zur Offset-Korrektur
Steigungskorrekturmessung bei FlexRay . . . . . . . . . . . .
Uhrensynchronisation bei FlexRay . . . . . . . . . . . . . . . .
.
.
.
.
.
5
7
7
8
10
3.1
3.2
Darstellung der globalen Zeit in der TTA . . . . . . . . . . . . . . . . . .
Topologien der TTA Architektur . . . . . . . . . . . . . . . . . . . . . .
11
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
1 Einleitung
Seit seiner Erfindung ist das Automobil das Kind der Maschinenbau-Ingenieure gewesen.
Mit der Einführung (verteilter) elektronischer Systeme jedoch wurde das moderne Auto
immer mehr zum Kind der Elektrotechnik- und Elektronikfachleute. Heute gerät es durch
den steigenden Softwareanteil auch in den Kompetenzbereich der Informatiker.
Seit mehr als 10 Jahren wird beispielsweise der echtzeitfähige, von der Robert-Bosch
GmbH entwickelte CAN-Bus zur Vernetzung verschiedenster Steuergeräte im Automobil eingesetzt. Da aber auch die Anforderungen im Infotainment- und Telematikbereich
enorm gestiegen sind, wird hier beispielsweise der MOST-Bus (Media Oriented System
Transport) verwendet - für kostensensitive Anwendungen hat sich der LIN-Standard
durchgesetzt. Im Bild 1.1 auf Seite 2 ist die Vernetzung der Bussysteme in Fahrzeugen
der Premiumklasse dargestellt. Die steigende Anzahl von Funktionen im Automobil hast
fast proportional eine Steigerung der verbauten Steuergeräte bewirkt. Um die steigende
Komplexität zu beherrschen, muss das System Fahrzeug“ partitioniert werden.1 Über
”
entsprechende Netzübergänge, sogenannte Gateways, ist es dann möglich die verschiedenen Kommunikationssysteme zu verbinden - bisher ist kein am Markt verfügbares
System in der Lage alle Komponenten einheitlich zu vernetzen.
1.1 Grundlegende Definitionen und Erklärungen
Time Triggered“ - Zeitgesteuert
”
Zeitgesteuert“ bedeutet, dass alle Tätigkeiten rund um den Bus und meist auch der
”
Komponenten, die mit dem Bus verbunden sind, vom Ablauf einer internen Uhr abhängen.
Eine zeitgesteuerter Bus könnte beispielsweise so funktionieren: Wenn seit dem Beginn
”
des Zyklus 20 Sekunden vergangen sind, übertrage den aktuellen Wert.“. Als Beispiel
für einen zeitgesteuerten Bus kann die Time Triggered Architecture“ aufgeführt wer”
den. Bei integrierten sicherheitskritischen Anwendungen wird der zeitgesteuerte Ansatz
bevorzugt - aus folgendem Grund: Integrierte Systeme führen in der Regel verschiedene
Applikationen zusammen - sicherheitskritische Systeme bevorzugen es diese aufgrund
der möglichen Fehlerverbreitung getrennt zu halten. Diese Strategie gegen die Fehler1
divide et impera“ (lat.) bzw. engl. divide and conquer“ - Das Prinzip der Unterteilung komplexer
”
”
Probleme in kleinere Teilprobleme, die einfacher zu lösen sind, ist besonders in der Informatik sehr
verbreitet. Ursprünglich geht der Auspruch auf Ludwig, XI (1461 - 1483) zurück. Manchmal wird
er auch Julius Cäsar zugeschrieben.
1
1 Einleitung
Abbildung 1.1: Vernetzung der Bussysteme in Fahrzeugen der Premiumklasse [HSB+ 03]
verbreitung nennt man auch Partitionierung (engl. partionierung) und sie wird in zeitgesteuerten Systemen konsequent angewendet [Rus03].
Jeder Knoten kennt den Ablauf und die globale Zeit und den Ablauf und weiß“, wann
”
er Nachrichten empfangen und schicken kann. Dadurch entfällt eine wichtige potentielle
Fehlerquelle - nämlich, dass Nachrichten an den falschen Empfänger gesendet werden
oder sogar schlimmer, dass ein Knoten beim Senden die Identität eines anderen Knoten
annehmen kann2 [Rus03].
Um die Flexibilität zu erhöhen können zeitgesteuerte Busse zwischen verschiedenen
Abläufen/Schedules wechseln. Manche implementieren auch Mechanismen, die sozusagen
huckepack“ auf den zeitgesteuerten Abläufen ereignisgesteuerte Mechanismen aufbau”
en.
Der größte Vorteil der zeitgesteuerten Busse liegt in Ihrer Berechenbarkeit.
Event Triggered“ - Ereignisggesteuert
”
Ereignisgesteuert“ bedeutet, dass die Tätigkeiten des Busses über das Auftreten von
”
bestimmten Ereignissen, beispielsweise das Senden einer Nachricht, kontrolliert und gesteuert werden. Analog zum obigen Bespiel: Wenn der Sensor seinen Wert ändert,
”
2
2
Das Annehmen einer falschen“ Identität durch einen fehlerhaften Knoten nennt man auch englisch
”
masquerading“
”
1.1 Grundlegende Definitionen und Erklärungen
übertrage den aktuellen Wert.“[Rus03] Systeme, die wie der CAN-Bus, ereignisgesteuert arbeiten, reagieren also auf (asynchrone) Ereignisse, die außerhalb ihres zeitlichen
Kontrollbereiches liegen. Ereingnisgesteuerte Busse versenden Ihre Nachrichten mittels
eines Identifiers, der Teil der Nachricht ist. So können andere Knoten bestimmen, ob
die Nachricht für sie ist. Ein Problem, das hier auftreten kann ist, dass Ereignisse, die
auf verschiedenen Knoten eintreffen können dafür sorgen, dass diese Knoten um den
Bus konkurrieren. So braucht man Algorithmen, die sicherstellen, dass jeder Knoten zu
einem Zeitpunkt ohne Unterbrechung senden kann. Beim CAN-Bus geschieht das durch
die Arbitrierung bei der immer die Nachricht mit der niedrigsten Identifier-Nummer
gewinnt. Teilweise gibt es auch zeitgesteuerte Ansätze in den ereignisgesteuerten Implementierungen, so beispielsweise beim Byteflight-Bus3 , bei dem durch einen erweiterten
Mechanismus des Minislotting“ sichergestellt ist, dass es feste vorhergelegte Zeitfenster
”
für kritische Nachrichten gibt.
Dass sich bei ereignisgesteuerten Bussen die Latenzzeit mit steigender Belastung
erhöht, ist ein entscheidender Nachteil für diesen Ansatz in den zukünftigen Systemen
der Automobilindustrie.
Partitioning“ - Partitionierung
”
Partitionierung bedeutet die Trennung von Anwendungen in verteilten Systemen. Sie
stellt eine Strategie zur Fehlervermeidung dar und vereinfacht die Erstellung von fehlertoleranten Anwendungen. Da sie die Zusammensetzbarkeit4 und Integrierbarkeit von
Systemen fördert, ermöglicht sie auch eine Aufteilung einer Anwendung/eines Systems
in kleinere, kostengünstigere Teile.
Zusammensetzbarkeit und Partitionierung beeinflussen die Berechenbarkeit von Resourcen für ein Kommunikationssystem erheblich [Rus03].
Fault Containment Unit“ - FCU
”
Eine Fault Containment Unit ist eine Komponente des Sytems, die unabhängig von anderen Komponenten von Fehlern betroffen sein kann. Die Zerlegung einer Architektur
in verschiedene FCUs muss mit Sorgfalt durchgeführt werden, da es keine Fehlerverbreitung zwischen ihnen geben darf. Fehler in verschiedenen FCUs werden als statistisch
unabhängig angenommen - mithilfe von Markow oder anderen statistischen Methoden
ist es möglich die Zuverlässigkeit des ganzen Systems zu berechnen. Um richtige“ Un”
abhängigkeit zu erreichen müssen die FCUs normalerweise strikt getrennt werden, d.h.
sie benötigen unterschiedliche Stromversorgung und müssen physikalisch und elektrisch
von einander isoliert sein. Diese sehr kostenintensive Technik wird normalerweise nur
in der Luftfahrtindustrie angewendet - in der Automobilindustrie ist man hier zu kleinen Kompromissen bereit: Beispielsweise könnten sich Guardian und Schnittstelle auf
3
4
Ein Bussystem, das von BMW entwickelt wurde.
engl: composability“
”
3
1 Einleitung
demgleichen Chip befinden, jedoch jeweils mit separaten Quarzen (Oszillatoren) ausgestattet sein. Diese Kompromisse müssen sorgfältig geprüft werden, so dass sichergestellt
ist, dass der einhergehende Verlust von Unabhängigkeit nur harmlose oder von anderen
Mechanismen abgefangenden Fehlerarten betrifft.
4
2 FlexRay
Das FlexRay Konsortium wurde 1999 von BMW, DaimlerChrysler, Motorola und Philips gegründet - bis heute sind als Mitglieder namhafte Firmen wie Bosch, General Motors, VW, Mazda, Elmos und Siemens VDO hinzugekommen. Weitere (Zuliefer-)Firmen
haben Interesse an einer Mitarbeit bekundet. Das Ziel von FlexRay ist ein modernes
Kommunikationssystem für zuverlässige und echtzeitfähige Datenübertragung zwischen
elektrischen und mechatronischen Steuergeräten im Automobil. FlexRay erreicht eine
Datenrate von bis zu 10 MBit/s.
2.1 Allgemeine Anforderungen an FlexRay
Die allgemeinen Anforderungen an FlexRay kann man wie folgt zusammenfassen:
• Unterstützung von Echtzeitsystemen
• Fehlertoleranz bei Synchronisation der globalen Uhr
• Fehlertoleranz im Kommunikationskanal
• Überwachungsmaßnahmen für einen geregelten Zugriff auf das Übertragungsmedium
durch sogenannte Guardians“
”
• Unterstützung von verschiedenen Vernetzungs-Topologien. FlexRay unterstützt sowohl Stern als auch klassische Bustopologien sowie nahezu beliebige Kombinationen beider Varianten (vgl. Abbildung 2.1)
Abbildung 2.1: Verschiedene Bustopologien bei FlexRay [HSB+ 03]
5
2 FlexRay
• Flexibilität und Skalierbarkeit bei der Konfiguration
• Unterstützung von verschiedenen Marken, Baureihen und Plattformen
• Erweiterbarkeit auch bezüglich zukünftiger Komponenten
• Vereinheitlichung der Bussysteme
• Unterstützung von Produktions- und Serviceabläufen durch Teilnetzbetrieb. So
können insbesondere Zulieferer ihre Komponenten im sogenannten Teilnetzbetrieb
testen1
• Kostenoptimierung
2.2 Kommunikationszyklus
Da im Auto verschiedene Systeme mit unterschiedlichen Eigenschaften miteinander vernetzt werden. Die meisten Regelungssysteme verlangen beispielseweise eine zyklische,
zeitsynchrone Übertragung. Diagnosedaten oder Informationen für und von den Komfortanwendungen können asynchron übertragen werden.
Bei FlexRay ist – um deterministisches Verhalten sicherzustellen – das Übertragungsschema in Zyklen organisiert. Jeder Zyklus enthält ein statisches und ein dynamisches
Segment von konfigurierbarer Länge. Zeitkritische Daten werden bevorzugt im statischen
Segment übertragen, da hier eine deterministische Übertragung garantiert werden kann.
Für Übertragungen mit geringen Echtzeit-Anforderungen ist das dynamische Segment
besser geeignet, da hier die Bandbreite prioritätenbasiert zugeteilt wird. Nachrichten
mit hoher Priorität werden garantiert innerhalb eines Zyklus übertagen, Nachrichten
mit niedrigerer Priorität kann sich der Sendezeitpunkt verzögern.
FlexRay hat durch die verschiebbare Grenze zwischen statischem und dynamischem
Segment – es ist auch rein dynamischer bzw. rein statischer Betrieb möglich – ein breites
Einsatzspektrum [HSB+ 03].
2.3 Uhrensynchronisation bei FlexRay
FlexRay besitzt zur Uhrensynchronisation einen Mechanismus, der im Folgenden näher
erläutert wird. Zur Korrektur der lokalen Zeit auf Steuergeräten gibt es zwei Verfahren
(vgl. Abbildung 2.2).
6
2.3 Uhrensynchronisation bei FlexRay
Abbildung 2.2: Steigungs- und Offset-Korrektur bei FlexRay [Rau03]
(a) Sendezeitpunkte im Statischen
Segment
(b) Vergleich beim empfangenden
Knoten
Abbildung 2.3: Senden und Empfangen bei der Messung zur Offset-Korrektur [Rau03]
7
2 FlexRay
Abbildung 2.4: Steigungskorrekturmessung bei FlexRay [Rau03]
2.3.1 Offset-Korrektur
Die Offset Korrektur sorgt dafür, dass die lokalen Uhren immer zur selben Zeit ihren
Kommunikationszyklus beginnen.
Als Basis für diese Zeitmessung dient das statische Segment des Kommunikationszyklus bei FlexRay. Ein Knoten beginnt mit seiner Messung genau dann, wenn nach seiner
lokalen Uhr der Sendezeitpunkt erreicht ist. Die empfangenden Knoten vergleichen dann
die Ist-Zeit der lokalen Uhr mit der Zeit, zu der die Nachricht angekommen sein müsste.
Fehler, die durch die Laufzeit der Nachricht bei der Messung entstehen, können durch
einen konfigurierbaren Korrekturwert ausgeglichen werden. Bei FlexRay nehmen ausgewählte Knoten, die diese Synchronisationsnachrichten senden bzw. empfangen, diese
Messung zur absoluten Abweichung vor (vgl. 2.3)
Die eigentliche Offset-Korrektur wird durch den Welch-Lynch-Algorithmus [Rau03]
(bzw. [WL88] geregelt: Danach bestimmt ein Knoten die Abweichung zu den anderen
Knoten im Netzwerk, läßt den größten und kleinsten Wert bei der Berechnung wegfallen
und bestimmt dann den Mittelwert. Der Algorithmus zeichnet sich vor allem durch gute
Performanz und seine einfache Implementierung aus [Rau03].
2.3.2 Steigungskorrektur
Sie ermittelt die unterschiedlichen Takte auf den Steuergeräten und stellt den Mittelwert
der Taktgeschwindikeiten auf dem lokalen Knoten ein.
Für die Steigungskorrektur müssen zwei Messungen durchgeführt werden: Ein Knoten
sendet also in zwei aufeinanderfolgenden Zyklen und mißt so die Abweichung zwischen
dem erwarteten und beobachteten Sendestart (vgl. Abbildung 2.4). Die Differenz gibt
die Steigungsdifferenz zwischen Sende- und Empfangsknoten an [Rau03].
1
8
Als Beispiel seien hier die Steuergeräte innerhalb einer Autotür genannt. Diese können und müssen
getestet werden, bevor sie eingebaut und an den großen Kabelbaum angeschlossen werden.
2.3 Uhrensynchronisation bei FlexRay
Die Korrektur der Steigungsdifferenz wird analog zur Offset-Differenz durchgeführt:
Nach der Bestimmung der Differenzen der einzelnen Knotenfrequenzen, wird der Mittelwert gebildet und die lokale (eigene) Frequenz um diesen Wert korrigiert. Durch die Steigungskorrektur erhöht sich auch die Bandbreiteneffizienz des FlexRay-Kommunikationszyklus
[Rau03]
2.3.3 Kombination beider Methoden bei FlexRay
Die Uhrensynchronisation des FlexRay-Bussystems verwendet eine Kombination der
dargestellten Offset- und Steigungskorrektur und nutzt so die Vorteile beider Mechanismen. (vgl. Abbildung 2.5)
Zunächst wird über zwei Zyklen (n, n + 1) gemessen, welche Abweichung jeder Knoten
im Vergleich zu den anderen hat - diese Werte werden gespeichert. Dann werden die
Differenzen zu den jeweils anderen Knoten berechnet und die Korrektur der Steigung
durchgeführt. Diese beiden Abläufe führen alle Knoten zur selben Zeit durch. Auch die
Offset-Korrektur wird zum Zeitpunkg n + 1 ausgeführt, so dass der Zyklus n + 2 in allen
Knoten zum nahezu gleichen Zeitpunkt beginnt [Rau03].
Damit die Uhrensynchronisation korrekt funktioniert, darf höchstens ein Drittel der
vorhandenen Knoten fehlerhaft sein (vgl. Abschnitt 4.1.3).
9
2 FlexRay
(a) Offset-Korrektur
(b) Steigungskorrektur
(c) Kombination der Methoden
Abbildung 2.5: Uhrensynchronisation bei FlexRay [Rau03]
10
3 Time Triggered Architecture
3.1 Allgemeines
Die Entwicklung der der Time Triggered Architecture (TTA) wird nun seit etwa 20 Jahren unter Federführung von Hermann Kopetz an der Universtität Wien vorangetrieben.
Ein kommerzieller Betrieb wird über die Firma TTTech abgewickelt. Die TTA verfolgt
wie der Name schon sagt den zeitgesteuerten Ansatz. Das Zeitmodell geht davon aus,
dass die globale Zeit in Perioden von Aktivität und Stille eingeteilt werden können sogenannte Ticks (vergl. Abbildung 3.1). Alle Ereignisse in einem verteilten System, die
innerhalb eines globalen Clock-Tick passieren, werden also als gleichzeitig betrachtet.
Die Time Triggered Architecture sieht zwei Bustopologien vor - den TTA Star (vgl.
Abbildung 3.2) sowie den TTA Bus.
Unter Laborbedingungen wird eine Datenrate von 1 GBit/s angegeben, ansonsten
erreicht man etwa 25 MBit/s. Zur besseren Kapselung und einfacheren Anwendungsentwicklung implementiert die TTA drei Schnittstellen, die sich wie folgt kennzeichnen
lassen:
• Das Real-Time Service Interface
– Stellt die Echtzeit-Dienste für den Knoten bereit
– Zeitkritisch
• Diagnostic Maintenance Interface
– Wird zum Setzen von Parametern und für die Fehlerdiagnose benutzt
– Nicht zeitkritisch
Abbildung 3.1: Darstellung der globalen Zeit in der TTA [KB02]
11
3 Time Triggered Architecture
(a) TTA - Bus
(b) TTA - Star
Abbildung 3.2: Topologien der TTA Architektur [KB02]
12
3.2 Dienste
• Configuration Planning Interface
– Wird benutzt um andere Knoten im plug-and-play“-Verfahren in das Netz”
werk einzufügen
– Nicht zeitkritisch
3.2 Dienste
Dienste in verteilten Systemen erleichtern die Entwicklung von Anwendungen. Die Time
Triggered Architecture ist aufgrund ihrer langjährigen Entwicklung in der Situation zahlreiche Dienste zu implementierungen, die für verteilte Echtzeitsysteme wichtig sind. Im
Folgenden werden einige der Dienste und ihre spezielle Umsetzung in der TTA erläutert:
3.2.1 Uhrensynchronisation
Die TTA verwendet ähnlich zu FlexRay den Welch-Lynch-Algorithmus zur Synchronisation der Uhren im Netzwerk. [WL88, Rus03]
3.2.2
interactive consistency“
”
Das Problem, verteilte Daten konsistent zu übertragen, nennt man interactive consis”
tency“ oder auch atomic broadcast“. Um sicherzustellen, dass alle Nachrichten bei allen
”
Empfängern identisch sind. Dazu müssen zwei Bedingungen erfüllt sein:
Übereinstimmung: Alle fehlerfreien Empfänger erhalten selbst bei fehlerhaftem Sender
diegleiche Nachricht.
Validität: Wenn die Sender fehlerfrei sind, dann erhalten die Empfänger auch die Nachricht, die tatsächlich gesndet wurde.
Algorithmen, die diese Vorraussetzungen beim Auftreten zufälliger Fehler erfüllen, enthalten mehr als einen Datenaustausch - im Grunde vergleicht jeder Empfänger seine
Werte mit denen der anderen Empfänger. Es ist nachweislich unmöglich interactive
”
consistency“ zu erreichen, wenn es a zufällige Fehler gibt und weniger als 3a + 1 FCUs,
2a + 1 disjunkte Kommunikationspfade zwischen den FCUs und a + 1 Kommunikationsrunden [Rus03].
3.2.3
master-shadow“
”
Der sogenannte master-shadow“ Dienst ist ein Selbstkontroll-Mechanismus, der im Feh”
lerfall zu sogenannter fail-silence“ führt. Die anderen Knoten bemerken dies und und ein
”
13
3 Time Triggered Architecture
Backup-System kann die fehlende Funktionalität abdecken. Die Architektur kann diesen Ersetzungvorgang von einem (fehlerhaften) Knoten (Master) durch einen BackupKnoten unterstützen. Eine Methode kann sein, dass der Master und Backup-Knoten
dasselbe Zeitfenster im Ablauf benutzen, der Backup-Knoten jedoch vom Senden ausgeschlossen bleibt bis der Master Fehler zeigt [Rus03].
3.2.4
membership service“
”
Das master/shadow“ Prinzip hängt von einer konsistenten Ausfallbenachrichtigung
”
(engl. failure notification“) ab. Der wichtigste Punkt hierbei ist, dass wenn ein feh”
lerfreier Knoten denkt“, dass es einen fehlerhaften Knoten gibt, müssen alle anderen
”
fehlerfreien Knoten auch dieser Meinung sein. Dieses Prinzip nennt man auch member”
ship service“. Die genannte Bedingung muss im Übrigen auch für den jeweils eigenen
Status des Knoten gelten, d.h. es ist naiv anzunehmen, dass ein Knoten, der Nachrichten empfangen kann und keine Problem in seiner Arbeitsweise sieht, automatisch in der
membership“ ist [Rus03].
”
Jeder Knoten pflegt also seine eigene membership“ Liste, die alle und nur die feh”
lerfreien Knoten umfaßt. Da die Erkennung eines fehlerhaften Knotes etwas Zeit in
Anspruch nehmen kann, gibt es die Regel, dass in der gemeinsamen membership aller
”
”
Knoten höchstens ein fehlerhafter Knoten enthalten sein darf.
Also muss ein membership service“ folgende Bedingungen erfüllen:
”
Übereinstimmung: Die membership“ Listen aller fehlerfreien Knoten sind gleich.
”
Validität: Die membership“ Listen aller fehlerfreien Knoten enthalten alle fehlerfreien
”
Knoten und höchstens einen fehlerhaften Knoten.
Falls es unmöglich sein sollte korrekte membership“ zu bewahren, kann sollte man
”
mindestens die Übereinstimmung sichern, so dass ausgeschlossene fehlerfreie Knoten
einen rejoin“ versuchen können. Dieses Ziel ist unter Voraussetzung einer korrekten
”
und konsistenten Nachrichtenübertragung leicht zu erreichen [Rus03].
3.2.5 Umsetzung bei der TTA
Die TTA Architektur benutzt für interactive consistency“ Checksummen - in etwa
”
äquivalent zu digitalen Signaturen. So wir die Fehlerquelle, dass verschiedene Empfänger
verschiedene Werte durch dieselbe Übertragung erhalten, ausgeschlossen.
Außerdem stellt die TTA die sogenannte clique avoidance“ als Teil ihres membership
”
”
service“ bereit. Die Funktionalität stellt sich wie folgt dar: Alle Knoten, die eine Nachricht empfangen bleiben in der membership“. So wird dann mit der Standard- mem”
”
bership“-Funktionalität erreicht, dass ein fehlerhafter Sender oder Empfänger ausgeschlossen wird. Bei asymmetrischen Fehlern oder wenn es mehrere Ausfälle gleichzeitig
gibt, verhält sich die clique avoidance“ konsistent, allerdings kann es passieren, dass
”
14
3.2 Dienste
fehlerfreie Knoten von der membership“ ausgeschlossen wurden. (Sie können jedoch im
”
nächsten Kommunikationszyklus wieder in das Netzwerk aufgenommen werden.) [Rus03]
Die Kombination beider Methoden stellt eine klassische Form der interactive consis”
tency“ bereit. Im Bereich der Anwendungsentwicklung können die Methoden dazu benutzt werden verschiedene master/shadow -Strategien zu entwickeln. TTA unterstützt
”
”
shadow“ Knoten, die gemeinsam mit dem Master dasselbe Zeitfenster belegen, aber
”
erst senden, wenn der Master ausfällt.
Desweiteren wird der membership service“ auch intern bei der TTA angewandt
”
- nämlich um sicherzustellen, das sie auch bei mehreren fehlerhaften Uhren funktionstüchtig ist. Die Synchronisation wird nur über fehlerfreie Uhren vorgenommen.
15
4 Vergleich von FlexRay und TTA
Abschließend sollen nach der etwas detailierteren Betrachtung der Uhrensynchronisation
bei FlexRay und den Diensten bei der Time Triggered Architecture zwei weitere Aspekte
anhand dieser beiden Bussyteme verglichen werden.
4.1 Fehler Hypothese
4.1.1 Begriffe
Die Fehler Hypothese setzt sich aus mehreren Aspekten zusammen - der Fehlerart ( fault
”
mode“), der Gesamtzahl der Fehler und der Ankunftsrate der Fehler. Nach dem hybrid
”
fault model“ können Fehlerarten unterschiedlich klassifziert werden:
spatial proximity“ Ein Fehler, der Hardware in einem bestimmten räumlichen Umfeld
”
zerstört - möglicherweise mehrere FCUs auf einmal. Die verschiedenen Bustopologien sind für diese Art von Fehler unterschiedlich anfällig: Die bus-basierte Topologie ist anfälliger als die Stern-Topologie, da beim einer Verdrahtung als Bus die
redundanten Busleitungen bei jedem Knoten nah beieinander sind.
erkennbarer Fehler Der Fehler kann zuverlässig erkannt und reproduziert werden.
symmetrischer Fehler: Der Fehler tritt bei allen Knoten auf dieselbe Art und Weise
auf.
zufälliger Fehler/asymmetrisch Ein Fehler ist willkürlich oder zufällig, wenn er ohne
jegliche Beschränkung auftritt. Man nennt ihn asymmetrisch, wenn das fehlerhafte
Verhalten von verschiedenen Knoten unterschiedlich interpretiert wird.
SOS - Fehler slightly out of specification“ Fehler rufen oft asymmetrische Fehler her”
vor 1 .
aktive Fehler Diese Fehlerart kann von einer aktiven Komponente, wie dem Prozessor
verursacht werden.
1
Ein Beispiel hierfür ist der Fall, wenn ein Knoten eine nicht eindeutige Spannung auf den Bus schickt,
z.B. 0,5 V statt 0 oder 1 Volt. Manche Knoten würden diese Spannung als 1 und manche als 0 Volt
interpretieren.
16
4.1 Fehler Hypothese
passive Fehler Fehler in passiven Komponenten können im Gegensatz zu aktiven Elementen keine Werte neu erzeugen, sondern höchsten verlieren, verzögern oder
verändern. So kann man durch kryptographische Signaturen die Fehlerrate von
aktiven FCUs auf die von passiven reduzieren.
Fehlertoleranz wird häufig mit Redundanz erreicht: Für erkennbare Fehler ist weniger
Redundanz erforderlich als für symmetrische Fehler. Für letztere muss beim Systemdesign ebenfalls weniger Redundanz als für zufällige Fehler bereitgestellt werden.
self-checking“ - Selbstkontrolle/ fail silence“ Bei diesem Mechanismus, der vor al”
”
lem für einfache Fehlerarten angewendet wird, werden FCUs paarweise gruppiert,
so dass sie sich selbst kontrollieren können. Falls sich diese FCUs also widersprechen, schalten sie sich ab und bewirken so, dass ihr fehlerhaftes Verhalten als
erkennbarer Fehler registriert wird. Bei den meisten Architekturen wird diese Technik der Selbstkontrolle auch in jeder einzelnen FCU verwendet, so dass sich eine
FCU, die bei sich selbst einen Fehler entdeckt, abschaltet. Diese Methode nennt
man fail silence“.
”
Rekonfigurationsrate Wie schnell kann sich eine Architektur von vergangenen Fehlern
erholen und auf neue reagieren.
Fehlerankunftsrate Die angenommene Rate, mit der (verschiedene) Fehler auftauchen
können.
rejoin“ Der rejoin“ Vorgang benennt das Wiedereinbuchen in ein Netzwerk von einer
”
”
vorher ausgeschlossenen FCU. Dies kann eine sehr schwierige Operation sein, wenn
nämlich exakt zum gleichen Zeitpunkt eine weitere FCU ausfallen könnte.
never give up“ Strategie Diese Methode beschreibt, dass in einer Notsituation die
”
Knoten mit dem besten verfügbaren Wissen versuchen auf die lokale Kontrolle
ihrer Aktoren zurückgreifen. Gleichzeitig wird versucht die Abstimmung mit den
anderen Knoten wiederzuerlangen.
Im Folgenden werden nun die Fehlerarten, die TTA und Flexray tolerieren, aufgeführt
4.1.2 TTA
Die FCUs der Time Triggered Architecture können je nach Produktionsweise verschieden
sein. Der TTA-Bus beispielsweise hat zwei separate Busleitungen - die als separate FCUs
gesehen werden. Beim TTA-Stern sind die Knoten über zentrale Hubs verbunden, die
doppelt vorhanden sind. TTA erlaubt folgende Fehlermodi:
17
4 Vergleich von FlexRay und TTA
TTA Star
• Zufällige, aktive Fehler in den Controllern und im Hub
• spatial proximity faults“, welche die Knoten oder den Hub betreffen
”
Einzelfehler-Toleranz wird bei vier fehlerfreien Controllern und beiden intakten Hubs
garantiert.
TTA-Bus
• Zufällige passive Fehler in den Guardians und Bussen
• Einzelfehler-Toleranz wird garantiert bei:
– In jedem Knoten entweder der Controller oder der Guardian fehlerhaft.
– Vier Controller und Guardians sind fehlerfrei.
Die Fehlerankunftsrate darf bei höchstens einem Fehler in jeder zweiten Runde liegen.
4.1.3 FlexRay
FlexRay toleriert folgende Fehlerarten:
• Asymmetrische, und damit zufällige, Fehler in den Controllern bei der Uhrensycnhronisation.
• spatial proximity faults , die Knoten und den Hub betreffen können.
”
”
• Einzelfehler-Toleranz garantiert bei:
– In jedem Knoten ist entweder der Guardian oder der Controller ist fehlerhaft
– Es ist höchstens eine Zwischenverbindung fehlerhaft.
Weniger als ein Drittel der Knoten darf für die Uhrensynchronisation fehlerhaft sein.
4.2 Flexibilität
Der statische Ablauf (engl. schedule) in einem zeitgesteuerten Bus ist eher unflexibel. So
gibt es in vielen Architekturen die Überlegung Maßnahmen zum Umschalten zwischen
verschiedenen Abläufen einzurichten. In der Luftfahrt gibt es beispielsweise verschiedene
Abläufe für den Start, den Normalflug und die Landung. Im Automobil kann man sich
18
4.2 Flexibilität
die Nutzung dieser verschiedenen Abläufe anhand von Sonderausstattungen verdeutlichen2 . Wenn man diesen Mechanismus nutzt, um mehr Flexibiltät zu erlangen, muss
man das System auch gegen unberechtigte Wechsel zwischen den Abläufen schützen.
Die zeitgesteuerten Busse müssen also die flexible Bereitstellung der Bandbreite von
ereignisgesteuerten Bussen abbilden.
4.2.1 TTA
Bei der TTA werden die Abläufe berechnet und auf jedem Knoten in eine sogenannte
Message Descriptor List (MEDL) geladen auf dem Controller geladen. Die Anzahl und
Länge der Nachrichten, die ein Knoten senden kann, kann variiert werden, ist jedoch fix
sobald sie in die MEDL geladen wurde. Vor dem Start überprüft die TTA ob jeder Knoten diegleiche MEDL Version geladen hat. Ein Knoten kann nun einen Moduswechsel
verlangen: Dieser wird entweder sofort ausgeführt oder verschoben. Passiert das letztere
können die nachfolgende sendenden Knoten die Anfrage überschreiben. Alle Modi basieren auf demselbem Ablauf ( schedule“), nur Empfänger und die Interpretation der
”
Nachrichten ist veränderbar [Rus03].
Um simple, kostengünstige Signalgeber3 über einen TTA Knoten zu verbinden, benutzt man das TTP/A Feldbus Protokoll. Dabei ist der TTA Knoten Master des Signalgeber-Clusters. Innerhalb des Protokolls gibt es zwei Kommunikations-Runden: Der
Master-Slave (MS) Zyklus wird dazu benutzt einen oder mehrere Signalgeber zu warten
oder zu konfigurieren. Die Multi-Partner (MP) Runde überträgt periodisch Daten ausgewählter Signalgeber. Beide Zyklen und das Real-Time-Interface (vgl. Abschnitt 3.1)
wechseln sich ab, so dass plug-and-play“ möglich ist und im laufenden Betrieb Senso”
ren/Signalgeber ausgetauscht oder neu in das Netzwerk integriert werden können, ohne
dass die Echtzeitfähigkeit beeinträchtigt wird [KB02].
4.2.2 FlexRay
FlexRay soll wie sein Name suggeriert flexibler sein als andere Kommunikationssysteme.
Dies wird durch die Einteilung des Kommunikationszyklus in ein statisches und dynamisches Segment erreicht. Die Aufteilung wird während des Designs festgelegt und in die
Controller und Guardians geladen. Während des ereignisgesteuerten Segments kommunizieren die Knoten über das Byteflight Protokoll. Das aus einem ähnlichen Konsortium
wie FlexRay entstandene Protokoll LIN (Local Interconnect Network) wird genutzt, um
die Kommunikation mit den schon bei der TTA erwähnten Signalgebern zu unterstützen.
Im zeitgesteuerten Segment wird der Ablauf nicht vollständig installiert, sondern das
Segment wird in Zeitfenster aufgeteilt und jeder Buscontroller wird über die Anzahl der
ihm zugewiesenen Zeitfenster informiert. Knoten, die eine höhere Bandbreite benötigen,
2
3
Ein Bespiel wäre hier ein Auto, das mit oder ohne Antriebs-Schlupf-Regelung (ASR) ausgestattet ist.
engl. transducer; Diese Signalgeber besitzen keine eigenen Oszillatoren und finden beispielsweise in
Autotüren Anwendung.
19
4 Vergleich von FlexRay und TTA
bekommen so mehr Zeitfenster. Jeder Knoten erfährt den vollständigen Ablauf beim
Starten. Jeder Knoten schickt seine Identität bei den zu sendenden Nachrichten mit und
die anderen Knoten benutzen diese Information um ihre input-buffer“ zu kennzeichnen.
”
Das könnte beispielsweise so ablaufen: Eine Nachricht wird in den Zeitfenstern 1 und
7 mit dem Identifier 3 geschickt. Nun nehmen alle Knoten den Inhalt der Zeitfenster
1 und 7 und führen ihn den Tasks zu, welche die Eingaben von Knoten 3 verarbeiten.
Ein offensichtlicher Nachteil dieser Methode ist die Gefahr des masquerading“ , d.h. ein
”
Knoten sendet eine Nachricht mit einem falschen Identifier [Rus03].
20
5 Fazit
Als Fazit des Vergleichs dieser beiden Architekturen, die im Auto1 Anwendung finden
(sollen), ist zu sagen, dass aufgrund der langjährigen Forschungsarbeit die Time Triggered Architecture wohl etwas ausgereifter ist. Insbesondere bezüglich der Dienste stellt
sie komfortable Möglichkeiten dar, Anwendungen zu entwickeln. Auch im Bezug auf die
Datenübertragungsrate ist sie FlexRay deutlich überlegen. Jedoch ist das nicht das einzige Argument. FlexRay ist flexibler und hinter ihm steht ein mächtiges Konsortium
von Firmen, die an seiner Weiterentwicklung interessiert sind. Der langjährig erprobte CAN-Bus wird für neuere Entwicklungen sicher ersetzt werden, jedoch für nicht so
bandbreitenintensive Netze noch Anwendung finden. Der zeitgesteuerte Ansatz besitzt
den entscheidenden Vorteil der besseren Berechenbarkeit.
So kann man abschließen sicher sagen, dass im Auto auch weiterhin viele Fragestellungen im Informatikbereich zu lösen sind und es zahlreiche spannende Aufgabe zu
lösen gibt um den Anforderungen künftiger Fahrzeuggenerationen gerecht zu werden.
Das Prinzip der Aufteilung eines großen Systems ( divide and conquer“) als ein großes
”
Prinzip in der Informatik wird sicher zur Bewältigung der Fragestellungen beitragen.
1
TTA wird sogar auch in der Luftfahrt genutzt.
21
Literaturverzeichnis
[HSB+ 03] Heinecke, Harald, Schedl, Anton, Berwanger, Josef, Peller,
Martin, Nieten, Volker, Belschner, Ralf, Hedenetz, Bernd,
Lohrmann, Peter und Bracklo, Claas: FlexRay - ein Kommunikationssystem für das Automobil der Zukunft. Elektroniknet.de, 2003. http://
www.elektroniknet.de/topics/kommunikation/fachthemen/2003/0002/.
[KB02]
Kopetz, Hermann und Bauer,Günther: The Time-Triggered Architecture. In: Proceedings of the IEEE Special Issue on Modeling and Design of
Embedded Software. IEEE, Oct 2002. http://www.tttech.com/technology/
docs/history/HK_2002-10-TTA.pdf.
[Rau03]
Rausch, Matthias: Optimierte Mechanismen und Algorithmen in FlexRay. Elektroniknet.de, 2003. http://www.elektroniknet.de/topics/
kommunikation/fachthemen/2003/0006/.
[Rus03]
Rushby, John: A Comparison of Bus Architectures for Safety Critical Embedded Systems. Langley Reseach Center, 2003. http://techreports.larc.
nasa.gov/ltrs/PDF/2003/cr/NASA-2003-cr212161.pdf.
[WL88]
Welch, J.L und Lynch, N.A.: A New Fault-Tolerant Algorithm for Clock
Synchronization. In: Elektroniknet.de [Rau03], Seiten 1–36. http://www.
elektroniknet.de/topics/kommunikation/fachthemen/2003/0006/.
22
Herunterladen