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.
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.
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.
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 |
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.
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
- 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“
- 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“
- 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“
- 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“
- 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“
- 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“
- 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“
- 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“
Links und weitere Informationen
zum Üben: Übungsaufgaben zum CAN-Bus
zum Weiterlesen: Datenübertragung, Feldbusse und Aktorik, RS-485-Bus, UART und RS-232, Messungen mit dem Oszilloskop
als Nachschlagewerk: CAN in Automation (CiA): CAN-Grundlagen, Wikipedia: Controller Area Network
Normen: ISO 11898-1:2024 (Sicherungsschicht: Classical CAN, CAN FD, CAN XL), ISO 11898-2:2024 (High-Speed-Bitübertragung), IEEE 802.3cg (10BASE-T1S)
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]
