CAN-Bus: Bitübertragung, Arbitrierung, Telegramm, Fehlerbehandlung und Messung

https://bildung.social/@oerinformatik/

https://oer-informatik.de/can-bus

CAN-Bus, CAN_H, Abschlusswiderstand, dominant, rezessiv, Arbitrierung, Identifier, Bitstuffing, CRC, Fehlerzähler, CAN FD, CAN XL

tl/dr; (ca. 22 min Lesezeit): Im Auto, in der Medizintechnik und in vielen Maschinen tauschen Steuergeräte ihre Daten über den CAN-Bus aus. Dieser Artikel zeigt Schritt für Schritt, wie die Linie mit zwei Abschlusswiderständen aufgebaut ist, wie dominante und rezessive Pegel als Differenzsignal entstehen, wie die bitweise Arbitrierung über den Identifier ohne Datenverlust entscheidet, wie ein Classical-CAN-Telegramm aufgebaut ist, wie CRC, Bitstuffing, Bestätigung und Fehlerzähler Fehler erkennen und eingrenzen, wie Bitrate und Leitungslänge zusammenhängen, wie Du am Bus misst und was CAN FD und CAN XL ändern [AI-Assisted]. (Zuletzt geändert am 11.11.2026)

Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.

Dieser Artikel baut auf der Kann-Liste des Artikels Datenübertragung auf.

Als Bussystem-Grundlagen kann ich nach Durchlesen des Artikels…

  • … die asynchrone serielle Übertragung (UART) von SPI und CAN nach Leitungen, Takt, Teilnehmerzahl und Adressierung unterscheiden.

  • … Einsatzbereiche des CAN-Busses nennen.

  • … den Aufbau eines CAN-Busses mit Linienstruktur, Abschlusswiderständen, differenziellen Signalen CAN_H/CAN_L, dominantem und rezessivem Pegel sowie Transceiver beschreiben.

  • … die bitweise Arbitrierung über den Identifier erklären und den Gewinner der Arbitrierung bestimmen.

  • … den Aufbau eines Classical-CAN-Datentelegramms erklären und seine Länge berechnen.

  • … Fehlererkennung und Fehlerbehandlung (CRC, Bitstuffing, Bestätigung, Fehlerzähler) beschreiben.

  • … den Zusammenhang zwischen Bitrate und Leitungslänge begründen.

Darüber hinaus kann ich als Bussystem-Expertenwissen…

  • … Messungen am Bus (Abschlusswiderstand, Pegel, Oszillogramm) auswerten und daraus Fehler eingrenzen.

  • … Classical CAN, CAN FD und CAN XL nach Datenrate und Nutzdatenlänge unterscheiden.

Ein modernes Auto hat Dutzende Steuergeräte: Motor, Bremsen, Lenkung, Airbag, Klimaanlage, Kombiinstrument. Würde man jedes mit jedem einzeln verdrahten, bräuchte man Kilometer an Kabel. Stattdessen hängen alle an einem gemeinsamen Leitungspaar und schicken sich kurze Nachrichten: dem CAN-Bus (Controller Area Network). Bosch hat ihn in den 1980er-Jahren für Fahrzeuge entwickelt; genormt ist er in der Reihe ISO 11898 (Teil 1: Sicherungsschicht, Teil 2: High-Speed-Bitübertragung).

Das folgende Bild zeigt den Aufbau, an dem sich dieser Artikel entlanghangelt: Steuergeräte mit Mikrocontroller, CAN-Controller und Transceiver, die über zwei verdrillte Adern CAN_H und CAN_L verbunden sind, und an beiden Enden ein Abschlusswiderstand.

CAN-Bus als Linie mit vier Steuergeräten, je Gerät Mikrocontroller mit CAN-Controller und Transceiver, Adern CAN_H und CAN_L und zwei Abschlusswiderständen von 120 Ohm, die zusammen 60 Ohm ergeben (mit KI erstellt)

