Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (2024)

Das FlexRay-Protokoll ist ein einzigartiges zeitgesteuertes Protokoll, das Optionen für deterministische Daten, die in einem vorhersehbaren Zeitraumen (bis hin zu einer Mikrosekunde) eintreffen, sowie für CAN-ähnliche dynamische ereignisgesteuerte Daten bietet, die mit vielen verschiedenen Frames umgehen können. FlexRay bildet ein hybrides Protokoll aus statischen und dynamischen Frames mit einem voreingestellten Kommunikationszyklus, der einen vordefinierten Abschnitt für statische und dynamische Daten bereitstellt. Dieser Abschnitt wird vom Neztwerkdesigner mit dem Netzwerk konfiguriert. Während CAN-Knoten für die Kommunikation nur die korrekte Baudrate wissen müssen, sind Knoten in einem FlexRay-Netzwerk darauf angewiesen zu wissen, wie alle Teile des Netzwerks konfiguriert sind.

Wie bei allen Mehrpunktbussen, kann nur ein Knoten auf einmal Daten elektrisch auf den Bus schreiben. Schreiben zwei Knoten gleichzeitig, führt das zu Kollisionen auf dem Bus und fehlerhaften Daten. Um Kollisionen auf dem Bus zu vermeiden, gibt es unterschiedliche Schemata. CAN nutzt beispielsweise ein Arbitrationsschema, bei dem sich Knoten anderen Knoten unterordnen, wenn eine Nachricht mit höherer Priorität auf dem Bus übertragen wird. Zwar ist diese Technik flexibel und einfach erweiterbar, doch kann sie keine hohen Datenraten verarbeiten und auch die rechtzeitige Datenzustellung nicht garantieren. FlexRay verwaltet mehrere Knoten nach dem Schema Time Division Multiple Access (TDMA). Jeder FlexRay-Knoten wird mit demselben Takt synchronisiert und jeder Knoten wartet ab, bis er mit dem Schreiben auf den Bus an der Reihe ist. Da das Timing in einem TDMA-Schema konsistent ist, kann FlexRay Determinismus bzw. die Konsistenz der Datenzustellung an Knoten im Netzwerk garantieren. Das bietet viele Vorteile für Systeme, die zwischen den Knoten von aktuellen Daten abhängen.

Embedded-Netzwerke unterscheiden sich insofern von PC-basierten Netzwerken, als dass sie eine geschlossene Konfiguration aufweisen und sich nicht ändern, nachdem sie im Produkt für die Herstellung aufgebaut wurden. So sind keine zusätzlichen Mechanismen nötig, um Geräte zur Laufzeit automatisch zu erkennen und zu konfigurieren, so wie ein PC, der an ein neues kabelgebundenes oder kabelloses Netzwerk angeschlossen wird. Da Netzwerkkonfigurationen vor dem eigentlichen Einsatz erstellt und konfiguriert werden, sparen Entwickler Kosten und erhöhen die Zuverlässigkeit des Netzwerks.

Damit ein TDMA-Netzwerk wie FlexRay richtig funktioniert, müssen allen Knoten korrekt konfiguriert sein. Der FlexRay-Standard lässt sich an viele verschiedene Netzwerktypen anpassen und ermöglicht es Netzwerdesignern, Kompromisse u.a. zwischen Updategeschwindigkeiten, Anzahl der deterministischen und dynamischen Datenpakete einzugehen. Jedes FlexRay-Netzwerk ist anders, so dass jeder Knoten mit den passenden Netzwerkparametern programmiert werden muss, bevor er am Bus teilnehmen kann.

Um die Netzwerkkonfigurationen zwischen Knoten aufrechtzuerhalten, führte das FlexRay-Komitee ein standardisiertes Format zum Speichern und Übertragen dieser Parameter im Entwicklungsprozess ein. Die Datei des Field Bus Exchange Format, kurz FIBEX-Datei, ist ein ASAM-definierter Standard, der es Anwendern in den Bereichen Netzwerkdesign, Prototypenerstelung, Validierung und Test ermöglicht, Netzwerkparameter problemlos auszutauschen und elektronische Steuergeräte, Testwerkzeuge, Systeme für die Hardware-in-the-Loop-Simulation etc. für den Zugriff auf den Bus schnell zu konfigurieren.

Der Kommunikationszyklus

