施先旺,劉婷婷,李國良
(1.西安航天動力研究所,陜西西安710100;2.中國航天科技集團軟件評測中心,北京100037)
在某發動機控制系統中,根據系統主控計算機發出的控制指令,使發動機執行相應的增壓、起動、關機及緊急關機等程序,控制指令的可靠檢測是實現發動機工作狀態控制必須首先要解決的關鍵問題。根據控制指令特征,采用有限狀態機設計了一種檢測方法,大大提高了檢測的可靠性。
控制指令包括增壓、起動、關機、緊急關機、燃料排放及備用指令等,共7種,共用一個16位數字量端口。控制指令由系統主控計算機發出,指令信號驅動電氣系統指令繼電器,使相應繼電器觸點斷開或閉合。在發動機控制系統中,繼電器觸點狀態改變使指令檢測電路輸出邏輯電平變化,經由控制指令接口輸入。控制系統軟件實時檢測控制指令接口狀態,即時識別控制指令,并啟動相應的控制時序。
控制指令信號特征如下:
1)指令采用邏輯電平表示,高電平有效,低電平無效;
2)指令信號高電平持續時間≮5 s;
3)任意時刻有且僅有一個有效指令。
發動機工作過程中,通過執行上述指令,嚴格按照設定的通電順序、通電時間,使給定的電爆閥動作,完成增壓、系統充填、通電點火、起動、燃燒室工作、切斷燃料供應使燃燒室停止工作等設定的程序。系統中電爆閥只能動作一次,且任何一個指令的工作時序、執行次序也必須確保一次成功。因此,必須確保控制指令準確、可靠、實時識別,既不可漏檢,亦不能誤檢。在控制指令產生、傳輸、檢測、執行各環節中,執行環節不可逆轉。為提高任務可靠性,應能識別錯誤指令、干擾產生的偽指令、繼電器觸點失效產生的假指令等,防止誤操作。
在計算機系統中,一般數字量的檢測只需直接讀取數字量端口即可。為提高可靠性,可以采用重復讀取的方法,或進一步采用數字濾波算法。但對于本文涉及的系統,僅僅采取這些措施是遠遠不夠的。
為提高指令檢測的可靠性,必須充分利用指令的各種特征,包括上述信號特征以及隱含的任務特征,即:
1)必須利用信號的寬度,多次、等間隔檢測;
2)同時檢測所有信號,根據“任意時刻有且僅有一個有效指令”,丟棄無效信號;
3)檢測信號上升沿,最大限度地確認信號是主動產生的;
4)指令只能執行一次,指令執行后應對此指令予以屏蔽;
5)必須考慮指令的生存周期,且任意時刻只能有一個指令在執行。
根據上述原則,對數字量的檢測不再是一般的靜態讀取過程,而是一種多信號按時間序列讀取、比較、判斷的動態過程。在這一過程中,指令識別過程事實上被劃分為幾種特定狀態,每一種狀態不僅與數字量端口狀態有關,也與前一狀態有關。
根據以上分析,采用有限狀態機為指令信號檢測過程建模。有限狀態機是一種概念上的機器,常見于數字時序電路設計。有限狀態機由一組狀態集、一個起始狀態、一組輸入符號集、一個映射輸入符號和當前狀態到下一狀態的轉換函數組成。當輸入符號串時,有限狀態機隨即進入起始狀態,在任意特定時刻,只能處于其中一種狀態。狀態的轉換依賴于當前狀態、輸入符號(觸發條件)和轉換函數,轉換時間理論上為零。為此,根據指令特征和檢測要求,從指令發出到指令執行結束,定義空閑、等待、檢測、有效、執行、超時、完成7個狀態,各狀態及其對應的輸入符號集、狀態轉換函數列如下。
1)S0,空閑(FSA_DIC_IDLE):起始狀態,指令執行超時或指令已執行時轉入。所有信號均無效時轉入等待狀態。
2)S1,等待 (FSA_DIC_WAIT):等待控制指令。多個信號有效或單一信號有效但對應指令已執行時保持,檢測狀態信號異常時轉入。當且僅當出現一個未執行的有效信號時轉入檢測狀態。
3)S2,檢測 (FSA_DIC_COUNT):檢測控制指令。在N次采樣期間某單一信號應保持有效。信號異常轉入等待狀態,重新檢測;正常則依次設置指令字、發信號激活對應的發動機時序控制過程、轉入有效狀態。
4)S3,有效 (FSA_DIC_CAPTURED):指令就緒、等待執行。檢測發動機時序控制過程發出的執行信號并累計等待時間,若等待時間超出設定值則轉入超時狀態,若信號檢測到則轉執行狀態。
5)S4,執行(FSA_DIC_HOLD):指令執行中。檢測發動機時序控制過程發出的完成信號并累計等待時間,若等待時間超出設定值則轉超時狀態,若信號檢測到則轉完成狀態。
6)S5,超時 (FSA_DIC_TIMEOUT):指令超時。直接轉空閑狀態。
7)S6,完成 (FSA_DIC_DONE),指令完成。屏蔽已執行指令并轉空閑狀態。
基于有限狀態機的指令檢測過程參見圖1。

