吳 奇,王亞斌
(1.西安機(jī)電信息技術(shù)研究所,陜西 西安 710065;2.北京理工大學(xué),北京 100081)
近年來,隨著基礎(chǔ)工業(yè)的進(jìn)步,單片機(jī)、DSP等嵌入式系統(tǒng)在破甲彈機(jī)電引信中得以廣泛應(yīng)用,而引信軟件故障有可能導(dǎo)致破甲彈的功能失效。目前美國有近百家機(jī)構(gòu)從事軟件可靠性研究工作,其中嵌入式軟件系統(tǒng)可靠性研究是保密程度最高的技術(shù)領(lǐng)域之一,我國引信嵌入式軟件可靠性工作起步不久,對嵌入式軟件的可靠性問題重視程度不高[1-2]。在引信安全性方面,越是先進(jìn)的技術(shù),我國和美國的差距越大[3]。由于破甲彈要求對目標(biāo)瞬發(fā)度高,因此要求引信的嵌入式軟件對采集的外部數(shù)據(jù)有很高的響應(yīng)速度和準(zhǔn)確度,并且自糾錯(cuò)時(shí)間短,所以評(píng)價(jià)破甲彈引信嵌入式軟件可靠性的兩個(gè)重要因素是軟件的糾錯(cuò)時(shí)效性和對采集數(shù)據(jù)處理的準(zhǔn)確性,因此高效的自糾錯(cuò)能力和快速準(zhǔn)確的數(shù)據(jù)容錯(cuò)處理能力可以提高破甲彈機(jī)電引信嵌入式軟件的運(yùn)行可靠性。目前破甲彈機(jī)電引信軟件多數(shù)都是模塊化、順序式運(yùn)行結(jié)構(gòu),這種軟件糾錯(cuò)方法通常都是靠WDT喚醒實(shí)現(xiàn),數(shù)據(jù)容錯(cuò)處理通常采用表決的方式進(jìn)行,這種方式導(dǎo)致軟件糾錯(cuò)時(shí)效性差,數(shù)據(jù)容錯(cuò)處理能力弱,從而限制了軟件的運(yùn)行可靠性。本文針對目前大部分破甲彈機(jī)電引信軟件糾錯(cuò)時(shí)效性差、數(shù)據(jù)容錯(cuò)處理能力弱,從而限制了軟件運(yùn)行可靠性的問題,提出了應(yīng)用于破甲彈機(jī)電引信的嵌入式軟件架構(gòu)。
1983年美國IEEE 計(jì)算機(jī)學(xué)會(huì)對“軟件可靠性”一詞做出定義:1)在規(guī)定的條件下,在規(guī)定的時(shí)間內(nèi),軟件不引起系統(tǒng)失效的概率;2)規(guī)定的時(shí)間周期內(nèi),在所述條件下程序執(zhí)行所要求的功能的能力。GJB451A 對軟件可靠性的定義為在規(guī)定的條件下和規(guī)定的時(shí)間內(nèi),軟件不引起系統(tǒng)故障的能力[4]。軟件可靠性不僅與軟件存在的差錯(cuò)(缺陷)有關(guān),而且與系統(tǒng)輸入和系統(tǒng)使用有關(guān)。由于軟件是“通過承載媒體表達(dá)的信息所組成的一種知識(shí)產(chǎn)物”,如果沒有人為修改,就不可能自然地變化,也不會(huì)像硬件那樣“老化”、“損耗”。軟件出錯(cuò)是由2 個(gè)條件所造成:一是內(nèi)在缺陷;二是外部輸入條件使軟件運(yùn)行路徑經(jīng)過并激發(fā)了存在的缺陷。信息化與數(shù)字化是未來戰(zhàn)爭的主要特性之一,軟件技術(shù)已成為現(xiàn)代戰(zhàn)爭必需的關(guān)鍵技術(shù)[5]。軟件作為嵌入式系統(tǒng)的一部分,已被越來越多地應(yīng)用于各種武器系統(tǒng)上,其規(guī)模、功能、復(fù)雜性的增長及其失效所造成的災(zāi)難性后果迫使工程界對軟件可靠性問題給予充分重視[6]。根據(jù)美國國防部和NASA統(tǒng)計(jì),美國軍方遇到的問題中70%是軟件問題[7],當(dāng)今武器和航天系統(tǒng)中的軟件可靠性比硬件系統(tǒng)大約低一個(gè)數(shù)量級(jí),因?yàn)檐浖收隙斐傻闹卮笫鹿什环ζ淅?如F-18戰(zhàn)斗機(jī)在海灣戰(zhàn)爭中,飛行控制軟件共發(fā)生了500多次故障,愛國者導(dǎo)彈因軟件問題誤傷了28名美國士兵,導(dǎo)致6人死亡[2],阿里安5型火箭發(fā)動(dòng)機(jī)控制系統(tǒng)軟件的錯(cuò)誤導(dǎo)致飛行試驗(yàn)失敗等。
嵌入式微處理器廣泛應(yīng)用于引信設(shè)計(jì)中,所謂嵌入,即一個(gè)系統(tǒng)A內(nèi)置于一個(gè)更大的系統(tǒng)B中,則稱為A嵌入于B。一般的嵌入式系統(tǒng)在更大的系統(tǒng)中提供控制和計(jì)算功能,它們是系統(tǒng)的靈魂,管理和控制系統(tǒng)中的其他部分。嵌入式軟件系統(tǒng)的一個(gè)突出特點(diǎn)在于,通常只為軟件提供執(zhí)行環(huán)境(運(yùn)行環(huán)境),而不是提供軟件的開發(fā)環(huán)境(宿主環(huán)境)。也就是說,嵌入式軟件的開發(fā)環(huán)境和運(yùn)行環(huán)境是不一致的。正是這種不一致,給嵌入式軟件的可靠性帶來了評(píng)估問題,軟件的可靠性程度大多依賴于程序員的素質(zhì)。嵌入式軟件大量采用匯編語言直接進(jìn)行底層控制,大大提高了控制的精準(zhǔn)度。由于嵌入式微處理器大多數(shù)都是單核流水式運(yùn)行結(jié)構(gòu),因此引信軟件多數(shù)都是模塊化、順序式運(yùn)行結(jié)構(gòu),沒有全局標(biāo)識(shí)和全局控制模塊,軟件的糾錯(cuò)靠看門狗實(shí)現(xiàn)。看門狗定時(shí)器實(shí)際上是一個(gè)計(jì)數(shù)器,周期性地給看門狗電路發(fā)送“喂狗”脈沖,使得看門狗電路計(jì)時(shí)器不斷地清零重新計(jì)時(shí),在控制系統(tǒng)受到電磁場干擾或者其他原因引起PC 指針異常,造成處理器的指令發(fā)生錯(cuò)誤時(shí),持續(xù)一段時(shí)間未進(jìn)行“喂狗”操作,定時(shí)器產(chǎn)生的脈沖作為復(fù)位信號(hào),將重新復(fù)位和初始化處理器,處理器重新開始工作。
一般情況,采集的輸入信號(hào)需要進(jìn)行數(shù)字濾波處理才能應(yīng)用,通過算法將無用頻率的信號(hào)濾除,提取出有用頻率信號(hào),在系統(tǒng)的應(yīng)用中,數(shù)字濾波技術(shù)主要是將信號(hào)的噪聲加以消除。由于破甲彈通常要求對目標(biāo)的響應(yīng)時(shí)間短,所以評(píng)價(jià)破甲彈機(jī)電引信嵌入式軟件的數(shù)據(jù)容錯(cuò)處理的能力時(shí),重點(diǎn)考核軟件對采集數(shù)據(jù)的處理速度和準(zhǔn)確度,因此高效的數(shù)據(jù)處理速度和對干擾信號(hào)的濾除能力是主要因素。目前的破甲彈機(jī)電引信軟件采集外部信號(hào)時(shí),經(jīng)常采用表決的方式進(jìn)行,即遵循少數(shù)服從多數(shù)的原則,采集一段時(shí)間數(shù)據(jù)后進(jìn)行少數(shù)服從多數(shù)的判別,以出現(xiàn)次數(shù)最多的數(shù)據(jù)為正確信息,這種方法的缺點(diǎn)是耗費(fèi)CPU 的時(shí)間較多,實(shí)效性較差,對干擾信號(hào)的濾除能力受限。
由于引信設(shè)計(jì)中采用的嵌入式微處理器多數(shù)都是單核順序式運(yùn)行結(jié)構(gòu),因此引信軟件多數(shù)都是模塊化、順序式運(yùn)行結(jié)構(gòu),這種結(jié)構(gòu)導(dǎo)致系統(tǒng)原糾錯(cuò)方法效率低下。在現(xiàn)存的順序式運(yùn)行流程框架下,提出了一種拓?fù)涫巾樞蜻\(yùn)行糾錯(cuò)結(jié)構(gòu),設(shè)置全局標(biāo)識(shí),建立全局控制控制模塊,打通各個(gè)模塊之間的跳轉(zhuǎn)通道,實(shí)現(xiàn)了高效的糾錯(cuò)模式。
具體的結(jié)構(gòu)是根據(jù)軟件功能將程序分成若干模塊,每個(gè)模塊設(shè)置一個(gè)或者多個(gè)全局變量標(biāo)識(shí),作為軟件運(yùn)行點(diǎn)的狀態(tài)標(biāo)識(shí),運(yùn)行結(jié)束即設(shè)置相關(guān)標(biāo)識(shí),標(biāo)識(shí)根據(jù)需要存于Flash或者EPROM中;在軟件模塊結(jié)束后設(shè)置停止運(yùn)行陷阱,防止軟件狀態(tài)變化;在軟件停止運(yùn)行陷阱后的每個(gè)頁面設(shè)置頁面跳轉(zhuǎn)指針,均跳轉(zhuǎn)到頁面初始位置,然后在初始位置指針處設(shè)置跨頁面指向指令,全部指向全局標(biāo)識(shí)檢查模塊;全局標(biāo)識(shí)檢查模塊根據(jù)全局標(biāo)識(shí)的狀態(tài)實(shí)現(xiàn)軟件模塊之間的轉(zhuǎn)換運(yùn)行,軟件的設(shè)置和運(yùn)行如圖1所示。當(dāng)軟件跑飛后,不受WDT喚醒周期的限制,會(huì)立刻轉(zhuǎn)向全局標(biāo)識(shí)檢查模塊,根據(jù)該模塊的檢查結(jié)果轉(zhuǎn)向跑飛前所在模塊繼續(xù)運(yùn)行,實(shí)現(xiàn)高速糾錯(cuò)的功能。

