FlexRay

Das Netzwerkkommunikationsprotokoll

FleyRay ist ein Netzwerkkommunikationsprotokoll, das vom FlexRay-Konsortium entwickelt wurde, um Bordsysteme bei selbstfahrenden Autos zu regeln. Es wurde entwickelt als ein schnelleres und verlässlicheres Protokoll als CAN und TTP, allerdings ist es gleichzeitig auch teurer. Das FlexRay-Konsortium löste sich 2009 auf, die Angaben sind allerdings immer noch zum Runterladen auf der FlexRay-Homepage verfügbar. Der FlexRay-Standard wird derzeit in einen ISO-Standard konvertiert.

FlexRay – Eigenschaften

  • Hohe Datenraten (bis zu 10 Mbit/s)
  • Zeit- und ereignisauslösendes Verhalten
  • Fehlertoleranz

FlexRay – Das Konsortium

Das FlexRay-Konsortium bestand aus folgenden Hauptmitgliedern:

  • Freescale Semiconductor
  • Robert Bosch GmbH
  • NXP Semiconductors
  • BMW AG
  • Volkswagen AG
  • Daimler AG
  • General Motors

Außerdem gab es Premium- und außerordentliche Mitglieder im FlexRay-Konsortium. Im September 2009 gab es 28 Premiummitglieder und mehr als 60 außerordentliche Mitglieder. Ende 2009 löste sich das Konsortium auf.

FlexRay – Verwendung

Die erste Produktserie, die mit FlexRay ausgestattet war, wurde Ende 2006 im BMW X5 produziert. Sie sorgte für ein neues und sich schnell anpassendes Dämpfungssystem. Voll integriert wurde FlexRay 2008 in den neuen BMW 7 Serie (F01), das weltweit erste Produktionsauto, das das FlexRay-System vollständig nutzte.

Autos

  • Audi A6
  • Audi A8
  • Bentley Mulsanne
  • BMW X5
  • BMW 7 Serie
  • BMW 5 Serie Gran Turismo
  • BMW 5 Serie
  • Rolls-Royce Ghost

Uhren

Das FlexRay-System besteht aus einem Bus und einem Prozessor (Electronic Control Unit (ECU)). Jedes ECU hat eine unabhängige Uhr integriert. Die zeitliche Abweichung von der Referenzuhr darf nicht mehr als 0,15% betragen, sodass der Unterschied zwischen der langsamsten und der schnellsten Uhr im System nicht größer als 0,3% ist. Wenn also ECU-s der Sender ist und ECU-r der Empfänger, gibt es bei 300 Zyklen des Senders immer zwischen 299 und 301 Zyklen beim Empfänger. Die Uhren werden ständig neu synchronisiert, um sicherzustellen, dass daraus keine Probleme entstehen.

Bits

Der Bus wird immer nur von einem ECU beschrieben. Jedes Bit, das an den Bus gesendet werden soll, wird für acht Zeitzyklen gehalten. Der Empfänger behält einen Puffer der fünf letzten Muster und nutzt die Mehrheit der fünf letzten Muster als Inputsignal.

Sample Bits

Der Wert eines Bits findet sich in der Nähe der 8-bit-Region. Die Fehler werden in die extremen Zyklen verschoben und die Uhr wird oft genug synchronisiert, sodass die Abweichung nur gering ist (Die Abweichung ist kleiner als ein Zyklus pro 300 Zyklen. Während der Übertragung wird die Uhr öfter als alle 300 Zyklen synchronisiert).

Rahmen

Die gesamte Kommunikation findet mithilfe von Rahmen (Frames) statt. Die Nachricht beinhaltet Bytes {x0, x1,..., xm-1}, welche wie folgt aussehen:

  • Übertragungs-Startsignal (TSS) – Bit 0
  • Rahmen-Startsignal (FSS) – Bit 1
  • M Zeiten:
    • Byte-Startsignal 0 (BSS0) – Bit 1
    • Byte-Startsignal 1 (BSS1) – Bit 0
    • 0. Bit des i. Zyklus
    • 1. Bit des i. Zyklus
    • 2. Bit des i. Zyklus
    • ...
    • 7. Bit des i. Zyklus
  • Rahmen-Endsignal (FES) – Bit 0
  • Übertragungs-Endsignal (TES) – Bit 1

Uhrensynchronisierung

Die Uhren werden neu synchronisiert, wenn das Signal sich von 1 zu 0 verändert, wenn der Empfänger entweder im untätigen Zustand war oder BSS1 erwartet hat. Die Uhr wird synchronisiert, wenn die Übertragung beginnt. Wenn die Synchronisierung des ausgewählten Signals abgeschlossen ist, können kleine Übertragungsfehler die Synchronisierung um nicht mehr als einen Zyklus verändern. Da es höchstens 88 Zyklen zwischen der Synchronisierung gibt (BSS1, 8 Bits des letzten Bytes, FES und TES – 11 Bits aus jeweils 8 Zyklen) und die Uhrenabweichung nicht größer als 1 pro 300 Zyklen ist, verändert sich die Abweichung um nicht mehr als einen Zyklus. Kleine Übertragungsfehler während des Empfangs betreffen nur die Grenzbytes. Im schlimmsten Fall sind also die mittleren Bits korrekt, sodass der gesamte Wert korrekt ist.Dies ist ein Beispiel für einen ungünstigen Fall: ein Fehler während der Synchronisierung, ein verlorener Zyklus aufgrund von Uhrenabweichungen und ein Fehler in der Übertragung.Fehler, die in diesem Beispiel auftreten:

  • Aufgrund des Single-Bit Fehler während der Synchronisierung, verzögert sich die Synchronisierung um einen Zyklus
  • Die Empfängeruhr war langsamer als die Senderuhr, also verpasst der Empfänger einen Zyklus (mit X markiert). Dies wird wegen der Regeln zur maximalen Uhrenabweichung nicht noch einmal vor der nächsten Synchronisierung passieren.
  • Wegen des Single-Bit Fehlers während der Übertragung wird ein Bit nähe des Ergebnisses falsch ausgewählt.

Trotz dieser vielen Fehler, wurde die Nachricht korrekt empfangen.

Die grünen Zellen sind Sampling-Punkte.

Flex Ray