常见问题

当前位置:主页 > 服务支持 > 常见问题 >

CAN FD和CAN总线协议帧区别

作者: admin 时间:2023-07-08 来源:未知
摘要:随着总线技术在汽车电子领域越来越广泛和深入的应用,特别是自动驾驶技术的迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来也高,传统CAN(1MBit/s,8Bytes Payload)已难以...

  随着总线技术在汽车电子领域越来越广泛和深入的应用,特别是自动驾驶技术的迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来也高,传统CAN(1MBit/s,8Bytes Payload)已难以满足日益增加的需求。因此在2012年,Bosch发布了新的CAN FD标准(CAN with Flexible Data Rate),CAN FD继承了CAN的绝大多数特性,如同样的物理层,双线串行通信协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等,同时CAN FD弥补了CAN在总线带宽和数据长方面的不足。
 
  下文将对CAN FD和CAN总线进行对比,并做相关介绍。
 
  1、什么是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倍,从而为数据的增长提供了一种简单的解决方案。
 
  2、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。
 
  3、CAN FD帧结构
 
  CAN FD节点可以正常收、发CAN报文,但CAN节点不能正确收、发CAN FD报文,因为其帧格式不一致。
 
 
  与CAN一样,CAN FD一共具有:帧起始,仲裁域,控制域,数据域,CRC,ACK和帧结束,共7部分组成。
 
  3.1帧起始
 
  CAN与CANFD使用相同的SOF标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步作用。
 
  3.2仲裁域
 
  与CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。IDE用于区分标准帧和扩展帧。
 
 
  3.3控制域
 
  CAN FD与CAN有着相同的IDE、res和DLC位,同时增加了FDF、BRS、ESI三个bit位,如上所述。
 
 
  3.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)。
 
 
  3.5 CRC
 
  传统CAN中的循环冗余校验(CRC)为15位,而在CAN FD中为17位(最多16个数据字节)或21位(20-64个数据字节)。在传统CAN中,CRC中可以包含0到3个填充位,而在CAN FD中,总是有四个固定填充位以提高通信可靠性。
 
 
  3.6 ACK
 
  ACK紧跟着CRC结束标识位。不同的是,CAN FD支持2bits的ACK的识别。
 
 
  3.7帧结束
 
  与CAN一样,CAN FD的帧结尾也为连续7位的隐性位。

[向上]