通信报文
CANFD 通信报文类型包含数据帧、远程帧、错误帧、过载帧、间隔帧这五种类型。
数据/远程帧 |
描述 |
---|---|
SOF |
帧起始,一位长度,用于同步总线上节点的单个显性位。 |
ID-A |
标识符 A,11 位长度,对应标准格式中的 11 位标识符 (ID10~ ID0),或扩展格式中 29 位标识符的前 11 位 (ID28~ ID18)。 |
ID-B |
标识符 B,18 位长度,扩展格式中 29 位标识符的剩余 18 位 (ID17 ~ ID0)。 |
RTR |
远程发送请求位,1 位长度,显示当前报文是数据帧(显性 0)还是远程帧(隐性 1)。当某个数据帧和一个远程帧有相同标识符时,数据帧始终优先于远程帧仲裁。 |
SRR |
代替远程发送请求位,1 位长度,在扩展格式中以替代标准格式相同位置的 RTR 位。 |
RRS |
远程请求替换位,CANFD 取消了对远程帧的支持,用 RRS 位替换了 RTR 位,始终是显性位。 |
IDE |
标识符扩展位,1 位长度,显示当前报文是标准格式(显性 0)还是扩展格式(隐性 1)。当某标准帧和扩展帧有相同基标识符时,标准帧将始终优先于扩展帧仲裁。 |
EDL |
扩展数据长度位,始终是隐性位。Bosch 的 CANFD 规范(非 ISO )使用名称 EDL,而 CANFD ISO 规范使用名称 FDF 。两个名字都是同义词。 |
FDF |
灵活数据速率格式,始终是隐性位,意义同 EDL 位。标准 ISO 帧采用 FDF 对该位进行描述。 |
RES |
保留位,始终是显性位。 |
R1 |
保留位,始终是显性位。 |
R0 |
保留位,始终是显性位。 |
BRS |
位速率切换,这个额外的位允许 CANFD 帧以两种不同的速率发送。如果 BRS 位为显性被发送,则后续所有位发送速率不变。如果 BRS 位为隐性,则在此位后帧格式将使用较高的位速率,直到并包括 CRC 分界符。 |
ESI |
错误状态指示器,通常显性发送为主。如果 CANFD 帧发送节点变为被动错误,则该位将被隐性发送,指示发送方节点存在重要的通信问题。 |
DLC |
数据长度代码, 4 位长度,包含 0 ~ 15 中任一数值。 |
Stuff count |
填充计数由以下两个元素组成:
|
数据字节 |
表示数据帧的数据负载量,该字节数量应与 DLC 的值匹配。首先发送低位数据字节,各数据字节优先发送最高有效位。 |
CRC |
对于 CAN 2.0,CRC 采用 15 位。 对于 CANFD,当传输数据为 16 字节或更少时,采用 17 位 CRC。当传输数据超过 16 字节时,采用 21 位 CRC。 |
CRC 分界符 |
分界符,1 位长度隐性位。 |
ACK 槽 |
应答槽,1 位长度,用于接收节点,表示是否已成功接收数据帧或远程帧。发送节点将在应答槽中发送一个隐性位,若接收到的帧无错误,则接收节点用一个显性位以示应答。 |
ACK 分界符 |
分界符,1 位长度隐性位。 |
EOF |
帧结束,7 位长度隐性位,标志着数据帧或远程帧的结束。 |