Sie stiegen in Ihr Auto, drückten den Startknopf und der Motor sprang im Nu an, aber wie hat Ihr Auto entschieden, ob es starten sollte oder nicht?

Nun, um das Auto zum Starten zu bringen, kommunizierten mehrere Antennen und elektronische Steuereinheiten mit dem Schlüsselanhänger. Das Controller Area Network (CAN)-Protokoll stellt sicher, dass die Kommunikation zwischen Ihrem Schlüsselanhänger, Antennen und ECUs in Ihrem Auto ordnungsgemäß erfolgt.

Was ist also das CAN-Protokoll und wie hilft es den Geräten in den Systemen Ihres Fahrzeugs, zusammenzuarbeiten? Finden wir es heraus.

Was ist das CAN-Protokoll und warum wird es benötigt?

Früher hatten Autos nicht viel Elektronik. Wenn Sie Ihr Fahrzeug in den frühen 1900er Jahren starten wollten, mussten Sie aus Ihrem Fahrzeug steigen und den Motor von Hand ankurbeln.

Im Gegensatz dazu verfügen die heutigen Autos über mehrere elektronische Sensoren, und elektronische Geräte überwachen alles von der Innenraumtemperatur bis zur Umdrehung der Kurbelwelle.

instagram viewer

Die von diesen Sensoren empfangenen Daten sind jedoch wertlos, bis sie verarbeitet werden. Diese Datenverarbeitung wird von Computergeräten durchgeführt, die als elektronische Steuereinheiten (ECUs) bekannt sind.

Bildnachweis: SenseiAlan/Flickr

Im Gegensatz zu einem Computer mit einer einzigen CPU verfügt ein Auto über mehrere Steuergeräte, von denen jedes für eine bestimmte Aufgabe zuständig ist. Obwohl diese ECUs eine einzelne Aufgabe effizient ausführen können, müssen sie zusammenarbeiten, um Funktionen wie z Abs und ESC richtig funktionieren.

Aus diesem Grund müssen alle Steuergeräte eines Autos miteinander verbunden sein. Man könnte eine Punkt-zu-Punkt-Topologie verwenden, um diese Verbindungen herzustellen, bei der jede ECU direkt mit jeder anderen ECU verbunden ist. Diese Architektur würde jedoch das System komplex machen. Tatsächlich hat ein modernes Fahrzeug über 70 ECUs, und eine Eins-zu-Eins-Verbindung würde das Gewicht der Verkabelung exponentiell erhöhen.

Um dieses Problem zu lösen, hat Bosch 1986 zusammen mit Mercedes-Benz und Intel das Controller Area Network-Protokoll entwickelt. Dieses Protokoll ermöglichte es Steuergeräten, über einen gemeinsamen Datenbus, den so genannten CAN-Bus, miteinander zu kommunizieren.

Wie funktioniert CAN?

Das CAN-Protokoll ist eine nachrichtenbasierte Kommunikationsmethode, die für die Datenübertragung auf einen Satz Twisted-Pair-Kabel angewiesen ist. Diese Leitungen sind als CAN-High und CAN-Low bekannt.

Um die Datenübertragung auf diesen Leitungen zu ermöglichen, werden ihre Spannungspegel geändert. Diese Änderungen der Spannungspegel werden dann in Logikpegel übersetzt, die es den ECUs in einem Auto ermöglichen, miteinander zu kommunizieren.

Bildnachweis: Spinningspark/Wikipedia

Zum Senden von logisch Eins auf dem CAN-Bus wird die Spannung beider Leitungen auf 2,5 Volt eingestellt. Dieser Zustand wird auch als rezessiver Zustand bezeichnet, was bedeutet, dass der CAN-Bus für die Verwendung durch jedes Steuergerät verfügbar ist.

Im Gegensatz dazu wird auf dem CAN-Bus eine logische 0 übertragen, wenn die CAN-High-Leitung auf einer Spannung von 3,5 Volt und die CAN-Low-Leitung auf 1,5 Volt liegt. Dieser Zustand des Busses wird auch als dominanter Zustand bezeichnet, der jedem Steuergerät im System mitteilt, dass es ein anderes Steuergerät ist sendet, also sollten sie warten, bis die Übertragung beendet ist, bevor sie mit der Übertragung ihrer Nachricht beginnen.

