最近做的项目里遇到一个奇怪的问题,在试装第一台车的车身网络上没有发现有持续的错误帧(在接上总线工具时由于电压不稳定可能会产生一些错误帧,稳定以后无新增错误帧),在经过一段时间调试以后发现CAN网络存在持续的错误帧,那么一定是这期间的调试引入了某种原因导致的错误帧,然后就开排查。
这个网段上有BCM、LDCM、RDCM、CIOM、CGW、空调、转向语音报警器这个节点,终端电阻内置于CGW和CIOM。调试期间更换了CGW的硬件,断开了转向语音报警器的CAN线(由于软件的问题,连上can线会导致工作不正常,也就认为网络上少了这一个节点),更新了几乎所有控制器软件。
排查:
首先断电测量终端电阻正常与否,测量结果:正常。
去掉空调,错误帧依然存在。
然后分别断开各个控制器,看错误帧是否消失,进而判定错误帧的来源。排查结果:断开BCM,错误帧消失。
再次检查语音报警器,发现只断开了CAN_H;把CAN_L也去掉以后,错误帧也消失。
总结:
转向语音报警器的CAN_L对总线电压可能有影响,导致收发错误,需要进一步验证和测量;
但是为什么BCM断开以后总线上的错误帧也消失?
2019年11月22日更新
以上问题是由于其中一个原本以为不在网络上的节点仍然有一根can线还连接着控制器,从而影响了总线导致错误帧。