我是靠谱客的博主 犹豫大船,最近开发中收集的这篇文章主要介绍一文搞懂CAN FD总线协议帧格式1、为什么会出现CAN FD?2、什么是CAN FD?3、CAN FD和CAN总线协议帧异同4、解析CAN FD帧结构5、CAN FD的改进6、如何从传统的CAN升级到CAN FD,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1、为什么会出现CAN FD?

2、什么是CAN FD?

3、CAN FD和CAN总线协议帧异同

4、解析CAN FD帧结构

4.1、帧起始

4.2、仲裁段

4.3、控制段

4.4、数据段 

4.5、CRC段

4.6、ACK段

4.7、帧结束

5、CAN FD的改进

6、如何从传统的CAN升级到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倍,从而为数据的增长提供了一种简单的解决方案。

3、CAN 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位的隐性位。

5、CAN 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总线协议帧格式1、为什么会出现CAN FD?2、什么是CAN FD?3、CAN FD和CAN总线协议帧异同4、解析CAN FD帧结构5、CAN FD的改进6、如何从传统的CAN升级到CAN FD的全部内容,希望文章能够帮你解决一文搞懂CAN FD总线协议帧格式1、为什么会出现CAN FD?2、什么是CAN FD?3、CAN FD和CAN总线协议帧异同4、解析CAN FD帧结构5、CAN FD的改进6、如何从传统的CAN升级到CAN FD所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部