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