在汽车领域,随着自动驾驶技术的发展以及消费者对ADAS和人机交互需求的增加,对系统带宽提出了更高的要求,而传统CAN总线由于带宽的限制难以满足这种需求。基于这种需求,BOSCH公司推出了CAN FD总线,本文对这种总线技术进行介绍,并分析了CAN FD总线与传统CAN总线的区别。
1. CAN FD主要特点
传统的CAN总线采用双线串行通讯协议,基于非破坏性总线竞争,分布式实时控制,可靠的错误处理和检测机制使CAN总线有很高的安全性,但CAN总线带宽(1Mbps)和数据场长度(8字节)制约了其传输能力。因此CAN FD主要在带宽和数据场长度两方面进行了改进:
1.1可变位速率
CAN FD采用两种位速率:从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为传统CAN总线速率。
从图中看出,在报文仲裁段采用标准CAN位速率,在数据段采用高速率通信,目前已有器件支持最高达8Mbps的波特率。
1.2可变的数据段长度
CAN FD对数据段长度进行了扩充,最高可支持64字节,大大提高了总线效率。需要指出的是,CAN FD数据帧采用了新的DLC编码方式,在数据场长度为0-8个字节时,采用线性规则,数据场长度为12-64个字节时,使用非线性编码。
2. CAN FD帧结构
与普通CAN报文相同,CAN FD报文具有帧起始、仲裁段、控制段、数据域、CRC域、ACK域、帧结束共七个域。
2.1帧起始
CAN FD与CAN使用相同的SOF标志位来开始报文的传输。帧起始由单个显性位构成,标志着报文的开始,并在总线上起着同步作用。
2.2仲裁段
CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。IDE位仍为标准帧和扩展帧标志位,如果标准帧与扩展帧具有相同的前11位ID,那么标准帧将会由于IDE位为0而优先获得总线使用权。
2.3控制段
在控制域中,CAN FD与CAN有着相同的IDE,res,DLC位。同时增加了三个控制位FDF、BRS、ESI。
FDF:原CAN数据帧中的保留位r。FDF常为隐性,表示为CAN FD 报文。
BRS:位速率转换开关,当BRS为显性位时数据段的位速率与仲裁段的位速率一致,当BRS为隐性位时数据段的位速率高于仲裁段的位速率。
ESI:错误状态指示,主动错误时发送显性位,被动错误时发送隐性位。
2.4数据段
CAN FD不仅能支持传统的0-8字节报文,同时最大还能支持12, 16, 20, 24, 32, 48, 64字节。
2.5 CRC
CAN FD对CRC算法作了改变,即CRC以含填充位的位流进行计算。在校验和部分为避免再有连续位超过6个,确定在第1位以及以后每4位添加1个填充位分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就按出错处理。
2.6 ACK和帧结束
CAN FD中可接受2个位时间有效的ACK,允许1个额外的位时间来补偿收发器相移和传播延迟。帧结束由连续7个隐性位来表示。
总结
本文简要介绍了CAN FD与传统CAN的区别以及CAN FD的帧结构。CAN FD继承了CAN总线的主要特性,提高了CAN总线的网络通信带宽,改善了错误帧漏检率,同时保持系统大部分软硬件特别是物理层不变,可以较小的代价对传统CAN网络进行升级。