In the previous discussion, we discussed about CAN Classic. CAN FD is the improved version of CAN Classic. Therefore, a more effective approach to understanding CAN FD would be to compare it with CAN Classic.
Physical organization

The physical organization of CAN FD (Flexible Data-Rate) and classical CAN is fundamentally the same.
Nodes

The node structure for both classical CAN and CAN FD is quite similar, but the components in the node is improved.
CAN FD Node Structure:
- Microcontroller: The central processing unit that handles the logic and processing tasks.
- CAN FD Controller: Enhanced to support the extended data length (up to 64 bytes) and higher bit rates (up to 5 Mbps or more). It includes improved error detection mechanisms.
- CAN FD Transceiver: Capable of handling the higher data rates and ensuring signal integrity at these speeds.
Frames
CAN FD introduces additional fields beyond those found in CAN Classic, including FD Format Indicator (FDF), Bit Rate Switch (BRS), Error State Indicator (ESI), as well as updated fields such as Data length code (DLC), Data field.

Field name | Length (bits) | Purpose |
---|---|---|
Start-of-frame | 1 | Denotes the start of frame transmission |
Identifier | 11 | A (unique) identifier which also represents the message priority |
Stuff bit | 1 | Six consecutive bits of the same polarity (111111 or 000000) are considered an error even if we sent the correct data. Stuff bit helps avoid long sequences of identical bits, which could be misinterpreted as the errors. |
Remote Request Substitution (RRS) | 1 | Must be dominant (0) for data frames and recessive (1) for remote request frames |
Identifier extension bit (IDE) | 1 | Must be dominant (0) for base frame format with 11-bit identifiers |
FD Format Indicator (FDF) | 1 | Must be recessive(1) for CAN FD frames and dominant (0) for classic CAN. |
Reserved bit in FD frames (res) | 1 | Reserved bit. Must be dominant (0), but accepted as either dominant or recessive. |
Bit Rate Switch (BRS) | 1 | Bit Rate Switch (BRS) When the BRS bit is set to recessive (logical 1), the CAN controller switches to a higher bit rate for the data phase of the frame. If the BRS bit is dominant (logical 0), the entire frame is transmitted at the nominal bit rate. |
Error State Indicator (ESI) | 1 | Dominant (0): Indicates the node is in the error-active state. This indicates that the node is fully participating in the network and can actively signal errors if they occur. Recessive (1): Indicates the node is in the error-passive state. This indicates that the node has encountered errors but is still participating in the network with limited capability to signal errors. |
Data length code (DLC) | 4 | Number of bytes of data (0–64 bytes) |
Data field | 0–512 (0-64 bytes) | Data to be transmitted (length in bytes dictated by DLC field) |
CRC | 15 | Cyclic redundancy check |
CRC delimiter | 1 | Must be recessive (1) |
ACK slot | 1 | Transmitter sends recessive (1) and any receiver can assert a dominant (0) |
ACK delimiter | 1 | Must be recessive (1) |
End-of-frame (EOF) | 7 | Must be recessive (1) |
Inter-frame spacing (IFS) | 3 | Must be recessive (1) |
CAN FD has four frame types same as CAN classic: Data Frame, Remote Frame, Error Frame, Overload Frame. Please refer here Controller Area Network – CAN Bus – Dev Note for more details.
Arbitration
The Arbitration mechanisms of CAN FD and CAN Classic are the same.
Bit Rate
Single Bit Rate: In CAN Classic, the entire frame is transmitted at a single, fixed bit rate. This includes both the arbitration phase and the data phase (limited to 1Mbps).
Flexible Data Rate: if the BRS bit is set to 1 (recessive) CAN FD separates into:
- Arbitration Phase (Nominal bit rate): Do the Arbitration process same as CAN Classic.
- Data Phase (Data bit rate): CAN FD allows for a higher bit rate during the data phase, which can be different from the arbitration phase bit rate (up to 8Mbps).
Message filtering
The message filtering mechanisms for CAN FD and CAN Classic are quite similar. However, CAN FD offers a larger payload and higher data rate, which necessitates managing the memory and data rates effectively during filtering.
References
CAN_E: Distinguishing CAN from CAN FD Frames | Vector E-Learning
CAN FD – Wikipedia
Thanks for reading!