吳 奇,王亞斌
(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倍,且對干擾信號的濾除能力強,表明了這種軟件架構具有高效的系統糾錯能力和快速準確的數據容錯處理能力,破甲彈機電引信通過采用這種嵌入式軟件架構,可以提高軟件的可靠性。