牟 鵬,段曉軍
(1.中航工業(yè) 成都飛機工業(yè)集團有限公司技術中心,成都 610091;2.西北工業(yè)大學 無人機特種技術重點實驗室,西安 710072)
基于RFM的機載余度計算機軟件快速測試平臺
牟鵬1,段曉軍2
(1.中航工業(yè)成都飛機工業(yè)集團有限公司技術中心,成都610091;2.西北工業(yè)大學無人機特種技術重點實驗室,西安710072)
為了提升飛控計算機的可靠性,目前普遍采用余度技術構建余度飛控計算機,該計算機由多個通道構成,每個通道有一個CPU,互相構成備份;但是,由于各個通道的機載軟件之間相互同步、通信和交叉監(jiān)控,必須并行調試和測試,這就造成了機載軟件調試和測試的滯后,必須等待真實的飛控計算機開發(fā)出來之后才能開展工作;文章提出了一種基于RFM(反射內存)的余度計算機快速原型測試平臺設計方法;該平臺使用商用貨架產(chǎn)品構成余度計算機的多個冗余通道,使用RFM模擬多通道間的通信、同步過程,通過對底層驅動封裝實現(xiàn)硬件故障模擬和余度功能模擬,方便實現(xiàn)軟件調試和從性能、功能測試,大大提高了開發(fā)效率,減少了研制周期。
余度計算機軟件;RFM;快速測試
機載多余度計算機軟件測試比較常用的方法是虛擬樣機技術。虛擬樣機又稱為虛擬原型機,它將不同工程領域的開發(fā)模型結合在一起,從外觀、功能和行為上模擬真實產(chǎn)品,產(chǎn)品在概念設計階段就可以迅速地分析、比較多種設計方案,可以縮短產(chǎn)品研發(fā)周期、提高產(chǎn)品質量[1]。目前國內外關于多余度飛控軟件的測試資料比較少,文獻[2]中提到了用虛擬樣機技術來實現(xiàn)多余度相似與非相似軟件的開發(fā)與驗證平臺。該平臺使用10臺PC結構工控機構筑虛擬的飛控計算機組,選用兩種不同類型的處理器芯片,Intel和PowerPC。通道間的數(shù)據(jù)總線采用以太網(wǎng),使用ARINC629總線協(xié)議進行通訊,實現(xiàn)通道間和通道內輸出數(shù)據(jù)比較的功能。通道內各支路之間由于處理的信息量不大,采用計算機串行接口進行通訊,實現(xiàn)各支路時鐘同步、系統(tǒng)狀態(tài)數(shù)據(jù)交換等功能以及發(fā)送支路禁止或失效告警信號。根據(jù)應用需要稍作改變,該平臺就可以方便地模擬3×3、4×2等常見多余度配置的軟件開發(fā)與測試,是目前國內外多余度軟件測試中常用的方法。然而,該方法主要側重于對軟件開發(fā)成品進行測試,在多余度飛控軟件的開發(fā)過程中,更多依賴于相關項目經(jīng)驗的累積和軟件編碼人員的編碼質量,并沒有方便、易用的測試平臺來輔助開發(fā)過程,更談不上從性能和功能兩方面進行測試。
反射內存(RFM)是一種高速的實時數(shù)據(jù)傳輸技術,它允許采用不同的總線結構和不同的操作系統(tǒng)的計算機以確定的速率分享實時的數(shù)據(jù)。它與以太網(wǎng)等其他傳統(tǒng)網(wǎng)絡相比具有更低的數(shù)據(jù)傳輸延遲、更快的傳輸速度,更簡單靈活的使用操作,可以滿足實時系統(tǒng)快速反應周期的要求[3]。
本文提出了一種基于RFM的飛控軟件快速測試平臺,它能在軟件設計開發(fā)過程中隨時進行實時性能和邏輯功能的測試,更早、更及時地發(fā)現(xiàn)軟件錯誤和漏洞。更為重要的是,在系統(tǒng)軟件設計初期,當航電總線仍在采購和調試時,它能利用RFM模擬航電總線的通訊過程,完成系統(tǒng)余度管理流程的測試。
目標飛機是虛擬飛機,用一臺飛行仿真計算機來模擬。飛行仿真機基于RTX實時擴展操作系統(tǒng),實現(xiàn)了單機Windows環(huán)境下的實時仿真。飛控計算機仿真機由N臺(N為系統(tǒng)的余度數(shù))具有PowerPC處理器的計算機組成,仿真機內各板卡均基于VME背板總線,每臺計算機均配置有VMI5565反射內存卡一塊,所有的反射內存卡通過光纖連接至光纖HUB,該計算機組運行VxWorks實時操作系統(tǒng)。系統(tǒng)另配備有飛控計算機上位機一臺,上位機用于多余度飛控計算機軟件的開發(fā)和調試,還兼有故障注入的功能。飛控計算機上位機與仿真機之間通過以太網(wǎng)相連。圖1是三余度飛控軟件測試平臺結構圖。
目標飛機(飛行仿真計算機)模擬飛機的飛行狀況并周期地通過UDP協(xié)議向飛控計算機仿真機發(fā)送飛行數(shù)據(jù)。飛控計算機仿真機每小幀周期(該時間根據(jù)系統(tǒng)設計需要確定)運行一次余度管理任務,包括:同步、數(shù)據(jù)采集、交叉?zhèn)鬏?、?shù)據(jù)監(jiān)控、數(shù)據(jù)表決等環(huán)節(jié)。RFM及其光纖網(wǎng)絡用于實現(xiàn)通道間的通訊。例如,在每個小幀周期的起始,飛控計算機組都要進行一次同步,其目的是保證N個通道之間保持步調一致的工作,在“某一時刻”同時完成同一任務的某個基本動作。這樣,容錯系統(tǒng)的表決過程才有意義,才能保證系統(tǒng)中冗余模塊的多數(shù)一致的原則。另外,RFM還用于通道間大量的數(shù)據(jù)交叉?zhèn)鬏敚@是系統(tǒng)冗余設計的最根本目的,當一個通道數(shù)據(jù)發(fā)生錯誤時,可以共享其它數(shù)據(jù)正確通道的數(shù)據(jù),交叉?zhèn)鬏敶螖?shù)根據(jù)余度管理設計需要來確定。飛控計算機上位機通過TCP/IP協(xié)議不定期地向飛控計算機組發(fā)送控制指令及故障注入數(shù)據(jù),并實現(xiàn)飛控計算機組工作狀態(tài)與重要數(shù)據(jù)的實時監(jiān)控。
圖1 三余度軟件測試平臺構成
飛控計算機仿真機是余度軟件運行的環(huán)境,需要逼真的模擬出余度管理軟件的運行環(huán)境。為了實現(xiàn)這個目的,飛控計算機仿真機底層運行余度功能模擬層軟件,包括:硬件驅動API、余度功能模擬API。具體系統(tǒng)軟件層次架構如下圖2所示。
圖2 軟件層次架構
可以看出,硬件驅動API的目的是為了在獲取真正硬件數(shù)據(jù)的基礎上,可以根據(jù)系統(tǒng)測試的需要注入特定的故障數(shù)據(jù)。對應用層而言,是沒有辦法區(qū)分是真正的硬件故障還是注入的故障,就可以方便的測試各種硬件故障情況下系統(tǒng)的處理流程是否能按照多余度管理策略進行。而余度功能模擬API的內部不僅調用上述驅動API,而且還根據(jù)故障注入信息對采集和輸出的數(shù)據(jù)進行處理,進而實現(xiàn)諸如同步、交叉?zhèn)鬏數(shù)扔喽忍匦缘哪M。同樣,在故障注入情況下可以測試系統(tǒng)的失步處理過程及交叉?zhèn)鬏斒〉裙收咸幚砹鞒?。余度特性模擬API的內部工作流程見圖3。
圖3 余度特性模擬API工作流程
3.1多余度任務調度
測試平臺搭建完成后,就可以在該平臺下開發(fā)和測試多余度飛控軟件了。首先,將N臺PowerPC計算機配置和引導為Vx Works實時操作系統(tǒng)環(huán)境,在上位機的Tonado開發(fā)環(huán)境下配置目標機服務器。目標機啟動后,將編寫好的代碼編譯鏈接后download至目標機,利用Tornado的Shell工具在就可以查看代碼運行的結果。接著根據(jù)系統(tǒng)任務調度流程,設置任務調度方式及任務的優(yōu)先級。設置系統(tǒng)時鐘周期為1 ms,并設置每小幀周期執(zhí)行一次中斷處理程序。將余度管理任務掛接到中斷處理程序中。根據(jù)余度管理的流程,逐步開發(fā)和測試同步、交叉?zhèn)鬏?、監(jiān)控表決等模塊。在初次同步過程中,由于N個通道任務啟動時間存在先后差異,應設置較長的同步等待時間,一般為500 ms左右。
3.2RFM模擬多通道間通訊
為了模擬多通道間的通訊過程,使用VMI5565反射內存卡來實現(xiàn),VMI5565具有1 MB的板上存儲器。當應用程序成功打開反射內存板后,程序會映射反射內存板上的內存空間到應用程序的虛擬內存空間,應用程序處理反射內存板上的內存就像處理普通內存一樣。如果打開成功,一個句柄將返回到應用程序,這個句柄將用于應用程序中所有與反射內存板有關的I/O操作。結束一個與反射內存網(wǎng)有關的應用程序時,必須關閉設備句柄,此時應用程序中和反射內存網(wǎng)有關的功能都將關閉,應用程序將不能訪問反射內存板上的資源。
反射內存卡操作簡單,只需要簡單的幾條語句就可以直接訪問反射內存板上的內存。下面是在VxWorks下操作反射內存卡的相關函數(shù)。
首先需要在對應的.c文件下添加:
include"rfm2g_api.h"
define RFM2G_VXWORKS
定義RFM操作句柄:
RFM2GHANDLE Handle
RFM初始化:
RFM2gInit();
RFM打開:
RFM2gOpen("RFM2G_0",&Handle);//打開設備,返回句柄
RFM讀寫函數(shù):
RFM2g Write(rh,offset,buf,sizeof(buf));//向反射內存寫數(shù)據(jù)
RFM2gRead(rh,offset,buf,sizeof(buf));//從反射內存讀數(shù)據(jù)
這里要注意的是,雖然RFM的傳輸速率可達25.9 Mbps,但是每次讀寫函數(shù)的內存操作大小不應大于256 Bit,在實際應用中,當內存操作大于256 Bit時,會帶來意想不到的時間延遲,嚴重影響系統(tǒng)的實時性能。因此在多通道通訊過程中,若通訊數(shù)據(jù)較多時,應分批傳送。
3.3故障注入模塊
故障注入模塊應在所有基本模塊開發(fā)完成后實現(xiàn)。故障注入作為一個獨立模塊周期運行,其周期約為1/4個小幀周期,其優(yōu)先級高于余度管理任務的優(yōu)先級,故障注入模塊周期讀取上位機傳送的故障注入信息,并及時將該信息傳送至驅動API和余度功能模擬API,驅動API和余度功能模擬API根據(jù)故障注入信息修改對應的執(zhí)行結果,模擬多余度飛控系統(tǒng)的各種故障情況,測試多余度系統(tǒng)的容錯處理邏輯和容錯能力。
設計3*1余度管理系統(tǒng),其工作過程如下:飛行仿真機每5 ms發(fā)送一次飛行仿真數(shù)據(jù),飛控計算機仿真機每20 ms采集一次飛行仿真機的傳感器數(shù)據(jù)(只讀取最新數(shù)據(jù))。讀到數(shù)據(jù)后,對輸入的數(shù)據(jù)在N個通道之間進行交叉?zhèn)鬏?,并對交叉?zhèn)鬏斀Y果進行數(shù)據(jù)監(jiān)控表決,將“最合適”的數(shù)據(jù)送到控制律計算模塊供控制律計算使用??刂坡捎嬎隳K將結果輸出,并對輸出數(shù)據(jù)再次進行交叉?zhèn)鬏敚瑢Φ诙谓徊鎮(zhèn)鬏斀Y果同樣進行監(jiān)控、表決,然后將表決所得到的舵控指令通過以太網(wǎng)輸出給目標飛機。飛行仿真計算機按照一定的表決算法對三組輸入進行選擇,并將結果輸出到舵機實現(xiàn)飛機主飛控系統(tǒng)的增穩(wěn)與控制任務。在該平臺下開發(fā)3*1余度管理軟件,首先,分模塊完成通道間同步、交叉?zhèn)鬏?、?shù)據(jù)監(jiān)控、數(shù)據(jù)表決模塊的開發(fā)和測試,然后根據(jù)余度管理流程將模塊任務融入20 ms小幀任務中,進行余度流程測試。圖4是三余度測試平臺實物圖。
圖4 三余度測試平臺實物
在該測試平臺下,可以運行實時程序,統(tǒng)計實時任務執(zhí)行時間,測試多余度策略管理邏輯,并及時糾正軟件書寫B(tài)UG和邏輯BUG。在各種系統(tǒng)航電總線存在差異的情況下,利用RFM代替航電總線,雖然其讀寫通道數(shù)據(jù)的時間和實際航電總線的通訊時間之間仍存在差異,但是這點差異相對小幀周期而言,是微乎其微的。因此,RFM能較為逼真地模擬多通道間通訊過程。軟件測試完成后,還可以根據(jù)航電總線的設計加入相應的驅動模塊并修改對應函數(shù),就能快速完成飛控系統(tǒng)多余度軟件的開發(fā)工作。
[1]王仲濤,劉增明,劉晶晶.彈載飛控軟件開發(fā)調試與實時仿真平臺研究[J].航空兵器,2010(6):38
[2]陳宗基,孫曉哲,秦旭東.民機飛控計算機系統(tǒng)虛擬樣機驗證平臺研究[J].系統(tǒng)仿真學報,2008(8):112
[3]顧穎彥,反射內存網(wǎng)實時通信技術的研究[J].計算機工程,2002(7):143
[4]宋龍,張文山,靳凌,任章.空空導彈飛控軟件研制中的虛擬樣機應用[J].計算機仿真,2005(5):19-24.
[5]Naidu A.Case study.Airbus A340 flight control system[D].University of Virginia,2002:1-12.
[6]Yeh Y C.Triple-Triple Redundant 777 Primary Flight Computer[A].Aerospace Applications Conference[C].Aspen,Co.1996(1):293-307.
[7]Briere D,Traverse P.Airbus A320/A330/A340 Electrical Flight Control-A family of fault-tolerant systems[A].The Twenty-Third International Symposium.Aerospatiale[C].316,route de Bayonne,31060 Toulouse,F(xiàn)rance.June,1993:616-623.
A Rapid Testing Platform of Redundant Computer Software
Mou Peng1,Duan Xiaojun2
(1.AVIC Chengdu Aircraft Industry,Chengdu610091,China;2.State key Laboratory of UAV Special Technology,Northwestern Polytechnical University,Xi'an710072,China)
Aimed at the difficulties in associated debugging and long testing period and complex conditions in the simulation and testing of the redundant computer software,a kind of rapid prototype test platform based on RFM is proposed.The platform simulates the communication process between multi-channels by the RFM(Reflective Memory).The hardware fault simulation and the redundancy functional module fault simulation are implemented by encapsulating the underlying drivers and redundancy function modules.Under the platform,the redundant software could be tested from both performance and functionality in developing process.
redundant computer software;RFM;rapid test
1671-4598(2016)05-0012-02
10.16526/j.cnki.11-4762/tp.2016.05.004
TP311
A
2015-05-28;
2016-01-04。
航天科技創(chuàng)新基金(N2014KC0026)。
牟鵬(1982),四川遂寧人,主要從事無人機飛行控制系統(tǒng)設計、機載軟件開發(fā)等方向的研究。