← Zurück zur Übersicht

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

Ein klassischer CAN-Datenframe beginnt mit SOF, gefolgt von 11-Bit-Identifier und RTR, dann Steuerbits (IDE, r0) und DLC. Die Nutzdaten umfassen 0–8 Byte. Danach folgen 15-Bit-CRC, der ACK-Slot, in dem jeder Empfänger den Bus dominant zieht, sowie EOF und Intermission. Bei der Arbitration gewinnt die kleinste Identifier, da dominante Bits rezessive überdecken.
Ein klassischer CAN-Datenframe beginnt mit SOF, gefolgt von 11-Bit-Identifier und RTR, dann Steuerbits (IDE, r0) und DLC. Die Nutzdaten umfassen 0–8 Byte. Danach folgen 15-Bit-CRC, der ACK-Slot, in dem jeder Empfänger den Bus dominant zieht, sowie EOF und Intermission. Bei der Arbitration gewinnt die kleinste Identifier, da dominante Bits rezessive überdecken.

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 bedeutet
Hinweis: Ein DBC-Betrachter parst die Datei vollständig im Browser. Die obigen Bytes verlassen die Seite nie — wichtig, wenn die Datenbank zu einem vertraulichen Fahrzeugprojekt gehört.

In 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 öffnen

Hä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.

Verwandte Anleitungen

Welches Thema soll als Nächstes kommen? Schreiben Sie uns eine kurze E-Mail — keine Formulare, kein Tracking.

lei_xu@163.com