🏁Arbitrierung: Wer darf senden?

Wollen mehrere Steuergeräte gleichzeitig senden, beginnen alle mit SOF. Danach vergleicht jeder Sender Bit für Bit, was er sendet und was er vom Bus zurückliest. CSMA/CR – „Carrier Sense Multiple Access / Collision Resolution“: Kollisionen werden aufgelöst, nicht zerstört.

🎬Bitweise Animation

IDs ändern, abspielen oder mit ← → durchsteppen. Die Tabelle zeigt pro Bit, was jeder Knoten sendet und was auf dem Bus liegt.
Motor11 Bit
sendet …
ABS11 Bit
sendet …
Tester11 Bit
sendet …
Klima11 Bit
sendet …
Schritt 1 / 15 · Tasten ← →
FeldSOFIDIDIDIDIDIDIDIDIDIDIDRTRIDES
Motor0
ABS0
Tester0
Klima0
Bus0

Bit 0 (SOF): Bus = 0 (dominant). Alle noch aktiven Sender senden dasselbe Bit – keiner merkt etwas.

🧠Die Regeln

💡 Wired-AND
Der Bus ist nur rezessiv (1), wenn alle rezessiv senden. Ein einziges dominantes Bit (0) überschreibt alles.
✅ Kleinste ID gewinnt
Die ID wird mit dem höchstwertigen Bit zuerst gesendet. Die erste Stelle, an der sich zwei IDs unterscheiden, entscheidet: 0 schlägt 1.
⚠️ Verlieren ohne Schaden
Der Verlierer hört einfach auf zu senden und empfängt den Gewinner-Frame. Er versucht es automatisch erneut, sobald der Bus frei ist.
  • Daten- vor Remote-Frame: Bei gleicher ID entscheidet das RTR-Bit – dominant (Daten) gewinnt.
  • 11 Bit vor 29 Bit: Mit gleicher Basis-ID sendet der Standard-Frame direkt nach der ID sein dominantes RTR, der Extended-Frame das rezessive SRR.
  • Stuff-Bits stören nicht: Solange alle Sender dasselbe senden, stopfen sie auch an denselben Stellen.
  • Folge für das Design: Wichtige Nachrichten (Bremse, Motor) bekommen kleine IDs. Diagnose (0x7DF, 0x7E8) liegt bewusst weit oben – sie hat niedrige Priorität.
  • Latenz: Die Nachricht mit höchster Priorität wartet höchstens einen gerade laufenden Frame ab – das macht CAN deterministisch.