虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

您现在的位置是:首页 > 技术阅读 >  硬件接口协议之“CAN-FD”

硬件接口协议之“CAN-FD”

时间:2023-06-29

本文主要介绍CAN-FD及其与传统CAN的区别。


传统CAN总线的最高传输速率为1Mbps,车载领域实际使用的速率最高仅为500Kbps,已经满足不了越来越高的数据吞吐量需求,因而CAN方案的瓶颈逐步凸显,尤其未来更多的ECU搭载终会导致总线负载率持续增加导致网络拥堵。
2011年,为满足带宽与可靠性需求,Bosch发布了CAN-FD(CAN With Flexible Data-Rate)方案,它因继承了传统CAN总线主要特性,如使用改动较小的物理层,双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等,并对带宽及数据长度做了优化。
下面简单梳理一下CAN-FD发展过程中的一些主要里程碑:
  • 2011年春,应OEM厂商要求,BOSCH开展CAN-FD项目;

  • 2012年,BOSCH在第13届iCC大会上正式发布CAN FD;首个非国际标准CAN FD系统在iCC大会展示;

  • 2012年,正式向国际标准委员会提出国际标准授权申请(CAN FD);计划向国际标准委员会提交申请(CAN FD的一致性测试);

  • 2013年,非ISO标准的CAN-FD在FPGA上运行;

  • 2014年,第一款嵌入了非国际标准 CAN-FD模块的微控制器发布;

  • 2014年,CAN FD进行改进(CRC部分);

  • 2015年,提交ISO 11898-1,等待决议;

  • 2015年06月30日,国际标准化组织(ISO)正式认可CAN-FD并通过ISO 11898-1作为国际标准草案(Draft International Standard,简写DIS)。该文件明确区分了传统CAN和CAN-FD协议。

  • 2015年底,发布ISO 16845-1:2015(CAN FD一体化测试)。

  • 2016年,ISO 15765-2标准化的ISO传输协议(TP)发布。CiA 1301 1.0.0版支持CAN FD。

  • 2017年9月,CANopen FD规范发布。CANopen设备规范和应用规范也在审核中。CiA的兴趣组(IG)商用车开发了一个基于J1939的应用层协议(CiA 602系列),描述了从符合J1939-21的消息到CAN FD数据帧最高64字节的映射。


相比传统的CAN总线,CAN-FD采用了两种方式来提高通信的效率:一种方式为缩短位时间提高位速率;另一种方式为加长数据场长度减少报文数量降低总线负载率。在CRC校验段采用了三种多项式来保证高速通讯下的数据的可靠性。下面就一一介绍CAN-FD的这些变化。


CAN FD帧由7个不同的位场组成,帧起始(SOF)、仲裁场、控制场、数据场、CRC校验场、ACK应答场、和帧结尾(EOF),相比于传统的CAN,CAN-FD的主要变化在于:

  • 仲裁场部分,CAN FD中使用的RRS位,而CAN中使用的是RTR位。

  • 控制场部分,CAN FD在控制场中新添加了FDF位、BRS位、ESI位。同时对DLC进行了扩充,使得数据场最大可达64字节。

  • FDF:表示CAN报文还是CAN-FD报文。

  • BRS:表示位速率转换,该位隐性时,速率可变(即BSR到CRC使用转换速率传输),该位为显性时,以正常的CAN-FD总线速率传输(恒定速率)。

  • ESI:表示发送节点状态。

  • CRC校验场主要有以下五点发生了变化:

  • 添加Stuff Count

  • CRC的计算方法

  • CRC的位长度

  • 位填充规则

  • 接收端CRC界定符的允许位时间




仲裁场

CAN FD的仲裁场是由Identifier识别符和RRS位构成。CAN FD 与 CAN 相同的地方是,都有Identifier识别符,可用于区别消息的同时又可以表示消息的优先级。不同的是,在CAN FD中使用的RRS位,而CAN中使用的是RTR位。
RRS位(Remote Request Substitution)远程请求替换位:即传统CAN中的RTR位,与传统CAN相比,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。



控制场

与传统CAN相比,CAN FD在控制场中新添加了FDF位、BRS位、ESI位。与CAN相同,IDE位表示扩展帧标志,res位为预留位。



  • FDF位(FD Format Indicator):FDF位在CAN的数据帧中为显性(0),在CAN FD的帧中常为隐性(1),表示CAN FD报文;

  • BRS位(Bit Rate Switch):位速率转换开关。当BRS为隐形位(1)时,表示转换可变速率,即发送节点在BRS位的采样点,将会切换到高速传输的时钟模式,其他接收节点也必须转换位时钟模式。在CRC界定符的采样点,所有节点的波特率将会再切换回仲裁场的波特率。也就是说,所有CAN FD节点都有两种类型的波特率。

  • ESI(Error State Indicator):错误状态指示。ESI是指示发送节点的错误状态的标志,当发送节点的错误状态是激活时,发送隐性位(1),如果错误状态未激活时,发送显性位(0)。通过ESI位,所有节点都可以确认当前的传输节点的错误状态。而在CAN帧中,无法得知其传输节点的错误状态。

  • 数据长度编码(DLC: Data Length Code):DLC表示传输了多少字节的数据。CAN和CAN FD都具有4位配置。CAN FD对有效数据场长度作了很大的扩充,数据场最大可达64字节。数据长度可以从0到8,12,16,20,24,32,48,64字节中选择。而CAN只有0到8个字节。DLC与数据长度之间的关系如下表所示。不能指定除此处描述之外的数据长度,例如14字节或50字节等。



数据场

  • 传输速率更快

CAN FD采用了两种位速率,仲裁段和数据控制段使用标准的通信波特率,而传输数据段时会切换到更高的通信波特率。数据传输率可达到10Mbit/s,甚至更高。

与传统CAN一样,数据场由数据帧里的发送数据组成,在数据场中设置发送数据。首先发送最高有效位(MSB)。




  • 有效数据场更长

相对于传统CAN报文有效数据场的8 字节,CAN FD对有效数据场长度作了很大的扩充,数据场长度最大可达到64bytes,当数据长度码DLC小于等于8时与原CAN总线一致,大于8时为非线性增长,大大提高帧报文中的有效数据,意味着CAN FD具有更高有效传输负载。如原本对于PEPS模块的身份认证上,原本需要多条CAN报文进行校验,现在只需一条长帧报文即可完成。




CRC校验场

在传统的CAN系统中,使用位填充的方式来保持通信同步。但这种方式会造成对CRC的干扰,导致错帧漏检。

 

CAN FD为此在CRC算法上进行了优化与修改,添加了新的Stuff Count,CRC也有了17位和21位。将填充位加入到差错校验码中进行计算,也就是CRC以包含了填充位位流进行计算。确定从第一个填充位开始,序列中每4位就插入一个填充位用以分割,且该填充位就是上一位的反码。当进行格式检查时,若填充位不是上一位的反码,就及时报错处理。而针对不同的数据场长度值,在DLC大于8个字节时,CAN FD会选择两种新BCH型CRC多项式。




以上就是针对CAN-FD的介绍。

支持小编,请点在看