3. CAN与CAN FD核心概念
在商用车网络升级工程中,CAN FD 并不是简单地把 CAN 的波特率调高,而是在保留 CAN 总线仲裁与错误处理优势的基础上,对帧格式、数据长度和位定时机制进行了系统性扩展。理解这些核心概念,是后续网络设计、节点替换、网关路由和故障排查的基础。
一、报文帧格式:从经典 CAN 到 CAN FD
经典 CAN 帧由帧起始、仲裁场、控制场、数据场、CRC 场、应答场和帧结束组成。CAN FD 在此基础上做了三处关键改动:一是控制场中新增 FDF、BRS、ESI 等位,用于标识 FD 帧、切换数据段波特率和指示错误状态;二是数据场长度从最大 8 字节扩展到最大 64 字节;三是 CRC 场根据数据长度采用不同多项式,并增加填充位计数,以提升长帧的检错能力。
在商用车场景中,动力总成、电池管理、制动系统等大数据量节点通常使用 CAN FD 帧传输标定参数、故障快照或诊断数据,而车身控制、灯光等小数据量节点仍可沿用经典 CAN 帧。两者可在同一物理总线上共存,但需要控制器支持混合帧处理。
二、仲裁机制:非破坏性位仲裁仍是核心
CAN 与 CAN FD 都采用基于标识符的非破坏性位仲裁。当多个节点同时发送时,显性位(逻辑 0)会覆盖隐性位(逻辑 1),标识符数值越小,优先级越高。发送节点在仲裁场逐位比较总线电平,一旦发现自己发送隐性位而总线为显性位,就立即退出仲裁,转为接收状态,等待下一次总线空闲。
CAN FD 的仲裁段仍使用标称波特率,因此仲裁行为与经典 CAN 兼容。但进入数据段后,BRS 位切换为更高的数据波特率,此时不再进行仲裁。这意味着仲裁优先级只由标识符决定,与数据段速率无关。工程中需要特别注意:不能因为 FD 数据段速率高,就认为高优先级报文一定先完成传输,仲裁失败的低优先级报文仍可能因数据段高速而缩短整体占用时间。
关键结论:CAN FD 的仲裁段与经典 CAN 一致,数据段可加速;仲裁优先级由标识符决定,与数据段波特率无关。
三、位定时与采样点:CAN FD 的时序基础
位定时决定一个位时间如何划分为同步段、传播段、相位缓冲段 1 和相位缓冲段 2。采样点位于相位缓冲段 1 与相位缓冲段 2 之间,是节点读取总线电平的时刻。采样点位置通常用“采样点 = (同步段 + 传播段 + 相位缓冲段1) / 总位时间”表示。
CAN FD 支持双波特率:仲裁段使用标称波特率,数据段使用数据波特率。因此需要分别配置两套位定时参数。商用车网络中,标称波特率常见为 500 kbit/s,数据波特率可设为 2 Mbit/s 或 5 Mbit/s。采样点一般建议标称段设置在 75%~80%,数据段设置在 70%~80%,具体需结合总线长度、收发器延迟和节点数量进行仿真与实测。
示例:500 kbit/s 标称段,采样点 80%
位时间 = 1 / 500000 = 2000 ns
同步段 = 1 Tq
传播段 + 相位缓冲段1 = 15 Tq
相位缓冲段2 = 4 Tq
总 Tq = 20,采样点 = (1+15)/20 = 80%
示例:2 Mbit/s 数据段,采样点 75%
位时间 = 500 ns
同步段 = 1 Tq
传播段 + 相位缓冲段1 = 11 Tq
相位缓冲段2 = 4 Tq
总 Tq = 16,采样点 = (1+11)/16 = 75%
采样点设置不当会直接导致位错误、形式错误或 CRC 错误增加。若采样点偏早,可能采到尚未稳定的电平;若偏晚,可能错过位边界。工程调试中应使用示波器或 CAN 分析仪测量实际采样点位置,并与控制器配置比对。
四、标准帧与扩展帧:标识符长度与仲裁场结构
标准帧使用 11 位标识符,扩展帧使用 29 位标识符(11 位基本 ID + 18 位扩展 ID)。扩展帧在仲裁场中通过 IDE 位区分,并包含 SRR 位和扩展 ID 字段。CAN FD 同时支持标准帧和扩展帧,分别称为 FD 标准帧和 FD 扩展帧。
在商用车网络中,标准帧通常用于高实时性、固定优先级的动力与底盘报文;扩展帧则常用于诊断、标定、J1939 等需要大量标识符空间的场景。J1939 协议即基于 29 位扩展帧,通过 PGN、优先级和源地址组织报文。升级到 CAN FD 后,J1939 报文可继续使用扩展帧格式,但数据场可扩展至 64 字节,从而减少分包和传输延迟。
| 对比项 | 标准帧 | 扩展帧 |
|---|---|---|
| 标识符长度 | 11 位 | 29 位 |
| 仲裁场关键位 | IDE=0 | IDE=1,含 SRR、扩展 ID |
| 典型应用 | 动力、底盘、车身 | 诊断、标定、J1939 |
| CAN FD 支持 | FD 标准帧 | FD 扩展帧 |
| 优先级范围 | 2^11 个标识符 | 2^29 个标识符 |
五、案例与场景:某重卡 CAN FD 升级中的帧格式选择
某重卡在升级 CAN FD 网络时,将电池管理系统的 8 字节电压温度报文扩展为 32 字节 FD 标准帧,数据段速率设为 2 Mbit/s,标称段保持 500 kbit/s。同时,诊断网关继续使用 29 位扩展帧与 J1939 设备通信,但将诊断响应数据扩展为 64 字节 FD 扩展帧。调试初期出现偶发 CRC 错误,经排查发现数据段采样点设置为 68%,低于推荐值。将数据段采样点调整至 75% 后,错误计数恢复正常。
实操建议:升级 CAN FD 时,先确认节点是否支持混合帧;再分别配置标称段与数据段位定时;最后用总线分析仪统计错误帧和采样点位置,避免只改波特率而忽略采样点。
六、常见误区与复盘
- 误区一:认为 CAN FD 只是波特率更高。实际上帧格式、CRC、数据长度和位定时都发生了变化。
- 误区二:忽略仲裁段与数据段采样点的独立配置。两段速率不同,采样点必须分别计算和验证。
- 误区三:把扩展帧等同于 CAN FD。扩展帧是标识符格式,CAN FD 是帧协议扩展,两者可以组合使用。
- 误区四:数据段速率越高越好。速率越高,对总线长度、终端电阻和收发器对称性越敏感,需综合评估。
复盘来看,CAN FD 网络升级的核心不是单点参数调整,而是帧格式、仲裁、位定时、采样点和标识符体系的协同设计。只有把这些基础概念落实到每一个节点和每一段总线,才能保证商用车网络在更高带宽下仍具备确定性和可靠性。