Zum Üben gibt es einen eigenen Artikel mit Aufgaben und einblendbaren Beispiellösungen: Übungsaufgaben zum CAN-Bus.

Schritt 1: Wo CAN eingesetzt wird und wie er sich einordnet

CAN ist für Umgebungen gebaut, in denen viele Teilnehmer kurze Nachrichten zuverlässig und in vorhersagbarer Zeit austauschen müssen und in denen es elektrisch „laut“ ist:

  • Fahrzeuge: Antrieb, Fahrwerk, Karosserie und Diagnose (OBD-Anschluss); in Nutzfahrzeugen und Landmaschinen mit dem Protokoll SAE J1939 bzw. ISOBUS.

  • Automatisierungstechnik: Antriebsregler, Ein-/Ausgabebaugruppen, Drehgeber und Sensoren, meist mit dem Anwendungsprotokoll CANopen (CiA 301), das festlegt, wie Geräte konfiguriert werden und Prozessdaten austauschen. Wie sich Feldbusse mit Master-Slave-Verfahren davon unterscheiden, zeigt der Artikel Feldbusse und Aktorik.

  • Medizin- und Labortechnik: Patiententische, Röntgen- und Laborautomaten, Infusionssysteme, in denen mehrere Antriebe und Sensoren sicher zusammenarbeiten.

  • Weitere Bereiche: Aufzüge, Schienenfahrzeuge, Schiffe, E-Bikes, Batteriespeicher und Ladesäulen.

Gegenüber den Schnittstellen, die Du vom Mikrocontroller kennst, hat CAN eine Sonderstellung: Er ist ein echter Multi-Master-Bus. Jeder Teilnehmer darf senden, sobald der Bus frei ist, und eine Nachricht trägt keine Empfängeradresse, sondern einen Identifier, der sagt, was sie enthält.

Merkmal UART (z. B. RS-232) SPI CAN
Leitungen TX, RX, GND (ggf. Handshake) SCLK, MOSI, MISO, CS je Slave, GND CAN_H, CAN_L (ggf. GND)
Takt asynchron, Start- und Stoppbit synchron, Takt vom Master asynchron, Synchronisierung an Flanken
Teilnehmer 2 (Punkt-zu-Punkt) 1 Master, mehrere Slaves viele gleichberechtigte Knoten
Adressierung keine Chip-Select-Leitung Identifier (Nachrichteninhalt und Priorität)
Signal massebezogen massebezogen, nur auf der Platine differenziell, für Leitungen bis einige 100 m
Fehlersicherung optional Paritätsbit keine CRC, Bestätigung, Fehlerzähler

Die Grundlagen der seriellen Übertragung, von Baudrate und Paritätsbit bis zur differenziellen Leitung, stehen im Artikel Datenübertragung. Wie sich CAN vom Zweidrahtbus RS-485 und von der Punkt-zu-Punkt-Verbindung UART und RS-232 abgrenzt, zeigen diese beiden Artikel.

Schritt 2: Linie, Abschluss und Differenzsignal

Linientopologie mit zwei Abschlusswiderständen

Alle Knoten hängen an einer Linie aus einer verdrillten Doppelader. Die Abzweige zu den Geräten (Stichleitungen) bleiben kurz, bei 500 kbit/s typischerweise unter 0,3 m. Stern- oder Baumstrukturen sind bei hohen Bitraten nicht zulässig, weil an jedem Abzweig Reflexionen entstehen.

An beiden Enden der Linie sitzt ein Abschlusswiderstand von 120 Ω zwischen CAN_H und CAN_L. Er hat zwei Aufgaben:

  • Er entspricht dem Wellenwiderstand der Leitung (etwa 120 Ω) und verhindert, dass Signale am Leitungsende reflektiert werden.

  • Er zieht die beiden Adern nach jedem dominanten Bit schnell wieder auf gleiche Spannung zusammen; ohne Abschluss würde der rezessive Pegel nur langsam erreicht.

