CAN FD Protocol Differences
Why CAN FD Was Created
By the early 2010s, CAN 2.0B hit two limits:
- Bandwidth: 1 Mbit/s with 8-byte payloads insufficient for BSW updates, OTA, diagnostics, SecOC
- Payload size: 8 bytes forced excessive ISO-TP segmentation for 12–64 byte payloads
Key Differences
| Feature | CAN 2.0B | CAN FD |
|---|---|---|
| Max data payload | 8 bytes | 64 bytes |
| Bit rate (arbitration) | Up to 1 Mbit/s | Up to 1 Mbit/s (same) |
| Bit rate (data phase) | Same as arbitration | Up to 8 Mbit/s |
| DLC values > 8 | Treated as 8 | Map to 12, 16, 20, 24, 32, 48, 64 bytes |
| CRC polynomial | 15-bit | 17-bit or 21-bit |
| FDF bit | Not present | Distinguishes FD from classic |
| BRS bit | Not present | Triggers bit rate switch |
| Backward compatibility | — | FD nodes can receive classic; classic cannot decode FD |
Key Concept: CAN FD uses dual bit rates. Arbitration runs at classic speed (500 kbit/s) so all nodes can participate. After the BRS bit, data phase switches to higher rate (2–5 Mbit/s). After CRC, it switches back.
Migration Considerations
- Hardware: All transceivers must be CAN FD capable (TJA1043, not TJA1050)
- MCU: CAN controller must support FD (MCAN, FlexCAN). Most 2018+ MCUs include this.
- Wiring: Existing cable works up to 2 Mbit/s. 5 Mbit/s+ tightens topology constraints.
- Software: CAN drivers need 64-byte buffers. DBC files need updating. ISO-TP may become unnecessary for many transfers.
Common Mistake: You cannot mix classic CAN and CAN FD transmissions on the same bus. A classic node interprets the FDF bit as a form error and sends an Error Frame. Migration must be all-or-nothing per bus segment.