2. CAN FD基础
经典CAN(ISO 11898-1:2003)在汽车电子领域服役超过三十年,其1 Mbps仲裁段速率与8字节数据场在智能驾驶、域控制器、OTA刷写等场景下逐渐成为瓶颈。CAN FD(Flexible Data-rate,ISO 11898-1:2015)在保持仲裁机制与拓扑兼容的前提下,通过"可变速率+扩展数据场+改进CRC"三项核心改造,把单帧有效载荷提升到64字节、数据段速率提升到5~8 Mbps,成为RH850等车规MCU上UDS诊断与大数据传输的主力总线。
一、核心差异:从"定速定长"到"分段变速变长"
CAN FD并非全新协议,而是对经典CAN帧结构的"选择性增强"。理解差异的关键在于:一帧之内存在两个速率区段。仲裁段(含SOF、仲裁场、控制场前段)仍以标称位速率(Nominal Bit Rate,典型500 kbps)运行,保证多节点非破坏性仲裁的时序一致性;一旦进入数据段(BRS位之后到CRC界定符前),可切换到数据位速率(Data Bit Rate,典型2 Mbps或5 Mbps),实现"仲裁慢、数据快"。
数据场长度由DLC编码扩展:经典CAN的DLC=9~15非法,而CAN FD中DLC=9~15分别映射到12、16、20、24、32、48、64字节,且允许不填充到标准长度。CRC多项式从15位升级为17位(≤16字节)或21位(>16字节),并引入固定填充位与奇偶校验,使残差错误概率显著降低。
二、位速率切换与数据场扩展的工程约束
位速率切换不是"想切就切",收发器与网络拓扑必须满足数据段信号完整性。数据段速率越高,位时间越短,对振铃、反射、传播延迟越敏感。工程上常用约束如下:
- 收发器带宽:需选用支持FD的收发器(如TJA1044、TJA1051),其环路延迟与对称性满足2~5 Mbps。
- 拓扑与终端:分支长度尽量短,两端120 Ω终端电阻必须匹配;星型或长分支会显著恶化眼图。
- 采样点:数据段采样点通常设在75%~80%,需与所有节点一致,否则位错误率上升。
- 时钟精度:数据段对晶振容差更敏感,RH850的CAN FD模块支持SSP(二次采样点)配置以补偿。
数据场扩展带来的收益不仅是"单帧装更多",更在于协议效率。以UDS诊断为例,经典CAN传输64字节需8帧,而CAN FD一帧即可承载,帧头开销从约47%降至约12%,刷写与标定效率提升数倍。
三、CRC改进与错误检测
数据场变长后,15位CRC对长帧的漏检概率不再可接受。CAN FD采用两种CRC:数据≤16字节用17位CRC,>16字节用21位CRC,并加入填充位计数器与奇偶校验位。其核心改进是:
| 对比项 | 经典 CAN | CAN FD |
|---|---|---|
| 最大数据场 | 8 字节 | 64 字节 |
| 位速率 | 单一速率,≤1 Mbps | 仲裁段 + 数据段双速率,数据段可达5~8 Mbps |
| CRC 长度 | 15 位 | 17 位(≤16B)/ 21 位(>16B) |
| DLC 编码 | 0~8 有效 | 0~15 映射到 0~64 字节 |
| 控制位 | 无 FDF/BRS/ESI | FDF、BRS、ESI |
| 典型应用 | 车身控制、简单信号 | UDS 诊断、OTA、域控大数据 |
四、典型应用场景与常见误区
在RH850平台上,CAN FD常用于三类场景:UDS诊断刷写(0x36 TransferData 一次传64字节)、域控制器间大数据同步(传感器融合、地图数据)、标定与测量(XCP on CAN FD)。
/* RH850 CAN FD 位速率配置示例(伪代码) */
CANFD0.NBTP = 0x0A0B; /* 标称段:500 kbps,采样点 80% */
CANFD0.DBTP = 0x0506; /* 数据段:2 Mbps,采样点 75% */
CANFD0.TDCT = 0x0010; /* 开启 TDC,补偿收发器延迟 */
CANFD0.GCFG = 0x0001; /* 使能 FD 模式,DLC 扩展 */
复盘要点:CAN FD的价值不在"更快",而在"更高效地承载大数据"。理解帧结构差异、位速率切换点、CRC改进与拓扑约束,是后续在RH850上实现UDS over CAN FD与Bootloader刷写的基础。