圖1 軟件設(shè)置示意圖Fig.1 Schematic diagram of software setup
軟件的運(yùn)行過程始終表現(xiàn)在全局標(biāo)識(shí)中,若全局標(biāo)識(shí)存于EPROM中,可實(shí)現(xiàn)軟件歷次運(yùn)行狀態(tài)的紀(jì)錄和快速糾錯(cuò)功能,但此功能受到動(dòng)態(tài)存儲(chǔ)時(shí)間的限制;若全局標(biāo)識(shí)存于Flash中,僅可實(shí)現(xiàn)軟件快速糾錯(cuò)功能。
引信處理采集外部數(shù)據(jù)時(shí)均要求實(shí)時(shí)性和可靠性,所謂實(shí)時(shí)性,即必須滿足時(shí)間約束的特性。實(shí)時(shí)軟件的處理速度并不一定非常快,重要的是需要準(zhǔn)確和及時(shí)。例如,它們的時(shí)間特性應(yīng)該是可以預(yù)見的,對于實(shí)時(shí)軟件而言,其正確性不僅由系統(tǒng)的功能和行為特性決定,還依賴于系統(tǒng)的時(shí)間特性。我們知道,引信失效輕則導(dǎo)致炮彈不能摧毀目標(biāo),重則誤傷己方。炮彈在發(fā)射周期內(nèi)經(jīng)歷十幾毫秒,從出炮口到彈著點(diǎn)經(jīng)歷數(shù)秒、數(shù)十秒或是更長的時(shí)間,但在裝有引信軟件的彈藥上,從引信搜集目標(biāo)信息到輸出作用信息就只能限制在幾毫秒內(nèi)甚至是幾十微秒內(nèi),由此可知引信軟件在有效的時(shí)間內(nèi)提高數(shù)據(jù)采集判斷的準(zhǔn)確度尤為重要。
對于數(shù)據(jù)流的采集判斷,提出了一種模塊化輪采結(jié)構(gòu),通過對數(shù)據(jù)短處理,然后再通過實(shí)時(shí)更新和總體判別的方式進(jìn)行數(shù)據(jù)采集處理,結(jié)構(gòu)示意圖如圖2所示,將流數(shù)據(jù)進(jìn)行不斷實(shí)時(shí)采集。