Um diese Spannungsänderungen zu ermöglichen, sind die ECUs des Fahrzeugs über einen CAN-Transceiver und einen CAN-Controller mit dem CAN-Bus verbunden. Der Transceiver ist dafür verantwortlich, die Spannungspegel auf dem CAN-Bus in Pegel umzuwandeln, die das Steuergerät verstehen kann. Der Controller hingegen wird verwendet, um die empfangenen Daten zu verwalten und sicherzustellen, dass die Anforderungen des Protokolls erfüllt werden.

Alle diese am CAN-Bus angeschlossenen Steuergeräte können Daten auf dem verdrillten Kabel übertragen, aber es gibt einen Haken, nur die Nachricht mit der höchsten Priorität kann auf dem CAN-Bus übertragen werden. Um zu verstehen, wie ein Steuergerät Daten auf dem CAN-Bus überträgt, müssen wir die Nachrichtenstruktur des CAN-Protokolls verstehen.

Verstehen der Nachrichtenstruktur des CAN-Protokolls

Immer wenn zwei Steuergeräte kommunizieren wollen, werden Botschaften mit untenstehender Struktur auf dem CAN-Bus übertragen.

Diese Nachrichten werden übertragen, indem die Spannungspegel auf dem CAN-Bus geändert werden, und das Twisted-Pair-Design der CAN-Leitungen verhindert eine Datenverfälschung während der Übertragung.

  • SOF: Kurz für Start Of Frame, das SOF-Bit ist ein einzelner dominanter Bit-Datenrahmen. Dieses Bit wird von einem Knoten gesendet, wenn er Daten auf dem CAN-Bus senden möchte.
  • Kennung: Der Identifier auf dem CAN-Protokoll kann entweder 11 Bit oder 29 Bit groß sein. Die Größe des Identifiers richtet sich nach der Version des verwendeten CAN-Protokolls. Wenn die erweiterte Version von CAN verwendet wird, beträgt die Größe des Identifiers 29 Bit, in anderen Fällen beträgt die Größe des Identifiers 11 Bit. Das Hauptziel des Identifikators besteht darin, die Priorität der Nachricht zu identifizieren.
  • RTR: Die Remote Transmission Request oder das RTR wird von einem Knoten verwendet, wenn Daten von einem anderen Knoten angefordert werden müssen. Dazu sendet der gewünschte Knoten eine Nachricht mit einem rezessiven Bit im RTR-Frame an den gewünschten Knoten.
  • Zusatzinhalte: Der Datenlängencode definiert die Größe der Daten, die im Datenfeld übertragen werden.
  • Datenfeld: Dieses Feld enthält die Datennutzlast. Die Größe dieser Nutzlast beträgt 8 Byte, aber neuere Protokolle wie CAN FD erhöhen die Größe dieser Nutzlast auf 64 Byte.
  • CRC: Abkürzung für Cyclic Redundancy Check, das CRC-Feld ist ein Fehlerprüfrahmen. Dieser ist 15 Bit groß und wird sowohl vom Empfänger als auch vom Sender berechnet. Der sendende Knoten erstellt beim Senden einen CRC für die Daten. Beim Empfang der Daten berechnet der Empfänger den CRC für die empfangenen Daten. Stimmen beide CRCs überein, ist die Integrität der Daten bestätigt. Wenn nicht, sind die Daten fehlerhaft.
  • Bestätigungsfeld: Sobald die Daten empfangen wurden und fehlerfrei sind, speist der empfangende Knoten ein dominantes Bit in den Bestätigungsrahmen ein und sendet ihn an den Sender zurück. Damit wird dem Sender mitgeteilt, dass die Daten empfangen wurden und fehlerfrei sind.
  • Ende des Rahmens: Nach Abschluss der Datenübertragung werden sieben aufeinanderfolgende rezessive Bits übertragen. Dadurch wird sichergestellt, dass alle Knoten wissen, dass ein Knoten die Datenübertragung abgeschlossen hat, und dass sie Daten auf dem Bus übertragen können.

Zusätzlich zu den oben genannten Bits hat das CAN-Protokoll einige Bits, die für die zukünftige Verwendung reserviert sind.

Vereinfachen von CAN durch ein Beispiel

Nachdem wir nun ein grundlegendes Verständnis dafür haben, wie eine Nachricht auf dem CAN-Bus aussieht, können wir verstehen, wie Daten zwischen verschiedenen Steuergeräten übertragen werden.

Nehmen wir der Einfachheit halber an, dass unser Auto 3 ECUs hat: Node 1, Node 2 und Node 3. Von den 3 ECUs wollen Node 1 und Node 2 mit Node 3 kommunizieren.

