刷写后节点丢失问题分析及改进
2023-02-08马伯祥聂泽宇李志宁段冲磊陈树星张丽波
马伯祥,聂泽宇,李志宁,段冲磊,陈树星,张丽波
(一汽解放商用车开发院,吉林 长春 130011)
为了满足商用物流车日益增长的功能性及舒适性的需求,控制器更新软件是一种最常用的方法。目前行业上90%的商用物流车以CAN总线作为主要通信总线,通过诊断指令,实现对控制器的诊断刷写功能。物流车进行刷写时,需要目标控制器和非目标控制器均满足诊断刷写工作条件,由于控制器诊断实车刷写环境的复杂性,在控制器刷写后,可能出现节点丢失问题。本文针对一种刷写后出现节点丢失的故障状态进行数据分析,并给出相应解决方法。
1 问题描述
某车型售后反馈问题如下:客户发现车辆在4S店进行控制器升级后,每次车辆上电后,仪表会持续警报并且故障指示灯闪烁,提示车身控制器BCM节点丢失,建议立即去4S店处理。经4S店对故障进行排查,反馈诊断仪读取到BCM节点丢失故障。
在整车环境或集成环境中,节点丢失是最严重的故障问题之一。实车网络中节点丢失可能影响车辆安全性能,如:在车辆行驶过程中,发动机控制器的线束接触不良,则可能导致车辆急停,存在严重的安全隐患;在升级发动机控制器过程中,整车控制器节点丢失,发动机未收到实时的驻车制动信号,会导致发动机控制器升级失败,车辆无法启动,需等待4S店技术人员现场处理等。
2 问题复验及结果分析
2.1 测试环境
模拟车身环境,可将被测控制器应用于商用车集成测试系统,以便对问题进行复现,进而分析问题原因。商用车集成测试系统是以实车网络拓扑及实车功能为原理设计的车辆仿真测试系统,满足车辆的网络系统测试和系统功能测试,对各路的CAN总线进行数据监控与数据仿真。
以本文适用的CAN总线为例,分为动力CAN、舒适CAN、底盘CAN、诊断CAN,测试数据在商用车网络集成测试系统中对应CAN1-CAN4。商用车网络集成测试系统可对各个域的数据进行监控及数据仿真、功能仿真及验证等,测试环境示意如图1所示。
图1 测试环境示意图
2.2 工作原理
2.2.1 通信结构
该车型部分结构原理示意如图2所示,其关键点在于:①车身控制器BCM处于诊断CAN和舒适CAN;②车门控制器DCM与舒适CAN相连,通过舒适CAN传输通信数据和诊断数据;③诊断仪通过诊断CAN连接网关控制器BCM,并通过BCM将诊断数据路由到舒适CAN。
图2 车型部分结构原理
2.2.2 刷写原理
参照协议,在刷写目标控制器时,其余有诊断功能的控制器应关闭故障记录功能和通信功能,直到目标控制器刷写完成。①关闭故障记录功能:防止其余控制器记录被刷写的目标控制器超时故障;②关闭通信功能:避免总线负载过高,或者出现干扰报文等,影响刷写进程。基于图2车型部分原理,图3介绍的是通信指令和诊断指令共用同一物理通道的刷写原理示意图。
图3 诊断刷写原理示意图
2.3 测试方向分析
根据刷写原理及故障码分析制定如下4个测试方向:①验证BCM控制器状态;②验证DCM控制器状态;③验证BCM刷写过程状态;④验证DCM在BCM刷写过程状态。
2.4 数据论证
2.4.1 验证BCM控制器状态
将问题车辆同批次BCM应用商用车集成测试系统验证其功能,仿真灯光开关信号、雨刮开关信号等,监测到BCM输出的灯具打开/关闭信号、雨刮器执行和关闭信号正常输出。监测BCM总线报文状态,总线负载正常、报文周期偏离正常。测试结果为:未出现BCM功能异常、报文周期改变或停发报文状况,排除BCM控制器停发报文导致节点丢失可能性。
2.4.2 验证DCM控制器状态
同理验证DCM功能,仿真车门开关信号、解锁闭锁信号、远程遥控信号,车门执行相关动作,响应总线信号正常。监测DCM总线报文状态,总线负载正常、报文周期偏离正常。测试结果为:未出现DCM功能异常、报文周期改变或停发报文状况,未出现DCM误报其他节点丢失故障,排除因DCM误报导致记录BCM节点丢失可能性。
2.4.3 验证BCM刷写过程状态
通过商用车集成测试系统仿真整车网络环境,用诊断仪进行刷写BCM,监控BCM刷写过程前后舒适CAN及诊断CAN通信数据。在刷写后,进行BCM功能复验,控制器功能正常;对诊断CAN上的刷写数据进行分析,诊断服务功能正常,不存在数据丢失、数据篡改等情况,核对数据校验码正确;对比刷写前后BCM的通信数据,所有数据报文均按协议规定周期发送。BCM控制器刷写前后状态总结见表1。排除BCM在刷写过程中出现问题,导致刷写失败可能性。
表1 BCM控制器刷写前后状态对比
2.4.4 验证DCM在BCM刷写过程状态
同理2.4.3,通过商用车集成测试系统仿真整车网络环境,用诊断仪进行刷写BCM,在BCM刷写后对DCM进行功能测试,DCM功能正常。分析刷写BCM前后DCM数据,发现在刷写过程中,舒适CAN上有DCM通信报文,此测试结果与上述2.2.2刷写原理中规定原则(在刷写目标控制器时,其余有诊断功能的控制器应关闭故障记录功能、关闭通信功能,直至目标控制器刷写完成)不符。针对刷写过程中拓扑结构内所有控制器的周期报文进行分析,验证是否有其他控制器恢复通信,得到分析数据如图4所示,时间戳69~133s时间段为刷写车身控制器BCM过程,开始刷写BCM后所有支持诊断功能的控制器停止通信功能,刷写进行5s,即时间戳为74s时,DCM开启通信(恢复在舒适CAN发送通信报文)。初步得出结论:在BCM开始刷写时DCM按协议要求停止通信,在BCM刷写过程中,DCM恢复通信导致记录BCM节点丢失故障。
图4 集成系统中各控制器通信数据分析
查询DCM在舒适CAN收到的诊断指令数据,如图5所示。诊断指令包括:控制进入扩展模式指令(02 10 03 00 00 00 00 00)、关闭故障记录功能指令(02 85 02 00 00 00 00 00)、关闭通信功能指令(03 28 03 03 00 00 00 00),DCM均回复肯定响应,且未收到开启通信的诊断指令(03 28 00 03 00 00 00 00),进一步得出结论,在BCM刷写过程中,DCM恢复通信原因与开启通信的诊断指令无关。
图5 刷写BCM过程中DCM收到的诊断数据
通过图5得知,舒适CAN上无诊断仪在线服务指令数据。查询诊断CAN数据如图6所示。诊断CAN上有诊断仪在线服务指令数据,即诊断仪发出诊断仪在线服务指令数据,但是BCM没有将该指令路由到舒适CAN。问题归结为:在刷写BCM时,BCM未将诊断仪在线服务指令数据路由到舒适CAN。
图6 刷写过程中诊断CAN诊断仪在线服务指令数据
2.5 结果分析
经上述试验分析,在诊断仪刷写BCM时,网关控制器BCM不具备诊断路由功能,即在刷写过程中不能路由诊断报文。因未收到BCM路由的诊断仪在线指令,DCM退出扩展模式,跳转到默认模式(根据ISO 14229-1协议)。进入默认模式后DCM恢复了通信功能和诊断功能,未检测到BCM的通信报文,所以记录BCM节点丢失故障。
3 问题解决与建议
3.1 问题解决
为解决文中节点丢失问题,考虑到不同网关控制器开发策略不同,给出两种解决刷写时节点丢失问题的方案。
1)方案1,控制器在诊断刷写过程中通过路由方式将诊断指令从诊断CAN路由到舒适CAN:更改控制器刷写部分底层驱动程序,完善刷写时的诊断路由功能,实现在控制器刷写过程中,将诊断仪发送的诊断指令路由到舒适CAN。
2)方案2,控制器在诊断刷写过程中直接发送诊断仪在线指令到舒适CAN:在控制器进入刷写流程后,控制器在舒适CAN上周期发送诊断仪在线报文,并在刷写结束后停止发送诊断仪在线报文。
本车型由于BCM刷写部分底层驱动程序架构已固定,且更改架构可能影响诊断服务功能的控制器,经方案对比分析,见表2,采用方案2进行问题整改。经验证,刷写BCM后,DCM不记录BCM节点丢失,此问题不再复现。将方案2应用于该车型问题整改,市场客户及4S店反响良好。
表2 控制器整改方案分析
3.2 改善建议
根据本文测试思路及数据分析,为避免具备网关路由功能的控制器不具备诊断路由功能而造成的节点丢失问题,对设计和测试方面提出如下建议。
1)设计方面,设计部门完善通信协议,要求在诊断刷写时,网关控制器具有路由诊断指令功能。
2)测试方面,通过加强单件环境测试用例,保证整车环境和集成环境的稳定性。用例如下:①模式切换测试,在XXs内未收到诊断仪在线指令,控制器要切换到默认模式,防止刷写其他控制器失败时,该节点丢失;②诊断路由测试,刷写时检测控制器满足停通信报文、网络管理报文、不停诊断路由报文条件,防止该控制器不路由诊断报文导致其他节点切换默认模式,记录其他节点丢失。
4 总结
本文通过对诊断刷写后节点丢失的情况进行分析和改进,对诊断开发及测试验证提出了建议,对如何处理和防范该问题给出解决措施,并对诊断测试工作及网络开发工作起到了一定的借鉴意义。