把CAN物理层信号捕获落到通信协议状态机的触发条件、可观察状态和复查材料上,先判断问题从哪里收窄。
CAN物理层信号捕获常见问题来自默认值、路径、版本或权限未形成同一条判断链。
本节用通信协议状态机对应的命令输出或状态变化确认配置是否真正生效。
在《CAN总线嵌入式固件逆向分析与协议还原教程》中,物理层信号捕获是连接理论波形与固件逻辑的起点。本节将使用示波器直接测量CAN_H/CAN_L差分信号,理解显性位(Dominant Bit)与隐性位(Recessive Bit)的物理表现,并实测位时间(Bit Time)与采样点(Sample Point)位置。这一步骤是后续逆向分析帧ID、数据场和CRC校验的基础,任何示波器探头接反或触发电平设置错误,都会导致捕获到的波形无法解析
在连接探头前,先用万用表测量CAN_H与CAN_L对地电压。正常总线在隐性状态时,CAN_H≈2.5V,CAN_L≈2.5V;显性状态时,CAN_H≈3.5V,CAN_L≈1.5V。若电压偏差超过±0.3V,说明终端电阻或收发器可能异常
CAN总线物理层采用差分信号传输,其核心优势在于抗共模干扰。示波器探头通道1接CAN_H,通道2接CAN_L,数学运算通道设置为CH1-CH2,即可实时观察差分电压(Vdiff)。根据ISO 11898-2标准,差分电压大于0.9V时总线呈现显性电平(逻辑0),小于0.5V时为隐性电平(逻辑1)
位时间(Bit Time)是CAN通信的基本时间单元,由同步段(Sync_Seg)、传播段(Prop_Seg)、相位缓冲段1(Phase_Seg1)和相位缓冲段2(Phase_Seg2)组成。采样点位于Phase_Seg1与Phase_Seg2之间,通常推荐设置在位时间的75%-87.5%处。例如,对于500kbps的CAN总线,位时间为2μs,若采样点配置为80%,则采样时刻位于1.6μs处。使用示波器测量时,需将时基设置为200ns/div至500ns/div,并触发在差分电压的下降沿(显性位开始)
某ECU固件逆向项目中,目标总线速率为250kbps,但示波器捕获到的位时间约为4.8μs(理论应为4μs)。通过对比CANalyzer配置项中的“位时间(Bit Timing)”寄存器值,发现Phase_Seg2被错误配置为3个时间份额(Time Quantum),导致采样点偏移至62.5%。调整配置后重新捕获,位时间恢复至4μs,后续协议还原成功
为复现上述场景,需同时配置示波器和CANalyzer的CAN配置项。下表列出了关键参数及其验证方法,确保捕获到的差分信号符合预期
| 时间/步骤 | 输入 | 动作 | 输出 |
|---|---|---|---|
| 示波器时基(Time/Div) | 200 ns/div ~ 500 ns/div | 捕获单个位时间内的波形细节 | 时基过大无法分辨位边沿,过小无法观察完整帧 |
| 触发电平(Trigger Level) | 差分电压1.5V(下降沿) | 稳定触发在显性位开始处 | 电平过高或过低导致触发抖动或漏触发 |
| CANalyzer位时间寄存器 | BRP=4, TSEG1=13, TSEG2=2 (5… | 定义时间份额与采样点位置 | 错误配置导致采样点偏移,误码率上升 |
| 差分电压阈值 | 显性>0.9V,隐性<0.5V | 判断总线逻辑状态 | 阈值偏差导致位识别错误 |
若示波器捕获到的差分电压在显性位时低于0.7V,或隐性位时高于0.7V,应优先检查终端电阻(标准120Ω)和收发器共模电压。不要急于调整CANalyzer配置项,物理层问题必须先排除
理论复盘要抓住CAN物理层信号捕获背后的前提变化:CAN怎样影响结论,再看CAN是否能证明判断成立。迁移到别的机制或协议时,需要说明物理层信号捕获和示波器与CANalyzer差分位电平哪些内容适合沿用,哪些会因为对象、边界或前提变化而失效。最终留下的物理层信号捕获应能让别人看懂概念层级、选择依据、结果边界和下一次复查入口。如果后续章节复用本节判断,先问知识结构是否还成立,再看方法框架是否改变物理层信号捕获的解释范围。第02节如果迁移到新环境,先重做CAN物理层信号捕获的最小验证,再决定方法框架是否需要调整。