控制器看门狗问题分析及改进
2022-03-25何健豪赵倩文阮鸥
何健豪 赵倩文 阮鸥
摘 要:本文选用了控制器看门狗的软件问题,以故障树的分析思路,对问题进行分析。通过研究表明,通过这种方法可找出看门狗故障原因。其他类型控制器如出现类似问题,可参考本文的思路开展分析。此外,对软件进行改进,有效提升软件成熟度。
关键词:看门狗 超时 复位 控制器
1 前言
看门狗功能用于监控控制器运行的健康度,在国内外各种控制器中的应用极其普遍,因此对此功能的研究十分重要。本文针对看门狗问题,结合故障树方法,找出了看门狗故障原因,实现软件优化。
2 故障现象
某款新能源车型,在路试试验过程中,出现行驶中突然无法加速,同时仪表提示报警信息,控制器记录有看门狗功能的相关故障码。停车下电休眠5分钟,车辆恢复正常。本故障属于低几率偶发故障,不容易复现,故对此进行专题分析。
3 一般看门狗的基本功能原理
看门狗,又叫watchdog timer,是一个定时器电路[1],作为一种监控功能电路,用于监控控制器的软件运行状况。电路包含输入和输出,其中输入叫做喂狗,输出一般连接到主芯片的复位端。看门狗电路具备特定的计时或计数功能,计时或计数可被设定,看门狗电路被使能时,则计数器开始计数计时。当主芯片正常工作时,软件正常运行至看门狗程序,每隔特定时间段输出特定信号到输入端,给看门狗电路的计数器清零。如果在超过设定的时间,但没有及时喂狗清零,此刻看门狗电路就会提供一个复位信号到主芯片,使主芯片复位,我们常称为看门狗超时或复位。看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞。基于不同的开发需求和应用场景,控制器可能内部存在多个看门狗电路。
4 故障失效模式
能够引起控制器内部看门狗超时故障的原因,经过分析有以下几方面。
硬件看门狗故障①芯片故障②逻辑门故障③MOS开关故障④电阻电容故障⑤PCB信号线开路。①为控制器芯片出现故障,无法知道或确认看门狗信号,引发看门狗超时故障。②③④⑤为控制器电路出现故障,无法正确地传递看门狗信号,引发看门狗超时故障。
软件看门狗故障⑥上电流程喂狗超时⑦下电流程喂狗超时⑧复位流程喂狗超时⑨运行中或其他的喂狗超时。⑥⑦⑧⑨為控制器软件在各个流程中运行,但在某一个环节出现看门狗喂狗超时的故障。
软件看门狗代码设计问题写入无效寄存器写入错误数值使用错误格式。为控制器软件代码的设计出现漏洞或错误,导致软件运行时引发看门狗超时故障。
5 故障树
6 故障排查
根据以上故障失效模式以及故障树分析,对其进行各个环节的排查,找出根本原因。
6.1 硬件分析
按照以下步骤逐一开展。
6.1.1 总成基本功能检查:
厂家一般在发货前,在控制器生产即将结束时,设置一个自动化的检查工位,对控制器的基本功能进行检查。如果发现不良品会及时报警提示,隔离处理。(总成基本功能测试常被成为下线检测[2])在对控制器进行深入分解分析前,先进行控制器的基本的功能测试,确认开盖前的基本功能的状况并记录。
经过总成基本功能检查,得出结论为功能正常。但是此时,并不能完全就可以认定硬件正常。因为可能存在硬件电路常见的偶发接触不良或者阻值异常等问题,需要在特定工况下或长期工作下,才出现异常。接下来,进行更深入的排查。
6.1.2 电子元器件及电路回路检查:
打开控制器外壳,对内部电路回路连接进行检查,对电子元器件(如电容电阻等)进行检查,确认PCB电路板整体状态是否异常。
6.1.2.1 观察电子元器件焊接[3]情况:
通过目测法观察电容电阻逻辑门等是否存在堆焊、连焊等情况导致电路开路或短路。
经过目测检查,得出结论为未见异常。此方法可排除大部分可见的较明显的焊接故障,但如虚焊等并不能完全依靠目视判定。
6.1.2.2 测量电子元器件及电路回路阻抗:
通过万用表对看门狗电路中的各个支点进行两两之间测量,记录电阻值。目的为针对不可被目视发现的连接失效,通过阻值确认各支点之间是否存在虚焊等问题。测量后,将测量结果与正常的件(或设计值)的测量值进行比较,如图5。
经过测量结果检查,得出结论为未见异常。此方法可排除如虚焊等问题。
6.1.2.3 主芯片检查
经过上述5.1.2.1和5.1.2.2的对看门狗的外围电路进行了检查,我们可以基地得出看门狗外围电路是正常。由于看门狗信号的喂狗输入及看门狗信号的复位输出都是通过主芯片的,因此将对主芯片进行检查。但因为主芯片的针脚数量非常庞大,对比传统焊接方式有差异,针脚不容易观察和测量,需要通过X光成像检测法进行检查。检查芯片是否出现板端电器元器件的焊接是否出现不良问题导致电路开路或短路。(X光成像检测法:使用X光设备照射并拍照记录,可将不容易观察的被检测对象,更直观地的以图像形式进行呈现。检测人员通过图片对被检测对象的焊接情况、故障形式等进行认定。如图6)
经过测试,认定芯片焊接正常。
综合根据售后信息:故障车辆断电休眠后,能够正常驾驶,功能正常使用,后续不再稳定复现故障,非能永久出现的故障。判定:硬件正常。
6.2 软件分析
6.2.1 软件代码应用分析如下:
经过软件代码检查,未使用无效寄存器,看门狗的存储数值格式正确。通过软件监控,写入的计数器数值的寄存器可递增可清零。如果问题是出现在上述条件中,看门狗故障应较容易稳定出现。得出结论为软件代码应用未见异常。
6.2.2 看门狗超时分析
需要监控各个工作流程,确认在哪个环节中出错。要满足两个条件,才能开展此项工作。一是能复现故障,二是将数字流程监控表象化。
对复现故障并非易事,一般思路是将试验车上采集的数据以及工况,在台架上进行模拟。控制器也从车辆上拆下,为达到软硬状态一致后,开始循环地工作复现故障。需要使用设备和方法监控各个流程的进行情况,因各个厂家的使用情况而异。
经过约三千个循环以后,复现了故障。经过分析和判定,发现在复位后的下电流程出现了看门狗超时的情况。
7 故障原因
我们发现在控制器工作过程中复位,进入下电流程时,触发看门狗超时故障。如图7数据表明,在下电过程中,控制器进行信息存储,并在此刻,看门狗停止喂狗持续800ms,引起看门狗超时故障,触发保护被禁止工作,则会影响驾驶。
此问题如果发生在正常下电的过程中,虽然下电过程也有看门狗超时,但是在控制器信息存储结束后,进入休眠模式,则控制器不会出现任何故障,所以前期问题不能被发现。
8 改进方案
软件策略优化:在信息存储过程中,停用看门狗功能,直至存储工作完成后收到唤醒信号后恢复,同时提升看门狗功能优先级。
9 结论
根据故障树的思路对控制器看门狗的软件问题进行分析并找出故障原因。对软件进行改进,有效提升了软件成熟度。可参考本文经验对其他类似功能的控制器进行横展。
参考文献:
[1]李延庆,马勇,杨凡奇.一种硬件看门狗电路设计.汽车实用技术,2016年 第1期.
[2]刘勇.变速箱总成下线检测试验台开发及应用.装备维修技术,2015年 第3期.
[3]李略.锡焊及无腐蚀活性助焊剂机理简介.汽车电器,1989年 第3期.