Der CAN-Bus erklärt: Wie Controller, Batteriemanagementsysteme (BMS) und Displays miteinander kommunizieren

In modernen elektrischen Fahrzeugen tauschen die Komponenten nicht nur Leistung aus, sondern auch Informationen. Der Controller möchte den Zustand der Batterie kennen, das Display die Geschwindigkeit und die Temperaturen, ein zweiter Controller die Sollwerte des ersten. Die am weitesten verbreitete Methode dafür stammt aus der Automobilindustrie: der CAN-Bus. Dieser Leitfaden erklärt, wie er funktioniert und wie man ihn fehlerfrei verkabelt.

Das Wichtigste

  • Der CAN-Bus verbindet mehrere Geräte über ein einziges, verdrehtes Kabelpaar, das als CAN-High und CAN-Low bezeichnet wird.
  • Es sind Widerstände mit einem Wert von 120 Ohm an beiden Enden des Busses erforderlich, und zwar nur an den Enden.
  • Jede Nachricht hat eine eindeutige Kennung, die gleichzeitig als Priorität dient: Die wichtigsten Nachrichten werden immer zuerst verarbeitet.
  • Alle Geräte müssen dieselbe Kommunikationsgeschwindigkeit verwenden.

Ein Bus, keine Verbindung

Eine klassische serielle Verbindung verbindet zwei Geräte. Der CAN-Bus hingegen ist ein Bus: alle Geräte sind an die gleichen zwei Leitungen angeschlossen, und jedes Gerät kann mit jedem anderen kommunizieren. Um ein Gerät hinzuzufügen, wird es einfach an den Bus angeschlossen, ohne ein neues Kabel zum Controller verlegen zu müssen. Dies hat seine weit verbreitete Anwendung in der Automobilindustrie ermöglicht, wo Dutzende von Steuergeräten nur wenige Kabelpaare gemeinsam nutzen.

Bei einem Leichtfahrzeug findet man typischerweise einen oder mehrere Controller, das Batteriemanagementsystem (BMS), ein Display, ein Telemetriemodul oder ein Ladegerät.

Zwei Drähte, ein Unterschied

Der CAN-Bus verwendet ein Paar von Leitungen, CAN-High und CAN-Low. Die Information wird nicht durch die Spannung eines einzelnen Leiters bezüglich der Masse übertragen, sondern durch die Differenz zwischen den beiden:

  • Im Ruhezustand (wobei "recessiv" bedeutet, dass der Zustand aktiv gesetzt werden muss), haben beide Leitungen die gleiche Spannung, etwa die Hälfte der Versorgungsspannung des Stromkreises;
  • Um einen "dominanten" Bit-Wert zu senden, trennt der Sender die beiden Drähte: der obere Draht steigt an, der untere Draht fällt ab.

Eine elektrische Störung, wie sie beispielsweise von einem Controller verursacht wird, der Hunderte von Ampere liefert, beeinflusst beide Leitungen auf die gleiche Weise. Ihr Unterschied bleibt jedoch erhalten. Das macht CAN so robust in einer elektrisch stark frequentierten Umgebung, vorausgesetzt, die beiden Leitungen sind miteinander verdrillt.

Die Abschlusswiderstände

Ein CAN-Bus muss an jedem seiner beiden physikalischen Enden einen Widerstand von 120 Ohm zwischen den Leitungen CAN High und CAN Low aufweisen. Diese Widerstände verhindern, dass Signale am Kabelende reflektiert werden, und bringen den Bus in den Ruhezustand.

  • Der Bus ist korrekt verbunden: Bei Messung zwischen CAN High und CAN Low, wobei die Geräte ausgeschaltet sind, werden etwa 60 Ohm gemessen (was dem Parallelverhalten von zwei Widerständen mit je 120 Ohm entspricht).
  • Ungefähr 120 Ohm: Es fehlt eine Abschlusswiderstand.
  • Ein Wert, der deutlich unter 60 Ohm liegt: Das deutet auf zu viele aktivierte Endpunkte hin, was oft darauf zurückzuführen ist, dass mehrere Geräte gleichzeitig aktiv sind.