2.3.1 正常指令檢測
結合圖1,分析本方法是否能夠充分利用2.1所列5個信號特征:
1)在檢測狀態(S2),要求指令信號在N次采樣期間保持有效,滿足特征1);
2)在等待狀態(S1),當且僅當出現一個未執行的有效信號時才能轉入檢測狀態,而在檢測狀態,采樣期間狀態變化即視為異常并轉入等待狀態,滿足特征2);
3)在空閑狀態(S0,初始狀態),當且僅當所有信號均無效時轉入等待狀態,啟動指令檢測狀態機,且在等待狀態只能由單一、未執行的有效信號觸發轉入檢測狀態,滿足特征3);
4)在完成狀態(S6),屏蔽已執行指令,滿足特征4);
5)狀態覆蓋了指令發出到執行結束全過程,且一次只處理一個指令,滿足特征5)。
顯然,對于正常指令,本方法可以可靠識別并提交執行。
2.3.2 異常信號處理
對于錯誤指令、干擾產生的偽指令、繼電器觸點失效產生的假指令等,本方法均能正確予以過濾,最大限度防止誤操作。
指令執行期間(圖1中S3~S6)發出的指令、高電平持續時間小于采樣時間的指令視為錯誤指令,結合圖1分析可知,錯誤指令將被忽略。
對于指令信號線可能串入的干擾,由于必須符合2.1所列5個信號特征,故其被錯誤識別為正常指令的概率極低,可以忽略;同時,通過提高指令信號高電平持續時間(≮5s),當某指令信號被干擾時,本方法可以在指令信號持續期間自動拋棄異常信號段,多次重新檢測,直至有效識別,可能導致延遲執行,但極大地提高了執行成功的概率;在某信號被檢測期間,若信號線出現異常,檢測過程將自動重新啟動,避免在存在干擾的條件下確認指令有效,也進一步提高了可靠性。
對于繼電器觸點,若在檢測程序啟動前即已失效,當失效造成某信號保持為低電平(無效)時該信號對應指令亦將失效,保持為高電平時將導致所有指令失效。若在指令檢測過程中失效,視其發生在檢測的不同階段,將導致某指令或所有指令失效,在極端惡劣的情況下也可能不可避免地產生假指令,但這種情形出現的概率極低,可以忽略。
控制軟件是基于嵌入式實時操作系統設計的,采用C語言實現。為實現上述指令檢測算法,定義了狀態機、指令檢測任務、指令執行任務、指令執行信號量等。
狀態機定義如下:

指令檢測任務tskEngineSeqCmd為周期性任務,執行周期為7.5 ms,優先級較高;指令執行任務為tskEngineAct,優先級較低。指令檢測任務結構如下:

相關的信號量包括:
SEM_EngineSeqCmd:指令檢測任務在判明指令有效時提交,由指令執行任務檢測;
SEM_EngineAct:指令執行任務在指令執行前提交,指令檢測任務在有效(FSA_DIC_CAPTURED)狀態檢測到后即轉入執行(FSA_DIC_HOLD)狀態;
SEM_SEM_EngineDone:指令執行任務在指令執行結束后提交,指令檢測任務在執行(FSA_DIC_HOLD)狀態檢測到后即轉入完成(FSA_DIC_DONE)狀態。
構造對應每個狀態的switch語句,在每個分支中對相關狀態進行判斷,執行相應動作并完成狀態轉換。



為檢驗所提出的控制指令檢測方法,在單元測試、組裝測試、確認測試及系統聯試各階段進行了大量測試,方法得到了全面、充分的驗證。
首先進行指令檢測任務測試,以tskEngine-SeqCmd執行周期的測試為重點。在任務執行過程中插入數字量輸出指令,并采用記錄儀持續記錄分析輸出信號頻率,應能觀測到穩定的、周期為2×7.5 ms的方波。
其次進行狀態機測試。對于每一個指令,構造指令信號,覆蓋每一個狀態,確認狀態轉換、狀態處理過程無誤。為了驗證對異常信號的處理能力,在FMEA分析基礎上,采用軟件構造各種異常信號,通過指令模擬器發送執行,檢查狀態機對應的處理過程,將處理結果與預估結果比對確認。
激活指令執行任務tskEngineAct,重復上述狀態機測試過程。此階段重點是確認指令檢測過程和指令執行過程的協調性。
對于每一個控制指令,監測指令執行過程和結果,分析控制系統軟件發送的狀態監測數據,反復確認指令檢測、執行過程。
采用有限狀態機設計的指令信號檢測方法,能夠可靠識別控制指令,且能有效屏蔽錯誤指令、干擾產生的偽指令、繼電器觸點失效產生的假指令等,為提高發動機工作狀態控制的可靠性創造了條件。有限狀態機模型有助于解決復雜的實時性問題,值得推廣。
[1](印度)卡莫爾 R.陳曙暉等譯.嵌入式系統-體系結構、編程與設計[M].北京:清華大學出版社,2005.
[2]王凌,宋揚,李國林,等.基于有限狀態機的飛行器自毀系統時序控制設計[J].現代電子技術,2009(8):8-11.
[3]楊瑞霞.運用狀態機提高嵌入式軟件效率[J].單片機與嵌入式系統應用.2009(5):20-25.
[4]李凌鵬,孫文.有限狀態機在防空作戰仿真中的應用[J].電光與控制,2005(5):80-82.
[5]周新蕾,劉正高.航天軟件可靠性安全性技術應用發展趨勢[J].質量與可靠性,2006(3):45-47,53.
[6]楊軍麗.星載設備嵌入式軟件可靠性仿真測試方法設計[D].北京:中國科學院研究生院空間科學與應用研究中心,2007.
[7]CHAPMAN M.The final word on the 8051[M/OL].[2007-06-24].http://www.ebookee.net/The-Final-Word-on-the-8051.
[8]Texas Instruments.TMS320x281x DSP system control and interrupts reference guide[R].USA:Texas Instruments,2008.
[9]Texas Instruments.TMS320 DSP/BIOS user's guide[R].USA:Texas Instruments,2004.