Weil beide Widerstände parallel liegen, misst Du zwischen CAN_H und CAN_L bei abgeschaltetem Bus

R_\mathrm{ges} = \frac{R_1 \cdot R_2}{R_1 + R_2} = \frac{120\ \Omega \cdot 120\ \Omega}{120\ \Omega + 120\ \Omega} = 60\ \Omega

Darauf baut die Fehlersuche in Schritt 7 auf.

Dominanter und rezessiver Pegel

Der Bus kennt zwei Zustände:

  • Rezessiv (logisch 1): Kein Transceiver treibt. Beide Adern liegen über die Abschlusswiderstände auf etwa 2,5 V, die Differenzspannung U_\mathrm{diff} = U_\mathrm{CAN\_H} - U_\mathrm{CAN\_L} ist etwa 0 V.

  • Dominant (logisch 0): Mindestens ein Transceiver treibt CAN_H auf etwa 3,5 V und CAN_L auf etwa 1,5 V; U_\mathrm{diff} ist etwa 2 V.

Der Empfänger wertet nur die Differenz aus: Unter 0,5 V erkennt er rezessiv, über 0,9 V dominant. Eine Störung, die beide Adern gleich anhebt (Gleichtaktstörung), ändert die Differenz nicht. Das ist der Grund für die hohe Störfestigkeit.

Spannungsverläufe von CAN_H und CAN_L gegen Masse für zehn Bitzeiten: rezessiv beide 2,5 V, dominant CAN_H 3,5 V und CAN_L 1,5 V; darunter die Differenzspannung von 0 V bzw. 2 V mit dem Schwellbereich 0,5 bis 0,9 V und den logischen Werten (mit KI erstellt)

Wichtig für alles Weitere: Senden ein Knoten rezessiv und ein anderer gleichzeitig dominant, setzt sich dominant durch. Der Bus verhält sich wie ein UND-Gatter über alle Sender (wired-AND): Nur wenn alle eine 1 senden, liegt eine 1 auf dem Bus.

Transceiver und CAN-Controller

Jeder Knoten besteht aus drei Teilen:

  • dem Mikrocontroller mit der Anwendung,

  • dem CAN-Controller, der Telegramme zusammensetzt, Bitstuffing, CRC und Fehlerzähler erledigt und eingehende Nachrichten nach Identifier filtert (in vielen Mikrocontrollern eingebaut, sonst als eigener Baustein, z. B. über SPI angebunden),

  • dem Transceiver, der die Logikpegel TXD/RXD des Controllers in das Differenzsignal umsetzt und zurück. Er liest beim Senden ständig mit, sodass der Controller jedes eigene Bit auf dem Bus vergleichen kann.

Schritt 3: Identifier und bitweise Arbitrierung

Jedes Telegramm beginnt mit einem Identifier (im Basisformat 11 Bit, im erweiterten Format 29 Bit). Er hat zwei Aufgaben: Er kennzeichnet den Inhalt (z. B. „Raddrehzahlen“) und legt die Priorität fest. Ein Identifier darf im Netz nur von einem Knoten gesendet werden.

Wollen mehrere Knoten gleichzeitig senden, beginnen sie alle mit dem Startbit und senden dann ihren Identifier Bit für Bit, höchstwertiges Bit zuerst. Jeder Knoten liest dabei mit:

  • Liest er, was er gesendet hat, macht er weiter.

  • Hat er rezessiv (1) gesendet, liest aber dominant (0), hat ein anderer Knoten einen kleineren Identifier. Er hört sofort auf zu senden, wird Empfänger und versucht es nach dem Telegramm erneut.

Das Bild zeigt drei Knoten, die gleichzeitig beginnen. Knoten C steigt bei ID8 aus, Knoten A bei ID2; Knoten B mit dem kleinsten Identifier sendet weiter, als wäre nichts gewesen.

