4. J1939物理层
J1939 协议栈从应用层一路向下,最终都要落到两根线上:CAN_H 与 CAN_L。物理层决定了报文能否被可靠地“听清”,它不关心报文含义,只关心电平、阻抗、反射、共模干扰与时延。工程现场大量“偶发丢帧、节点掉线、诊断仪连不上”的问题,根因往往不在协议栈,而在物理层。本节围绕电气特性、终端电阻、线束拓扑、屏蔽接地以及速率与长度限制五个方面展开。
一、电气特性:差分信号与显性/隐性
J1939 基于 ISO 11898-2 高速 CAN 物理层,采用差分传输。总线只有两种状态:显性(Dominant,逻辑 0)和隐性(Recessive,逻辑 1)。显性状态下收发器主动驱动 CAN_H 拉高、CAN_L 拉低,形成约 2V 的差分电压;隐性状态下驱动器关闭,两端由终端电阻拉回约 2.5V 的共模电平,差分电压接近 0V。总线遵循“显性覆盖隐性”的线与逻辑,这正是 CAN 非破坏性仲裁的物理基础。
关键电气参数如下:显性差分电压典型 2.0V(最小 1.5V),隐性差分电压 -0.5V~+0.05V;共模电压范围通常为 -2V~+7V;接收器门限约 0.5V~0.9V。收发器必须能承受总线对电源和地的短路,并具备 -27V~+40V 左右的故障耐压。工程上要特别关注共模电压:当多个 ECU 地电位不一致时,共模电压可能超出收发器允许范围,导致误码甚至损坏。
二、终端电阻:抑制反射的唯一手段
高速 CAN 总线两端必须各接一个 120Ω 终端电阻,用于匹配约 120Ω 的特性阻抗,吸收信号到达末端后的反射能量。两个 120Ω 并联后,断电测量 CAN_H 与 CAN_L 之间应为约 60Ω。这是现场最快的判断方法:若测得 120Ω,说明只接了一个终端;若测得 40Ω 或更低,说明终端过多;若为开路,说明两端都没接或线束断开。
终端电阻的位置必须在总线物理拓扑的两个最远端,而不是随便放在某个节点内部。很多 ECU 内部集成终端电阻,此时要确认该节点是否真的位于总线末端。终端电阻缺失会导致边沿振铃、位采样错误,表现为高波特率下通信距离骤减、误帧率上升;终端过多则总线负载过重,显性电平被拉低,同样无法通信。
三、线束拓扑:主干加支线
J1939 推荐线性总线拓扑:一根主干贯穿整车,各节点通过短支线接入。支线长度必须尽量短,且不能形成星形或环形。星形拓扑会让信号在中心点分叉,产生严重反射;环形拓扑则可能形成地环路。工程上应遵循“主干连续、支线短小、节点就近接入”的原则。
下表给出不同速率下主干长度与单支线长度的推荐上限,可作为线束设计清单使用:
| 传输速率 | 主干最大长度 | 单支线最大长度 | 典型应用 |
|---|---|---|---|
| 250 kbit/s | 约 250 m | 约 3 m | J1939 商用车主流速率 |
| 500 kbit/s | 约 100 m | 约 1 m | 动力总成、较高实时性 |
| 1 Mbit/s | 约 40 m | 约 0.3 m | 短距离高实时场景 |
需要强调:长度限制的本质是信号往返时延必须小于位时间的采样窗口。速率越高,位时间越短,允许的传播时延越小,因此长度必须缩短。250 kbit/s 下位时间为 4μs,1 Mbit/s 下仅 1μs,容差空间相差四倍。
四、屏蔽与接地:共模干扰的防线
整车电磁环境恶劣,电机、点火、DC-DC 都会产生强共模干扰。J1939 线束通常采用双绞屏蔽线:双绞保证两根线耦合到相同的干扰,屏蔽层则把干扰电流引导到地。屏蔽层应单点接地,通常接在整车参考地或控制器地,避免两端接地形成地环路,反而把干扰引入信号线。
接地设计要区分信号地与功率地。ECU 的信号地应通过低阻抗路径连接到车身参考点,避免与大电流负载共用回流路径。若发现通信误码随负载启停而波动,应优先检查屏蔽层接地方式与地电位差,而不是先怀疑协议栈。
五、速率与长度限制的工程权衡
J1939 最常用 250 kbit/s,兼顾距离与实时性;对实时性要求高的动力总成可用 500 kbit/s;1 Mbit/s 仅用于短距离。选择速率时要同时核算总线负载率:J1939 建议负载率不超过 30%~40%,否则高优先级报文也会因排队而延迟。速率提高会缩短长度上限,也会放大终端与拓扑缺陷,因此“提速”不能解决所有问题。
下面是一段典型的物理层自检命令与判读,用于现场快速定位:
# 断电测量 CAN_H 与 CAN_L 间电阻
# 期望值:约 60Ω(两个 120Ω 并联)
# 120Ω -> 仅一端有终端
# 40Ω -> 终端过多
# 开路 -> 终端缺失或线束断开
# 上电测量差分电压(隐性态)
# 期望:CAN_H ≈ CAN_L ≈ 2.5V,差分 ≈ 0V
# 显性态差分应 ≥ 1.5V
# 示波器观察边沿
# 关注:振铃、过冲、上升沿是否过缓
六、案例与复盘
某商用车在 250 kbit/s 下偶发仪表掉线。排查发现:仪表节点位于总线中段,却内置了 120Ω 终端,导致总线上实际有三个终端,等效电阻约 40Ω,显性电平被拉低,边沿畸变。移除该节点内部终端后通信恢复。复盘结论:终端电阻必须与拓扑位置匹配,不能“有就接”。
另一案例是新增设备后通信距离骤减。原因是新设备支线长达 5m,且未使用双绞屏蔽线,形成天线效应。缩短支线并更换屏蔽双绞线后误码消失。可见物理层的每一个细节都会直接反映在通信质量上。
总结来看,J1939 物理层的可靠性由五个变量共同决定:差分电平是否达标、终端是否恰好两个、拓扑是否线性、屏蔽是否单点接地、速率与长度是否匹配。任何一项失配,都会在通信质量上被放大。把物理层当作“接线问题”而轻视,是工程中最昂贵的误区之一。