📊 Protocol View CAN FD Protocol

CAN FD (Flexible Data-Rate) Timing Diagram Generator

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

1
SOF (Start of Frame): A single dominant bit (logic 0) signals the start of a frame and synchronises all bus nodes
2
Arbitration Field: Contains the message identifier (11-bit or 29-bit) plus RRS bit; bitwise arbitration resolves collisions non-destructively at the nominal bit rate
3
Control Field: FDF=1 (identifies CAN FD format), reserved bit, BRS (Bit Rate Switch), ESI (Error State Indicator), and DLC (Data Length Code, 0–15 encoding 0–64 bytes)
4
Data Field: 0 to 64 bytes of payload. If BRS=1, this phase is transmitted at the faster data bit rate
5
Stuff Bit Count (SBC): 4-bit grey-coded count of stuff bits inserted in the frame, plus a parity bit, providing additional error detection
6
CRC Field: 17-bit CRC (for ≤16 data bytes) or 21-bit CRC (for >16 data bytes) with fixed stuff bits every 4 bits, followed by a recessive delimiter
7
ACK Field: Transmitter sends recessive; receivers that decoded the frame correctly drive dominant to acknowledge. Bit rate returns to nominal here
8
EOF (End of Frame): Seven consecutive recessive bits mark the end of the frame

📏 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
Note: DLC codes 0–8 map linearly to 0–8 bytes (same as classic CAN). Codes 9–15 map to the extended payload sizes unique to CAN FD.

⚡ 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

A
Arbitration Phase (Nominal Rate): SOF → Arbitration ID → RRS → IDE → FDF → res → BRS. All nodes contend at the same nominal bit rate so arbitration works correctly
B
Data Phase (Fast Rate): ESI → DLC → Data → Stuff Bit Count → CRC. If BRS=1, the transmitter switches to the higher data bit rate at the sample point of BRS
C
Return to Nominal: CRC Delimiter → ACK → EOF. The bit rate returns to nominal at the sample point of the CRC delimiter so all nodes can acknowledge

🚀 CAN FD Throughput Advantage

📦 Payload

CAN: 8 bytes
CAN FD: 64 bytes
8× more data per frame

Data Rate

CAN: 1 Mbps
CAN FD: 5–8 Mbps
5–8× faster data phase

📈 Effective Throughput

CAN: ~0.5 Mbps
CAN FD: ~4 Mbps
Up to 8× improvement

🛡️ Error Detection

CAN: 15-bit CRC
CAN FD: 17/21-bit CRC
+ Stuff bit count