CANFD 协议介绍在汽车领域,随着人们对数据传输带宽要求的增加,传统的CAN 总线由于带宽的限制难以满足这种增加的需求。此外为了缩小CAN 网络(max. 1MBit/s )与 FlexRay(max.10MBit/s)网络的带宽差距,BOSCH 公司推出了CAN FD 。CAN FD (CAN with Flexible Data rate)继承了 CAN 总线的主要特性。CAN 总线采用双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制使 CAN 总线有很高的安全性,但CAN 总线带宽和数据场长度却受到制约。CAN FD 总线弥补了 CAN 总线带宽和数据场长度的制约,CAN FD总线与 CAN 总线的区别主要在以下两个方面:? 可变速率CAN FD 采用了两种位速率:从控制场中的BRS 位到 ACK 场之前(含CRC 分界符)为可变速率,其余部分为原CAN 总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ 外,位时间各段的分配比例也可不同。? 新的数据场长度CAN FD 对数据场的长度作了很大的扩充,DLC 最大支持 64 个字节,在DLC 小于等于 8 时与原 CAN 总线是一样的,大于8 时有一个非线性的增长,所以最大的数据场长度可达 64 字节。CAN FD介绍1.CAN FD 数据帧帧格式CAN FD 数据帧在控制场新添加EDL 位、 BRS 位、 ESI 位,采用了新的DLC 编码方式、新的 CRC 算法( CRC 场扩展到 21 位)。 CAN FD 数据帧格式如下图:2. 新添加位介绍EDL 位:( Extended Data Length)原 CAN 数据帧中的保留位r, 该位功能为:? 隐性:表示 CAN FD 报文(采用新的DLC 编码和 CRC 算法)? 显性:表示 CAN 报文BRS 位:(Bit Rate Switch)该位功能为:? 隐性:表示转换可变速率? 显性:表示不转换速率ESI (Error State Indicator),该位的功能为:? 隐性:表示发送节点处于被动错误状态(Error Passive )? 显性:表示发送节点处于主动错误状态(Error Active )EDL 位可以表示CAN 报文还是 CAN FD 报文; BRS 表示位速率转换,该位为隐性位时,从 BRS 位到 CRC 界定符使用转换速率传输,其他位场使用标准位速率,该位为显性时,以正常的CANFD 总线速率传输;通过添加ESI 位,可以很方便的知道当前发送节点所处的状态。3.新的 CRC 算法CAN 总线由于位填充规则对CRC 的干扰, 造成错帧漏检率未达到设计意图。CAN FD对 CRC 算法作了改变,即CRC 以含填充...