CAN 总线是当前应用最广泛的现场总线之一,但其复杂的故障排查经常困扰到应用工程师。本文结合工作经验为大家推荐几种快速定位 CAN 总线故障节点的方法。 $ F* ]6 o' U y4 Z一、总线故障 CAN 总线故障的原因多种多样,如节点发送周期异常、节点掉线甚至整条总线被拖垮。一个故障节点或者隐患节点往往会危害到整个产品的安全,如新能源车的控制总线中,故障节点导致仪表盘数据更新滞后、显示错误导致司机判断错误引发道路安全事故。 0 k+ m P5 \9 C) t0 l% ?图 1 总线故障案例 二、故障定位方法 方法一:将 CAN 节点一个一个往总线上接,每接一个节点后观察、测试总线通信状况。该方法相信是绝大多数现场应用工程师都有尝试,往往可以零成本揪出问题节点。以上方法虽然非常简单,但弊端也很多。其一,当总线节点过多或者总线布线复杂时往往使工程师抓狂;其二,假如故障原因是各节点容抗、阻抗控制不好导致的,往往多个节点的累积效应才导致问题出现,因此最后一个挂上去且总线出问题的节点不可避免要“背锅”。 7 I" \9 y" t" D! N$ l图 2 节点依次接入总线 方法二:根据特征电平判断错误原因。从波形上对通信错误的诊断往往是最直接、高效的,但这依赖丰富的现场经验,笔者此处列举几个 CAN 波形案例供参考。 图 3 错误帧是在帧结束位置出现电平台阶。此错误由主动错误标志+错误标志叠加而成,二次抬高的是 6 个连续显性电平,因某节点错误后全局通知,各节点错误标志叠加造成的。通常,当节点受较强的电磁场干扰后易发生此类错误,如变频器、逆变器、电机等功率器件。此时,我们亦可配合 FFT 分析工具分析干扰频点,以此定位到干扰源并屏蔽它,如图 4。 6 z1 x7 v" |& V图 3 帧结束波形台阶 图 4 FFT 分析干扰频点 , E+ g7 J. E* P; B7 e# C' @图 5 错误帧波形边沿出现抖动,此错误一般是长分支导致。在一字型总线网络拓扑布线完整且两端各匹配 120 欧终端电阻情况下,为了再将远端新节点接入网络使用一根较长通信线直接接入 CAN 网络,此节点将带来长分支问题。一般地,长分支仍需要做阻抗匹配,更好的方式是从两端延长通信线接上该节点,仍“手挽手”保持一字型网络拓扑。 图 5 长分支导致边沿抖动 图 6 波特率异常(位宽度从 2us 突然变成 1.6us),导致位错误引起错误帧。位宽的不稳定是波特率不稳定导致的,最有可能的原因是晶振问题,建议更换晶振测试。 b% S/ q4 x- U o' d: ~图 6 波特率偏差引起错误帧 方法三:使用 CAN 转换器或接口类产品辅助排查。简单的故障排查一般我们采用 USBCAN 卡解决,通过抓取总线上的报文分析故障节点。极端情况下,一个故障节点往往能直接拖垮一个总线,总线上将无任何数据,此时怎么通过抓取报文解决问题呢?通过一个多路的 CAN 集线器能解决以上问题。CAN 集线器的每个 CAN 接口都是一个独立的 CAN 节点,一路 CAN 的严重故障不会导致所有节点不能进行数据收发,此时不能正常发出数据的节点可判定为故障节点。 图 7 CANHUB 提供 8 路独立 CAN 网络 三、总结 以上内容为工程师呈现几种常用的 CAN 总线故障定位方法,从便捷、成本、高效方面考虑,笔者优先推荐方法三。此外,CAN 集线器也兼顾中继器、信号放大器的作用,把多个节点拆分到不同独立的 CAN 总线上能消除负载集中,有效减小总线故障的发生。若您有更好的 CAN 总线故障排查方法可在文章下方留言,与广大工程师交流分享。 图 8 CANHub-AS8 应用实例 |
感谢楼主的分享 |
感恩分享,愿汝吉祥如意 |