🚨Fehlerbehandlung & CAN FD
Jeder Knoten prüft jeden Frame. Findet einer einen Fehler, zerstört er den Frame per Error Flag für alle – der Sender wiederholt ihn automatisch. Damit ein defekter Knoten nicht den ganzen Bus lahmlegt, führt jeder Controller Fehlerzähler.
🧮Fehlerzähler zum Ausprobieren
Normalbetrieb. Erkennt der Knoten einen Fehler, sendet er ein aktives Error Flag (6 dominante Bits) und zerstört damit den Frame für alle.
Vereinfacht: Grundregeln +8 / +1 / −1 aus ISO 11898-1, Sonderfälle weggelassen. Ein defekter Sender schaltet sich so nach 32 Fehlversuchen selbst ab, statt den Bus dauerhaft zu stören.
Die fünf Fehlerarten
| Fehler | erkennt | Bedingung |
|---|---|---|
| Bitfehler | Sender | Der Sender liest ein anderes Bit zurück, als er gesendet hat (außerhalb der Arbitrierung und des ACK-Slots). |
| Stuff-Fehler | Empfänger | Sechs gleiche Bits hintereinander im gestopften Bereich – die Stuffing-Regel wurde verletzt. |
| CRC-Fehler | Empfänger | Die selbst berechnete CRC-15 stimmt nicht mit der empfangenen überein. |
| Formfehler | Empfänger | Ein Bit mit fester Form (CRC-Delimiter, ACK-Delimiter, EOF) ist dominant statt rezessiv. |
| ACK-Fehler | Sender | Im ACK-Slot bleibt der Bus rezessiv – niemand hat den Frame bestätigt (z. B. einziger Knoten am Bus). |
Error Frame (aktiv):
… Daten │ 000000 │ 0…000000 │ 11111111 │ Pause
│ Flag │ Echo der │ Delimiter│
│ 6 dom. │ anderen │ 8 rez. │
→ alle verwerfen den Frame, der Sender wiederholt ihn automatisch🔁Zustandsautomat
TEC > 127 oder REC > 127
┌──────────────┐ ─────────────────────► ┌───────────────┐
│ Error Active │ │ Error Passive │
│ aktive Flags │ ◄───────────────────── │ passive Flags │
└──────────────┘ TEC ≤ 127 und REC ≤ 127└───────┬───────┘
▲ │ TEC > 255
│ 128 × 11 rezessive Bits ▼
│ (Zähler auf 0) ┌───────────────┐
└──────────────────────────────────│ Bus Off │
└───────────────┘🚀CAN FD – kurz erklärt
📦 Bis 64 Byte Daten
DLC 0–8 wie bisher, darüber sind die Werte gestuft:
⚡ Bitrate umschalten (BRS)
Arbitrierung weiter langsam (z. B. 500 kbit/s), weil alle Knoten gleichzeitig mitreden. Im Datenteil darf nur noch einer senden – dort sind z. B. 2 oder 5 Mbit/s möglich.
🧾 Neue Steuerbits & CRC
FDF (statt r0, rezessiv = FD-Frame), BRS (Bitratenwechsel), ESI (Sender ist Error Passive), RTR entfällt (RRS). Längere CRCs: CRC-17 bis 16 Byte, CRC-21 darüber, dazu ein Stuff-Bit-Zähler.
CAN FD (11-Bit-ID): SOF │ ID 11 │ RRS │ IDE │ FDF │ res │ BRS │ ESI │ DLC │ Daten 0…64 B │ Stuff-Zähler │ CRC-17/21 │ ACK │ EOF ◄───── Nominal-Bitrate ─────────────────►◄──────── Daten-Bitrate (schnell) ─────────────►◄── Nominal ──►
Für OBD-II spielt CAN FD bisher kaum eine Rolle: ISO 15765-4 schreibt klassisches CAN vor, neuere Diagnosekonzepte (z. B. SAE J1979-2 mit UDS) öffnen den Weg für FD.