浅谈CAN FD总线协议帧格式

假期更新了一文搞懂can总线协议帧格式,can fd总线协议怎能错过?本篇博文将讲解can fd总线协议帧格式。
1为什么会出现can fd?
随着总线技术在汽车电子领域越来越广泛和深入的应用,特别是自动驾驶技术的迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来也高,传统can(1mbit/s,8bytes payload)已难以满足日益增加的需求。
因此在2012年,bosch发布了新的can fd标准 (can with flexible data rate) ,can fd继承了can的绝大多数特性,如同样的物理层,双线串行通信协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等,同时can fd弥补了can在总线带宽和数据长方面的不足。
2015年6月30日,国际标准化组织(iso)已经正式认可can fd,并无反对票通过iso 11898-1作为国际标准草案。
2什么是can fd?
can fd协议是由bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入iso 11898-1:2015。一开始的bosch can fd版本(非iso can fd)与iso can fd是不兼容。
can fd具有以下4个主要优点:
1、增加了数据的长度
can fd每个数据帧最多支持64个数据字节,而传统can最多支持8个数据字节。这减少了协议开销,并提高了协议效率。
2、增加传输的速度
can fd支持双比特率:与传统can一样,标称(仲裁)比特率限制为1 mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 mbit/s的数据比特率。
3、更好的可靠性
can fd使用改进的循环冗余校验(crc)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。这在汽车和工业自动化等安全攸关的应用中至关重要。
4、平滑过渡
在一些特定的情况下can fd能用在仅使用传统can的ecu上,这样就可以逐步引入can fd节点,从而为oem简化程序和降低成本。
实际上,与传统can相比,can fd可以将网络带宽提高3到8倍,从而为数据的增长提供了一种简单的解决方案。
3can fd和can总线协议帧异同
can fd和can总线协议帧格式如下所示:
can fd和can总线协议帧不同点如下所示:
1、传输速率不同
can fd的速率可变,从控制场中的brs位到ack场之前(含crc分界符)为可变速率,最高速率可达到8mbps,其他部分与can相同。
2、数据长度不同
can fd支持的最大数据长度为64byte,can支持的最大数据长度为8byte。
3、帧格式不同
can fd新增了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)。
4、id长度不同
can fd标准帧id长度可扩展至12bit,can的标准帧id为11bit。
4解析can fd帧结构
can fd节点可以正常收、发can报文,但can节点不能正确收、发can fd报文,因为其帧格式不一致。
与can一样,can fd一共具有:帧起始,仲裁段,控制段,数据段,crc段,ack段和帧结束,7部分组成。
4.1、帧起始
can与canfd使用相同的sof标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步作用。
4.2、仲裁段
与can不同,can fd取消了对远程帧的支持,用rrs位替换了rtr位,为常显性。ide用于区分标准帧和扩展帧。
4.3、控制段
can fd与can有着相同的ide、res和dlc位,同时增加了fdf、brs、esi三个bit位。
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)。
4.4、数据段 
can fd兼容can的数据格式,同时最大还能支持:12、16、 20、 24、 32、 48和64byte。
像在传统can中一样,can fd dlc是4位,表示帧中数据字节的数量。为了维持4位dlc,can fd使用从9到15的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)。
4.5、crc段
传统can中的循环冗余校验(crc)为15位,而在can fd中为17位(最多16个数据字节)或21位(20-64个数据字节)。在传统can中,crc中可以包含0到3个填充位,而在can fd中,总是有四个固定填充位以提高通信可靠性。
4.6、ack段
ack紧跟着crc结束标识位。不同的是,can fd支持2bits的ack的识别。
4.7、帧结束
与can一样,can fd的帧结尾也为连续7位的隐性位。
5can fd的改进
can fd采用了两种方式来提高通信的效率:一种方式为缩短位时间提高位速率;另一种方式为加长数据场长度减少报文数量降低总线负载率。
can fd在 crc 校验段采用了三种多项式来保证高速通讯下的数据可靠性。
1、缩短位时间提高位速率
can fd支持双比特率,与传统can一样,标称(仲裁)比特率限制为1 mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 mbit/s的数据比特率。
从控制段中的 brs 位到 ack 段之前(含 crc 分界符)为可变速率,其余部分为原 can 总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位 tq 外,位时间各段的分配比例也可不同。
2、加长数据段长度减少报文数量降低总线负载率
can fd每个数据帧最多支持64个数据字节,而传统can最多支持8个数据字节,这减少了协议开销,并提高了协议效率。
dlc 最大支持 64 个字节,在 dlc 小于等于 8 时与原 can 总线是一样的,大于 8 时则有一个非线性的增长,最大的数据场长度可达 64 字节。如下所示为 dlc 数值与字节数的非线性对应关系。
3、crc校验段
can fd使用改进的循环冗余校验(crc)和“受保护的填充位计数器”,由于 dlcs 的长度不同,在 dlc 大于 8 个字节时,can fd选择了两种新的 bch 型 crc 多项式,从而降低了未被检测到的错误的风险。
6如何从传统的can升级到can fd
尽管 canfd 继承了绝大部分传统 can 的特性,但是从传统 can 到 canfd 的升级, 我们仍需要做很多的工作。
1、在硬件和工具方面,要使用 canfd,首先要选取支持 canfd 的 can 控制器和收发器,还要选取新的网络调试和监测工具。
2、在网络兼容性方面,对于传统 can 网段的部分节点需要升级到 canfd 的情况要特别注意,由于帧格式不一致的原因,canfd 节点可以正常收发传统 can 节点报文,但是传统 can 节点不能正常收发 canfd 节点的报文。
can fd 协议是 can-bus 协议的最新升级,将 can 的每帧 8 字节数据提高到 64 字节,波特率从最高的 1mbps 提高到 8-15mbps,使得通讯效率提高 8 倍以上,大大提升了车辆的通讯效率。
此项技术一直被欧美企业垄断,直至 2016 年,中国 can-bus 领导者—广州致远电子股份有限公司,基于拥有完全知识产权的 can fd ip 核代码,研制出中国第一款 can fd 接口卡,使中国的总线技术水平与世界最高水平同步。


工业机器人成生产线上靓丽风景线
当企业遇上共享车队:如何掘金你的闲置车辆?
阿童木磁栅尺读数头应用案例丨佛山某家具厂裁板机使用磁栅尺提高精度
微软研究团队公开了四个最新的虚拟现实研究成果
自动化立体仓库的设计要点概括
浅谈CAN FD总线协议帧格式
薄膜电容的发展空间和购买注意事项
LCD触摸屏功能实现控制电机的设计
ADC的奇怪FFT结果
高频PCB布线的设计与技巧
深入解读纺织行业未来发展新趋势
光腔的损耗有哪些类型
索尼SBH56无线蓝牙耳机评测 做工精致细节到位
三电平全桥LLC电路工作原理
使用Nuke和OpenUSD将3D愿景变为现实
智能制药剖析:用于患者参与和保护的物联网连接NFC标签
研究团队克服OLED显示屏缺乏高效能蓝光的挑战
电路的作用有哪些
电阻器中什么时候需要降额
SIA报告称全球半导体市场去年销售额增长13.7%