凡亿教育 · 电子工程师实战教育品牌
嵌入式硬件培训:长沙/广州校区
|
课程咨询:15989478308(同微信)
免费领取课程大纲

CAN一到现场就Bus-Off,按这条顺序排查

CAN一到现场就Bus-Off,按这条顺序排查

实验室短线通信稳定,装到设备或车辆上却偶发Bus-Off,通常要先把协议故障和物理层故障分开。终端、支线、地电位差、噪声和位时序都会让错误帧累积。排查重点不是反复复位CAN,而是抓到Bus-Off前那一帧发生了什么。

桌上两块板、半米线,CAN跑一天都不报错。装到设备里以后,电机一启动、线束一拉长、节点一增加,就开始偶发Bus-Off。

很多人会先改软件恢复机制:Bus-Off以后自动重启CAN、重新初始化外设。这样能让系统“活回来”,但并没有解决根因。

Bus-Off通常是结果。真正要找的是:错误帧为什么在某一段时间里连续累积。

先把实验室和现场的差异列出来

实验室通常是短线、节点少、共地干净、供电稳定,甚至两端终端电阻都在手边。

现场则完全不同:线束更长,接插件更多,可能出现星形分支;电机、继电器、DC/DC在旁边开关;不同节点之间还可能存在地电位差。

所以“代码没改,为什么现场不行”并不奇怪。CAN协议有很强的错误检测能力,但物理层如果持续把某些边沿、位宽或电平搞坏,控制器最终仍会因为错误计数累积进入Bus-Off。

图1:实际CAN异常波形中,CANH/CANL边沿畸变与错误帧可能同时出现,最终导致Bus-Off。  

图1:实际CAN异常波形中,CANH/CANL边沿畸变与错误帧可能同时出现,最终导致Bus-Off。

第一步:断电量阻值,先确认终端没有错

最简单、也最应该先做的检查,是总线断电后测CANH和CANL之间的电阻。

经典高速CAN总线两端各有一个120 Ω终端,等效并联后通常应接近60 Ω。如果你量到约120 Ω,常见情况是一端终端缺失;如果明显更低,就要怀疑多挂了终端。

终端的作用不是“让电压更漂亮”,而是让传输线末端的能量被吸收,减少反射。节点支线过长、星形拓扑太重,即使总电阻量起来接近60 Ω,也依然可能在边沿处产生反射和振铃。

因此阻值只能作为第一道筛查,不能代替波形。

图2:CANH与CANL的延时、边沿或幅度不匹配,会转化为共模扰动。  

图2:CANH与CANL的延时、边沿或幅度不匹配,会转化为共模扰动。

第二步:同时看CANH、CANL和差分波形

现场调试不要只拿逻辑分析仪看ID和数据。它告诉你“哪一帧错了”,但不一定告诉你“为什么错”。

示波器至少抓CANH、CANL,最好再做CANH−CANL的差分数学运算,或者直接用差分探头。重点看错误发生附近:边沿有没有明显振铃、Dominant电平是否稳定、Recessive回到中点时有没有异常、两个线对地的共模是否被整体抬高或拉低。

如果示波器支持CAN触发,可以直接触发Error Frame;否则也可以用协议分析工具先记录错误时间,再对齐示波器长存储。

一个很实用的动作,是把探头从ECU连接器一路移到收发器引脚。连接器处波形很差、芯片脚边更差,往往是外部线束/终端问题;连接器正常、芯片脚异常,则要检查板内走线、共模电感、ESD器件和参考地。

图3:标准终端下的CAN波形与共模分量实测示例。  

图3:标准终端下的CAN波形与共模分量实测示例。

第三步:降速、缩短总线、逐个断节点

如果500 kbps容易报错,降到100 kbps明显改善,优先怀疑传播延迟、反射、位时序裕量,而不是先怀疑上层协议。

如果缩短线束后问题消失,要继续检查总线长度、Stub长度和拓扑。

如果只有某个节点接入后错误大增,别只看它的软件。那个节点可能多带了一组终端、收发器供电异常、ESD器件漏电,或者地电位偏移更严重。

逐个断节点虽然看起来“笨”,但它是现场定位总线故障非常有效的方法。

图4:采用Split Termination后,共模高频扰动可得到明显抑制。  

图4:采用Split Termination后,共模高频扰动可得到明显抑制。

第四步:现场最容易漏掉的是共模和地

CAN是差分总线,但这不代表可以完全不管地。

当不同节点的地之间出现明显电位差,CANH和CANL可能一起被抬高或拉低。差分电压看起来还像那么回事,但收发器的共模输入范围已经被逼近边界,抗干扰能力会迅速下降。

电机、逆变器和大电流回路附近尤其要关注这一点。把示波器地随便夹在某个机壳点,甚至可能把真实问题遮掉。

Split Termination可以帮助滤掉一部分高频共模噪声、改善EMC,但它不是治疗所有Bus-Off的万能药。先把终端位置、拓扑、地和线束做好,再讨论滤波优化。

一句工程判断

现场偶发Bus-Off,优先按终端 → 波形 → 拓扑/支线 → 位时序 → 共模/地 → 单节点隔离这条线查。

如果你只是在软件里把Bus-Off自动恢复做得越来越快,系统看上去可能更“坚强”,但真正的物理层问题会一直留在现场,直到某次噪声更大、温度更高或线束更长时再次暴露。

声明:

本文由凡亿教育整理,转载请注明来源!

投稿/招聘/广告/课程合作/资源置换 请加微信:13237418207

上一篇空载能启动,一接大电容负载为什么就起不来? 下一篇小信号增益正常,不代表功放还能继续加功率