圖2 結(jié)構(gòu)示意圖Fig.2 Structural diagram
首先根據(jù)應(yīng)用需求規(guī)劃采集模塊數(shù)量,然后依次采集單模塊數(shù)據(jù),并依次更新,可以采用N點(diǎn)表決或者平滑的前處理方式采集,不受傳統(tǒng)表決式的集中全處理影響,因此可以濾除部分干擾信號(hào)。每次采集完成后均進(jìn)入總數(shù)據(jù)處理模塊進(jìn)行數(shù)據(jù)處理,不受傳統(tǒng)表決式采集總寬度的限制。若滿足預(yù)設(shè)條件即可進(jìn)行轉(zhuǎn)向運(yùn)行,因此可以實(shí)現(xiàn)快速的數(shù)據(jù)處理能力。數(shù)據(jù)流處理方法適用于對模擬信號(hào)或者電平信號(hào)進(jìn)行鑒別包括系數(shù)濾波、加權(quán)濾波、中值與限幅等。
由于破甲彈要求對目標(biāo)瞬發(fā)度高,因此要求引信的嵌入式軟件對采集的外部數(shù)據(jù)有很高的響應(yīng)速度和準(zhǔn)確度,并且自糾錯(cuò)時(shí)間短,所以評(píng)價(jià)破甲彈引信嵌入式軟件可靠性的兩個(gè)重要因素是軟件的糾錯(cuò)時(shí)效性和數(shù)據(jù)容錯(cuò)處理的能力。為了驗(yàn)證應(yīng)用于破甲彈機(jī)電引信的嵌入式軟件架構(gòu)糾錯(cuò)的時(shí)效性和數(shù)據(jù)容錯(cuò)處理的能力,采用實(shí)驗(yàn)室仿真實(shí)驗(yàn)和半實(shí)物對比測試的方法進(jìn)行驗(yàn)證。用兩發(fā)破甲彈機(jī)電引信,將一發(fā)的軟件糾錯(cuò)結(jié)構(gòu)設(shè)置為WDT喚醒式,數(shù)據(jù)處理方式設(shè)置為表決式;另一發(fā)軟件糾錯(cuò)結(jié)構(gòu)設(shè)置為拓?fù)涫剑瑪?shù)據(jù)處理方式設(shè)置為輪采式。
首先在實(shí)驗(yàn)室進(jìn)行模擬跑飛情況下的糾錯(cuò)時(shí)效性仿真實(shí)驗(yàn),將WDT喚醒式引信軟件的WDT周期設(shè)置為系統(tǒng)支持的最小喚醒時(shí)間16 ms,軟件糾錯(cuò)結(jié)構(gòu)設(shè)置為拓?fù)涫降能浖Y(jié)構(gòu)直接進(jìn)行測試。在仿真運(yùn)行過程中,隨機(jī)將PC指針人為指向不同的模塊,分別觀察軟件的運(yùn)行情況,將糾錯(cuò)時(shí)間進(jìn)行分析記錄,結(jié)果見表1。

