概述

CAN-FD:可以理解成CAN协议的升级版,只升级了协议,物理层未改变。
CAN与CAN-FD主要区别:传输速率不同、数据长度不同、帧格式不同、ID长度不同。

传输速率

CAN:最大传输速率1Mbps。
CAN-FD:速率可变,仲裁比特率最高1Mbps(与CAN相同),数据比特率最高8Mbps,CAN-FD的传输格式如下图所示。
image.png

数据长度不同

CAN:一帧数据最长8字节
CAN-FD:一帧数据最长64字节。

帧格式不同

CAN-FD新增了FDF、BRS、ESI位。
image.png
image.png
FDF:表示CAN报文还是CAN-FD报文。
BRS:表示位速率转换,该位隐性时,速率可变(即BSR到CRC使用转换速率传输),该位为显性时,以正常的CAN-FD总线速率传输(恒定速率)。

CAN FD采用了两种位速率:从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为原CAN总线用的速率,即仲裁段和数据控制段使用标准的通信波特率,而数据传输段时就会切换到更高的通信波特率,数据传输速率可大于。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ外,位时间各段的分配比例也可不同。

ESI:表示发送节点状态。

ID长度不同

CAN标准帧ID长度最长11bit。
CAN-FD标准帧ID长度可扩展到12bit。???

例子

以下几图是一个完整的数据包分析截图。从图中可以看到,CAN FD协议可以区分CAN FD及CAN协议,CAN FD协议将协议数据分析为 ID(协议id号), ExternId(扩展id), DLC(数据长度),Data(传输数据), StuffCount,CRC, ACK/NAK 。
image.png
数据包的ID号为0x010, RTR:false(数据帧), DLC:0x8(8个数据),Data:0x00~0x07,CRC为0x0C5E7(17位), ACK:应答。
image.png
圆形白点:逻辑数据。
方形白点:填充位
image.png
image.png