Damit Automobile weiterhin die Sicherheit verbessern, die Leistung steigern, die Umweltbelastung verringern und den Komfort erhöhen können, müssen die Geschwindigkeit, die Menge und die Zuverlässigkeit der zwischen den elektronischen Steuergeräten (ECUs) eines Fahrzeugs ausgetauschten Daten steigen. Fortgeschrittene Steuerungs- und Sicherheitssysteme – die mehrere Sensoren, Aktoren und elektronische Steuergeräte kombinieren – erfordern eine Synchronisation und Leistung, die über das hinausgehen, was der bestehende Standard Controller Area Network (CAN) bieten kann. Gepaart mit den wachsenden Bandbreitenanforderungen, da heutige Fahrzeuge über fünf separate CAN-Busse verfügen, fordern Automobilingenieure ein Embedded-Netzwerk der nächsten Generation. Nach jahrelanger Zusammenarbeit mit OEMs, Werkzeuglieferanten und Endbenutzern hat sich der FlexRay-Standard als fahrzeugkommunikationsbus etabliert, um diesen neuen Herausforderungen in der nächsten Fahrzeuggeneration zu begegnen.
Die Einführung eines neuen Netzwerkstandards in komplexen Embedded-Designs wie Automobilen benötigt Zeit. Obwohl FlexRay die aktuellen High-End- und zukünftigen Mainstream-Herausforderungen von Fahrzeugnetzwerken bewältigen wird, wird es die beiden anderen dominanten Fahrzeugstandards CAN und LIN nicht verdrängen. Um die Kosten zu optimieren und Übergangsprobleme zu reduzieren, wird die nächste Automobilgeneration FlexRay für High-End-Anwendungen, CAN für den Mainstream-Antriebsstrangkommunikation und LIN für kostengünstige Karosserieelektronik enthalten.
| Bus | LIN | CAN | FlexRay |
| Geschwindigkeit | 40 kbit/s | 1 Mbit/s | 10 Mbit/s |
| Kosten | $ | $$ | $$$ |
| Verbindungen | 1 | 2 | 2 oder 4 |
| Typische Anwendungen | Karosserieelektronik (Spiegel, elektrische Sitze, Zubehör) | Antriebsstrang (Motor, Getriebe, ABS) | Hochleistungsantrieb, Sicherheit (Drive-by-wire, aktive Federung, adaptiver Tempomat) |
Für Ingenieure in allen Bereichen des Fahrzeugdesign- und Produktionsprozesses ist es wichtig, die Funktionsweise von FlexRay zu verstehen. Dieser Artikel erklärt die Kernkonzepte von FlexRay.
Viele Aspekte von FlexRay sind darauf ausgelegt, die Kosten niedrig zu halten und zugleich höchste Leistung in einer robusten Umgebung zu bieten. FlexRay verwendet ungeschirmte verdrillte Kabel, um Knoten miteinander zu verbinden. FlexRay unterstützt Einzel- und Zweikanalkonfigurationen, die jeweils aus einem oder zwei Drahtpaaren bestehen. Differenzielle Signalisierung an jedem Verbindungspaar reduziert die Auswirkungen von externem Rauschen auf das Netzwerk, ohne teure Abschirmung. Die meisten FlexRay-Knoten verfügen typischerweise auch über Stromversorgungs- und Masseleitungen zur Versorgung von Transceivern und Mikroprozessoren.
Zweikanalkonfigurationen bieten höhere Fehlertoleranz und/oder erhöhte Bandbreite. Die meisten FlexRay-Netzwerke der ersten Generation nutzen nur einen Kanal, um die Kosten für Verkabelung gering zu halten. Mit zunehmender Komplexität der Anwendungen und steigenden Sicherheitsanforderungen werden zukünftige Netzwerke beide Kanäle nutzen.
FlexRay-Busse benötigen an den Enden eine Abschlusswiderstand in Form eines zwischen den Signaladern verbundenen Widerstands. Nur die Endknoten an einem Multi-Drop-Bus benötigen Abschlusswiderstände. Zu viel oder zu wenig Abschlusswiderstand kann ein FlexRay-Netzwerk funktionsuntüchtig machen. Während spezifische Netzwerkkonfigurationen variieren, haben typische FlexRay-Netzwerke eine Impedanz zwischen 80 und 110 Ohm, und die Endknoten sind entsprechend abgeschlossen. Der richtige Abschlusswiderstand ist eine der häufigsten Fehlerquelle beim Anschluss eines FlexRay-Knotens an eine Testkonfiguration. Moderne PC-basierte FlexRay-Schnittstellen können über Onboard-Abschlusswiderstände verfügen, um die Verkabelung zu vereinfachen.
Ein Unterscheidungsmerkmal von FlexRay, CAN und LIN gegenüber traditionellen Netzwerken wie Ethernet ist die Topologie oder das Netzwerk-Layout. FlexRay unterstützt einfache passive Multi-Drop-Verbindungen sowie aktive Sternverbindungen für komplexere Netzwerke. Je nach Fahrzeug-Layout und Einsatzgrad von FlexRay hilft die Auswahl der richtigen Topologie den Designer, Kosten, Leistung und Zuverlässigkeit eines Designs zu optimieren.
FlexRay wird häufig in der einfachen Multi-Drop-Bus-Topologie eingesetzt, die einen einzigen Netzwerkkabel verwendet, der mehrere ECUs verbindet. Dies ist dieselbe Topologie wie bei CAN und LIN, die den OEMs vertraut ist und daher in FlexRay-Fahrzeugen der ersten Generation populär ist. Jede ECU kann sich bis zu einem kurzen Abstand vom „Hauptstamm“ des Busses „verzweigen“. An den Netzwerkenden sind Abschlusswiderstände installiert, die Signalreflexionsprobleme beseitigen. Da FlexRay mit hohen Frequenzen von bis zu 10 Mbit/s arbeitet (verglichen mit 1 Mbit bei CAN), achten FlexRay-Entwickler sehr darauf, Netzwerke korrekt abzuschließen und zu verlegen, um Signalintegritätsprobleme zu vermeiden. Das Multi-Drop-Format passt zudem gut zu Fahrzeugkabelbäumen, die oft ein ähnliches Layout verwenden, was die Installation vereinfacht und den Verkabelungsaufwand im gesamten Fahrzeug reduziert.
Der FlexRay-Standard unterstützt „Stern“-Konfigurationen, die aus einzelnen Verbindungen bestehen, die mit einem zentralen aktiven Knoten verbunden sind. Dieser Knoten ähnelt funktional einem Hub in PC-Ethernet-Netzwerken. Die aktive Sternkonfiguration ermöglicht den Betrieb von FlexRay-Netzwerken über größere Entfernungen oder die Segmentierung eines Netzwerks, um dessen Zuverlässigkeit zu erhöhen, falls ein Teil des Netzwerks ausfällt. Wenn ein Zweig des Sterns unterbrochen oder kurzgeschlossen wird, funktionieren die anderen Zweige weiter. Da lange Leitungen tendenziell mehr Umweltstörungen wie elektromagnetische Emissionen von großen Elektromotoren aufnehmen, verringert die Verwendung mehrerer Zweige die freiliegende Kabellänge in einem Segment und verbessert die Störfestigkeit.
Die Bus- und Stern-Topologien können zu einer Hybrid-Topologie kombiniert werden. Künftige FlexRay-Netzwerke werden wahrscheinlich Hybridnetzwerke sein, um die Benutzerfreundlichkeit und Kostenvorteile der Bustopologie mit der Leistung und Zuverlässigkeit der Sternnetzwerke dort zu kombinieren, wo sie im Fahrzeug benötigt werden.
Das FlexRay-Protokoll ist ein einzigartiges zeitgetriggertes Protokoll, das Optionen für deterministische Daten mit vorhersehbarer Ankunftszeit (bis auf Mikrosekunden) sowie CAN-ähnliche dynamische ereignisgesteuerte Daten für eine Vielzahl von Frames bietet. FlexRay realisiert dieses Hybridmodell aus statischen Kern-Frames und dynamischen Frames mittels eines voreingestellten Kommunikationszyklus, der vorgegebenen Raum für statische und dynamische Daten bereitstellt. Dieser Raum wird vom Netzwerkdesigner im Netzwerk konfiguriert. Während CAN-Knoten nur die richtige Baudrate kennen mussten, müssen Knoten in einem FlexRay-Netzwerk wissen, wie alle Netzwerkkomponenten konfiguriert sind, um kommunizieren zu können.
Wie bei jedem Multi-Drop-Bus kann jeweils nur ein Knoten elektrisches Schreiben auf den Bus ausführen. Wenn zwei Knoten gleichzeitig schreiben würden, käme es zu Konkurrenz auf dem Bus und die Daten würden beschädigt. Zur Vermeidung von Konflikten auf einem Bus kommen verschiedene Schemata zum Einsatz. CAN verwendet zum Beispiel ein Arbitrierungsschema, bei dem Knoten anderen nachgeben, wenn sie eine Nachricht mit höherer Priorität auf dem Bus erkennen. Dieses Verfahren ist zwar flexibel und einfach erweiterbar, erlaubt aber keine sehr hohen Datenraten und kann keine rechtzeitige Datenübertragung garantieren. FlexRay verwaltet mehrere Knoten mittels eines Time Division Multiple Access (TDMA)-Schemas. Jeder FlexRay-Knoten ist auf dieselbe Uhr synchronisiert und wartet auf seinen Turn, um auf den Bus zu schreiben. Da das Timing bei TDMA konsistent ist, kann FlexRay Determinismus gewährleisten, also die Konsistenz der Datenlieferung an Knoten innerhalb des Netzwerks. Dies bietet große Vorteile für Systeme, die auf aktuelle Daten unter Knoten angewiesen sind.
Embedded-Netzwerke unterscheiden sich von PC-basierten Netzwerken dadurch, dass sie in sich geschlossen sind und sich nach der Montage im Endprodukt nicht mehr ändern. Dadurch entfallen Mechanismen zum automatischen Erkennen und Konfigurieren von Geräten zur Laufzeit, wie sie PCs bei der Verbindung mit neuen verdrahteten oder drahtlosen Netzwerken benötigen. Netzwerkdesigner sparen erhebliche Kosten und erhöhen die Zuverlässigkeit, indem sie Netzwerkkonfigurationen vorab entwerfen.
Damit ein TDMA-Netzwerk wie FlexRay korrekt funktioniert, müssen alle Knoten richtig konfiguriert sein. Der FlexRay-Standard ist an viele Netzwerkkonzepte anpassbar und erlaubt Designern, Kompromiss zwischen Netzwerkaktualisierungsgeschwindigkeiten, deterministischem Datenvolumen und dynamischem Datenvolumen unter anderen Parametern zu erzielen. Da FlexRay-Netzwerke unterschiedlich sein können, muss jeder Knoten mit den korrekten Netzwerkparametern programmiert werden, um am Bus teilzunehmen.
Zur Vereinfachung der Verwaltung von Netzwerkkonfigurationen zwischen Knoten hat das FlexRay-Komitee ein standardisiertes Format für die Speicherung und Übertragung dieser Parameter im Engineering-Prozess definiert. Das Field Bus Exchange Format, oder FIBEX-Datei, ist ein ASAM-definierter Standard, der es Netzwerkdesignern, Prototypenentwicklern, Validierern und Testern ermöglicht, Netzwerkparameter einfach auszutauschen und ECUs, Testwerkzeuge, Hardware-in-the-Loop-Simulationssysteme usw. schnell für den Zugriff auf den Bus zu konfigurieren.
Der FlexRay-Kommunikationszyklus ist das grundlegende Element des Medienzugriffsschemas von FlexRay. Die Zyklusdauer wird beim Netzwerkdesign festgelegt, beträgt üblicherweise etwa 1-5 ms. Ein Kommunikationszyklus besteht aus vier Hauptbestandteilen:
Abbildung 1: Kommunikationszyklus
Abbildung 2: Detail des FlexRay-Makroticks
Die kleinste praktikable Zeiteinheit in einem FlexRay-Netzwerk ist ein Macrotick. FlexRay-Controller synchronisieren sich aktiv und passen ihre lokalen Takte so an, dass Macrotick für alle Knoten zeitgleich auftritt. Macroticks sind netzwerkspezifisch konfigurierbar, häufig jedoch etwa 1 Mikrosekunde lang. Da Macrotick synchronisiert ist, sind auch darauf basierende Daten synchron.
Abbildung 3: Darstellung eines statischen Segments mit 3 ECUs, die Daten in 4 reservierte Slots übertragen.
Das statische Segment, dargestellt als blauer Abschnitt des Frames, ist der Bereich im Zyklus, der für die zeitlich geplante Übertragung mehrerer Frames reserviert ist. Das Segment ist in Slots unterteilt, wobei jeder Slot einen reservierten Datenframe enthält. Während des Zeitpunkts eines Slots hat die reservierte ECU die Möglichkeit, ihre Daten in diesen Slot zu übertragen. Nach Ablauf dieser Zeit muss die ECU bis zum nächsten Zyklus warten, um wieder Daten in diesem Slot zu übertragen. Da der genaue Zeitpunkt im Zyklus bekannt ist, sind diese Daten deterministisch und Programme wissen exakt, wie alt die Daten sind. Dies ist äußerst hilfreich für die Berechnung von Regelschleifen, die von regelmäßig eintreffenden Daten abhängen. Abbildung 3 zeigt ein einfaches Netzwerk mit vier statischen Slots, die von drei ECUs genutzt werden. Tatsächliche FlexRay-Netzwerke können mehrere Dutzend statische Slots enthalten.
Abbildung 4: Darstellung eines statischen Slots, in dem ECU #2 fehlt.
Wenn eine ECU offline geht oder keine Daten überträgt, bleibt ihr Slot offen und wird von keiner anderen ECU genutzt, wie in Abbildung 4 gezeigt.
Abbildung 5: Darstellung dynamischer FlexRay-Slots mit einer ECU, die Daten überträgt.
Die meisten Embedded-Netzwerke haben wenige Hochgeschwindigkeitsnachrichten und viele Nachrichten für langsamere und weniger kritische Netzwerken. Um vielfältige Daten aufzunehmen, ohne den FlexRay-Zyklus durch zu viele statische Slots zu verlangsamen, erlaubt das dynamische Segment die gelegentliche Übertragung von Daten. Das Segment hat eine feste Länge und setzt somit eine Grenze für die Datenmenge, die pro Zyklus dynamisch übertragen werden kann. Zur Priorisierung der Daten werden Minislots jedem Datenframe zugeordnet, der für die Übertragung im dynamischen Segment geeignet ist. Ein Minislot ist in der Regel ein Macrotick (eine Mikrosekunde) lang. Daten mit höherer Priorität erhalten einen Minislot näher am Anfang des dynamischen Frames.
Tritt ein Minislot ein, hat eine ECU kurz Zeit, ihren Frame zu übertragen. Überträgt sie nicht, verliert sie ihren Platz und der nächste Minislot folgt. Dieser Prozess setzt sich bei den Minislots fort, bis eine ECU Daten überträgt. Während die Daten übertragen werden, müssen nachfolgende Minislots warten, bis die Übertragung abgeschlossen ist. Endet das dynamische Rahmenfenster, müssen Minislots mit niedrigerer Priorität bis zum nächsten Zyklus warten, um Daten zu übertragen.
Abbildung 6: Darstellung dynamischer Slots, wo ECUs 2 und 3 in ihren Minislots übertragen und keine Zeit für Minislots mit niedrigeren Prioritäten bleibt.
Abbildung 5 zeigt, dass ECU #1 Daten in ihrem Minislot überträgt, da die ersten 7 Minislots Daten nicht übertragen. Abbildung 6 zeigt, dass ECUs #2 und #3 die ersten beiden Minislots nutzen, wodurch ECU #1 keine übertragungszeit hat. ECU #1 muss auf den nächsten Zyklus warten, um Daten zu übertragen.
Das dynamische Segment führt zu einem ähnlichen Schema wie die Arbitrierung bei CAN.
Das Symbolfenster dient hauptsächlich der Wartung und Kennzeichnung spezieller Zyklen wie dem Kaltstart. Die meisten High-Level-Anwendungen interagieren nicht mit dem Symbolfenster.
Die Netzwerk-Ruhezeit hat eine vorgegebene, den ECUs bekannte Länge. Die ECUs nutzen diese Zeit, um etwaige Abweichungen der Taktsignale aus dem vorherigen Zyklus zu korrigieren.
Das FlexRay-Netzwerk bietet skalierbare Fehlertoleranz durch individuelle oder doppelte Kanalkommunikation. Für sicherheitskritische Anwendungen können Geräte beide Kanäle zur Übertragung nutzen. Es ist jedoch auch möglich, nur einen Kanal zu verwenden, wenn keine Redundanz nötig ist, oder die Bandbreite durch Nutzung beider Kanäle für nicht redundante Daten zu erhöhen.
Auf der physikalischen Schicht bietet FlexRay schnelle Fehlererkennung und -meldung sowie Fehlerbegrenzung durch einen unabhängigen Bus Guardian. Der Bus Guardian schützt einen Kanal auf physikalischer Schicht vor Störungen durch Kommunikation, die nicht dem Kommunikationsplan des Clusters entspricht.
Abbildung 7: Ausschnitt eines FlexRay-Frames
Jeder Slot eines statischen oder dynamischen Segments enthält einen FlexRay-Frame. Der Frame ist in drei Segmente unterteilt: Header, Nutzdaten und Trailer.
Abbildung 8: Bit-Aufschlüsselung eines FlexRay-Frames
Der Header ist 5 Byte (40 Bit) lang und enthält die folgenden Felder:
Die Frame-ID definiert den Slot, in dem der Frame übertragen werden soll und dient der Priorisierung ereignisgesteuerter Frames. Payload Length gibt die Anzahl der Wörter an, die im Frame übertragen werden. Der Header-CRC dient der Fehlererkennung während der Übertragung. Die Periodenanzahl enthält den Wert eines Zählers, der bei jedem Beginn eines Kommunikationszyklus inkrementiert wird.
Abbildung 9: Nutzdaten eines FlexRay-Frames.
Die Nutzdaten enthalten die eigentlichen vom Frame übertragenen Daten. Die Länge der FlexRay-Nutzdaten beträgt bis zu 127 Wörter (254 Byte), was mehr als 30 Mal größer als bei CAN ist.
Abbildung 10: Trailer eines FlexRay-Frames.
Der Trailer enthält drei 8-Bit-CRCs zur Fehlererkennung.
Abbildung 11: Umwandlung von Frame zu Signal
FlexRay-Daten werden in Bytes dargestellt. Die meisten Anwendungen benötigen Daten in realen Dezimalwerten mit Einheit, Skalierung und Grenzen. Wenn man ein oder mehrere Bits oder Bytes aus einem FlexRay-Frame extrahiert und eine Skalierung und Offset anwendet, erhält man ein Signal, das für den Austausch tatsächlicher Parameter zwischen ECUs nützlich ist. Die meisten ECU-Programme arbeiten mit FlexRay-Daten als Signalen und überlassen die Umwandlung von Signalen in Rohframedaten dem Treiber oder der niedrigeren Kommunikationsprotokollen.
Ein typisches Fahrzeug hat Hunderte bis Tausende von Signalen. Da sich Skalierung, Offset, Definitionen und Positionen dieser Signale ändern können, speichern FlexRay-Netzwerke diese Definitionen in der FIBEX-Datenbank, die das Netzwerk beschreibt. Dies erleichtert das Programmieren für FlexRay-Netzwerke, da Entwickler einfach auf die Signale im Code verweisen können. Der Compiler oder Treiber zieht die aktuellsten Skalierungs- und Offsetinformationen, wenn das Programm auf die ECU oder das Testsystem aktualisiert wird.
Abbildung 12: Vereinfachter Synchronisationsprozess eines FlexRay-Netzwerks
FlexRay kann Knoten in einem Netzwerk ohne ein externes Synchronisationstaktsignal synchronisieren. Dazu werden zwei spezielle Frame-Typen verwendet: Start-Frames und Sync-Frames. Zum Start eines FlexRay-Clusters sind mindestens 2 unterschiedliche Knoten erforderlich, um Start-Frames zu senden. Der Startvorgang des FlexRay-Busses wird als Kaltstart bezeichnet. Die Knoten, die die Start-Frames senden, werden üblicherweise als Kaltstartknoten bezeichnet. Die Start-Frames wirken wie ein Start-Trigger, der allen Knoten im Netzwerk den Start mitteilt.
Nach dem Start müssen sich alle Knoten ihre internen Oszillatoren mit dem Macrotick des Netzwerks synchronisieren. Dies erfolgt über zwei oder mehr Synchronisationsknoten. Diese sind beliebige getrennte Knoten im Netzwerk, die beim Einschalten spezielle Sync-Frames senden. Andere Knoten im Netzwerk warten auf die Übertragung der Sync-Frames und messen die Zeit zwischen deren Übertragungen, um ihre internen Uhren mit der FlexRay-Zeit zu kalibrieren. Die Sync-Frames werden in der FIBEX-Netzwerkkonfiguration bestimmt.
Ist das Netzwerk synchronisiert und online, wird die Netzwerk-Ruhezeit (weißer Bereich im Diagramm) gemessen und dazu verwendet, die Taktung von Zyklus zu Zyklus anzupassen und so Synchronisation sicherzustellen.
Abbildung 13: In-Cycle-Steuerung liest 4 Radpositionen und aktualisiert eine Fahrzeugsteuerungsausgabe in einem einzigen FlexRay-Zyklus.
Eine erweiterte FlexRay-Funktion ist die In-Cycle-Regelung. Abbildung 13 zeigt ein Beispiel, bei dem vier Radpositionen in statischen Slots des Frames übertragen werden. Da die Radpositionen vor dem finalen Update-Befehl des zentralen Controllers #5 eintreffen, hat der Controller Zeit für Verarbeitung und schnelle Ausgabe im selben Kommunikationszyklus. Dies ermöglicht sehr hohe Steuergeschwindigkeiten im FlexRay-Netzwerk.
FIeld Bus EXchange (FIBEX) ist ein XML-basiertes, standardisiertes Dateiformat, das vom ASAM-Konsortium definiert wird, wird zum Beschreiben von Automobilnetzwerken verwendet. Das FIBEX-Datenbankformat ist Standard für FlexRay-Netzwerke und kompatibel mit vielen Automobilprotokollen, was es sehr flexibel macht. FIBEX-Datenbanken werden typischerweise von Fahrzeugnetzwerkdesignern erzeugt und mit Ingenieuren geteilt, die an spezifischen Fahrzeugaspekten arbeiten. Mit einer FIBEX-Datei und einer unterstützten PC-Schnittstelle oder ECU können Sie leicht mit einem Fahrzeugnetzwerk interagieren, ohne Schnittstellen und Signaldefinitionen manuell einzurichten.
FIBEX umfasst viele Aspekte eines bestimmten Netzwerks, darunter:
Mehr Informationen zu FIBEX finden Sie im Artikel Einführung in FIBEX.
National Instruments bietet leistungsstarke PCI- und FlexRay-PXI-Schnittstellen zum Anschluss von PCs an FlexRay-Netzwerke. Mit einer PC-basierten Schnittstelle können Sie zahlreiche Engineering-Aufgaben an einer FlexRay-fähigen ECU durchführen, einschließlich:
Weitere Informationen zu NI-FlexRay-Schnittstellen finden Sie in der Einführung in die NI-XNET-FlexRay-Plattform.
Das FlexRay-Kommunikationsnetzwerk erfüllt die Anforderungen an deterministische, fehlertolerante und schnelle Busleistung für die Fahrzeuge der nächsten Generation.
Zugehörige Links: