CAN-Frame-Aufbau: was auf dem Bus übertragen wird
Felder, Arbitration, CRC und ACK — ein klassischer CAN-Datenframe von SOF bis EOF.
Aktualisiert am 2026-11-05
Ein Controller Area Network ist ein Broadcast-Bus. Alle Knoten hängen am selben verdrillten Adernpaar CAN_H und CAN_L; eine Adressierung im klassischen Sinn gibt es nicht, denn jedes Frame ist für jeden Knoten sichtbar und jeder Empfänger entscheidet lokal, ob die Identifier für ihn relevant ist. Der Bus kennt zwei Zustände: dominant (logisch 0, differenzielle Spannung) und rezessiv (logisch 1, keine differenzielle Ansteuerung). Ein dominantes Bit überdeckt immer ein rezessives — darauf beruhen sowohl die Arbitration als auch die Bestätigung. Typisch sind 120 Ohm Abschlusswiderstände an beiden Enden; klassisches CAN läuft je nach Leitungslänge zwischen 125 kbit/s und 1 Mbit/s.
Ein Datenframe beginnt mit einem einzelnen dominanten SOF-Bit, das alle Empfänger synchronisiert. Es folgt das Arbitration-Feld mit einer 11-Bit-Identifier (bei Extended Frames 29 Bit, aufgeteilt in Basis-ID und Erweiterung) sowie dem RTR-Bit, das Daten- und Remote-Frame unterscheidet. Das Control-Feld trägt IDE, ein reserviertes Bit und den DLC, den Datenlängencode. Bei klassischem CAN kodiert der DLC direkt 0 bis 8 Nutzdatenbytes; CAN FD nutzt dasselbe Feld als Index in eine Tabelle bis 64 Byte. Bit-Stuffing fügt nach fünf gleichen Bits ein inverses Bit ein, damit die Empfängertakte synchron bleiben; es gilt von SOF bis zum Ende der CRC-Sequenz.
Ein Frame von SOF bis EOF
Auf die Nutzdaten folgen eine 15-Bit-CRC (17 Bit bei CAN FD), ein rezessives CRC-Delimiter und der ACK-Slot. Der Sender sendet den ACK-Slot rezessiv; jeder Knoten, der das Frame korrekt empfangen hat, zieht ihn dominant. Der Sender weiß damit, dass mindestens ein Empfänger das Frame verstanden hat, ohne zu wissen welcher. EOF besteht aus sieben rezessiven Bits, danach folgt eine kurze Intermission vor dem nächsten Frame. Senden zwei Knoten gleichzeitig, beobachten beide beim Senden ihrer Identifier den Bus: Die erste Stelle, an der einer rezessiv und der andere dominant sendet, entscheidet; der Verlierer wird sofort zum Empfänger. Diese zerstörungsfreie Arbitration lässt das gewinnende Frame intakt, es geht keine Bandbreite durch Kollisionen verloren.
Fehler werden in Hardware behandelt. Ein Knoten, der Bit-, Stuff-, CRC- oder Formfehler erkennt, sendet ein Error-Frame und erhöht seine Zähler; wiederholte Probleme führen von error-active über error-passive bis bus-off. Deshalb wirkt ein fehlender Abschlusswiderstand oder eine falsche Baudrate oft wie 'zufällig fehlende Botschaften' statt wie ein klarer Ausfall. Das Frame selbst enthält keine Namen, Einheiten oder Skalierung — nur eine Identifier und bis zu acht Rohbytes. Genau diese Bytes in physikalische Werte zu übersetzen ist Aufgabe einer DBC-Datenbank und Thema des nächsten Artikels.
Felder im Überblick
- SOF — ein dominantes Bit, Framebeginn und harte Synchronisation
- Arbitration — 11- oder 29-Bit-Identifier plus RTR; die kleinste Identifier gewinnt
- Control — IDE, reserviertes Bit, DLC (0–8 Byte bei klassischem CAN)
- Data — die Rohbytes, deren Bedeutung die DBC beschreibt
- CRC — 15-Bit-Prüfsumme plus Delimiter
- ACK — Empfänger ziehen den Slot dominant; EOF und Intermission schließen das Frame
Die Felder eines klassischen CAN-Datenframes schrittweise ansehen
Von Rohbytes zu Signalen
ID 0x1F0 DLC 8 DATA 12 34 00 7A 00 00 00 00
^^^^ DBC-SG_-Zeilen legen fest, welches Bit was bedeutetIn der Praxis dekodiert man Frames kaum von Hand. Man lädt eine DBC-Datei, wählt die zur Identifier passende Botschaft und lässt das Werkzeug Startbit, Länge, Byte-Reihenfolge, Vorzeichen, Faktor und Offset auf jedes Signal anwenden. Den Frame-Aufbau zu kennen lohnt trotzdem: Er erklärt, warum eine falsche Baudrate gar keine Frames liefert, warum 8 Byte bei klassischem CAN eine harte Grenze sind und warum zwei überlappende Signale in derselben Botschaft dem Bus nicht auffallen. Das Werkzeug kann nur zeigen, was die Datenbank beschreibt; einen fachlichen Fehler in der Beschreibung erkennt es nicht.
Im Betrachter ausprobieren
Öffnen Sie eine Beispieldatei oder ziehen Sie Ihre eigene DBC-/A2L-Datei hinein. Die Auswertung läuft vollständig im Browser, es wird nichts hochgeladen.
Betrachter öffnenHäufige Fragen
Gewinnt immer die kleinste Identifier?
Bei Standard-Datenframes ja: dominante Bits überdecken rezessive, daher gewinnt die numerisch kleinste Identifier die Arbitration.
Ist der DLC die Byteanzahl?
Bei klassischem CAN entspricht der DLC 0–8 Byte. Bei CAN FD ist er ein Code für bis zu 64 Byte Nutzdaten.