CAN FD (Flexible Data-Rate)
CAN FD is an extension of the classical CAN protocol developed by Robert Bosch GmbH and standardised in ISO 11898-1:2015. It increases the maximum payload from 8 to 64 bytes per frame and introduces a dual bit-rate mechanism: the arbitration phase runs at the nominal CAN rate while the data phase can switch to a higher rate (up to 5–8 Mbps), dramatically increasing effective throughput while maintaining full backward compatibility with existing CAN infrastructure.
📌 CAN FD Key Features
- Flexible Data Rate: Bit Rate Switch (BRS) enables faster transmission during the data phase
- Extended Payload: Up to 64 bytes per frame (vs 8 bytes in classic CAN)
- Dual Bit Rate: Arbitration at nominal rate, data at up to 5–8 Mbps
- Improved CRC: 17-bit CRC for ≤16 bytes, 21-bit CRC for >16 bytes, with fixed stuff bits
- Stuff Bit Count: Grey-coded stuff bit counter adds an extra error detection layer
- Backward Compatible: CAN FD controllers coexist with classic CAN 2.0 nodes on the same bus
- FDF Bit: Replaces the reserved bit in classic CAN to indicate FD frame format
🔄 CAN FD Timing Waveform
🔧 JSON Editor
📖 CAN FD Frame Transmission Sequence
📏 CAN FD DLC Encoding
| DLC Code | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bytes | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 16 | 20 | 24 | 32 | 48 | 64 |
⚡ CAN FD vs Classic CAN Comparison
| Feature | Classic CAN (2.0) | CAN FD |
|---|---|---|
| Max Payload | 8 bytes | 64 bytes |
| Max Data Rate | 1 Mbps | 5–8 Mbps (data phase) |
| Bit Rate Switch | No | Yes (BRS bit) |
| CRC | 15-bit | 17-bit or 21-bit + fixed stuff bits |
| Stuff Bit Count | No | Yes (grey-coded, 4-bit + parity) |
| Frame Indicator | r0 = 0 (reserved dominant) | FDF = 1 (recessive) |
| Error State | Not signalled in frame | ESI bit indicates error-active/passive |
| DLC Range | 0–8 | 0–8, 12, 16, 20, 24, 32, 48, 64 |
| Standard | ISO 11898-1:2003 | ISO 11898-1:2015 |
🔧 CAN FD Control Bits
| Bit | Name | Value | Description |
|---|---|---|---|
| FDF | Flexible Data-rate Format | 1 (recessive) | Distinguishes CAN FD from classic CAN (where r0 = 0) |
| BRS | Bit Rate Switch | 0 or 1 | 0 = nominal rate throughout; 1 = switch to fast rate for data phase |
| ESI | Error State Indicator | 0 or 1 | 0 = error active; 1 = error passive |
| RRS | Remote Request Substitution | 0 (dominant) | Replaces RTR — remote frames are not supported in CAN FD |
⏱️ CAN FD Bit Rate Phases
🚀 CAN FD Throughput Advantage
CAN: 8 bytes
CAN FD: 64 bytes
8× more data per frame
CAN: 1 Mbps
CAN FD: 5–8 Mbps
5–8× faster data phase
CAN: ~0.5 Mbps
CAN FD: ~4 Mbps
Up to 8× improvement
CAN: 15-bit CRC
CAN FD: 17/21-bit CRC
+ Stuff bit count