Der FlexRay-Kommunikationszyklus ist das grundlegende Element des Schemas für den Medienzugriff von FlexRay. Die Dauer eines Zyklus wird beim Design des Netzwerks festgelegt, bewegt sich aber meist zwischen 1 und 5 ms. Ein Kommunikationszyklus besteht aus vier Hauptteilen:

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (1)
Abb. 1: Kommunikationszyklus

  1. Statisches Segment
    Reservierter Abschnitt für deterministische Daten, die innerhalb eines festgelegten Zeitraums eintreffen
  2. Dynamisches Segment
    Das dynamische Segment verhält sich ähnlich wie bei CAN und wird für eine größere Vielfalt ereignisbasierter Daten verwendet, die keinen Determinismus benötigen.
  3. Symbolfenster
    Das Symbolfenster wird für die Netzwerkwartung und das Signal zum Starten des Netzwerks genutzt.
  4. Netzwerk-Leerlaufzeit
    Die fixe Ruhezeit für die Synchronisation zwischen der Knotentakte

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (2)

Abb. 2: Details des FlexRay-Makrotick

Die kleinste mögliche Zeiteinheit in einem FlexRay-Netzwerk ist ein Makrotick. FlexRay-Controller synchronisieren sich aktiv selbst und passen ihre lokalen Takte an, so dass der Makrotick auf jedem Knoten im Netzwerk zur selben Zeit stattfindet. Makrotickes können für das jeweilige Netzwerk konfiguriert werden, dauern aber oft eine Mikrosekunde. Da der Makrotick synchronisiert ist, sind auch Daten, die von ihm abhängen, synchronisiert.

1. Statisches Segment

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (3)

Abb. 3: Illustration eines statischen Segments mit drei elektronischen Steuergeräten, die Daten auf vier reservierte Abschnitte übertragen.

Das statische Segment, dargestellt als blauer Bereich im Frame, ist der Abschnitt in einem Zyklus, der für die Planung einer Reihe zeitgesteuerter Frames vorgesehen ist. Das Segment ist in Abschnitte aufgeteilt, die jeweils einen reservierten Frame mit Daten enthalten. Wenn ein Abschnitt an der Reihe ist, hat das reservierte elektronische Steuergerät die Gelegenheit, seine Daten in diesen Abschnitt zu übertragen. Ist die Zeit abgelaufen, muss das elektronische Steuergerät bis zum nächsten Zyklus warten, um seine Daten in diesen Abschnitt zu übertragen. Da der genaue Zeitpunkt im Zyklus bekannt ist, sind die Daten deterministisch und die Programme wissen genau, wie alt die Daten sind. Dies ist sehr nützlich, wenn Regelschleifen berechnet werden, die von Daten in konsistenten Zeitabständen abhängen. Abb. 3 zeigt ein einfaches Netzwerk mit vier statischen Abschnitten, die von drei elektronischen Steuergeräten genutzt werden. Reale FlexRay-Netzwerke können mehrere Dutzend statischer Abschnitte enthalten.

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (4)

Abb. 4: Statischer Abschnitt mit fehlendem elektronischem Steuergerät Nummer 2.

Ist ein elektronisches Steuergerät offline oder überträgt es keine Daten, bleibt der Abschnitt leer und wird nicht von einem anderen Steuergerät belegt (s. Abb. 4).

2. Dynamisches Segment

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (5)

Abb. 5: Dynamische Abschnitte im FlexRay-Frame mit einem Daten übertragenden elektronischen Steuergerät

Die meisten Embedded-Netzwerke umfassen eine kleine Anzahl an Hochgeschwindigkeitsnachrichten und eine große Zahl weniger kritischer, langsamerer Nachrichten. Damit eine große Datenvielfalt eingebracht werden kann, ohne den FlexRay-Zyklus mit einer exzessiven Anzahl statischer Abschnitte zu verlangsamen, lässt das dynamische Segment auch gelegentlich übertragene Daten (Ereignisse) zu. Das Segment hat eine feste Länge, so dass nur eine fixe Datenmenge pro Zyklus in das dynamische Segment geschrieben werden kann. Um die Daten zu priorisieren, werden jedem Daten-Frame, der für die Übertragung im dynamischen Segment in Frage kommt, vorab Minislots zugewiesen. Ein Minislot hat meist die Länge eines Macroticks (eine Mikrosekunde). Daten mit höherer Priorität erhalten ihren Minislot näher am Anfang des dynamischen Frames.

Ist ein Minislot an der Reihe, hat das elektronische Steuergerät kurz Zeit, um seinen Frame zu übertragen. Geschieht das nicht, geht der Slot im dynamischen Frame verloren und der nächste Minislot ist an der Reihe. Dieser Prozess durchläuft alle Minislots, bis eine elektronisches Steuergerät Daten überträgt. Ist das der Fall, müssen spätere Minislots warten, bis das Steuergerät mit der Datenübertragung fertig ist. Wenn das Fenster des dynamischen Frames zu Ende ist, müssen Minislots mit niedrigerer Priorität den nächsten Zyklus abwarten, um die Gelegenheit für die Übertragung nutzen zu können.

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (6)

