第1章 CAN FD 概述

1.1 为什么我们需要 CAN FD?

做车载总线开发的人,基本都跟 CAN 打过交道。CAN 2.0 从 80 年代用到现在,稳定、可靠、便宜,没得挑。但不知道你有没有这种感觉——最近几年的项目里,带宽越来越不够用了。

我印象最深的是 2018 年做的一个智能座舱项目。那时候 ECU 数量翻了一倍,传统 CAN 的 1 Mbps 速率,跑诊断、刷写、大数据日志,总线负载动不动就飙到 70% 以上。丢帧、延迟、优先级反转……踩过的坑我自己都数不清。说白了,传统 CAN 就像一条双车道的乡道,车少的时候挺好,车一多就堵死。

CAN FD(CAN with Flexible Data-Rate)就是为解决这个“堵车”问题来的。它在物理层兼容 CAN 2.0,但把数据段速率提到了 8 Mbps 甚至更高,数据场也从 8 字节撑到了 64 字节。一句话:路更宽了,车也能跑更快了。

💡 一个小提示:CAN FD 并不是要淘汰 CAN 2.0,而是互补。很多混合网络中,CAN FD 节点和 CAN 2.0 节点可以共存,只要仲裁段保持一致就行。

1.2 发展历程:从 CAN 2.0 到 CAN FD,再到 CAN XL

CAN 协议的发展,我习惯把它分成三个阶段,你可以先看下面的时间线表格。

阶段 标准/版本 发布时间 最大速率 数据场长度 关键变化
1 CAN 2.0A / 2.0B 1991 1 Mbps 8 字节 标准帧/扩展帧,经典仲裁
2 CAN FD(ISO 11898‑1:2015) 2015 数据段 8 Mbps 64 字节 可变速率、更长数据场、CRC 改进
3 CAN XL(正在标准化) 2024(草案) 数据段 10+ Mbps 2048 字节 面向 IP 化、大数据传输

你可能会问:为什么突然跳出了一个 CAN XL?其实逻辑很简单——汽车电子越来越像数据中心了,OTA 升级、高清地图、传感器融合,8 字节包根本装不下。CAN FD 是在现有物理层上“推了一把”,而 CAN XL 则是彻底重新设计数据段格式。不过现阶段,CAN FD 是量产主流,绝大部分新车都支持。

我记得 2015 年 ISO 发布 CAN FD 标准的时候,很多芯片厂商还没准备好。博世、NXP、TI 第一批出样片,我手上拿到 TCAN4550 时还专门搭了一个测试板。当时踩了个坑:老 CAN 收发器在 8 Mbps 下波形振铃严重,后来换成 CAN FD 专用收发器才稳定。这件事让我养成了一个习惯——速率能低就低,够用就行,别盲目追求标称极限。

1.3 CAN FD 的核心优势

说白了,CAN FD 最大的三个好处就是:快、大、兼容。

  • 快:数据段速率可配置,最高 8 Mbps(仲裁段仍为 1 Mbps 或 500 kbps)。刷写同一个 ECU,时间能缩短 60% 以上。
  • 大:数据场从 8 字节扩展到 64 字节,单个报文能装更多信息。比如诊断应答,原来要拆成 7~8 帧,现在 1 帧搞定。
  • 兼容:物理层和仲裁机制与 CAN 2.0 几乎一致。同一个网络中,CAN FD 节点和 CAN 2.0 节点可以混合存在,只有 CAN FD 帧才使用高速率段。
🚀 一个真实案例
今年初我帮某 Tier1 做电池管理系统(BMS),电池包状态信息(电压、温度、电流)原来用 5 个 CAN ID 轮流发,周期 20 ms。改用 CAN FD 后,一个 64 字节帧就能塞进 12 路电池单体数据,加上时间戳,负载从 65% 降到了 25% 。系统响应快了一个数量级。

当然,也有代价。CAN FD 帧的 CRC 算法更复杂,对 MCU 的 M_CAN 核有要求。如果 MCU 不支持硬件 CAN FD,纯软件模拟会很吃力。我在选型时吃过亏——一个项目用了老旧 S32K,结果发现 CAN FD 只能跑 2 Mbps,再高就错帧。

⚠️ 避坑指南
我曾经以为 CAN FD 收发器跟 CAN 2.0 完全通用。实测发现,某些老收发器在速率超过 5 Mbps 时,边沿斜率控制不够,会造成位采样错误。建议使用 TCAN4550、TJA1145 等明确标注“CAN FD ready”的收发器,且布线时尽量缩短 stub 长度。

1.4 应用前景:哪些场景正在用它?

CAN FD 并不是只活在实验室里。这几年量产车上,几乎新平台都标配了。我列几个典型场景给你看看:

  • 车载诊断(UDS on CAN FD):刷写 ECU、读取 DTC、数据传输,原来慢得要死,现在速率翻倍,用户体验好很多。
  • 高级驾驶辅助系统(ADAS):摄像头、毫米波雷达、激光雷达的数据量大,CAN FD 可以承载目标列表和跟踪信息,帧周期可以做到 5 ms。
  • 域控制器 / 区域架构:中央网关把多条 CAN FD 总线聚合起来,数据吞吐能力比传统 CAN 提升 4~8 倍。
  • 工业自动化 & 机器人:运动控制、伺服驱动器需要高实时性大数据,CAN FD 正在取代部分 CANopen 和 DeviceNet 网络。

你留意一下,最近几年出的车——比亚迪、蔚来、小鹏、特斯拉(部分),CAN FD 基本是标配。未来随着 CAN XL 成熟,CAN FD 会作为“低成本高带宽”层继续存在,和以太网形成互补。

1.5 知识全景速览

这一章最重要的东西,我用一张结构图帮你串起来:

CAN FD 技术演进与优势 传统 CAN 2.0 1 Mbps / 8 字节 CAN FD 8 Mbps / 64 字节 CAN XL(草案) 10+ Mbps / 2048 字节 优势:带宽提升 8 倍 优势:数据场 64 字节 优势:向下兼容 车载诊断 · OTA 刷写 ADAS · 域控 · 网关 工业自动化 · 机器人 CAN FD 并非替代 CAN 2.0,而是以兼容方式提供更高带宽的增量方案
📌 记住三个数字
  • 8 → 最大数据段速率 8 Mbps
  • 64 → 最大数据场长度 64 字节
  • 2015 → ISO 标准发布年份

好,这一章的内容差不多就这些。你可能会觉得“不就是速率快了、包大了嘛”,但真正用到项目里,你会发现整个软件架构、网络拓扑、时序分析都得重新审视。后面的章节我们会一层层剥开 CAN FD 的协议细节,从物理层、数据链路层到应用层,把每个位都讲清楚。