Bitweise Arbitrierung dreier Knoten mit den Identifiern 0x2B4, 0x2B1 und 0x31F: Knoten C verliert bei ID8, Knoten A bei ID2, Knoten B gewinnt; unten der resultierende Buspegel (mit KI erstellt)

Daraus folgen die wichtigsten Eigenschaften:

  • Kleinerer Identifier = höhere Priorität. 0x000 setzt sich gegen alle anderen durch.

  • Kein Datenverlust: Die Nachricht des Gewinners wird nicht zerstört, es geht keine Buszeit verloren. Man spricht von zerstörungsfreier Arbitrierung (Zugriffsverfahren CSMA/CR, Collision Resolution).

  • Vorhersagbare Latenz für hochpriore Nachrichten: Sie warten höchstens, bis ein laufendes Telegramm fertig ist. Niedrig priorisierte Nachrichten können bei hoher Buslast dagegen lange warten.

Den Gewinner bestimmst Du, indem Du die Identifier binär untereinanderschreibst und von links vergleichst: An der ersten Stelle, an der sie sich unterscheiden, gewinnt die 0.

Schritt 4: Das Classical-CAN-Datentelegramm

Ein Datentelegramm (Data Frame) im Basisformat besteht aus diesen Feldern:

Feld Bit Aufgabe
SOF (Start of Frame) 1 dominantes Startbit, synchronisiert alle Knoten
Identifier 11 Inhalt und Priorität (Arbitrierung)
RTR 1 dominant = Datentelegramm, rezessiv = Anforderungstelegramm (Remote Frame)
IDE 1 dominant = Basisformat (11 Bit), rezessiv = erweitertes Format (29 Bit)
r0 1 reserviert
DLC (Data Length Code) 4 Anzahl der Datenbytes, 0 … 8
Daten 0 … 64 0 bis 8 Byte Nutzdaten
CRC 15 Prüfsumme über SOF bis Daten
CRC-Delimiter 1 rezessiv
ACK-Slot 1 Sender sendet rezessiv, jeder Empfänger, der fehlerfrei empfangen hat, dominant
ACK-Delimiter 1 rezessiv
EOF (End of Frame) 7 sieben rezessive Bits
IFS (Interframe Space) 3 Mindestpause vor dem nächsten Telegramm
Classical-CAN-Datentelegramm im Basisformat mit zwei Datenbytes: SOF, Identifier, RTR, IDE, r0, DLC, Daten, CRC, Delimiter, ACK, Delimiter, EOF und IFS mit ihren Bitlängen; Bitstuffing gilt von SOF bis CRC (mit KI erstellt)

Länge eines Telegramms

Ohne Stuffbits zählt ein Telegramm im Basisformat 44\ \mathrm{Bit} + 8\ \mathrm{Bit} je Datenbyte, dazu kommen 3 Bit Pause. Für 4 Datenbytes bei 250 kbit/s:

n = 44\ \mathrm{Bit} + 4 \cdot 8\ \mathrm{Bit} + 3\ \mathrm{Bit} = 79\ \mathrm{Bit} \qquad t = \frac{n}{v_\mathrm{D}} = \frac{79\ \mathrm{Bit}}{250\,000\ \mathrm{Bit/s}} = 316\ \mu\mathrm{s}

Von den 79 Bit sind nur 32 Bit Nutzdaten, also rund 41 %. Der Aufwand für Identifier, Prüfsumme und Bestätigung lohnt sich, weil jede Nachricht für sich gesichert ist.

Bitstuffing

CAN überträgt keinen Takt. Die Empfänger synchronisieren sich an den Flanken von rezessiv nach dominant. Damit lange Folgen gleicher Bits nicht zu wenig Flanken liefern, fügt der Sender nach fünf gleichen Bits ein Bit mit umgekehrtem Pegel ein (Stuffbit). Der Empfänger entfernt es wieder. Das gilt von SOF bis zum Ende der CRC-Sequenz; das eingefügte Bit zählt bereits zur nächsten Folge gleicher Bits.