Sehen wir uns an, wie das CAN-Protokoll dabei hilft, die Kommunikation in einem solchen Szenario sicherzustellen.

  • Zustand des Busses erkennen: Alle Steuergeräte im Auto sind mit dem CAN-Bus verbunden. In unserem Beispiel wollen Node 1 und Node 2 Daten an ein anderes Steuergerät senden; Zuvor müssen beide ECUs den Zustand des CAN-Busses prüfen. Wenn sich der Bus in einem dominanten Zustand befindet, können die ECUs keine Daten übertragen, da der Bus verwendet wird. Befindet sich der Bus hingegen in einem rezessiven Zustand, können die Steuergeräte Daten übertragen.
  • Senden des Start of Frame: Wenn die Differenzspannung auf dem CAN-Bus Null ist, ändern sowohl Knoten 1 als auch Knoten 2 den Zustand des Busses auf dominant. Dazu wird die Spannung von CAN High auf 3,5 Volt angehoben und die Spannung von CAN Low auf 1,5 Volt reduziert.
  • Entscheiden, welcher Knoten auf den Bus zugreifen kann: Sobald das SOF gesendet ist, konkurrieren beide Knoten um den Zugriff auf den CAN-Bus. Der CAN-Bus verwendet das Carrier Sense Multiple Access/Collision Detection (CSMA/CD)-Protokoll, um zu entscheiden, welcher Knoten Zugriff erhält. Dieses Protokoll vergleicht die von beiden Knoten übertragenen Kennungen und gibt demjenigen mit der höheren Priorität Zugriff.
  • Daten senden: Sobald der Knoten Zugriff auf den Bus hat, wird das Datenfeld zusammen mit dem CRC an den Empfänger gesendet.
  • Kommunikation prüfen und beenden: Beim Empfang der Daten prüft Knoten 3 den CRC der empfangenen Daten. Wenn keine Fehler vorliegen, sendet Knoten 3 eine CAN-Nachricht an den sendenden Knoten mit einem dominanten Bit im Bestätigungsrahmen zusammen mit dem EOF, um die Kommunikation zu beenden.

Verschiedene Arten von CAN

Obwohl die vom CAN-Protokoll verwendete Nachrichtenstruktur dieselbe bleibt, werden die Geschwindigkeit der Datenübertragung und die Größe der Datenbits geändert, um höhere Datenbandbreiten zu übertragen.

Aufgrund dieser Unterschiede hat das CAN-Protokoll unterschiedliche Versionen, über die im Folgenden eine Übersicht gegeben wird:

  • Highspeed-CAN: Die Daten auf den CAN-Leitungen werden seriell übertragen, und diese Übertragung kann mit unterschiedlichen Raten erfolgen. Bei High-Speed-CAN beträgt diese Geschwindigkeit 1 Mbit/s. Aufgrund dieser hohen Datenübertragungsgeschwindigkeit wird Hochgeschwindigkeit für Steuergeräte verwendet, die den Antriebsstrang und Sicherheitssysteme steuern.
  • Low-Speed-CAN: Bei Low-Speed-CAN wird die Datenübertragungsrate auf 125 kbps reduziert. Da die niedrige Geschwindigkeit niedrigere Datenraten bieten kann, wird sie verwendet, um Steuergeräte anzuschließen, die den Komfort des Passagiers verwalten, wie die Klimaanlage oder das Infotainmentsystem.
  • Kann FD: CAN FD ist die Abkürzung für CAN Flexible Data Rate und die neueste Version des CAN-Protokolls. Es erhöht die Größe des Datenrahmens auf 64 Byte und ermöglicht den Steuergeräten, Daten mit Geschwindigkeiten von 1 Mbit/s bis 8 Mbit/s zu übertragen. Diese Datenübertragungsgeschwindigkeit kann von den ECUs basierend auf den Systemanforderungen in Echtzeit verwaltet werden, sodass Daten mit höheren Geschwindigkeiten übertragen werden können.

Wie sieht die Zukunft der Automobilkommunikation aus?

Über das CAN-Protokoll können mehrere Steuergeräte miteinander kommunizieren. Diese Kommunikation ermöglicht Sicherheitsfunktionen wie die elektronische Stabilitätskontrolle und fortschrittliche Fahrerassistenzsysteme wie Toter-Winkel-Erkennung und adaptive Geschwindigkeitsregelung.

Mit dem Aufkommen fortschrittlicher Funktionen wie dem autonomen Fahren steigt die Datenmenge, die über den CAN-Bus übertragen wird, jedoch exponentiell an. Um diese Funktionen zu ermöglichen, kommen neuere Versionen des CAN-Protokolls wie CAN FD auf den Markt.