吳成富,侯曉梅,段曉軍
(西北工業(yè)大學 無人機特種技術國家重點實驗室,陜西 西安 710065)
機載計算機為提高可靠性和容錯能力,普遍采用余度技術,通過為系統(tǒng)增加多重資源,實現(xiàn)對多重資源的合理管理,從而提高產品和系統(tǒng)的可靠性[1]。余度飛控計算機系統(tǒng)由多臺飛控計算機組成,可降低由于某一通道飛控計算機失效而導致的系統(tǒng)故障。
目前余度管理軟件普遍采用手工編碼,可靠性和效率較低,開發(fā)周期長[2],單元測試及代碼覆蓋率分析一般需要借助復雜的專業(yè)工具軟件,驗證工作量大,難度高,而且無法對驗證工作進行定量評價,軟件投入市場使用的周期長,成本高。
基于此,文中以三余度飛控計算機機載軟件為例,采用SCADE (Safety-Critical Application Development Environment)圖形化開發(fā)方法實現(xiàn)系統(tǒng)的開發(fā),同時采用SCADE代碼生成器KCG6.1自動生成滿足DO-178B國際標準的A級質量認證的ANSI C語言的嵌入式產品代碼[3],并采用專業(yè)的軟件測試工具LRDA Testbed對生成的代碼進行質量評價,在某機載余度管理軟件開發(fā)項目中應用,縮短了開發(fā)周期,節(jié)省開發(fā)成本。
余度設計與余度管理是提高飛行控制系統(tǒng)容錯能力、可靠性和安全性的手段[5]。通過在線信號監(jiān)控可以及時發(fā)現(xiàn)系統(tǒng)故障模塊;通過故障的隔離、切換和重構來實現(xiàn)故障的處理;通過監(jiān)控、表決輸入輸出信號來選擇信號[6]。這些都是實現(xiàn)容錯與高可靠性的手段。
余度管理主要研究的內容包括以下幾個方面:
1)同步、交叉?zhèn)鬏敿夹g;
2)監(jiān)控、表決(信號選擇技術);
3)故障監(jiān)控、隔離技術;
4)故障重構技術。
文中以三余度數(shù)字量信號的監(jiān)控、表決為例介紹基于SCADE的余度管理軟件的開發(fā)。根據(jù)在線監(jiān)控檢查數(shù)據(jù)有效性,可能的有效數(shù)據(jù)分別為3個、2個、1個、0個,對應的監(jiān)控算法也就分以下幾種情況來討論。
3個信號有效時將有效數(shù)字量輸入信號按照大小值進行排序處理,可得到最大值、次大值和最小值。設最大值為R3,中間值為R2,最小值為R1,并求取相鄰兩個值之間的差值,分別記為:ΔR12(R2減去 R1的差)、ΔR23(R3減去 R2的差)和 ΔR13(R3減去R1的差)。根據(jù)上述偏差的檢測結果與閾值ε做比較,確定各余度信號的狀態(tài)。由此,三余度數(shù)字量監(jiān)控、表決具體算法流程如圖1所示。
圖1 數(shù)字量監(jiān)控/表決算法Fig.1 Digital valuable monitor/vote algorithm
圖形化編程工具SCADE建立在嚴格的數(shù)學模型基礎之上,具有嚴格的數(shù)學語義,可以實現(xiàn)為不同項目組、制造商與供應商之間提供可靠的通用的平臺實現(xiàn)系統(tǒng)需求的交流,且與硬件無關,可配合不同的硬件平臺使用。SCADE界面采用類Visual Studio風格,直觀友好,易學易用,提供了建立在嚴格的數(shù)學模型基礎之上的數(shù)據(jù)流圖(block diagrams)和安全狀態(tài)機(safe state machines)兩套圖形化建模機制,其中數(shù)據(jù)流圖適用于連續(xù)系統(tǒng)的建模,安全狀態(tài)機適用于離散系統(tǒng)建模,兩套機制融合在一起,能夠滿足不同類型的系統(tǒng)尤其是混合系統(tǒng)的開發(fā)。SCADE提供的形式驗證彌補了測試中存在的不能保證系統(tǒng)安全性的局限,SCADE代碼生成器KCG通過了DO-178B國際標準的A級質量認證,保證了代碼的正確性。
基于上述算法流程,對三余度數(shù)字量信號監(jiān)控、表決算法進行SCADE建模,采用狀態(tài)機(State Machine)來搭建有效數(shù)據(jù)為3/2/1時的數(shù)據(jù)流圖,具體模型如圖2所示。
其中子模塊3個數(shù)據(jù)有效時監(jiān)控表決模塊DIGIMonitor3具體模型圖3所示。
圖3 3個信號有效時監(jiān)控/表決模型Fig.3 The monitor/vote model of 3 active signal
Order為對3個數(shù)據(jù)進行排序的子模塊,Abs為取絕對值子模塊。
開發(fā)過程中關鍵技術難點:1)對多個同類型的操作進行處理時,SCADE不支持循環(huán)操作,使搭建模型的工作量復雜。2)對內存等底層進行操作時,需要進行手工代碼導入來協(xié)助完成軟件開發(fā)。
SCADE所生成的代碼是完全面向工程的產品代碼,可以直接嵌入到產品中去而不需做任何修改,且代碼的運行結果和仿真的結果完全一致。采用KCG6.1代碼生成器,數(shù)字量表決監(jiān)控3個輸入有效模型自動生成代碼部分截圖如圖4所示。
在LDRA Testbed測試環(huán)境下,依據(jù)Testbed收集的數(shù)據(jù),使用一定的評價模型對被評價軟件進行評價。評價模型使用因數(shù)——特性——度量的三級結構。根據(jù)公式評價軟件質量特性:
對自動生成的代碼進行質量分析評價,測試結果如圖5所示。
圖4 KCG6.1.2生成代碼Fig.4 Code generated by KCG 6.1.2
其代碼生成器生成的嵌入式代碼子程序質量及軟件的可測試性、可維護性及清晰性都嚴格遵照DO-178B國際標準達到 Excellent,手寫代碼分別為 Good,Middle,Middle.子程序質量分類圖顯示手寫代碼子程序質量為Middle,而自動生成代碼為Good,軟件質量相對手寫代碼有很大程度的提高。
圖5 代碼測試結果Fig.5 Codes test rusult
飛控計算機仿真機為3×1非相似硬件結構(CPU不同),系統(tǒng)分為3個通道,每個通道含一臺飛控仿真計算機,飛控計算機實時仿真機內各板卡均基于VME背板總線,三臺飛控計算機采用非相似的處理器板卡 (處理器板支持JTAG接口和VxWorks6.8),并具有AFDX總線接口、ARINC429總線接口、CAN總線接口和DIO離散量接口,完成余度任務管理及在線監(jiān)控功能。該模塊另配備有飛控仿真機上位機一臺,用于余度故障模擬及調試管理。其實物圖如圖6所示。
圖6 三余度飛控計算機實物圖Fig.6 Triple-redundant flight control computer
將SCADE代碼生成器KCG自動生成的函數(shù)嵌入到VxWorks6.8開發(fā)環(huán)境中,大大降低了由手寫代碼造成的語法錯誤和邏輯錯誤,縮短了開發(fā)調試周期,節(jié)省了開發(fā)成本,很好的保證了三余度管理軟件的功能實現(xiàn),且代碼的可讀性良好,大大提高了機載三余度管理軟件的開發(fā)效率并保證了軟件代碼質量,有很好的工程應用價值。
[1]劉小雄,章衛(wèi)國,李廣文.電傳飛行控制系統(tǒng)的余度設計技術[J].飛機設計,2006,1(1):35-38.
LIU Xiao-xiong,ZHANG Wei-guo,LI Guang-wen.Redundancy techniques for fly-by-wire flight control systems[J].Aircraft Design,2006,1(1):35-38.
[2]林成文.機載軟件圖形化設計與自動代碼生成研究[D].西安:西北工業(yè)大學,2007.
[3]Esterel Technologies.SCADE Training Course[S].2009.
[4]吳成富,王睿,陳懷民,等.基于SCADE實現(xiàn)的三余度飛控計算機系統(tǒng)任務同步[J].航空計算技術,2009,1(1):107-110.
WU Cheng-fu,WANG Rui,CHEN Huai-min,et al.Task synchronization oftriplex Hot-redundancy flightcontrol computerbased on SCADE[J].AeronauticalComputer Technioue,2009,1(1):107-110.
[5]宋祥貴,張新國.電傳飛行控制系統(tǒng)[M].北京:國防工業(yè)出版社,2003.
[6]《飛機設計手冊》總編委會.飛機設計手冊[M].北京:航空工業(yè)出版社,2010.