表1 糾錯(cuò)時(shí)間結(jié)果對照表Tab.1 Comparison table of error correction time results
驗(yàn)證結(jié)果顯示拓?fù)涫浇Y(jié)構(gòu)軟件的糾錯(cuò)時(shí)間比傳統(tǒng)WDT式軟件的糾錯(cuò)時(shí)間縮短了3 000倍左右,表明了拓?fù)涫浇Y(jié)構(gòu)軟件可以實(shí)現(xiàn)快速糾錯(cuò)功能。
由于破甲彈通常要求對目標(biāo)的響應(yīng)時(shí)間短,所以要求破甲彈機(jī)電引信嵌入式軟件對采集數(shù)據(jù)處理的準(zhǔn)確度高、響應(yīng)時(shí)間短,所以軟件對采集數(shù)據(jù)處理的速度和準(zhǔn)確度能夠評(píng)價(jià)軟件數(shù)據(jù)容錯(cuò)處理的能力,軟件濾除干擾信號(hào)的能力越強(qiáng)越可靠,處理速度越快性能越高。再次在實(shí)驗(yàn)室進(jìn)行了半實(shí)物數(shù)據(jù)處理速度和濾除干擾信號(hào)能力測試,測試時(shí)首先分別給兩發(fā)破甲彈機(jī)電引信加載正常目標(biāo)信息,觀察軟件對目標(biāo)信息的數(shù)據(jù)處理速度;然后分別給兩發(fā)引信加載不同的干擾信號(hào),觀察不同軟件對干擾信號(hào)的濾除能力,記錄軟件是否響應(yīng),測試結(jié)果見表2。

