从节点丢失故障码的误报浅谈故障码的测试
2019-04-17王邵龙王睿朝徐大成
王邵龙,王睿朝,徐大成
(一汽轿车股份有限公司,吉林 长春 130000)
随着CAN总线技术的不断发展和电子控制单元ECU(Electronic Control Unit)不断增多,车用CAN总线的负载率不断提高,通信环境越来越复杂,容易出现节点报文丢失的故障情况。某些ECU不能正常接收所需的总线信号时,ECU会进入故障运行模式,为确保安全性而降低性能、增大排放,甚至是禁止车辆行驶[1],同时记录诊断故障码 (DTC,Diagnostic Trouble Code)。
1 故障现象和原因分析
某车型售后反馈以下故障现象:DWCU(举窗控制器)上电后,发现误记了BCM (车身控制器)、GW (网关)、DSCU(座椅控制器)节点丢失故障。
故障排查和原因分析:在排除了熔断丝盒与蓄电池电压对控制器的影响后,通过对多种供电模式下的DTC记录情况分析发现:①对DTC的误记故障发生在整车切换为OFF档约3 min后;②不同控制器对节点丢失DTC的监控周期,存在参差不齐的情况。相关分析过程如表1和表2所示。
以表1、表2为基础,进一步测试发现DWCU控制器误记节点丢失故障的根本原因:正常情况下,整车切换为OFF档,总线休眠条件满足,进入T[wbs][2]时间等待休眠,此时控制器应用报文停止发送,相应控制器应关闭对报文的诊断监测,而DWCU未及时关闭监测,导致记录大量节点丢失故障,如图1所示。
表1 不同供电模式下记录DTC的情况
表2 不同ECU对节点丢失DTC的监控周期
同时,对控制器记录节点丢失故障的监测时间 (表2)统计后发现,各控制器对相应报文监控时间/周期参差不齐,从最短4个报文周期到最长260个报文周期不等。
图1 T[wbs]期间动作情况
2 故障解决与测试用例优化
2.1 故障解决
针对故障现象,对软件进行升级,对T[wbs]期间的总线监测策略进行了优化,ECU在切换到OFF档进入T[wbs]期间关闭监测;同时,对报文的监控周期统一变更为10倍报文周期,如DWCU监测BCM节点丢失的条件为:10倍报文周期时长内未收到BCM报文,则DWCU认为BCM节点丢失。进行软件升级后,故障现象消失。
2.2 测试用例优化
针对节点丢失故障码出现的误报问题,对诊断测试用例进行了优化,见表3。
表3 增加的测试用例
其中,报文监测周期测试的具体方式为:通过CAPL编程,将被监测节点所发送的被监测报文周期分别调整为9倍、10倍报文周期发送,同时读取被测ECU的诊断故障码产生情况。当以9倍报文周期发送时,不记录故障码,当以10倍报文周期发送时,记录故障码,即为PASS。
3 浅谈相关故障码测试
节点丢失故障是CAN总线通信中的常见故障,针对此类故障码的诊断测试应该从两方面考虑:即不误记、不漏记。此类故障码一般有3个相关参数:即被监测报文周期T1、被监测报文丢失周期计数器n(报文丢失T1时长,计数器加1)、报文丢失标志位 (置位时,记录DTC)。
测试中,需对诊断规范规定的计数器n值进行边界测试:分别考察n-1、n、n+1条件下DTC的记录情况,做到n-1时不误记,n+1时不漏记。由于不同ECU的重要程度不同,对n值可以适当进行调整,也可以设置偏差容忍。如音响、空调控制器等ECU,可适当放宽对n值的容忍度,设置比动力系统ECU更大的n值。例如,对n-3~n+3范围内,认为记录DTC是合理的。EMS、TCU等涉及安全驾驶的动力系统ECU,必须严格考察其对节点丢失DTC的记录策略。
对于T[wbs]和T[diag_start]期间的报文监测测试,本文推荐使用HIL或通过CAPL编程进行自动化测试,可以得到更精确的测试结果[3]。同时,应关注实车情况下的测试情况,在点火开关的各种操作中,关注DTC的产生情况。
4 结论
本文通过对节点丢失故障码误报情况的分析和解决,对节点丢失故障码的测试用例优化和侧重点提出建议,也对其他诊断测试工作有一定借鉴意义。