Beispiel: SOF, Identifier 0x7F0 (111 1111 0000), RTR, IDE und r0:

gesendet:  0 11111 11 0000 000
auf Bus:   0 11111 [0] 11 0000 0 [1] 00

Die Stuffbits in eckigen Klammern verlängern das Telegramm. Im ungünstigsten Fall kommt auf je vier Bit ab dem zweiten ein Stuffbit; ein Telegramm mit 8 Datenbytes wächst so von 111 auf bis zu 135 Bit. Sechs gleiche Bits hintereinander kommen im gestopften Bereich nie vor; genau das nutzt die Fehlererkennung.

Schritt 5: Fehler erkennen und behandeln

Fünf Mechanismen der Fehlererkennung

Jeder Knoten prüft jedes Telegramm, auch wenn er es gar nicht braucht:

Mechanismus wer prüft was erkannt wird
Bitüberwachung (Bit Monitoring) Sender gesendetes und gelesenes Bit weichen außerhalb der Arbitrierung und des ACK-Slots voneinander ab
Stuff-Prüfung alle sechs gleiche Bits im gestopften Bereich
CRC-Prüfung Empfänger selbst berechnete Prüfsumme weicht von der empfangenen ab
Formprüfung alle ein Bit mit festem Pegel (Delimiter, EOF) hat den falschen Wert
Bestätigungsprüfung (ACK) Sender im ACK-Slot bleibt der Bus rezessiv, kein Knoten hat das Telegramm fehlerfrei empfangen

Die Kombination erkennt praktisch alle Übertragungsfehler; die Restfehlerwahrscheinlichkeit ist so klein, dass sie im Fahrzeugleben keine Rolle spielt.

Fehlertelegramm und Wiederholung

Erkennt ein Knoten einen Fehler, sendet er sofort ein Fehlertelegramm (Error Frame): sechs dominante Bits. Damit verletzt er absichtlich die Stuff-Regel, sodass alle anderen Knoten den Fehler ebenfalls bemerken und das Telegramm verwerfen. Der Sender wiederholt die Nachricht automatisch. So haben alle Knoten immer denselben Datenstand (Datenkonsistenz).

Fehlerzähler und Fehlerzustände

Ein defekter Knoten dürfte den Bus nicht mit ständigen Fehlertelegrammen lahmlegen. Deshalb führt jeder Controller zwei Zähler: den Sendefehlerzähler TEC und den Empfangsfehlerzähler REC. Ein Sendefehler erhöht den TEC um 8, ein erfolgreich gesendetes Telegramm verringert ihn um 1; beim REC sind es (vereinfacht) +1 und −1. Weil Fehler stärker zählen als Erfolge, steigen die Zähler nur bei einem Knoten, der häufig an Fehlern beteiligt ist.

Zustandsübergänge eines CAN-Knotens: fehleraktiv bei TEC und REC bis 127, fehlerpassiv ab über 127, bus-off ab TEC über 255, Neustart nach 128 mal 11 rezessiven Bits (mit KI erstellt)
  • Fehleraktiv (Normalzustand): Der Knoten meldet Fehler mit sechs dominanten Bits und zerstört damit das fehlerhafte Telegramm für alle.

  • Fehlerpassiv (TEC oder REC über 127): Der Knoten meldet Fehler nur noch mit sechs rezessiven Bits, die die anderen nicht stören, und wartet nach eigenem Senden zusätzliche 8 Bitzeiten. Er kann den Bus also nicht mehr blockieren.

  • Bus-off (TEC über 255): Der Knoten nimmt nicht mehr am Bus teil. Er darf frühestens wieder starten, wenn er 128-mal 11 rezessive Bits erkannt hat; meist entscheidet die Software, ob und wann er neu startet.

So grenzt CAN einen fehlerhaften Teilnehmer selbstständig aus, während der Rest des Netzes weiterarbeitet.

Schritt 6: Bitrate und Leitungslänge