表2 數(shù)據(jù)處理結(jié)果對照表Tab.2 Comparison table of data processing results
測試結(jié)果顯示輪采式數(shù)據(jù)處理方法的響應(yīng)時(shí)間比傳統(tǒng)的表決式數(shù)據(jù)處理方法響應(yīng)時(shí)間提高了1倍,且對干擾信號(hào)的濾除能力強(qiáng),表明了輪采式數(shù)據(jù)處理方法在處理采集的外部信息時(shí)比傳統(tǒng)表決式方法數(shù)據(jù)容錯(cuò)處理能力強(qiáng)。
本文提出了應(yīng)用于破甲彈機(jī)電引信嵌入式軟件的架構(gòu),該架構(gòu)采用拓?fù)涫郊m錯(cuò)結(jié)構(gòu)和輪采式數(shù)據(jù)處理方法,拓?fù)涫郊m錯(cuò)結(jié)構(gòu)通過設(shè)置全局標(biāo)識(shí),建立全局控制核心,打通模塊之間的跳轉(zhuǎn)通道的方式實(shí)現(xiàn)了高效的糾錯(cuò)能力;輪采數(shù)據(jù)處理方法通過對數(shù)據(jù)的短處理和實(shí)時(shí)更新、總體判別的方式有效提高了數(shù)據(jù)處理的時(shí)效性和可靠性。仿真實(shí)驗(yàn)結(jié)果表明,拓?fù)涫浇Y(jié)構(gòu)軟件的糾錯(cuò)時(shí)間比傳統(tǒng)WDT式軟件的糾錯(cuò)時(shí)間縮短了3 000倍左右,實(shí)現(xiàn)了快速糾錯(cuò)功能;輪采式數(shù)據(jù)處理方法的響應(yīng)時(shí)間比傳統(tǒng)的表決式數(shù)據(jù)處理方法響應(yīng)時(shí)間提高了1倍,且對干擾信號(hào)的濾除能力強(qiáng),表明了這種軟件架構(gòu)具有高效的系統(tǒng)糾錯(cuò)能力和快速準(zhǔn)確的數(shù)據(jù)容錯(cuò)處理能力,破甲彈機(jī)電引信通過采用這種嵌入式軟件架構(gòu),可以提高軟件的可靠性。