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:

  1. Microcontroller: The central processing unit that handles the logic and processing tasks.
  2. 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.
  3. 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 nameLength (bits)Purpose
Start-of-frame1Denotes the start of frame transmission
Identifier11A (unique) identifier which also represents the message priority
Stuff bit1Six 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)1Must be dominant (0) for data frames and recessive (1) for remote request frames
Identifier extension bit (IDE)1Must be dominant (0) for base frame format with 11-bit identifiers
FD Format Indicator (FDF)1Must be recessive(1) for CAN FD frames and dominant (0) for classic CAN.
Reserved bit in FD frames (res)1Reserved bit. Must be dominant (0), but accepted as either dominant or recessive.
Bit Rate Switch (BRS)1Bit 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)1Dominant (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)4Number of bytes of data (0–64 bytes)
Data field0–512 (0-64 bytes)Data to be transmitted (length in bytes dictated by DLC field)
CRC15Cyclic redundancy check
CRC delimiter1Must be recessive (1)
ACK slot1Transmitter sends recessive (1) and any receiver can assert a dominant (0)
ACK delimiter1Must be recessive (1)
End-of-frame (EOF)7Must be recessive (1)
Inter-frame spacing (IFS)3Must 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:

  1. Arbitration Phase (Nominal bit rate): Do the Arbitration process same as CAN Classic.
  2. 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!