目录
九、CANFD
1.介绍
CANFD(控制器局域网灵活数据速率)是经典CAN协议的高级版本,旨在满足现代汽车和工业应用的需求。CANFD相较于经典CAN提供了多项改进。 随着总线技术在汽车电子领域越来越广泛的应用,特别是自动驾驶技术迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来越高,传统CAN(1MBit/s,8Bytes)已难以满足日益增加的需求。因此,一种能够与CAN2.0A/B兼容,但通信速率更高,有效载荷更高的 CAN 总线:CAN-FD 总线协议应运而生,在2012年,Bosch 发布了新的CAN FD 标准 (CAN with Flexible Data Rate)。
CANFD在各个应用领域中被越来越多地采用,特别是在汽车工业中,随着对更高数据速率和更高效通信的需求不断增长。它支持高级驾驶辅助系统(ADAS)、车载信息娱乐系统以及其他需要快速可靠数据传输的现代汽车技术。
2.特点
CAN FD继承了CAN的绝大多数特性,如同样的物理层,双线串行通信协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误检测和处理能力等,同时 CAN FD 弥补了 CAN 在总线带宽和数据长度方面的不足。几个显著的特点如下:
①更大的数据负载能力:CANFD每帧数据负载最多可达64字节,而经典CAN最多为8字节。这允许在单帧中传输更多数据,减少了协议开销,提高了通信效率。
②更高的数据速率:CANFD支持在数据阶段高达8 Mbps的数据速率,而经典CAN的最大数据速率为1 Mbps。这意味着CANFD可以更快地传输数据,降低通信延迟。
③灵活的数据长度:CANFD的数据长度码(DLC)更加灵活,允许0到64字节的可变数据长度。这使得带宽利用更加高效,适应不同应用需求。
④可靠的错误检测和处理能力:CANFD协议增强了错误检测和错误处理机制,提高了数据传输的可靠性。这对需要高安全性和高可靠性的应用(如汽车和工业自动化)尤为重要。
⑤向下兼容性:CANFD设计时考虑了与经典CAN的兼容性。CANFD节点可以与经典CAN节点共存于同一网络中,支持旧系统与新系统的平滑过渡和升级。
⑥增强的位定时:CANFD在位定时上有改进,可以更好地适应高频噪声环境,提供更稳健的通信性能。
⑦双速率模式:CANFD允许在同一帧中使用两种不同的速率:仲裁阶段使用较低的速率,数据阶段使用较高的速率。这种双速率模式在保证仲裁可靠性的同时提高了数据传输速率。
3.帧结构
与CAN一样,CAN FD一共具有:帧起始,仲裁段,控制段,数据段,CRC段,ACK段和帧结束,7部分组成。CAN FD节点可以正常收、发CAN报文,但CAN节点不能正确收、发CAN FD报文,因为其帧格式不一致(向下兼容性)。
(1)帧起始
CANFD与CAN使用相同的SOF标志位来标志报文的起始,帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步的作用。
(2)仲裁段
与传统CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。
- RTR位(Remote Transmission Request):远程发送请求位,P位在数据帧里必须是显性,而在远程帧里为隐性。
- RRS(Remote Request Substitution):远程请求替换位,即传统CAN中的RTR位,CAN FD中为常显性。
IDE位仍为标准帧和扩展帧标志位,用于区分标准帧和扩展帧,若标准帧与扩展帧具有相同的前11位ID,那么标准帧将会由于IDE位为0,优先获得总线。
(3)控制段
控制段中CANFD与CAN有着相同的IDE,res,DLC位。同时增加了三个控制bit位,FDF、BRS、ESI。
- FDF位(FD Format):原CAN数据帧中的保留位r。FDF常为隐性,表示CAN FD 报文。
- BRS位(Bit Rate Switch):位速率转换开关,当BRS为显性位时数据段的位速率与仲裁段的位速率一致,当BRS为隐性位时数据段的位速率高于仲裁段的位速率。
- ESI位(Error State Indicator):表示发送节点的错误状态,为显性位时节点处于错误主动状态,为隐性位时节点处于错误被动状态。
- DLC位(Data Length Code):4位,指示数据字段的字节数(0到15),对于CAN FD,允许的数据长度为0到64字节。
DLC同样是4bit表示数据段的长度,对应的关系如下:
(4)数据段
传输的具体数据
CAN FD不仅能支持传统的0-8字节报文,同时最大还能支持12, 16, 20, 24, 32, 48, 64字节。
(5)CRC段
为了避免位填充对CRC的影响,CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模,并用格雷码表示,还增加了奇偶校验位。FSB(fixed stuff-bit)固定为前一位的补码。
(6)ACK段
与CAN 相比,在CAN FD 中最多可接受 2个位时间有效的 ACK,允许1个额外的位时间来补偿收发器相移和传播延迟
由从高速的数据场到慢速的仲裁场时,时钟切换会引起收发器相移和总线传播延迟;为了补偿其相移和延迟,相比传统的CAN,在CANFD多加了这额外的1位时间。
在 ACK之后,发送ACK界定符,这是一个表示ACK结束的分隔符,用1位隐性位表示;
(7)帧结束
与CAN一样,CAN FD的帧结尾也为连续7位的隐性位。
4.如何从传统的CAN升级到CANFD?
①在硬件和工具方面,要使用CANFD,首先要选取支持CANFD的CA控制器和收发器,还要选取新的网络调试和监测工具。
②在网络兼容性方面,对于传统CAN 网段的部分节点需要升级到CANFD的情况要特别注意,由于帧格式不一致的原因,CANFD节点可以正常收发传统 CAN 节点报文,但是传统 CAN 节点不能正常收发CANFD 节点的报文。