本文分析一些经典的CAN总线现场故障。
当CAN总线出现故障或数据传输异常时,往往会出现多种奇怪的故障现象,如仪表板显示异常,车辆无法启动,启动后无法熄灭,车辆动力性能下降,某些电控系统功能失等。
这是因为相关数据或信息是通过CAN总线传输的,如果传输失败,那么会产生多种连带故障,甚至造成整个网络系统瘫痪。
诊断接口的6号针脚连接CAN H 导线,14号针脚连接CAN L 导线。如果诊断接口上连接有两组CAN总线,那么动力CAN总线使用6号和14号针脚,舒适总线使用3号和11号针脚。诊断接口的针脚含义如下图所示。
正常情况下,当CAN总线唤醒后,CAN H 对地电压约为2.656V,CAN L 对地电压约为2.319V,而且两者相加为4.975V ▼
正常的CAN H 电压
正常的CAN L 电压
CAN故障通常的原因有CAN线短路、对电源短路、对地短路、相互接反。
当CAN H 与CAN L 短路时,CAN网络会关闭,无法再进行通信。会有相应的网络故障码。CAN H 与CAN L 短路的总线波形如下图所示。
当两者相互短路之后,CAN电压电位置于隐性电压值(约2.5V)。实际测量两条CAN导线的电压,会发现始终在2.5V左右,基本不变化,如下所示。
故障排除方法:通过插拔CAN总线上的控制模块(节点),可以判断是由节点引起的短路还是导线连接引起的短路。
逐个断开节点,若电压恢复正常,则说明该节点有问题。若断开所有节点后电压还没有变化,则说明线路短路。
以对12V电源短路为例,此时CAN H 电压电位被置于12V,CAN L 线的隐性电压被置于大约12V。CAN H 对电源短路的总线波形如下图所示。
实际测量电压,若CAN H 电压为12V,CAN L 电压被置于约为11V,则说明出现此类故障。CAN H 对电源短路的CAN H 电压如下图所示。
CAN H 对电源短路的CAN L 电压如下图所示。
故障原因:如果不是CAN H 导线对外部电源短路引起的,那么这种故障就有可能是控制模块内部的CAN收发器损坏造成的。故障查找方法同上。
当出现CAN H 对地短路这种故障时,根据CAN总线的容错特性,可能出现整个CAN网络无法通信的情况或产生相关故障码。
CAN H 的电压位于0V,CAN L 电压也位于0V,可是在CAN L 导线上还能够看到一小部分的电压变化。CAN H 对地短路的总线波形如下图所示。
实际测量电压,若CAN H 和CAN L 电压均约为0V,且无断路问题,则说明出现此类故障。CAN H 对地短路的CAN H 电压如下图所示。
CAN H 对地短路的CAN L 电压如下图所示。
故障原因:如果不是CAN H 导线对外部地线短路引起的,那么这种故障就可能是控制模块内部的CAN收发器损坏造成的。故障查找方法同上。
此时CAN L 电压约为0V。CAN H 线的隐性电压被降至0V,但显性电压基本不变,因此波形被拉长,依然可以传输数据,由此可说明CAN L 对地短路的容错特性较好的原因。
CAN L 对地短路的总线波形如下图所示。
实际测量CAN导线电压,若CAN L 电压为0V,CAN H 为1V左右,则说明出现此类故障。CAN L 对地短路的CAN L 电压如下图所示。
CAN L 对地短路的CAN H 电压如下图所示。
故障原因:如果不是CAN-L导线对外部地线短路引起的,那么这种故障是控制模块内部的CAN收发器损坏造成的。故障查找方法同上。
当出现CAN L 对电源(正极)短路这种故障时,根据CAN总线的容错特性,可能出现整个CAN网络无法通信的情况或产生相关故障码。
由于CAN L 对电源短路,因此CAN H 电压也被置于12V。CAN L 对电源短路的总线波形如下图所示。
实际测量CAN导线的电压,若CAN L 和CAN H 导线电压都约为12V,则说明出现此类故障。CAN L 对电源短路的CAN L 电压如下图所示。
CAN L 对电源短路的CAN H 电压如下图所示。
故障原因:如果不是CAN L 导线对外部电源短路引起的,那么这种故障就有可能是控制模块内部的CAN收发器损坏造成的。故障查找方法同上。
当某个控制模块CAN H 导线断路时,会导致该控制模块无法实现通信,但其他控制模块的通信还是有的。在其他的控制模块可能读到此故障模块的故障码。如果多个控制模块的CAN H 导线出现断路。那么这些控制模块的通信功能都会受到影响。CAN H 断路的总线波形如下图所示。
如果出现故障的控制模块带有终端电阻,可以用电阻测量法来判断。测量诊断接口的CAN H 与CAN L 之间的电阻,若变为120Ω,则说明有一个终端电阻断路。如果出现故障的控制模块不带终端电阻,那么需要测量该控制模块的CAN导线的导通性。
此外,要结合网络图来查找断点,因为在整个网络中会设置相应的总线集线器,断点部位不同,受影响的部件也不同,同时也会决定诊断仪能够进行诊断的控制模块。CAN网络与集线器分布如下图所示。
当某个控制模块CAN L 导线断路时,会导致该控制模块无法实现通信,但其他控制模块的通信还是有的。在其他控制模块可能读到此故障模块的故障码。如果多个控制模块的CAN L 导线出现断路,那么这些控制模块的通信功能都会受到影响。
如果出现故障的控制模块带有终端电阻,可以用电阻测量法来判断。测量诊断接口的CAN H 与CAN L 之间的电阻,若变为120Ω,则说明有一个终端电阻断路。如果出现故障的控制模块不带终端电阻,那么需要测量该控制模块的CAN导线的导通性。CAN L 断路的总线波形如下图所示。
替换有故障码内容涉及的控制模块,可以快速判断故障是否是由该控制模块本身造成的。此外,要结合网络图来查找断点,从而准确找到原因,排除故障。
当出现CAN L 与CAN H 导线互相接反这种故障时,一般情况下,接错的那个控制模块将无法通信,其他控制模块的通信则正常。CAN L 与CAN H 导线互相接反的示意图如下图所示。
文章来源于网络,版权归原作者所有,如有侵权,请联系删除。选自一起学嵌入式
原文始发于微信公众号(车端):分析一些经典的CAN总线现场故障