deutschenglish
Mood board services
Home > Know How > BUS systems > CAN FD

CAN FD - An Introduction

CAN FD (CAN Flexible Data Rate) is an expasion of the "classical" CAN-Bus (Classical CAN) and defined by the standard ISO 11898-1:2015. CAN FD facilitates not only sending of larger data volumes (payload): the limit of 8 bytes with Classical CAN has been increased to 64 bytes with CAN FD. Also, it provides the possibility of a higher bit rate within the data phase, even going beyond the previous limit of 1 MBit/s.

Logo CAN FD

CAN FD Data Frame

Classical CAN differentiated only two data frames: standard frames (CAN 2.0A) with 11-Bit identifiers and extended frames (CAN 2.0B) with 29-Bit identifiers. These formats will be maintained, however, within the scope of CAN FD they will be renamed.

Table 1: CAN FD Frame Formate

Abbr.

Signification

Description

CBFF Classical Base Frame Format 11-Bit identifiers, maximum 8 bytes payload, (previous standard frame)
CEFF Classical Extended Frame Format     29-Bit identifiers, maximum 8 bytes payload, (previous extended frame)
FBFF FD Base Frame Format 11-Bit Identifier, maximum 64 bytes payload
FEFF FD Extended Frame Format 29-Bit Identifier, maximum 64 bytes payload

A CAN FD controller is downward-compatible, i.e. the previous formats of the classical CAN are recognized and can be processed. However, this does not work in the reverse direction: the frame formats FBFF and FEFF are unknown to a classical CAN controller and, consequently, error frames will be sent. This is why all devices in the network need to be equipped with a CAN FD controller to be able to use FD frame formats.

 

The most significant differences in the frame structure of a classical CAN data frame are shown in fig. 1.

 

Fig. 1: CAN FD Base Frame Format

The CAN FD format does not support remote frames, the previous RTR bit after the identifier is replaced by the "Remote Request Substitution" (RRS) bit.

 

The FDF bit (FD format) in the expanded control field is the qualifier for the flexible data format. In a classical CAN frame the valid value range of the DLC field (Data Length Code) was within 0 to 8, whereas the valid range of values in a CAN FD frame reaches from 0 to 15. The value of the DLC field determines the number of bytes in the data field and is interpreted as follows:

Table 2: Encoding the Data Length

DLC value

Data field size (Bytes)

0 .. 8
0 .. 8
9
12
10
16
11
20

DLC value

Data field size (bytes)

12
24
13
32
14
48
15
64

Even without using the option of faster data transfer in the data phase, the increased data volume alone will bring significant advantages. At a nominal bit rate of 1 MBit/s the net transfer rate (i.e. the transfer rate of the data field) of a classical CAN controller is 576 kBit/s. A CAN FD frame with a data size of 64 bytes has a net transfer rate of 903 kBit/s.

Improved Error Detection

Via the ESI (Error State Indicator) bit in the control field the sender of a message indicates whether they are in error active or error passive mode which will considerably facilitate error detection. To avoid a worse residual error probability as with classical CAN due to the potentially higher number of stuff-bits in a message, CAN FD has been equipped with a stuff-bit counter (3 bit + parity). The new stuff-count field is sent at the beginning of the CRC field.

Increase Data Rates

In a CAN FD frame the transfer rate in the data phase (this starts with the BRS bit and ends with the last bit of the CRC) can be increased via the BRS (Bit Rate Switch) bit. The maximum value of the transfer rate in the data phase is limited by the CAN controller or CAN transceiver used in the application and is currently between 5 MBit/s and 8 MBit/s, depending on the manufacturer.

 

Available CAN FD Controllers

Development of CAN FD systems is determined by the available CAN controllers. The following list is an overview of currently available CAN FD microcontrollers, but without claiming to be exhaustive.

 

Manufacturer

Controller

Description

CAN Core

Microchip
 
MCP2517FD
 
External CAN FD controller, 1 x CAN, SPI interface
 
Microchip
 
Microchip
 
MCP2518FD
 
External CAN FD controller, 1 x CAN, SPI interface
 
Microchip
 
NXP
 
LPC546XX family Cortex-M4 (220 MHz), 2 x CAN FD
 
Bosch M_CAN
NXP
 
S32K family
 
Cortex-M0 / Cortex-M4F (up to 112 MHz), 1 .. 3 x CAN FD
 
FlexCAN
 
STM
 
STM32L5
family
Cortex-M33 (110 MHz), 1 x CAN FD
 
CANFDL
 
STM
 
STM32H7 family Cortex-M7 (400 MHz), 1 x CAN FD
 
Bosch M_CAN
TI
 
TCAN4550
 
External CAN FD controller with integrated transceiver, 1 x CAN, SPI interface Bosch M_CAN

To top

MicroControl auf Facebook MicroControl auf Twitter MicroControl Blog