摘要:CAN FD(Flexible Data-rate)是“可变数据速率CAN”的缩写,可以理解为传统CAN总线的一次协议层升级。需要注意的是,CAN FD只升级了通信协议,物理层保持不变。这种设计是为了在保证兼容性的前提下,解决传统CAN的一些瓶颈问题。
1. CAN协议演进:从CAN到CAN FD
CAN FD(Flexible Data-rate)是“可变数据速率CAN”的缩写,可以理解为传统CAN总线的一次协议层升级。需要注意的是,CAN FD只升级了通信协议,物理层保持不变。这种设计是为了在保证兼容性的前提下,解决传统CAN的一些瓶颈问题。
随着汽车电子系统功能日益复杂,数据交互频繁,传统的CAN 2.0总线面临着严重的负载问题,部分场景下负载率甚至高达95%。与此同时,CAN总线还存在以下主要局限性:
• 最大传输速率限制在1 Mbit/s(实际常见速率为500 kbit/s);
• 帧开销过大,传统CAN一帧中仅有不到50%的带宽用于有效数据传输;
• 帧数据段仅8字节,难以满足现代应用对大数据量通信的需求;
• 延迟受限于物理架构,如ACK响应延迟、收发器与布线的传播延迟等。
相较之下,其他通信协议的开销明显更小,例如:
• UDP:1500字节数据包中仅64字节为开销;
• FlexRay:254字节中只有8字节为控制开销。
由于汽车行业不可能完全抛弃现有CAN架构重新设计,为兼容现有系统、控制升级成本、并提升总线性能,CAN FD应运而生。CAN FD的研发始于2011年,并在2015年正式被纳入ISO 11898-1标准中,与经典CAN协议并存。
CAN FD相比传统CAN的核心改进有两个:
• 数据段长度扩展至64字节;
• 在数据阶段支持更高的传输速率(最大8 Mbit/s)。
这些改进大幅提升了通信效率,降低了总线负载,使其更适应当今对高速、大容量数据传输的需求。因此,CAN FD不仅是传统CAN的延续,更是面向未来车载网络的重要演进。
CAN与CAN FD对比:
2. CAN 与 CAN FD 帧结构差异
CAN与CAN FD的帧结构如图下所示:
从图中可以看到,CAN FD帧的整体结构沿用了经典CAN帧的基本框架,但为了支持更高的带宽与更大的数据传输量,在控制字段及数据字段上做了显著扩展。
帧起始位OF用于标识一帧数据的开始,与传统CAN相同,紧随其后的仲裁字段包含11位标识符与一个保留位r1,用于总线仲裁和帧优先级判定。控制字段部分是CAN FD的关键扩展区域,除了沿用IDE位外,新增的EDL(Extended Data Length)位用于明确区分CAN FD与传统CAN报文,而BRS(Bit Rate Switch)位的引入使得在仲裁阶段之后,数据段与CRC字段可切换至更高速率进行传输;ESI(Error State Indicator)则用于表征发送节点的错误状态,从而辅助系统进行容错判断。
数据段是CAN FD提升带宽的核心,其长度可由DLC字段指定,从传统CAN的最多8字节扩展至最多64字节使单帧有效载荷大幅提升;随之而来的是CRC校验字段也相应增强,根据数据长度使用17位或21位CRC,提升数据完整性保障能力。帧末部分的ACK、EOF以及IFS与传统CAN保持一致,确保CAN FD具备良好的向后兼容性。
3. 标准CAN FD与博世CAN FD的区别
CAN FD最早由Bosch提出,称为Bosch CAN FD,作为对传统CAN总线的扩展,主要引入了更大的数据长度(最多64字节)以及更高的数据段速率(可达8 Mbps),其帧结构中使用的是17位CRC校验码,无需支持位时间重同步。然而,随着实际应用中通信速率和负载上升,Bosch版本在数据可靠性方面存在一定局限,因此在2015年,ISO组织发布了正式标准ISO 11898-1:2015,即为现在所称的标准CAN FD,在保留Bosch版本主要特性的基础上,引入了更强的21位CRC校验机制,并对帧格式进行了微调,增强了抗干扰能力。两者在物理层兼容,但在帧结构、校验算法和协议容错机制上存在差异。因此,标准CAN FD节点更具通用性和可靠性,而Bosch版则是早期的实验性版本,现阶段已逐渐被ISO标准替代。
串口服务器_数传电台_4G DTU_遥控开关_LoRa/ZigBee/WiFi/蓝牙模块-成都亿佰特电子科技有限公司官网
来源:亿佰特物联网应用