Eine fehlende oder überflüssige Verbindung ist die häufigste Ursache für eine instabile Kommunikation.

Identifikatoren und Priorität

Jede CAN-Nachricht enthält eine Kennung, eine Nummer, die angibt, worum es in der Nachricht geht (z. B. "Batteriezustand" oder "Sollwert des vorderen Motors"). Die Geräte lesen alle Nachrichten und behalten nur diejenigen, die für sie relevant sind.

Wenn zwei Geräte gleichzeitig zu senden beginnen, vergleichen sie ihre Identifikatoren bitweise über den gleichen Draht. Ein dominanter Bitwert überschreibt einen rezessiven Bitwert: Das Gerät, das einen rezessiven Bitwert sendet und einen dominanten Bitwert empfängt, erkennt, dass es verloren hat, und verstummt. Der kleinste Identifikator gewinnt immer, ohne dass eine Nachricht beschädigt wird. Dies wird als Arbitration bezeichnet: Nachrichten mit hoher Priorität erhalten die kleinsten Identifikatoren.

Integrierte Zuverlässigkeit

  • Jede Nachricht enthält einen Prüfcode: Beschädigte Nachrichten werden erkannt und erneut gesendet.
  • Jeder Empfänger bestätigt den erfolgreichen Empfang mit einem Bestätigungsbit.
  • Ein Gerät, das wiederholt Fehler verursacht, zieht sich automatisch aus dem System zurück, um zu verhindern, dass der gesamte Datenbus blockiert wird.

Die Busgeschwindigkeit

Alle Geräte in einem Bus müssen die gleiche Übertragungsgeschwindigkeit verwenden. Die gebräuchlichsten Werte sind 250 und 500 Kilobit pro Sekunde, manchmal auch 1 Megabit. Je schneller der Bus ist, desto kürzer ist seine maximale Länge. Bei einem leichten Fahrzeug, mit einer Länge von wenigen Metern, stellt die Länge jedoch normalerweise keine Einschränkung dar. Eine neuere Version, CAN FD, überträgt mehr Daten pro Nachricht bei höherer Geschwindigkeit.

Beispiel: zwei verbundene Steuergeräte

Bei einem Elektroroller mit zwei Motoren verhalten sich zwei über CAN verbundene Steuergeräte wie ein einziges: Das Steuergerät, das das Gaspedal empfängt, leitet den Befehl an das andere weiter, und eine einzige Software zur Einstellung sieht beide. Dies gilt für die VESC-Steuergeräte, die in unserem Leitfaden "VESC einfach erklärt" vorgestellt werden.

Werkstatt-Tipp.

Verbinden Sie immer gleichzeitig die CAN-High- und CAN-Low-Leitungen, halten Sie sie von den Phasenleitungen fern und überprüfen Sie den Widerstand von 60 Ohm mit einem Multimeter, bevor Sie das Gerät einschalten. Fünf Minuten Überprüfung können Stunden der Fehlersuche bei intermittierenden Kommunikationsproblemen ersparen.

Häufig gestellte Fragen

Transportiert der CAN-Bus Strom, um Geräte zu betreiben?

Nein, das CAN-Interface überträgt nur Informationen. Die Geräte haben ihre eigene Stromversorgung, die manchmal über andere Leitungen des gleichen Kabels erfolgt.

Warum funktioniert meine CAN-Kommunikation nur zeitweise?

Die häufigsten Ursachen sind fehlende oder überzählige Anschlüsse, nicht verdrehte Kabel, die sich in der Nähe von Stromkabeln befinden, ein defekter Stecker oder zwei Geräte, die nicht die gleiche Bussgeschwindigkeit haben.

Kann man jedes beliebige CAN-Gerät miteinander verbinden?

Elektrisch gesehen, ja, wenn sie die gleiche Bussgeschwindigkeit verwenden. Aber damit sie miteinander kommunizieren können, müssen sie die gleiche "Sprache" sprechen: dieselben Identifikatoren und denselben Inhalt in den Nachrichten. Zwei verschiedene Marken können nicht ohne Anpassung miteinander kommunizieren.