Bei der Arbitrierung muss jeder Knoten innerhalb einer Bitzeit das Bit des am weitesten entfernten Knotens sehen, denn er vergleicht sein gesendetes Bit mit dem Buspegel. Das Signal muss also hin und zurück über die ganze Leitung und durch zwei Transceiver laufen, bevor der Abtastzeitpunkt im Bit erreicht ist. Auf Kupferleitungen braucht das Signal etwa 5 ns je Meter.

Je höher die Bitrate, desto kürzer die Bitzeit und desto kürzer darf der Bus sein. Für Classical CAN gelten diese Richtwerte (CiA-Empfehlung):

Bitrate Bitzeit maximale Buslänge (Richtwert)
1 Mbit/s 1 µs 25 m
500 kbit/s 2 µs 100 m
250 kbit/s 4 µs 250 m
125 kbit/s 8 µs 500 m
50 kbit/s 20 µs 1000 m

Als Faustregel gilt: Bitrate mal Buslänge ist etwa konstant. Wer einen längeren Bus braucht, muss die Bitrate senken. Alle Knoten eines Netzes müssen mit derselben Bitrate arbeiten.

Schritt 7: Messen und Fehler suchen

Widerstandsmessung bei abgeschaltetem Bus

Die erste Messung bei einem gestörten CAN-Netz ist eine Widerstandsmessung zwischen CAN_H und CAN_L, bei ausgeschalteter Versorgung aller Knoten (sonst verfälschen die Transceiver die Messung):

Messwert Bedeutung
etwa 60 Ω beide Abschlusswiderstände vorhanden, Leitung durchgängig
etwa 120 Ω ein Abschluss fehlt oder die Leitung ist zwischen den Abschlüssen unterbrochen
etwa 40 Ω drei Abschlüsse parallel, z. B. ein Gerät mit eingeschaltetem internen Abschluss in der Mitte
nahe 0 Ω Kurzschluss zwischen CAN_H und CAN_L
sehr hochohmig beide Abschlüsse fehlen oder Messpunkt vom Bus getrennt

Zusätzlich lohnt die Messung von CAN_H und CAN_L gegen Masse und gegen die Versorgung: Ein sehr kleiner Wert zeigt einen Schluss nach Masse oder Plus.

Pegel und Oszillogramm

Bei laufendem Bus misst Du mit dem Multimeter im Mittel etwa 2,5 … 2,7 V an CAN_H und 2,3 … 2,5 V an CAN_L gegen Masse, je nach Buslast. Aussagekräftiger ist das Oszilloskop:

  • Kanal 1 an CAN_H, Kanal 2 an CAN_L, beide gegen Masse, gleiche Skalierung. In der Mathematikfunktion „Kanal 1 − Kanal 2“ siehst Du die Differenzspannung; alternativ misst Du direkt mit einem Differenztastkopf.

  • Ein gesundes Signal zeigt rezessiv beide Adern bei etwa 2,5 V, dominant etwa 3,5 V und 1,5 V, saubere Flanken und spiegelbildliche Verläufe.

  • Aus dem kürzesten Puls liest Du die Bitzeit ab, ihr Kehrwert ist die Bitrate.

Typische Fehlerbilder:

  • Abschluss fehlt: Überschwinger und Treppen an den Flanken (Reflexionen), langsam abfallende Flanke von dominant nach rezessiv.

  • Eine Ader unterbrochen oder nach Masse geschlossen: Eine Ader bewegt sich nicht mehr, die Differenzspannung ist zu klein oder fehlt; die Knoten melden Fehler und gehen bis bus-off.

  • CAN_H und CAN_L vertauscht an einem Knoten: Dieser Knoten sieht ein invertiertes Signal und erzeugt ständig Fehlertelegramme.

  • Falsche Bitrate an einem Knoten: Er erzeugt Fehlertelegramme, sobald er sendet oder empfängt; die Pulsbreiten seiner Bits passen nicht zu denen der anderen.

Dekodieren

