1.一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于:
大氣測量裝置軟件采用狀態(tài)機(jī)進(jìn)行流程控制和任務(wù)觸發(fā),軟件在正常工作模式、半實(shí)物仿真工作模式、地面測試模式、軟件傳輸模式程序架構(gòu)相同;添加狀態(tài)機(jī)動作執(zhí)行函數(shù),用來執(zhí)行狀態(tài)機(jī)產(chǎn)生過程中的中間操作;根據(jù)型號的系統(tǒng)屬性,對于中間存在的特定狀態(tài)通過空信號來遷移;具體包括如下步驟:
(1)確定大氣測量裝置狀態(tài)機(jī)方程:
驅(qū)動方程:Z=G[X,Qn]
狀態(tài)方程:(Qn+1,E)=H[Z,Qn]
狀態(tài)方程中各元素說明如下:
X為輸入信號,該信號為外部制導(dǎo)計(jì)算機(jī)或測試設(shè)備輸入的指令、數(shù)據(jù),大氣測量裝置軟件根據(jù)通訊協(xié)議對其進(jìn)行驗(yàn)證,如果滿足通訊協(xié)議要求,則將其當(dāng)作輸入信號;
Qn為現(xiàn)態(tài);Qn+1為次態(tài);
大氣測量裝置軟件涉及19種狀態(tài),分別為:
1.State_PowerOn
2.State_NormalOperation
3.State_Test
4.State_Simulation
5.State_SoftTrans
6.State_ParameterTrans
7.State_FileTransStart
8.State_FileIniStart
9.State_FileIniTrans
10.State_FileDataStart
11.State_FileDataTrans
12.State_FileVerify
13.State_FileProgram
14.State_FileTransEnd
15.State_FileReadStart
16.State_FileReadTrans
17.State_FileReadTransData
18.State_FileReadTransWait
19.State_Error
程序剛上電時,設(shè)置最初狀態(tài)為State_PowerOn狀態(tài),表示大氣測量裝置上電狀態(tài);上述19個狀態(tài)根據(jù)該型號通訊協(xié)議及程序的具體實(shí)現(xiàn)過程來命名和設(shè)定;根據(jù)該型號任務(wù)的特點(diǎn),第16種狀態(tài)State_FileReadTrans可通過空信號進(jìn)行遷移,達(dá)到驅(qū)動整個程序流動的目的;
Z:驅(qū)動信號,大氣測量裝置軟件對輸入信號進(jìn)行分類,得到19種驅(qū)動信號,分別為:
1.Sig0100
2.Sig0200.0
3.Sig0200.1
4.Sig0200.2
5.Sig0200.3
6.Sig0200.F
7.Sig1000
8.Sig1100
9.Sig1200.12
10.Sig1200.13
11.Sig1300
12.Sig1200.23
13.Sig1200.25
14.Sig1200.24
15.Sig1200.26
16.Sig1200.11
17.SigFileReadTransData
18.SigFileEnd
19.SigNull
各驅(qū)動信號的命名及驅(qū)動信號數(shù)量根據(jù)該型號的通訊協(xié)議來設(shè)定;
其中第19個信號SigNull為空信號,它的產(chǎn)生對應(yīng)外界輸入的錯誤信號或者是外界的空輸入,在系統(tǒng)設(shè)定的狀態(tài)下驅(qū)動該狀態(tài)發(fā)生遷移;
G:驅(qū)動信號產(chǎn)生函數(shù);在大氣測量裝置軟件中定義如下:
Uint16 SignalGeneration(Uint16 *pRecvFrame,Uint16 nLen,StateMachineSignal*psig);
函數(shù)功能:軟件對接收到的制導(dǎo)計(jì)算機(jī)指令、數(shù)據(jù)進(jìn)行驗(yàn)證處理后生成狀態(tài)機(jī)的驅(qū)動信號;
H:大氣機(jī)狀態(tài)生成函數(shù);在大氣測量裝置軟件中的定義如下:
Uint16StateGeneration(Signal,StateOld,&StateNew,&nFunc);
函數(shù)功能:根據(jù)輸入的驅(qū)動信號與上一拍狀態(tài)一起生成狀態(tài)機(jī)本拍的狀態(tài) 和動作執(zhí)行函數(shù);
E:狀態(tài)機(jī)動作執(zhí)行函數(shù);在大氣測量裝置軟件中有20個動作執(zhí)行函數(shù),分別為:
1,DoDevInfoQuery
2,DoNormalOperation
3,DoSimulation
4,DoTest
5,DoSoftTrans
6,DoParameterTrans
7,DoFaultQuery
8,DoMemQuery
9,DoFileTransStart
10,DoFileIniStart
11,DoFileIniTrans
12,DoFileDataStart
13,DoFileDataTrans
14,DoFileVerify
15,DoFileProgram
16,DoFileTransEnd
17,DoFileReadStart
18,DoFileReadTrans
19,DoFileReadTransData
20,DoFileReadTransWait
上述動作執(zhí)行函數(shù)在程序運(yùn)行過程中對系統(tǒng)設(shè)定的中間過程進(jìn)行置位,輔助各狀態(tài)進(jìn)行函數(shù)操作;
(2)確定狀態(tài)機(jī)操作步驟:
(2.1)驅(qū)動信號生成
大氣測量裝置軟件對接收到的制導(dǎo)計(jì)算機(jī)指令、數(shù)據(jù)進(jìn)行處理后生成狀態(tài)機(jī)的驅(qū)動信號;
(2.2)狀態(tài)發(fā)生
驅(qū)動信號與上一拍狀態(tài)信號一起生成狀態(tài)機(jī)本拍的狀態(tài)信號和動作執(zhí)行函數(shù);
(2.3)動作執(zhí)行
動作執(zhí)行函數(shù)根據(jù)動作執(zhí)行標(biāo)志置位相應(yīng)任務(wù)觸發(fā)標(biāo)志;
狀態(tài)機(jī)操作在大氣測量裝置軟件主循環(huán)中5ms定時標(biāo)志未置位時進(jìn)行,驅(qū)動信號生成時對輸入信息按通訊協(xié)議規(guī)定進(jìn)行校驗(yàn);狀態(tài)表中所有元素均進(jìn)行定義,避免未定義操作對狀態(tài)機(jī)造成的影響。
2.如權(quán)利要求1所述的一種大氣測量裝置軟件中嵌入式軟件狀態(tài)機(jī)的實(shí)現(xiàn)方法,其特征在于:狀態(tài)發(fā)生操作基于二維狀態(tài)轉(zhuǎn)換表實(shí)現(xiàn)。