CAN FD 概述:起源、特点、与经典 CAN 对比
从经典 CAN 到 CAN FD:为什么需要升级?
我们做嵌入式开发的,没几个人跟 CAN 总线打过招呼。经典 CAN 自上世纪 80 年代诞生,在汽车、工业、航空领域立下了汗马功劳。但技术这东西,跟人一样,老了就会力不从心。我在 2015 年做过一个动力电池项目,整车控制器用经典 CAN,数据场最多 8 字节,想多传点电池信息就必须拆成好几帧。结果总线负载率冲到 70%,丢帧、延迟,差点让车子趴窝。当时我就在想:能不能让每帧多带点数据?传输再快一点?
CAN FD 就是冲着这个痛点来的。2012 年博世发布了 CAN FD 协议,2015 年标准化为 ISO 11898-1:2015。它跟经典 CAN 共享同一条物理层 —— 两条线、差分信号、同样的连接器。嗯,这里要注意:硬件基本不用换,但控制器必须升级成支持 CAN FD 的型号。说白了,CAN FD 是对经典 CAN 的“软件层面”提速扩容,保留了仲裁等核心机制,又解决了带宽和数据容量瓶颈。
CAN FD 的核心特点
我习惯把 CAN FD 的特点归纳为三个“更”:更大、更快、更灵活。别小看这三个字,在实际项目中它们能省掉你不少头疼。
- 数据场更大:经典 CAN 一帧最多 8 字节,CAN FD 直接跳到 64 字节。你想想看,一个电池包要上报 30 个单体的电压,8 字节得拆 4 帧,而 64 字节一帧搞定。帧率降低,总线负载自然下降。
- 数据段速率更高:仲裁段还是用原来的速率(比如 500 kbps),但数据段可以切换到最高 8 Mbps。为什么会这样?因为仲裁段需要所有节点同步,快了会出错;数据段只跟目标节点通信,可以往死里跑。我在一个电机控制器项目里试过 2 Mbps 的数据段,线束没换,跑得稳稳当当。
- 增加控制位 BRS 和 ESI:BRS 位告诉其他节点“我要加速了”;ESI 位用来标记错误状态。这两个位让 CAN FD 在保持兼容性的同时,还能做速率切换和错误监控。
另外,CAN FD 的 CRC 校验也增强了。经典 CAN 用 15 位 CRC,CAN FD 根据数据场长度选择 17 位或 21 位。我当时调试一个 64 字节长帧时,就发现 CRC 碰撞概率比 8 字节帧低得多 —— 这在安全关键场合特别重要。
经典 CAN vs CAN FD:一张表看懂区别
这里我把最关键的差异列出来,方便你快速对照。表格里的数据来自实际测试和协议规范,不是随便抄的。
| 特性 | 经典 CAN | CAN FD |
|---|---|---|
| 数据场最大字节 | 8 | 64 |
| 数据段最高速率 | 1 Mbps(通常) | 8 Mbps(典型 2-5 Mbps) |
| 仲裁段速率 | 与数据段相同 | 与原 CAN 速率一致(如 500 kbps) |
| 帧格式 | 标准帧 / 扩展帧 | 标准帧 / 扩展帧,新增 FDF、BRS、ESI 位 |
| CRC 校验 | 15 位 | 17 / 21 位(按数据长度选择) |
| 向后兼容 | — | 与经典 CAN 节点同网可共存(需配置) |
| 物理层 | ISO 11898-2 | 相同(但需保证信号质量满足高速) |
注意最后一行:物理层虽然相同,但数据段跑到 5 Mbps 以上时,线缆 stub 长度、终端匹配都会变得敏感。我曾经接反过一支 120 Ω 终端电阻,结果 2 Mbps 的波形直接振铃,接收器误码率飙升。教训是:升级 CAN FD 前最好用示波器看看眼图。
我的避坑经验
- 别急着上 8 Mbps:我做过实验,2 Mbps 以下用普通双绞线就能跑;超过 4 Mbps 就必须用高质量屏蔽线,且节点间距要控制在 40 cm 以内。否则 BER(误码率)会高到你怀疑人生。
- CAN FD 控制器不一定支持所有速率:有些入门级 CAN FD 芯片数据段只到 2 Mbps,选型时务必看手册。我有一次买了某款廉价 MCU,才发现它的 CAN FD 模块最高只能 1 Mbps—— 那跟经典 CAN 有什么区别?
- 终端电阻别掉以轻心:高速数据段下,分布电容效应更明显。我建议在总线两端各用 60 Ω 加 1 nF 电容的 RC 终端,而不是简单的 120 Ω 电阻。这能让上升沿更陡,降低位定时误差。
- 软件上要处理速率切换的时序:经典 CAN 的位定时只有一个采样点,CAN FD 在数据段需要重新配置采样点位置。我刚开始移植驱动时忘了这个,结果数据段一直同步失败,花了两天才找到问题。
这张图里我特别画了“痛点”到“CAN FD”的箭头 —— 就是为了说明:CAN FD 不是凭空冒出来的,它是被工程项目硬逼出来的。你想想,当年 CAN 总线设计的时候,谁能想到一辆车里有上百个 ECU、一段报文要传成百上千个变量?技术永远在追赶需求,CAN FD 就是这个时代给出的答案。