Viele Oszilloskope und Logikanalysatoren dekodieren CAN-Telegramme direkt und zeigen Identifier, DLC, Daten, CRC und ACK sowie markierte Fehlertelegramme. Wie das geht und worauf Du bei der Einstellung (Bitrate, Abtastpunkt, Signalquelle CAN_H, CAN_L oder Differenz) achtest, steht im Artikel Messungen mit dem Oszilloskop im Abschnitt zu Logikanalysator und Protokolldekodierung. Für den Dauerbetrieb gibt es CAN-Schnittstellen für den PC, die alle Telegramme mit Zeitstempel aufzeichnen und die Buslast anzeigen.

Schritt 8: CAN FD, CAN XL und Ethernet im Fahrzeug

Classical CAN stößt an Grenzen, wenn größere Datenmengen fließen, z. B. bei Software-Updates über den Diagnoseanschluss oder bei Sensoren mit vielen Messwerten. Deshalb gibt es zwei Erweiterungen, beide inzwischen in ISO 11898-1:2024 beschrieben:

  • CAN FD (Flexible Data Rate): Die Arbitrierung läuft wie bisher mit der Nominalbitrate (z. B. 500 kbit/s), damit sie über die ganze Leitung funktioniert. Danach schaltet der Sender mit dem Bit BRS (Bit Rate Switch) auf eine höhere Datenbitrate um (typisch 2 bis 5 Mbit/s, mit geeigneten Transceivern bis 8 Mbit/s). Das Datenfeld fasst bis zu 64 Byte, die Prüfsumme ist länger (17 oder 21 Bit).

  • CAN XL: Datenphase mit typisch 10 Mbit/s, mit SIC-XL-Transceivern bis etwa 20 Mbit/s, und bis zu 2048 Byte Nutzdaten je Telegramm. Damit lassen sich auch Ethernet-Pakete über CAN XL transportieren.

Merkmal Classical CAN CAN FD CAN XL
Nutzdaten je Telegramm 0 … 8 Byte 0 … 64 Byte 1 … 2048 Byte
Bitrate Arbitrierung bis 1 Mbit/s bis 1 Mbit/s bis 1 Mbit/s
Bitrate Datenphase wie Arbitrierung typisch 2 … 5 Mbit/s, bis 8 Mbit/s typisch 10 Mbit/s, bis etwa 20 Mbit/s
Arbitrierung bitweise über Identifier bitweise über Identifier bitweise über Prioritäts-ID

Alle drei nutzen dieselbe Linie mit zwei Abschlusswiderständen und dieselbe bitweise Arbitrierung. Ein CAN-FD-Controller versteht auch Classical-CAN-Telegramme; ein reiner Classical-CAN-Controller erzeugt dagegen Fehlertelegramme, wenn CAN-FD-Telegramme auf dem Bus laufen.

Neben CAN wächst im Fahrzeug und in der Automatisierung Single-Pair-Ethernet. 10BASE-T1S (IEEE 802.3cg) überträgt 10 Mbit/s über ein einziges verdrilltes Adernpaar, ebenfalls als Linie mit mehreren Teilnehmern, und bindet Sensoren und Aktoren direkt an Ethernet an. Ob CAN XL oder 10BASE-T1S das Rennen macht, ist offen; im Bestand bleibt CAN noch lange. Mehr zu Single-Pair-Ethernet steht im Artikel Feldbusse und Aktorik.

Leitfragen

  1. Wodurch unterscheiden sich UART, SPI und CAN, und wo wird CAN eingesetzt?

UART verbindet zwei Geräte asynchron mit Start- und Stoppbit, SPI arbeitet synchron mit Takt vom Master und Chip-Select je Slave, CAN ist ein differenzieller Multi-Master-Bus mit Identifier statt Adresse und eingebauter Fehlersicherung. Einsatz in Fahrzeugen, Automatisierungstechnik (CANopen), Medizin- und Labortechnik. siehe Abschnitt „Schritt 1: Wo CAN eingesetzt wird und wie er sich einordnet“

  1. Wie ist ein CAN-Bus aufgebaut, und was bedeuten dominant und rezessiv?

