官网网站域名与建设,软件开发模式,网络培训总结,天津seo公司网站文章目录 通信总线之CAN-FD总线协议详解1. CAN-FD 简介1.1 什么是CAN FD1.2 CAN FD的特点 2. CAN-FD总线协议2.1 帧起始2.2 仲裁段2.3 控制段2.4 数据段2.5 CRC段2.6 ACK段2.7 帧结束 3. 如何从传统的CAN升级到CAN FD 通信总线之CAN-FD总线协议详解
1. CAN-FD 简介
1.1 什么是… 文章目录 通信总线之CAN-FD总线协议详解1. CAN-FD 简介1.1 什么是CAN FD1.2 CAN FD的特点 2. CAN-FD总线协议2.1 帧起始2.2 仲裁段2.3 控制段2.4 数据段2.5 CRC段2.6 ACK段2.7 帧结束 3. 如何从传统的CAN升级到CAN FD 通信总线之CAN-FD总线协议详解
1. CAN-FD 简介
1.1 什么是CAN FD
在《 通信总线协议之CAN总线协议详解 》中介绍了CAN 2.0 A/B总线协议但是随着总线技术在汽车电子领域越来越广泛的应用特别是自动驾驶技术的迅速发展汽车电子对总线宽度和数据传输速率的要求也越来越高传统CAN1MBit/s8Bytes Payload已难以满足日益增加的需求。因此一种能够与CAN 2.0 A/B兼容但通信速率更高有效载荷更高的CAN总线 CAN-FD总线协议应运而生在2012年Bosch发布了新的CAN FD标准 (CAN with Flexible Data Rate)CAN FD继承了CAN的绝大多数特性如同样的物理层双线串行通信协议基于非破坏性仲裁技术分布式实时控制可靠的错误处理和检测机制等同时CAN FD弥补了CAN在总线带宽和数据长度方面的不足。
1.2 CAN FD的特点
CAN FD传输速率是可变的从控制场中的BRS位到ACK场之前含CRC分界符为可变速率最高速率可达到8MbpsCAN FD数据长度不同CAN FD每个数据帧最多支持64个数据字节而传统CAN最多支持8个数据字节这减少了协议开销并提高了协议效率。CAN FD帧格式不同CanFD新增了FDF、BRS、ESI位 FDF 位Flexible Data Rate Format原 CAN 数据帧中的保留位 r用来区别是 CAN 报文还是 CAN-FD 报文FDF 位常为隐性 1表示 CAN FD 报文BRS 位 Bit Rate Switch表示位速率转换当 BRS 为显性位 0时数据段的位速率与仲裁段的位速率一致恒定速率当 BRS 为隐性位 1时速率可变即 BSR 到 CRC 使用转换速率传输ESI 位Error State Indicator发送节点错误状态指示主动错误时发送显性位 0 被动错误时发送隐性位 1 。
2. CAN-FD总线协议
CAN FD节点可以正常收、发CAN报文但CAN节点不能正确收、发CAN FD报文因为其帧格式不一致。与CAN一样CAN FD一共具有帧起始仲裁段控制段数据段CRC段ACK段和帧结束7部分组成。 2.1 帧起始
CAN FD与CAN使用相同的SOF标志位来标志报文的起始帧起始由1个显性位构成标志着报文的开始并在总线上起着同步的作用
2.2 仲裁段
与传统CAN相比CAN FD取消了远程帧用RRS位替换了RTR位为常显性 RTR(Remote Transmission Request Bit)远程发送请求位RTR位在数据帧里必须是显性而在远程帧里为隐性RRS(Remote Request Substitution)远程请求替换位即传统CAN中的RTR位CAN FD中为常显性 IDE位仍为标准帧和扩展帧标志位若标准帧与扩展帧具有相同的前 11 位 ID那么标准帧将会由于 IDE 位为 0优先获得总线
2.3 控制段
控制段中CANFD与CAN有着相同的IDEresDLC位同时增加了三个控制bit位FDF、BRS、ESIFDF(Flexible Data Rate Format)原CAN数据帧中的保留位rFDF常为隐性表示CAN FD 报文BRS(Bit Rate Switch)位速率转换开关当BRS为显性位时数据段的位速率与仲裁段的位速率一致当BRS为隐性位时数据段的位速率高于仲裁段的位速率ESI(Error State Indicator)错误状态指示主动错误时发送显性位被动错误时发送隐性位 DLC同样是4bit表示数据段的长度对应的关系如下
2.4 数据段
数据段即为传输的具体数据内容CAN FD不仅能支持传统的0-8字节报文同时可以支持12, 16, 20, 24, 32, 48, 64字节 2.5 CRC段 为了避免位填充对CRC的影响CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模并用格雷码表示还增加了奇偶校验位且在CRC中加入了填充位FSBfixed stuff-bit) Stuff Count由以下两个元素组成 格雷码计算CRC区域之前的填充位数除以8得到的余数Stuff bit count modulo 8进行格雷码计算得到的值Bit 0-2奇偶校验(parity)通过格雷码计算后的值的奇偶校验偶校验 CAN FD对CRC算法进行了改进CRC对填充位也加入了计算在校验部分为避免有连续位超过6个就确定在第一位以及以后每4位添加一个填充位加以分割这个填充位的值是上一位的反码作为格式检查如果填充位不是上一位的反码就作出错处理。 CAN的CRC的位数是15位而在CAN FD中CRC场扩展到了21位如下 当传输数据为0~8字节时CRC 15位当传输数据为9~16字节时CRC 17位当传输数据为17~64个字节时CRC 21位
2.6 ACK段
与CAN相比在CAN FD中最多可接受2个位时间有效的ACK允许1个额外的位时间来补偿收发器相移和传播延迟由从高速的数据场到慢速的仲裁场时时钟切换会引起收发器相移和总线传播延迟为了补偿其相移和延迟相比传统的CAN在CAN FD中多加了这额外的1位时间在ACK之后发送ACK界定符这是一个表示ACK结束的分隔符用1位隐性位表示
2.7 帧结束
与CAN一样CAN FD的帧结尾也为连续7位的隐性位
3. 如何从传统的CAN升级到CAN FD
尽管 CANFD 继承了绝大部分传统 CAN 的特性但是从传统 CAN 到 CANFD 的升级 仍需要做很多的工作主要包括: 在硬件和工具方面要使用 CANFD首先要选取支持 CANFD 的 CAN 控制器和收发器还要选取新的网络调试和监测工具;在网络兼容性方面对于传统 CAN 网段的部分节点需要升级到 CANFD 的情况要特别注意由于帧格式不一致的原因CANFD 节点可以正常收发传统 CAN 节点报文但是传统 CAN 节点不能正常收发 CANFD 节点的报文 感谢阅读 若有错误 欢迎指正