摘要:CAN总线的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持,在带来便利的同时,也为工程师们故障排查增加了难度,所以本文主要给大家介绍了找到CAN总线(故障)节点的三种办法。
一、 将所有节点都拔掉,依次往上接。
当CAN总线出现故障后将所有节点都拔掉,之后一个一个节点往上接,接到系统出错时,即找到最后一个插入节点为故障节点。如下这种情况,图1为新能源车控制总线,车辆启动后仪表显示滞后,显示错误。导致司机判断延迟与错误,影响交通安全。将所有节点拔掉之后,采用此方法挨个节点往上接,直到电机控制器接到总线上出现了通信故障,初步判断为电动机运行产生的强干扰,串扰到CAN总线上,导致帧错误增加,重发频繁,正确数据不能及时到达。
图1 新能源车控制总线
二、 根据电平特征,找到出错节点方位
我们接着上面的案例按照此方法验证,下图2是我们使用CANScope接方向盘下的 OBD 接口测试的错误帧波形图。
图2 错误帧的波形图
从蓝色标记可以看到,ACK 应答后,先有一个低台阶,再二次抬高的错误帧。此错误标志是由主动错误标志+错误标志叠加而成,二次抬高的是 6 个连续显性电平,因某节点错误后全局通知,各节点错误标志叠加造成的。也就是说车网络上有某一 CAN 节点较容易受到干扰,出现局部错误。
如何快速分析出错误节点呢?使用CANScope 接入车前端的 OBD 接口和车尾部的电机控制器分别测试,结果如图 3 所示:
图3 共模干扰对比
由上图所示,在 OBD 接口测试的共模幅值为 700 多 mV,在电机控制器节点测试的共模幅值为 1.3V 左右,同时可看到周期性的干扰脉冲。通过对异常共模信号做 FFT 频谱分析,快速定位共模干扰频率,测试结果如图4 所示:
图4 干扰频率
测试出的干扰频率与电机驱动器频率吻合,推断为驱动器逆变产生的巨大电流形成强干扰,串扰到 CAN 总线上,导致距离其较近的节点出现局部错误。
三、 用多路CAN卡查找故障节点
如图5所示,使用的USBCAN-8E-U通过USB接入CAN网络,最高可对8路CAN总线的数据进行同步监听、采集数据。
图5 CAN卡监测
并配合上位机一体化分析流程,可追溯数据错误来源,如图6所示,框1是原始报文,框2是错误信息,框3是统计信息,可对总线深入诊断分析,找出故障节点。
图6 CAN视图