时间:2024-07-28
李庆楠,宋 丫,严 琳,骞恒源
(航空工业西安航空计算技术研究所,陕西 西安 710065)
近年来,机载设备综合化程度和复杂性不断提高,设备故障的排查也越发复杂[1,2]。设备故障的诊断、分析及定位往往依赖于飞参和产品内部非易失存储器中记录的数据。由于机载设备最小任务周期与飞参记录周期不一定相同,且受通信数据数量的限制,并不能将所有信息均上传飞参。这对某些暂态故障的排查带来不便,此时产品内部非易失存储器中记录的故障信息是排故的重要依据。然而设备往往采用事件触发记录的方式,该方式存在消耗时间动态范围宽、可拓展性不强,适用范围窄的缺点,因此设计一种记录消耗时间动态范围可控,且适用范围广的故障记录机制具有重要意义。
非易失存储器(NVM)可分为只读存储器(ROM)、闪存(Flash)、光、磁介质存储器、非易失随机存取存储器(NVRAM)。ROM可细分为不可编程ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)和电可擦除可编程ROM(EEPROM)。
NVRAM借助带有备用电源的SRAM或借助NVM(如EEPROM)存储SRAM中的信息来实现非易失功能。NVRAM可以像SRAM一样读写,而且写入的信息掉电不丢失,不需要EEPROM和FLASH的特定擦除和编程操作[3]。
在机载领域,常用NVRAM作为故障记录存储器,少量场景使用EEPROM。
本文设计的故障信息内容与所占大小如表1所示。
表1 故障信息内容
帧头用于标识一条故障信息的起始位置;接口类型用于标识故障的接口类别,最大支持64种,每种接口最多可包含256个通道;故障时机可分为上电自检测、周期自检测及维护自检测;故障现场用于记录判故所依赖的数据,不同接口记录的故障现场数据类型可不相同;故障次数用于表示故障发生的次数,故障从无到有,次数增加1。
考虑到故障记录是事件触发的,设备运行过程中故障数量是动态变化的,极端情况下所有故障可能在同一周期发生,也可能没有故障,若每次故障发生时直接写非易失存储器,记录故障所消耗的时间动态变化范围大,可能引起任务超时。
另外,对于写周期有限制的非易失存储器,若每次故障发生时进行写操作,可能由于多个故障发生的时间间隔小于非易失存储器写周期而导致写入失败。
因此,本文设计了如图1所示的故障记录机制。
图1 故障记录机制
故障记录过程可划分为3个步骤。首先,故障信号状态发生变化时,按照表1产生一条故障信息;其次,将故障信息写入故障记录队列;最后,周期性从故障记录队列中读取一定数量的故障记录,将其写入非易失存储器的滚动记录区,最后更新记录索引信息到固定记录区。
本节以EEPROM(AT24C64A)为例,实现故障记录过程,该过程同样适用于以NVRAM作为存储器的场景。
AT24C64D采用IIC通信方式,控制引脚少,可以在IIC总线上挂载多片以拓展容量;该EEPROM写周期最长为5 ms[4]。
为满足写周期要求,本文设计的EEPROM最小写周期为10 ms,故障记录队列最多存放512条故障信息。周期任务流程图如图2所示。
设备运行过程中,周期性对自身软、硬件资源进行检测,若发现故障,则生成故障信息并写入故障记录队列;每两个周期从故障记录队列中读取故障信息,若读取到故障信息,则写入EEPROM,并在下个周期将更新后的故障记录索引记录到EEPROM中,否则不进行EEPROM写操作。
经实际应用验证,本文设计的故障记录机制具有拓展性强、适用范围广的优点。可以应用于以NVRAM和EEPROM为存储器的机载设备。同时,能有效减小周期任务运行时间的动态范围,避免任务超时。另外,该机制具有良好的可移植性,既能应用于任务简单的裸机,也能应用于多任务嵌入式系统中(需将故障记录队列作为共享资源,进行互斥访问),也为其他民用领域故障记录提供有效参考。
图2 10 ms周期任务程序流程图
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!