CAN 2.0: ... RTR IDE r0 DLC[3:0] DATA[0-64bits] CRC[15] ...
CAN-FD: ... RRS IDE FDF res BRS ESI DLC[3:0] DATA[0-512bits] CRC[17or21] ...
New bits:
FDF (FD Frame) = 1 → this is a CAN-FD frame (was reserved r1 in 2.0)
BRS (Bit Rate Switch) = 1 → data phase at higher rate; 0 = same rate as arbitration
ESI (Error State Indicator) = 0 if transmitter Error Active; 1 if Error Passive
DLC encoding extended:
DLC 9 → 12 bytes DLC 12 → 32 bytes
DLC 10 → 16 bytes DLC 13 → 48 bytes
DLC 11 → 20 bytes DLC 14 → 64 bytes
DLC 15 → 64 bytes (DLC 0-8 = same as CAN 2.0)| DLC Value | CAN 2.0 Bytes | CAN-FD Bytes |
|---|---|---|
| 0–8 | 0–8 | 0–8 (same) |
| 9 | N/A (invalid in 2.0) | 12 |
| 10 | N/A | 16 |
| 11 | N/A | 20 |
| 12 | N/A | 24 |
| 13 | N/A | 32 |
| 14 | N/A | 48 |
| 15 | N/A | 64 |