3、物理层基础:差分信号、显性/隐性电平、总线拓扑(总线型、星型)、终端电阻的作用与匹配
CAN(Controller Area Network)总线物理层是协议栈的基石,它决定了信号如何在导线中传输、如何被节点识别,以及网络在物理形态上如何组织。与以太网或RS-485不同,CAN物理层并非单纯依赖电压高低表示0和1,而是通过一对差分线上的电压差来定义两种互补的逻辑状态——显性(Dominant)与隐性(Recessive)。理解差分信号的电气特性、总线拓扑的约束以及终端电阻的匹配机制,是进行CAN网络设计、布线、调试和故障排查的前提。本章将从这三个核心维度展开,结合工程案例与常见误区,帮助读者建立完整的物理层认知框架。
3.1 差分信号:CAN通信的电气基础
3.1.1 核心原理:为什么选择差分传输
CAN总线采用差分信号传输,其核心思想是使用两根导线(CAN_H和CAN_L)上的电压差值来表示逻辑状态。在ISO 11898-2标准中,显性电平(逻辑0)定义为CAN_H与CAN_L之间的电压差约为2V(典型值CAN_H=3.5V,CAN_L=1.5V),而隐性电平(逻辑1)的电压差约为0V(典型值两线均为2.5V)。这种设计带来两个关键优势:抗共模干扰和电磁兼容性。当外界电磁噪声同时耦合到两根线上时,由于差分接收器只关注两线之间的差值,共模噪声被自然抵消。此外,双绞线中两根导线上的电流方向相反,产生的电磁场相互抵消,降低了对外辐射。
关键参数速查:
- 显性电平(Dominant):CAN_H ≈ 3.5V,CAN_L ≈ 1.5V,差分电压 ≈ 2V,对应逻辑“0”
- 隐性电平(Recessive):CAN_H ≈ 2.5V,CAN_L ≈ 2.5V,差分电压 ≈ 0V,对应逻辑“1”
- 共模电压范围:-2V ~ +7V(ISO 11898-2),适应地电位偏移
- 差分阻抗:双绞线特征阻抗典型值120Ω,与终端电阻匹配
3.1.2 判断方法:如何用示波器正确测量差分信号
在实际调试中,很多工程师习惯用单端探头分别测量CAN_H和CAN_L对地电压,然后通过计算得出差分值。这种方法虽然可行,但存在两个问题:一是无法实时观察差分波形,二是容易受到探头地线环路的影响。推荐使用差分探头或示波器的A-B数学通道进行测量。具体操作步骤如下:
- 将示波器通道1接CAN_H,通道2接CAN_L,使用相同的垂直刻度(如1V/div)。
- 设置数学通道M1 = CH1 - CH2,此时M1即为差分电压波形。
- 观察隐性状态时M1应接近0V,显性状态时M1应约为2V。
- 同时观察CH1和CH2的共模电平,正常应在2.5V附近(12V系统)。
若发现差分电压幅值偏低(如显性只有1.5V),可能原因包括:终端电阻不匹配、总线负载过重、收发器驱动能力不足或线缆过长导致衰减。
3.1.3 案例拆解:一条“时好时坏”的CAN总线
某自动化产线设备出现CAN通信间歇性故障,故障现象为:设备运行数小时后偶发通信超时,重启后恢复。使用示波器在故障发生时测量CAN_H和CAN_L波形,发现显性电平的差分电压从正常的2.0V下降至1.2V,且波形上升沿出现明显振铃。进一步检查发现,该设备使用了非屏蔽双绞线,且布线路径与变频器输出电缆平行走线超过2米。变频器工作时产生的共模干扰叠加在CAN信号上,导致接收端误判。解决方案:更换为屏蔽双绞线,并将屏蔽层在控制器端单点接地;同时调整布线路径,远离变频器电缆至少30cm。整改后,故障消失,差分电压恢复至2.0V,波形边沿干净。
常见误区:不要用万用表测量CAN总线上的“电压”来判断通信状态。万用表只能显示平均值,无法反映高速变化的差分信号。必须使用示波器或CAN分析仪进行波形级验证。
3.2 显性/隐性电平:总线仲裁与冲突检测的物理实现
3.2.1 核心原理:线与机制
CAN总线的显性电平具有优先级属性。当多个节点同时发送数据时,只要有一个节点输出显性电平,总线上就会呈现显性状态;只有当所有节点都输出隐性电平时,总线才呈现隐性状态。这种“线与”机制是CAN总线非破坏性仲裁的基础。在物理层,收发器通过开漏或推挽电路实现这一特性:显性电平由收发器主动驱动,而隐性电平则通过终端电阻将总线拉回。因此,终端电阻不仅用于阻抗匹配,还承担着提供隐性电平偏置的作用。
| 特性 | 显性电平(Dominant) | 隐性电平(Recessive) |
|---|---|---|
| 逻辑值 | 0 | 1 |
| CAN_H电压 | 3.5V(典型) | 2.5V(典型) |
| CAN_L电压 | 1.5V(典型) | 2.5V(典型) |
| 差分电压 | ≈2V | ≈0V |
| 驱动方式 | 收发器主动驱动 | 终端电阻偏置 |
| 总线优先级 | 高(覆盖隐性) | 低(被显性覆盖) |
3.2.2 判断方法:通过波形识别总线状态
在调试中,可以通过观察CAN_H和CAN_L的静态电平快速判断总线状态:
- 总线空闲:CAN_H和CAN_L均为2.5V,差分电压为0V。
- 总线忙:波形上出现连续的显性/隐性交替,差分电压在0V和2V之间跳变。
- 总线短路:CAN_H对地短路时,显性电平被拉低;CAN_L对电源短路时,隐性电平被抬高。
- 节点故障:若某个节点持续输出显性电平,总线将一直处于显性状态,导致其他节点无法发送。
3.2.3 实战场景:总线“锁死”故障排查
某车载电子系统在整车装配后出现CAN总线完全无法通信的现象。使用万用表测量CAN_H和CAN_L之间的电阻为60Ω(正常),但测量CAN_H对地电压为3.5V,CAN_L对地电压为1.5V,且持续不变。这说明总线上有节点持续输出显性电平。逐一断开节点排查,最终发现一个车窗控制模块的收发器芯片损坏,其TX引脚内部短路,导致持续发送显性位。更换该模块后,总线恢复正常。此案例说明,显性电平的“线与”特性虽然保证了仲裁的可靠性,但也意味着单个节点的故障可能瘫痪整个网络。
经验提醒:在CAN网络设计时,建议为每个节点增加总线故障保护电路(如TVS管、共模电感),并考虑在收发器与MCU之间增加隔离,防止单点故障扩散。
3.3 总线拓扑:总线型、星型与终端电阻的匹配
3.3.1 核心原理:为什么CAN必须是总线型
CAN协议在设计之初就假定网络为多点共享总线的拓扑结构,即所有节点并联在一条主干线上,每个节点通过短支线接入。这种拓扑的优势在于:布线简单、成本低、支持广播通信。然而,CAN协议并不支持星型或树型拓扑,因为星型拓扑会在中心节点处产生严重的信号反射和阻抗不连续。如果必须使用星型结构(如某些空间受限的场合),则需要使用CAN Hub或主动中继器进行信号整形和转发,但这会增加延迟并降低可靠性。
终端电阻的匹配是总线型拓扑的关键。ISO 11898-2规定,总线两端各需一个120Ω的终端电阻,其作用有两个:阻抗匹配(吸收信号反射)和提供隐性电平偏置。当总线两端正确匹配120Ω电阻时,从任意节点看进去的总线等效阻抗约为60Ω(两个120Ω并联)。如果终端电阻缺失或位置错误,信号会在总线末端反射,导致波形振铃、边沿变缓,严重时引起误码。
3.3.2 判断方法:终端电阻的测量与验证
在系统断电状态下,使用万用表测量CAN_H与CAN_L之间的电阻,可以快速判断终端电阻配置是否正确:
| 测量值 | 可能原因 | 处理措施 |
|---|---|---|
| ≈60Ω | 两端各有一个120Ω电阻,配置正确 | 无需调整 |
| ≈120Ω | 只有一端有终端电阻 | 在总线另一端补装120Ω电阻 |
| ≈40Ω | 存在三个120Ω电阻并联(如某节点内置终端电阻) | 移除多余的终端电阻,确保只有两端有 |
| ≈0Ω | CAN_H与CAN_L短路 | 检查线缆绝缘和连接器 |
| ∞(无穷大) | 总线断路或未连接终端 | 检查线缆连接和终端电阻 |
3.3.3 案例拆解:星型拓扑导致的通信异常
某工业设备内部空间有限,设计人员将三个CAN节点通过一个中心接线盒以星型方式连接,每个支线长度约0.5米,未使用Hub。设备调试时发现,当三个节点同时通信时,总线误码率高达15%。使用示波器在中心接线盒处测量波形,发现显性电平的上升沿出现明显的过冲和振铃,幅值超过4V。分析原因:星型拓扑中,三个支线的连接点形成了阻抗不连续点,信号在三个分支之间来回反射,且支线长度超过0.3米(1Mbps下的推荐上限),导致信号质量恶化。解决方案:将星型拓扑改为总线型,将三个节点串接在一条主干线上,支线长度缩短至0.1米以内,并在主干线两端各安装一个120Ω终端电阻。整改后,误码率降至0.01%以下,波形边沿清晰。
风险提示:在高速CAN(1Mbps)下,支线长度应严格控制在0.3米以内,且越短越好。对于低速CAN(如125kbps),支线长度可适当放宽至3米,但仍需遵循“越短越好”的原则。若支线长度无法缩短,可考虑使用CAN中继器或网关进行拓扑转换。
3.3.4 总结复盘:物理层设计的核心要点
- 差分信号是CAN抗干扰的根本保障,测量时必须使用差分方式,关注差分电压和共模电压两个指标。
- 显性/隐性电平的“线与”机制决定了总线仲裁的可靠性,但也意味着单节点故障可能影响全局,需做好故障隔离。
- 总线型拓扑是CAN的标准形态,星型拓扑必须通过Hub或中继器转换,否则会因反射导致通信失败。
- 终端电阻必须位于总线物理两端,阻值120Ω±1%,断电测量总线两端阻值应为60Ω。
- 线缆选择:推荐使用特性阻抗120Ω的双绞屏蔽线,屏蔽层单点接地,避免与动力线平行走线。
工程检查清单(物理层验收):
- 确认总线拓扑为总线型,支线长度符合速率要求。
- 断电测量CAN_H与CAN_L之间电阻,确认约为60Ω。
- 上电后测量CAN_H和CAN_L静态电压,确认均为2.5V左右。
- 使用示波器观察差分波形,确认显性电平≥1.5V,隐性电平≤0.5V。
- 检查所有节点是否共地,避免地电位差过大。
- 确认屏蔽层接地方式正确,避免形成地环路。
物理层是CAN总线稳定运行的基础,任何电气参数的偏离都可能导致通信异常。通过深入理解差分信号的原理、显性/隐性电平的机制、总线拓扑的约束以及终端电阻的匹配要求,工程师可以在设计阶段规避大部分物理层问题,并在故障发生时快速定位根因。在实际项目中,建议将物理层测试纳入出厂检验流程,使用CAN分析仪和示波器进行标准化的信号质量评估,确保网络在各种工况下都能可靠工作。