Abb. 6: Dynamische Abschnitte, bei denen die elektronischen Steuergeräte 2 und 3 innerhalb ihrer Minislots Daten übertragen und keine Zeit für Minislots mit niedrigerer Priorität übrig lassen

Abbildung 5 zeigt, wie das Steuergerät 1 in seinem Minislot Daten überträgt, da die ersten 7 Minislots nicht genutzt wurden. Abbildung 6 zeigt wie die Steuergeräte 2 und 3 die ersten beiden Minislots nutzen und Gerät 1 keine Gelegenheit zur Übertragung lassen. Das Steuergerät 1 muss mit der Übertragung bis zum nächsten Zyklus warten.

Das Resultat des dynamischen Segments ist ein ähnliches Schema wie das bei CAN genutzte Arbitrationsschema.

3. Symbolfenster

Das Symbolfenster wird v.a. für die Wartung und Identifizierung spezieller Zyklen wie etwa bei Kaltstartzyklen genutzt. Die meisten High-Level-Anwendungen interagieren nicht mit dem Symbolfenster.

4. Netzwerk-Leerlaufzeit

Die Netzwerk-Leerlaufzeit hat eine vordefinierte, den elektronischen Steuergeräten bekannte Dauer. Die Steuergeräte nutzen diese Leerlaufzeit, um Anpassungen für eventuell beim vorigen Zyklus aufgetretene Abweichungen in der Netzwerksynchronisierung vorzunehmen.

Datensicherheit und Fehlerverarbeitung

Das FlexRay-Netzwerk bietet skalierbare Fehlertoleranz, indem es die Kommunikation auf einem oder zwei Kanälen ermöglicht. In sicherheitskritischen Anwendungen können die mit dem Bus verbundenen Geräte beide Kanäle für die Datenübertragung nutzen. Jedoch ist es auch möglich, nur einen Kanal anzuschließen, wenn keine Redundanz nötig ist, bzw. durch Verwendung beider Kanäle die Bandbreite bei der Übertragung nicht redundanter Daten zu steigern.

Innerhalb der physikalischen Schicht ermöglicht FlexRay eine schnelle Fehlererkennung und -übertragung sowie Schadensbegrenzung über einen unabhängigen Buswächter (Guardian). Dabei handelt es sich um einen Mechanismus auf der physikalischen Schicht, der einen Kanal vor Kommunikationsstörungen schützt, die nicht in den Kommunikationszeitplan des Clusters gehören.

Frame-Format

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (7)

Abb. 7: Detail eines FlexRay-Frames
Jeder Abschnitt eines statischen oder dynamischen Segments enthält einen FlexRay-Frame. Der Frame besteht aus drei Segmenten: Header, Payload (Nutzdaten) und Trailer (Prüfsummen, CRCs).

Header

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (8)

Abb. 8: Unterteilung eines FlexRay-Frames auf Bit-Ebene

Der Header ist 5 Bytes (40 bit) lang und enthält die folgenden Felder:

  1. Status-Bits: 5 bit
  2. Frame-ID: 11 bit
  3. Payload-Länge: 7 bit
  4. Header-CRC: 11 bit
  5. Zykluszahl: 6 bit

Die Frame-ID definiert den Abschnitt, in dem der Frame übertragen werden sollte und wird für die Priorisierung ereignisgesteuerter Frames genutzt. Die Payload-Länge enthält die Anzahl der Wörter, die im Frame übertragen werden. Der Header-CRC erkennt Fehler bei der Übertragung. Die Zykluszahl gibt den Wert eines Zählers an, der jedes Mal, wenn ein Kommunikationzyklus beginnt, inkrementiert wird.

Payload

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (9)

Abb. 9: Payload eines FlexRay-Frames

Die Nutzdaten (Payload) enthalten die tatsächlich vom Frame übertragenen Daten. Die Länge der FlexRay-Payload oder des Daten-Frames beträgt bis zu 127 Worte (254 Bytes), was mehr als 30-mal so viel ist wie bei CAN.

Trailer

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (10)

Abb. 10: Trailer eines FlexRay-Frames

Der Trailer enthält drei 8-bit-CRCs zur Fehlererkennung.

Signale

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (11)

Abb. 11: Umwandlung von Frame zu Signal

