很多人了解过CANFD,可能知道CANFD CRC段与传统CAN CRC差距是CRC多项式不同,但实际CANFD CRC段与传统CAN的差异远不止这些。接下来,我们细说下CANFD CRC段带来的变化:
不同数据段长度选择不同的CRC多项式
传统CAN采用的是15位的CRC校验,由于CANFD支持更大的数据量,为提供通信可靠性,针对不同长度的CANFD报文,调整其CRC算法,详见下表。
当报文为传统CAN时,仍采用原有的CRC多项式。
当报文为CANFD且数据长度小于等于16字节时,调整为17位的CRC多项式。
当报文为CANFD且数据长度大于16字节时,则调整为21位的CRC多项式。
?CRC计算时机不同
在传统CAN中,位填充(连续5位相同位后填充一位相反位)是在CRC计算之后进行。当CAN控制器发送报文时,先对报文CRC计算后,再填入填充位发送;接收时,则对接收数据移除填充位后,再做CRC校验。
在CANFD中,CRC计算时机调整为位填充后。也就是说,发送方发送时,先对报文进行位填充后,再做CRC计算。这种方式增加了对填充位的CRC计算,降低了错误漏检的概率。
增加固定填充位和填充位计数
CANFD中,CRC域采用一种固定填充位的格式:在CRC段第一位及接下来的每四位增加一个固定填充位,填充位为上一位的反码。以下分别为CRC17和CRC21的固定填充位(FSB)位置。
除了固定填充位之外,CRC域的起始还包含了3位的填充位计数,及1位填充位计数检验位,以进一步提高通信可靠性。填充位计数在CRC段的位置如下图红框所示。
3位填充位计数表示的值为实际填充位计数对8取模的结果,采用格雷码显示。奇偶校验位对填充位计数进行奇偶校验。详见下表。需要注意的是,non-ISO CANFD协议标准,无固定填充位FSB及填充位计数。若使用USBCANFD-200U时,遇到通讯的CANFD控制器为non-ISO标准,可以在打开通道时,选择CANFD标准为non-ISO,以兼容non-ISO标准CANFD控制器。
【版权声明】本文为ZLG开发者社区用户原创内容,未经授权不得转载。
-
CAN
+关注
关注
57文章
2937浏览量
468915
发布评论请先 登录
CANFD节点的采样点如何测量?

CAN FD 静电保护二极管ESD2CANFD24和PESD2CANFD27V-T国产替代型号SMC24LVQ和SMC27LVQ

汽车网络升级攻略:CAN-CAN FD-车载以太网

解析RZ/N2L CANFD模块的缓冲区机制(3)

解析RZ/N2L CANFD模块的缓冲区机制(2)

解析RZ/N2L CANFD模块的缓冲区机制(1)

车载通信方案为何选择CAN/CANFD?
工程师在产品选型的时究竟是选CAN还是CANFD接口卡呢?

如何使用ZPS-CANFD观察CAN数据链路层的工作过程

CAN/CANFD?总线干扰仪TESTBASE-BDI

rk3588 canfd发送部分数据失败的问题
CAN FD与传统CAN的区别是什么

评论