Vorlesung Echtzeitsysteme Wintersemester 2009 Kommunikationssysteme: FlexRay 26.01.2010 Karl Leiß Echtzeitsysteme: Kommunikation - FlexRay
Übersicht Agenda: Einleitung Anwendungsbereich Systemkomponenten Protokollgrundlagen Zusammenfassung BMW X5 mit FlexRay Echtzeitsysteme: Kommunikation - FlexRay 2
Einleitung FlexRay Konsortium und viele weitere Hersteller & Entwicklungspartner gegründet: 2000 Echtzeitsysteme: Kommunikation - FlexRay 3
Einleitung Arbeitsfeld Gemeinsame Entwicklung eines innovativen, qualitativen Kommunikationsnetzwerks mit: Kompletter Kommunikationsinfrastruktur Spezifikation des seriellen Kommunikationsprotokolls Spezifikation des Transceivers Spezifikation der Hardware- und Softwareinterfaces Spezifikation der Test- und Zertifizierungsprozeduren Echtzeitsysteme: Kommunikation - FlexRay 4
Einleitung - Rahmenbedingungen Wachsende Anzahl von Anwendungen Reduktion der Komplexität Hersteller- und Plattformübergreifendes System Interface offen für OEM, Zulieferer und Toolhersteller Keine Exklusivität, keine Lizenzgebühren Große Anzahl an Mitwirkenden Qualifikation durch Konformitätstests Ziel: Industrieweite Anerkennung eines neuen Standards für ein deterministisches Kommunikationsnetzwerk das offen für die Entwicklung und den Einsatz durch Dritte ist. Echtzeitsysteme: Kommunikation - FlexRay 5
Anwendungsbereich - Domänen Chassis Sonstige Antrieb Backbone Fahrassistenz High-speed Kommunikation By-wire Systeme Echtzeitsysteme: Kommunikation - FlexRay 6
Anwendungsbereich - Anforderungen Freie Wahl der Topologie (Bus, Stern oder Kombinationen davon) Wählbare Datenraten und Prioritäten Protokoll unabhängig von der Datenrate Elektrischer Übertragsungspfad; optischer möglich Synchrone (time-triggered) und asynchrone(event-triggered) Datenübertragung Redundante Kommunikationskanäle Hoher Nutzdatendurchsatz Niedrige Latenzzeiten Geringe Kosten Fehlertoleranz Echtzeitsysteme: Kommunikation - FlexRay 7
Anwendungsbereich - Systemabgrenzung Echtzeitsysteme: Kommunikation - FlexRay 8
Anwendungsbereich - Vergleich LIN CAN FlexRay Kanäle 1 1 1/ 2 Bus Datenrate 20 Kbit/sec <= 1 Mbit/sec 10 Mbits/sec Zeitgesteuert nein nein ja Deterministisch nein nein ja Redundanz nein nein möglich Arbitrierung Master CSMA TDMA FlexRay komplementiert CAN und LIN Echtzeitsysteme: Kommunikation - FlexRay 9
Systemkomponenten - Topologie Punkt zu Punkt Linearer passiver Bus max. 24m Entfernung max. 20 Stichleitungen, max. 22 Knoten Passiver Stern Aktiver Stern Kaskadierte aktive Sterne Echtzeitsysteme: Kommunikation - FlexRay 10
Systemkomponenten Interface uc Komm. Controller BT BT Anschluss an ein oder zwei Kanäle Bustreiber (BT) wandelt digitale Signale in analoge und umgekehrt Kommunikations-Controller beinhaltet Kodierung/Dekodierung, Media Access Control, Register, Uhrensychronisation und eine Zustandsmaschine Node 1 Node 2 Node 3 Node 4 Node 5 Kanal B Kanal A Echtzeitsysteme: Kommunikation - FlexRay 11
Systemkomponenten physikalische Ebene (1) Echtzeitsysteme: Kommunikation - FlexRay 12
Systemkomponenten physikalische Ebene (2) Beispiel aktiver Stern mit zwei Ästen: Differentielle Übertragung Terminierter Bus Unterminierte Zweige Echtzeitsysteme: Kommunikation - FlexRay 13
FlexRay Systemkomponenten Kodierung (1) Spezielle Variante der NRZ Kodierung, die sog. 8B10B NRZ. Bei jedem zu übertragenden Byte werden 2 Bits vorangestellt, also: 0011 0001 -> 10 0011 0001 Dies wird Byte Start Sequence (BSS) genannt. Analog dazu werden Frames mit einer TSS (Transmission Start Sequence) versehen. Hierbei wird ein vom Anwender definiertes Bitmuster, welches 3-15 Bits lang ist vorangestellt. Echtzeitsysteme: Kommunikation - FlexRay 14
FlexRay Systemkomponenten Kodierung (2) Flanke wird für Zeitmessung verwendet 3... 15 bit 11 bit 1 0 Header Seg. Payload Seg. Trailer Seg. 0 1 Transmission Start Sequence (TSS) Byte Start Sequence (BSS) Frame End Sequence (FES) Idle Delimiter Frame Start Sequence (FSS) Echtzeitsysteme: Kommunikation - FlexRay 15
Protokollgrundlagen Media Access Control (1) Zwei Schemata integriert: 1. TDMA time divison multiple access (statisches Segment) 2. FTDMA flexible time divison multiple access (dynamisches Segment) zusätzlich implementiert FTDMA bei Flexray eine Priorisierung wie bei CAN Grundlegende Kommunikationsstruktur: Unterteilung in Zyklen (Zyklus besteht aus statischem u. dynamischen Segment, sowie Bereichen zur Synchronisierung) Es gibt 64 dieser Zyklen, wobei diese sich unterscheiden können Echtzeitsysteme: Kommunikation - FlexRay 16
Protokollgrundlagen Media Acces Control (2) Kommunikationszyklus Time Division Multiple Access Flexible Time Division Multiple Access Kanal B 1 0 3a 2 1a 3 4 3c 5 4a 6 1c 7 5a 8 4b 9 3d 1011 5b t Kanal A 1 3b 2 1b 3 2a 4 3c 5 6 1c 7 5a 89 3e 10 1d 14 2b t Beispiel: Ausschnitt eines Zyklus jeder Knoten kann nur in seinem vordefinierten Slot senden/empfangen jeder Knoten benötigt min. 2 statische Slots dynamische Slots sind optional Network Idle TIme * 3a = Knoten 3 Nachricht(frame, message) a, 3b = Knoten 3 Nachricht b Echtzeitsysteme: Kommunikation - FlexRay 17
Protokollgrundlagen FTDMA im Detail 1 2 3 4 5 6 7 8 9 1011121314 1516 17 18 19 20 21 22 (Node 1) ID 8 (Node 2) ID 10 (Node 3) ID 13 8 9 10 Slot 11 8 12 13 14 9 15 10 16 11 17 12 Slot 18 13 14 19 10 20 15 21 16 22 17 23 18 11 24 12 19 25 20 13 26 21 14Slot 27 22 151328 16 23 29 24 17 Jeder Minislot gehört genau einem Knoten oder keinem pro Kanal und Zyklus Wird keine Übertragung in einem Minislot gestartet, erhöhen alle Knoten den Minislotzähler Falls viele Knoten senden hat der Zähler am Ende einen kleineren Wert Es kann passieren, dass nicht alle Knoten in einem Zyklus senden können Echtzeitsysteme: Kommunikation - FlexRay 18
Protokollgrundlagen Komm. Zyklus (2) Cycle Count 0 1 2 3 4 5 6 7... Time Division Multiple Access Flexible TDMA 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 0 1 2 3 4 5 6 7 8 9 10 11 12 13 3a 1a 3c 4a 4c 5a 14 2b 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 0 1 3a 2 1a 3 4 3c 5 4a 6 4c 7 5a 8 9 10 11 12 13 3e 14 2b 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 5b 0 1 3a 2 1a 3 4 3c 5 4a 6 4c 7 5a 8 9 3e 10 1d 14 2b 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 5b 0 1 3a 2 1a 3 4 3c 5 4a 6 4c 7 5a 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25... 5b 5b NIT 59 60 61 62 63 0 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 5b 0 1 3a 2 1a 3 4 3c 5 4a 6 4c 7 5a 8 9 3e 10 1d 14 2b 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 5b 0 1 3a 2 1a 3 4 3c 5 4a 6 4c 7 5a 8 9 3e 10 1d 14 2b 7 1 3a 2 1a 3 4 3c 5 4a 6 4c 5a 8 4b 9 3d 10 11 5b 0 1 3a 2 1a 3 4 3c 5 4a 6 4c 7 5a 8 9 3e 10 1d 14 2b Echtzeitsysteme: Kommunikation - FlexRay 19 t
t Protokollgrundlagen Media Access Control Detail communication cycle level static segment dynamic segment* symbol window* network idle time arbitration grid level static slot 1 2 3 n... minislot... slot number action point macrotick level (MT)................ microtick level (ut)... * = optional min. Länge statischer Slot = 4MT Microtick = Oszillator Frequenz (1 / 40MHz = 25ns) Echtzeitsysteme: Kommunikation - FlexRay 20
Protokollgrundlagen statisches Segment Kommunikationszyklus statisches Segment dynamsiches S. NIT Kanal A 1 3b 2 3 4 5 6 7 89 10 1b 2a 3c 1c 5a 3e 1d 14 2b t MT action point idle idle transmission start sequence frame channel idle delimiter Echtzeitsysteme: Kommunikation - FlexRay 21
Protokollgrundlagen dynamsiches Segment Kommunikationszyklus Channel A 1 3b statisches Segment 2 3 4 5 6 7 89 10 1b 2a 3c 1c 5a 3e dynamisches Segment 1d 14 2b NIT t minislots dyn. slots 8 9 10 11 12 13 14 15 16 17 18 ID 9 ID 10 ID 14 Echtzeitsysteme: Kommunikation - FlexRay 22
Protokollgrundlagen Frame Aufbau Echtzeitsysteme: Kommunikation - FlexRay 23
Protokollgrundlagen Partitionierung Funktionen für Fehlertoleranz Frame-Empfang Uhrensynchronisation Applikation Applikation Kommunikationsprotokoll FlexRay FlexRay Knoten Knoten Funktionen zur Fehlerbehandlung Systemdiagnose Fehlermeldungen Netzwerkmanagement Wakeup, Sleep Cluster Startup Echtzeitsysteme: Kommunikation - FlexRay 24
Protokollgrundlagen Zustandsmaschine Default Config Config Ready Halt Von der Applikation ausgeführt Von Bedingungen abhängig Von zuvor festgelegter Konfiguration und Bedingungen abhängig Von internen Zuständen abhängig Wakeup Startup Normal Active Normal Passive Echtzeitsysteme: Kommunikation - FlexRay 25
Protokollgrundlagen Startup (1) Vor dem Startup muss die Wakeup-Prozedur abgeschlossen sein Fehlertoleranter Startup möglich, d.h. auf beiden Kanälen synchron Nur bestimmte Knoten ( Coldstart -Knoten) dürfen Startup initiieren By-wire Systeme: min. zwei fehlerfreie Coldstartknoten notwendig Restliche Systeme: alle Knoten können als Coldstarter agieren Wenn möglich immer drei funktionierene Coldstart-Knoten Startupprozedur: 1. Coldstart-Knoten starten und stellen stabile Kommunikation her 2. Die übrigen Knoten integrieren sich Echtzeitsysteme: Kommunikation - FlexRay 26
Protokollgrundlagen Startup (2) inaktiv Zyklus 0 1 2 3 4 5 6 7 8 Knoten 1 führender coldstarter S S S S S S S S S Knoten 2 folgender coldstarter Knoten 3 startet Uhr überprüfen S sendet S S S S sendet startet Uhr überprüfen channel CAS S S S S S S S S S S S S S S Echtzeitsysteme: Kommunikation - FlexRay 27
Protokollgrundlagen Uhrensynchronisation (1) Wichtig für fehlerfreie Kommunikation im Cluster synchrone, globale Zeit Zeitbasis wird gebildet aus: Cyclecounter Slotcounter Macrotick Problemquellen: Temperaturdrift Spannungsdrift Ungenauigkeiten der Taktquelle (Quarz, Oszillator,...) Echtzeitsysteme: Kommunikation - FlexRay 28
Protokollgrundlagen Uhrensynchronisation (2) Folge: Zunehmende Abweichung der Uhrzeit in den Knoten -> Fehler in der Kommunikation Abhilfe: kontinuierliche Messung und Korrektur der Zeitabweichung Echtzeitsysteme: Kommunikation - FlexRay 29
Protokollgrundlagen Uhrensynchronisation (5) 1. Offsetkorrektur (Phasenkorrektur): Korrektur der absoluten Zeitabweichung am Ende eines jeden Zyklus durch Verkürzung/Verlängerung der Network Idle Time des Knoten 2. Steigungskorrektur(Frequenzkorrektur): Jusitierung der Steigung durch Verlängerung/Verkürzung von einem/mehreren Macroticks während des Zyklus 3. Kombination von Offset- und Steigungskorrektur: Minimierung der Zeitabweichung der Knoten untereinander Echtzeitsysteme: Kommunikation - FlexRay 30
Zusammenfassung Kombiniert die Vorteile aus CAN und TTP FlexRay Kommunikationskontroller läuft bei Softwarefehler in der MCU weiter Zusätzlicher Kanal für Redundanz oder höheren Datendurchsatz (2x 10Mbit) Verwendet existierende Kabel (unshielded twisted pair) Verteilte Algorithmen möglich Integration im Autosar-Framework Offener & industrieweiter Standard, nicht nur für Automotive Literatur: FlexRay. Grundlagen, Funktionsweise, Anwendung von Mathias Rausch 369 Seiten, Hanser Verlag, ISBN-10: 3446412492 Echtzeitsysteme: Kommunikation - FlexRay 31