FlexRay-Daten werden in Bytes angegeben. Für die meisten Anwendungen müssen Daten in realen Dezimalwerten mit Einheiten, Skalierung und Grenzwerten zur Verfügung stehen. Wird auf ein oder mehrere Bits oder Bytes eines FlexRay-Frames eine Skalierung und ein Offset angewendet, erhält man ein Signal, das nützlich für den Austausch tatsächlicher Parameter zwischen elektronischen Steuergeräten ist. Die meisten Programme für elektronische Steuergeräte arbeiten mit FlexRay-Daten in Signalform und überlassen die Umwandlung der Signale in rohe Frame-Daten dem Treiber oder Low-Level-Kommunikationsprotokollen.

Ein typisches Fahrzeug umfasst hunderte oder sogar tausende solcher Signale. Da sich deren Skalierung, Offset, Definition und Ort ändern können, speichern FlexRay-Netzwerke diese Definitionen in einer FIBEX-Datenbank, die das Netzwerk definiert. Dadurch wird das Schreiben von Programmen für FlexRay-Netzwerke leichter und Entwickler können sich einfach auf den Signalnamen im Programmcode beziehen. Der Compiler oder Treiber holt sich dann, wenn das Programm aktualisiert wird, die neuesten Skalierungs- und Offset-Informationen und übermittelt diese an das Steuergerät oder das Prüfsystem.

Taktsynchronisation und Kaltstart

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (12)

Abb. 12: Vereinfachter Synchronisationsprozess eines FlexRay-Netzwerks

FlexRay hat die einzigartige Fähigkeit, Knoten in einem Netzwerk ohne externes Taktsignal zu synchronisieren. Dafür werden zwei spezielle Frame-Arten genutzt: Startup-Frames und Sync-Frames. Um einen FlexRay-Cluster zu starten, müssen mindestens zwei verschiedene Knoten Startup-Frames senden. Der Prozess des Hochfahrens eines FlexRay-Busses wird Kaltstart genannt und die Knoten, welche die Startup-Frames verschicken, werden als Kaltstartknoten bezeichnet. Die Startup-Frames sind eine Art Start-Trigger, die allen Knoten im Netzwerk den Startbefehl geben.

Nachdem das Netzwerk gestartet ist, müssen alle Knoten ihre internen Oszillatoren mit dem Makrotick des Netzwerks synchronisieren. Dies kann durch zwei oder mehr Synchronisationknoten geschehen. Als Synchronisationsknoten kommen zwei beliebige separate Knoten am Netzwerk in Frage, die dafür vorgesehen sind, speziell Sync-Frames zu übertragen, wenn sie eingeschaltet werden. Andere Knoten im Netzwerk warten bis die Sync-Frames übertragen sind und messen dann die Zeit zwischen aufeinanderfolgenden Übertragungen, um ihre internen Taktgeber an den FlexRay-Netzwerktakt anzugleichen. Die Sync-Frames werden in der FIBEX-Konfiguration des Netzwerks ausgewiesen.

Sobald das Netzwerk synchronisiert und online ist, wird die Netzwerk-Leerlaufzeit (weißer Bereich im Diagramm) gemessen und für die Anpassung der Takte zwischen den Zyklen für eine enge Synchronisation genutzt.

In-cycle-Steuerung

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (13)

Abb. 13: In-cycle-Steuerung, die vier Radpositionen liest und den Ausgang für die Fahrzeugsteuerung in einem einzigen FlexRay-Zyklus aktualisiert.

Eine erweiterte Funktion von FlexRay ist die Möglichkeit der In-cycle-Steuerung. Abbildung 13 zeigt ein Beispiel, bei dem vier Radpositionen in den statischen Abschnitten des Frames übertragen werden. Da die Radpositionen vor dem letzten Update-Befehl des zentralen Controllers 5 feststehen, hat der Controller Zeit, die Daten im selben Kommunikationszyklus zu verarbeiten und schnell auszugeben. Damit können in einem FlexRay-Netzwerk sehr hohe Steuergeschwindigkeiten erreicht werden.

Überblick über den Kommunikationsbus FlexRay für den Automobilbereich (2024)
Top Articles
Latest Posts
Article information

Author: Margart Wisoky

Last Updated:

Views: 5591

Rating: 4.8 / 5 (78 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Margart Wisoky

Birthday: 1993-05-13

Address: 2113 Abernathy Knoll, New Tamerafurt, CT 66893-2169

Phone: +25815234346805

Job: Central Developer

Hobby: Machining, Pottery, Rafting, Cosplaying, Jogging, Taekwondo, Scouting

Introduction: My name is Margart Wisoky, I am a gorgeous, shiny, successful, beautiful, adventurous, excited, pleasant person who loves writing and wants to share my knowledge and understanding with you.