某商用车仪表 “死机”故障分析及优化设计

2020-04-23 09:59张文博王晓东王玉光
汽车电器 2020年4期
关键词:任务调度死机液晶屏

白 灵,魏 磊,张文博,王晓东,王玉光

(1.北奔重型汽车集团有限公司,内蒙古 包头 014030;2.内蒙古一机集团宏远电器股份有限公司,内蒙古 包头 014030)

1 故障描述

某商用车组合仪表主要由指针表头、TFT液晶显示屏及指示符组成,偶尔会出现“死机”故障。故障现象为:指针仪表的指针指到某一位置不动作,液晶屏显示数据不变,在这种情况下,关闭仪表“15”电,即将钥匙拧到“OFF”挡,仪表没有复位,还是维持“死机”故障现象;将钥匙拧到“ON”挡,组合仪表还是维持“死机”故障现象;只有将整车电源总开关断开后再接通,然后将钥匙拧到“ON”挡,组合仪表重新启动,各个指针仪表指针复位指示正常,液晶屏复位显示正常,组合仪表功能恢复。

2 故障分析

通过故障现象初步分析,仪表在发生“死机”故障的时候,仪表是在运行的,只是在执行一些高优先级的事件 (例如中断和高优先级的任务等),不再执行一些低优先级事件。该仪表软件的基本架构如下:AD数据采集任务——负责AD数据采集和钥匙“15”电检测;步进电机任务——负责步进电机的走位;显示任务——负责液晶屏上具体位置的数据显示;按钮任务——负责按钮的操作采集处理;加密验证任务——负责验证硬件和软件是否合法保护客户的权益;其余任务——负责其他功能,例如故障检测、数据保存等,除此之外,还有一些中断负责频率信号的采集和提供时间基准。

我们在偶尔出现“死机”故障仪表软件程序上增加测试点,以便准确找到出现故障的原因,分别在以下5处增加的测试点进行监控:①AD转换任务;②其余任务中存储里程任务;③按钮任务;④加密验证任务;⑤CAN芯片出现故障。

当再次出现“死机”故障时通过上述测试点监控发现,任务都是在等待时间片转的时候出现,于是排除了在执行某个任务程序死循环后而造成的“死机”故障现象的情况,于是我们推测故障的原因就是中断造成操作系统调度失败或者失误调度造成。

为此我们在台架试验台上模拟制造了一个高优先级事件-20us的定时中断,结果模拟出了仪表“死机”故障现象。软件程序中对仪表“15”电的检测属于AD数据采集任务,优先级比中断低,在出现故障的时候此AD采样任务一直不能得到执行,即关闭仪表“15”电不能被正确检测到,所以必须关闭“30”电,才能使仪表复位,恢复正常功能;同样软件架构中的显示任务及步进电机任务也不会执行,所以液晶屏显示不会变,指针仪表的指针会停留在出现故障前的位置,进一步确定了导致“死机”故障原因是中断造成操作系统调度失败。

这次我们修改了测试方法,通过可编程设置外部信号发生装置,使车速和转速信号变化得更无规律,在内部仿真环境下抓到了一次“死机”故障,确定仪表“死机”故障时操作系统任务调度失败。进一步检查发现,故障时操作系统任务调度中断 (时基中断)在调度的时候没有正常退出,被转速捕捉中断打断造成调度失败,通过进一步分析发现要出现这个故障现象必须受转速高低电平出现的时刻,又受时基中断执行时刻,以及是否有任务的切换影响,因此很难在短时间内出现“故障”且无规律可寻。

3 原因分析

通过上述故障分析、排查,确认“死机”故障是由中断造成操作系统调度失败而产生。当进入“时基中断服务子程序”后,此阶段需要任务调度、高优先级以及中断产生的时候 (3个条件同时满足)就会出现任务调度失败,一旦失败,以后所有的调度都不能正常执行,从故障现象上看如同“死机”,软件流程如图1所示。

图1 优化前时基中断软件流程图

4 优化设计

从图1可以看出,当进入“时基中断服务子程序”后,此阶段又需要任务调度且又有高优先级中断产生的时候 (3个条件同时满足)就会出现任务调度失败,一旦失败,后续所有的调度都不能正常执行,优化设置“时基中断”优先级为最高,在执行任务调度的时候不会被别的中断打断造成任务调度失败,如果有其他中断在此时刻需要等到退出时基中断后再执行相应的中断服务程序,软件流程图如图2所示。

图2 优化后时基中断软件流程图

5 总结

随着电子技术的发展,越来越多的先进技术也应用到仪表中,嵌入式软件中断在汽车仪表中得到了广泛的应用,由于中断执行具有随机性,与硬件、环境和应用都有密切的关系,带来的问题往往具有隐蔽性[2]。本文结合实车仪表的故障排查、原因分析及优化设计,为后续仪表设计中软件中断的应用积累了丰富的经验。

猜你喜欢
任务调度死机液晶屏
提醒
基于生产函数的云计算QoS任务调度算法
基于动态能量感知的云计算任务调度模型
基于FPGA的车内环境监测系统设计
一种消除液晶屏高温MURA的工艺研究
基于单片机的点餐系统硬件设计
脸死机了
基于机器视觉的液晶屏字符缺陷检测系统设计
基于HMS的任务资源分配问题的研究
基于混合粒子群算法的云计算任务调度研究