Linie aus verdrillter Doppelader CAN_H/CAN_L mit kurzen Stichleitungen und je einem 120-Ω-Abschluss an beiden Enden. Rezessiv (1): beide Adern etwa 2,5 V, Differenz etwa 0 V. Dominant (0): CAN_H etwa 3,5 V, CAN_L etwa 1,5 V, Differenz etwa 2 V; dominant setzt sich gegen rezessiv durch. siehe Abschnitt „Schritt 2: Linie, Abschluss und Differenzsignal“

  1. Wie funktioniert die bitweise Arbitrierung, und warum geht dabei keine Nachricht verloren?

Alle Sender senden ihren Identifier und lesen mit. Wer rezessiv sendet und dominant liest, hört auf und wird Empfänger. Der kleinste Identifier gewinnt; seine Bits wurden nie verfälscht, deshalb sendet er ohne Verlust weiter. siehe Abschnitt „Schritt 3: Identifier und bitweise Arbitrierung“

  1. Wie ist ein Classical-CAN-Datentelegramm aufgebaut, und wie lang ist es?

SOF, Identifier, RTR, IDE, r0, DLC, 0 bis 8 Datenbytes, CRC mit Delimiter, ACK-Slot mit Delimiter, EOF; danach 3 Bit Pause. Ohne Stuffbits 44 Bit plus 8 Bit je Datenbyte. siehe Abschnitt „Schritt 4: Das Classical-CAN-Datentelegramm“

  1. Mit welchen Mechanismen erkennt CAN Fehler, und wie grenzt er fehlerhafte Knoten aus?

Bitüberwachung, Stuff-Prüfung, CRC, Formprüfung und Bestätigung (ACK); bei einem Fehler folgt ein Fehlertelegramm und der Sender wiederholt. Fehlerzähler TEC und REC führen von fehleraktiv über fehlerpassiv (über 127) zu bus-off (TEC über 255). siehe Abschnitt „Schritt 5: Fehler erkennen und behandeln“

  1. Warum begrenzt die Bitrate die Länge eines CAN-Busses?

Bei der Arbitrierung muss das Bit des entferntesten Knotens innerhalb einer Bitzeit hin und zurück laufen. Höhere Bitrate heißt kürzere Bitzeit und damit kürzere Leitung, z. B. etwa 100 m bei 500 kbit/s. siehe Abschnitt „Schritt 6: Bitrate und Leitungslänge“

  1. Was sagen 60 Ω, 120 Ω und 40 Ω zwischen CAN_H und CAN_L aus, und was zeigt das Oszillogramm?

60 Ω: beide Abschlüsse in Ordnung; 120 Ω: ein Abschluss fehlt oder Leitung unterbrochen; 40 Ω: ein Abschluss zu viel. Im Oszillogramm prüfst Du Pegel, Differenzspannung, Flanken (Reflexionen bei fehlendem Abschluss) und liest die Bitzeit ab. siehe Abschnitt „Schritt 7: Messen und Fehler suchen“

  1. Wie unterscheiden sich Classical CAN, CAN FD und CAN XL?

Classical CAN: bis 8 Byte, bis 1 Mbit/s. CAN FD: bis 64 Byte, höhere Datenbitrate (typisch 2 bis 5 Mbit/s). CAN XL: bis 2048 Byte, Datenphase typisch 10 Mbit/s und mehr. Die Arbitrierung läuft bei allen mit der langsamen Nominalbitrate. siehe Abschnitt „Schritt 8: CAN FD, CAN XL und Ethernet im Fahrzeug“


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “CAN-Bus: Bitübertragung, Arbitrierung, Telegramm, Fehlerbehandlung und Messung” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/can-bus veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/elektrotechnik/kommunikation. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 11.11.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: