CAN-FD协议你了解多少?
背景:随着工业的发展,工业总线上的数据量越来越多,这使得CAN总线的逐渐达到负荷极限,这就需要改进原有的总线来提高总线传输速率。在这样的情况下,2011年,Bosch和汽车制造商合作之下,改进了CAN,于是CAN-FD便在这样的背景下诞生了。
先了解下什么是CAN?
CAN:Controller area network,即控制器区域(局域)网络。CAN总线是国际上应用最广泛的现场总线之一,目前已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。
CAN-FD:英文为CAN with Flexible Data-Rate,翻译为【可变速率的CAN】。在经典CAN的基础上增加传输速率,数据域可传输64Byte,也就是可变速的功能,简单的来说就是CAN的升级版。
CAN-FD它继承了 CAN 总线的主要特性,提高了 CAN 总线的网络通信带宽,改善了错误帧漏检率,同时可以保持网络系统大部分软硬件特别是物理层不变。
CAN FD 采用了两种方式来提高通信的效率:一种方式为缩短位时间提高位速率;另一种方式为加长数据场长度减少报文数量降低总线负载率。在 CRC 校验段采用了三种多项式来保证高速通讯下的数据可靠性。
CAN-FD和CAN主要的区别有三点:
1.可变速率
从控制场中的 BRS 位到 ACK 场之前(含 CRC 分界符)为可变速率,其余部分为原 CAN总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位 TQ 外,位时间各段的分配比例也可不同。
2.数据域Payload长度
CAN FD 对数据场的长度作了很大的扩充, DLC 最大支持 64 个字节,在 DLC 小于等于 8 时与原 CAN 总线是一样的,大于 8 时则有一个非线性的增长,最大的数据场长度可达 64 字节。
3.CRC 校验场
在 CAN-FD 协议标准化的过程中,通信的可靠性也得到了提高。由于 DLCs 的长度不同,在 DLC 大于 8 个字节时, CAN FD 选择了两种新的 BCH 型 CRC 多项式。
尽管CAN-FD继承了绝大部分传统CAN的特性,但是从传统CAN到CANFD的升级,其实我们仍需要做很多的工作。
1.硬件
我们需要选取支持 CAN-FD 的 CAN 控制器和收发器,还要选取新的网络调试和监测工具。
2.网络兼容性
传统 CAN 网段的部分节点需要升级到 CANFD 的情况要特别注意, 由于帧格式不一致的原因, CANFD 节点可以正常收发传统 CAN 节点报文,但是传统 CAN 节点不能正常收发 CANFD 节点的报文。
由于我们公司需要使用CAN总线,在产品上裸跑过CAN(添加自己的协议:帧头、长度、数据域、帧尾、校验等),也在产品上跑过CANOpen协议,一直也走在CAN路上,也一直在学习(协议里面的内容其实挺多的),所以也比较关注CAN的发展。
我想说的重点是:CAN在今后的工业应用中会越来越常见。所以,如果你还没有了解过CAN,那么你应该学习CAN相关的知识了。
1.CAN-FD的路演
参考网址:
https://www.can-cia.org/news/cia-in-action/view/can-fd-roadshow-china/2018/4/20
(微信公众号不支持外部链接,请复制链接在浏览器打开)
在中国,5月中下旬,有如下几个城市会进行路演。
宣传主要内容:
2.关于CAN-FD的学习资料
参考网址:
https://www.can-cia.org/can-knowledge/can/can-fd
获取信息,建议都在官网获取,原因很简单:权威。
推荐阅读:
选择适合自己的开源RTOS
如果你觉得我分享的内容对你有帮助,在文章底部给我点一个赞,也是对我的支持和认可。
微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,在我的底部菜单查看更多精彩内容!
长按识别二维码 关注