吴 奇,王亚斌
(1.西安机电信息技术研究所,陕西 西安 710065;2.北京理工大学,北京 100081)
近年来,随着基础工业的进步,单片机、DSP等嵌入式系统在破甲弹机电引信中得以广泛应用,而引信软件故障有可能导致破甲弹的功能失效。目前美国有近百家机构从事软件可靠性研究工作,其中嵌入式软件系统可靠性研究是保密程度最高的技术领域之一,我国引信嵌入式软件可靠性工作起步不久,对嵌入式软件的可靠性问题重视程度不高[1-2]。在引信安全性方面,越是先进的技术,我国和美国的差距越大[3]。由于破甲弹要求对目标瞬发度高,因此要求引信的嵌入式软件对采集的外部数据有很高的响应速度和准确度,并且自纠错时间短,所以评价破甲弹引信嵌入式软件可靠性的两个重要因素是软件的纠错时效性和对采集数据处理的准确性,因此高效的自纠错能力和快速准确的数据容错处理能力可以提高破甲弹机电引信嵌入式软件的运行可靠性。目前破甲弹机电引信软件多数都是模块化、顺序式运行结构,这种软件纠错方法通常都是靠WDT唤醒实现,数据容错处理通常采用表决的方式进行,这种方式导致软件纠错时效性差,数据容错处理能力弱,从而限制了软件的运行可靠性。本文针对目前大部分破甲弹机电引信软件纠错时效性差、数据容错处理能力弱,从而限制了软件运行可靠性的问题,提出了应用于破甲弹机电引信的嵌入式软件架构。
1983年美国IEEE 计算机学会对“软件可靠性”一词做出定义:1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率;2)规定的时间周期内,在所述条件下程序执行所要求的功能的能力。GJB451A 对软件可靠性的定义为在规定的条件下和规定的时间内,软件不引起系统故障的能力[4]。软件可靠性不仅与软件存在的差错(缺陷)有关,而且与系统输入和系统使用有关。由于软件是“通过承载媒体表达的信息所组成的一种知识产物”,如果没有人为修改,就不可能自然地变化,也不会像硬件那样“老化”、“损耗”。软件出错是由2 个条件所造成:一是内在缺陷;二是外部输入条件使软件运行路径经过并激发了存在的缺陷。信息化与数字化是未来战争的主要特性之一,软件技术已成为现代战争必需的关键技术[5]。软件作为嵌入式系统的一部分,已被越来越多地应用于各种武器系统上,其规模、功能、复杂性的增长及其失效所造成的灾难性后果迫使工程界对软件可靠性问题给予充分重视[6]。根据美国国防部和NASA统计,美国军方遇到的问题中70%是软件问题[7],当今武器和航天系统中的软件可靠性比硬件系统大约低一个数量级,因为软件故障而造成的重大事故不乏其例,如F-18战斗机在海湾战争中,飞行控制软件共发生了500多次故障,爱国者导弹因软件问题误伤了28名美国士兵,导致6人死亡[2],阿里安5型火箭发动机控制系统软件的错误导致飞行试验失败等。
嵌入式微处理器广泛应用于引信设计中,所谓嵌入,即一个系统A内置于一个更大的系统B中,则称为A嵌入于B。一般的嵌入式系统在更大的系统中提供控制和计算功能,它们是系统的灵魂,管理和控制系统中的其他部分。嵌入式软件系统的一个突出特点在于,通常只为软件提供执行环境(运行环境),而不是提供软件的开发环境(宿主环境)。也就是说,嵌入式软件的开发环境和运行环境是不一致的。正是这种不一致,给嵌入式软件的可靠性带来了评估问题,软件的可靠性程度大多依赖于程序员的素质。嵌入式软件大量采用汇编语言直接进行底层控制,大大提高了控制的精准度。由于嵌入式微处理器大多数都是单核流水式运行结构,因此引信软件多数都是模块化、顺序式运行结构,没有全局标识和全局控制模块,软件的纠错靠看门狗实现。看门狗定时器实际上是一个计数器,周期性地给看门狗电路发送“喂狗”脉冲,使得看门狗电路计时器不断地清零重新计时,在控制系统受到电磁场干扰或者其他原因引起PC 指针异常,造成处理器的指令发生错误时,持续一段时间未进行“喂狗”操作,定时器产生的脉冲作为复位信号,将重新复位和初始化处理器,处理器重新开始工作。
一般情况,采集的输入信号需要进行数字滤波处理才能应用,通过算法将无用频率的信号滤除,提取出有用频率信号,在系统的应用中,数字滤波技术主要是将信号的噪声加以消除。由于破甲弹通常要求对目标的响应时间短,所以评价破甲弹机电引信嵌入式软件的数据容错处理的能力时,重点考核软件对采集数据的处理速度和准确度,因此高效的数据处理速度和对干扰信号的滤除能力是主要因素。目前的破甲弹机电引信软件采集外部信号时,经常采用表决的方式进行,即遵循少数服从多数的原则,采集一段时间数据后进行少数服从多数的判别,以出现次数最多的数据为正确信息,这种方法的缺点是耗费CPU 的时间较多,实效性较差,对干扰信号的滤除能力受限。
由于引信设计中采用的嵌入式微处理器多数都是单核顺序式运行结构,因此引信软件多数都是模块化、顺序式运行结构,这种结构导致系统原纠错方法效率低下。在现存的顺序式运行流程框架下,提出了一种拓扑式顺序运行纠错结构,设置全局标识,建立全局控制控制模块,打通各个模块之间的跳转通道,实现了高效的纠错模式。
具体的结构是根据软件功能将程序分成若干模块,每个模块设置一个或者多个全局变量标识,作为软件运行点的状态标识,运行结束即设置相关标识,标识根据需要存于Flash或者EPROM中;在软件模块结束后设置停止运行陷阱,防止软件状态变化;在软件停止运行陷阱后的每个页面设置页面跳转指针,均跳转到页面初始位置,然后在初始位置指针处设置跨页面指向指令,全部指向全局标识检查模块;全局标识检查模块根据全局标识的状态实现软件模块之间的转换运行,软件的设置和运行如图1所示。当软件跑飞后,不受WDT唤醒周期的限制,会立刻转向全局标识检查模块,根据该模块的检查结果转向跑飞前所在模块继续运行,实现高速纠错的功能。
图1 软件设置示意图Fig.1 Schematic diagram of software setup
软件的运行过程始终表现在全局标识中,若全局标识存于EPROM中,可实现软件历次运行状态的纪录和快速纠错功能,但此功能受到动态存储时间的限制;若全局标识存于Flash中,仅可实现软件快速纠错功能。
引信处理采集外部数据时均要求实时性和可靠性,所谓实时性,即必须满足时间约束的特性。实时软件的处理速度并不一定非常快,重要的是需要准确和及时。例如,它们的时间特性应该是可以预见的,对于实时软件而言,其正确性不仅由系统的功能和行为特性决定,还依赖于系统的时间特性。我们知道,引信失效轻则导致炮弹不能摧毁目标,重则误伤己方。炮弹在发射周期内经历十几毫秒,从出炮口到弹着点经历数秒、数十秒或是更长的时间,但在装有引信软件的弹药上,从引信搜集目标信息到输出作用信息就只能限制在几毫秒内甚至是几十微秒内,由此可知引信软件在有效的时间内提高数据采集判断的准确度尤为重要。
对于数据流的采集判断,提出了一种模块化轮采结构,通过对数据短处理,然后再通过实时更新和总体判别的方式进行数据采集处理,结构示意图如图2所示,将流数据进行不断实时采集。
图2 结构示意图Fig.2 Structural diagram
首先根据应用需求规划采集模块数量,然后依次采集单模块数据,并依次更新,可以采用N点表决或者平滑的前处理方式采集,不受传统表决式的集中全处理影响,因此可以滤除部分干扰信号。每次采集完成后均进入总数据处理模块进行数据处理,不受传统表决式采集总宽度的限制。若满足预设条件即可进行转向运行,因此可以实现快速的数据处理能力。数据流处理方法适用于对模拟信号或者电平信号进行鉴别包括系数滤波、加权滤波、中值与限幅等。
由于破甲弹要求对目标瞬发度高,因此要求引信的嵌入式软件对采集的外部数据有很高的响应速度和准确度,并且自纠错时间短,所以评价破甲弹引信嵌入式软件可靠性的两个重要因素是软件的纠错时效性和数据容错处理的能力。为了验证应用于破甲弹机电引信的嵌入式软件架构纠错的时效性和数据容错处理的能力,采用实验室仿真实验和半实物对比测试的方法进行验证。用两发破甲弹机电引信,将一发的软件纠错结构设置为WDT唤醒式,数据处理方式设置为表决式;另一发软件纠错结构设置为拓扑式,数据处理方式设置为轮采式。
首先在实验室进行模拟跑飞情况下的纠错时效性仿真实验,将WDT唤醒式引信软件的WDT周期设置为系统支持的最小唤醒时间16 ms,软件纠错结构设置为拓扑式的软件结构直接进行测试。在仿真运行过程中,随机将PC指针人为指向不同的模块,分别观察软件的运行情况,将纠错时间进行分析记录,结果见表1。
表1 纠错时间结果对照表Tab.1 Comparison table of error correction time results
验证结果显示拓扑式结构软件的纠错时间比传统WDT式软件的纠错时间缩短了3 000倍左右,表明了拓扑式结构软件可以实现快速纠错功能。
由于破甲弹通常要求对目标的响应时间短,所以要求破甲弹机电引信嵌入式软件对采集数据处理的准确度高、响应时间短,所以软件对采集数据处理的速度和准确度能够评价软件数据容错处理的能力,软件滤除干扰信号的能力越强越可靠,处理速度越快性能越高。再次在实验室进行了半实物数据处理速度和滤除干扰信号能力测试,测试时首先分别给两发破甲弹机电引信加载正常目标信息,观察软件对目标信息的数据处理速度;然后分别给两发引信加载不同的干扰信号,观察不同软件对干扰信号的滤除能力,记录软件是否响应,测试结果见表2。
表2 数据处理结果对照表Tab.2 Comparison table of data processing results
测试结果显示轮采式数据处理方法的响应时间比传统的表决式数据处理方法响应时间提高了1倍,且对干扰信号的滤除能力强,表明了轮采式数据处理方法在处理采集的外部信息时比传统表决式方法数据容错处理能力强。
本文提出了应用于破甲弹机电引信嵌入式软件的架构,该架构采用拓扑式纠错结构和轮采式数据处理方法,拓扑式纠错结构通过设置全局标识,建立全局控制核心,打通模块之间的跳转通道的方式实现了高效的纠错能力;轮采数据处理方法通过对数据的短处理和实时更新、总体判别的方式有效提高了数据处理的时效性和可靠性。仿真实验结果表明,拓扑式结构软件的纠错时间比传统WDT式软件的纠错时间缩短了3 000倍左右,实现了快速纠错功能;轮采式数据处理方法的响应时间比传统的表决式数据处理方法响应时间提高了1倍,且对干扰信号的滤除能力强,表明了这种软件架构具有高效的系统纠错能力和快速准确的数据容错处理能力,破甲弹机电引信通过采用这种嵌入式软件架构,可以提高软件的可靠性。