歐陽寰,王超勇, 陳遵銀, 黎子芬
(海軍航空工程學(xué)院 青島校區(qū),山東 青島 266041))
某型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀測試軟件設(shè)計(jì)
歐陽寰,王超勇, 陳遵銀, 黎子芬
(海軍航空工程學(xué)院 青島校區(qū),山東 青島 266041))
針對(duì)引俄檢測儀規(guī)定的機(jī)載計(jì)算機(jī)硬件檢測功能和作戰(zhàn)訓(xùn)練對(duì)機(jī)載計(jì)算機(jī)軟件邏輯功能校驗(yàn)的需求,設(shè)計(jì)了基于嵌入式計(jì)算機(jī)平臺(tái)和虛擬測試環(huán)境的計(jì)算機(jī)檢測儀測試軟件;闡述了檢測儀的總體結(jié)構(gòu),較為詳細(xì)的介紹了檢測儀軟件的組成、運(yùn)行流程和控制狀態(tài)設(shè)計(jì),軟件設(shè)計(jì)過程中采用了逆向工程、雙語兼容和被測軟件模板對(duì)比等關(guān)鍵技術(shù);該測試軟件已經(jīng)在某型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀安裝使用,實(shí)用證明其操作方便,運(yùn)行穩(wěn)定可靠,能夠提高訓(xùn)練和作戰(zhàn)準(zhǔn)備工作的效率。
嵌入式計(jì)算機(jī);軟件設(shè)計(jì);逆向工程;模板對(duì)比
某型飛機(jī)機(jī)載計(jì)算機(jī)及檢測儀均為俄羅斯引進(jìn)海軍型裝備,采用的檢測技術(shù)為20世紀(jì)80年代的水平,隨著作戰(zhàn)和訓(xùn)練任務(wù)不斷增加,原有的檢測儀在功能和可靠性方面已經(jīng)不能滿足現(xiàn)有要求。為了全面提升檢測設(shè)備功能,研制了該型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀[1],不但能夠完成原有檢測儀的全部功能,還增加了校驗(yàn)機(jī)載計(jì)算機(jī)內(nèi)部軟件的功能,操作簡單,保障了機(jī)載計(jì)算機(jī)可靠使用。
某型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀(以下簡稱檢測儀)是一個(gè)基于嵌入式計(jì)算機(jī)平臺(tái)[2]和虛擬測試[3-4]環(huán)境的計(jì)算機(jī)離位測試系統(tǒng),總體結(jié)構(gòu)如圖1所示。
圖1 某型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀總體結(jié)構(gòu)圖
檢測儀由БЦВМ計(jì)算機(jī)檢測儀(嵌入式計(jì)算機(jī)系統(tǒng))和PC計(jì)算機(jī)系統(tǒng)兩部分構(gòu)成,每部分均主要包含有硬件和應(yīng)用軟件。БЦВМ計(jì)算機(jī)檢測儀構(gòu)成檢測儀主體,可以向被測的機(jī)載計(jì)算機(jī)提供電源激勵(lì),測試機(jī)載計(jì)算機(jī)的硬件工作狀態(tài);PC計(jì)算機(jī)通過軟件測試電纜連接機(jī)載計(jì)算機(jī)的前端端口,對(duì)機(jī)載計(jì)算機(jī)內(nèi)部的固化程序進(jìn)行正確性校驗(yàn)。
檢測儀硬件由БЦВМ計(jì)算機(jī)檢測儀和PC計(jì)算機(jī)組成,可對(duì)機(jī)載計(jì)算機(jī)硬件、軟件技術(shù)狀態(tài)同時(shí)進(jìn)行測試。
1.1.1 БЦВМ計(jì)算機(jī)檢測儀
БЦВМ計(jì)算機(jī)檢測儀由嵌入式計(jì)算機(jī)系統(tǒng)、PM-35測試安裝支架、測試電纜組成。嵌入式計(jì)算機(jī)通過測試電纜連接PM-35測試安裝支架上的被測設(shè)備。
1.1.2 PC計(jì)算機(jī)
PC計(jì)算機(jī)由PC主機(jī)、顯示器、鼠標(biāo)、鍵盤和測試電纜組成。PC主機(jī)通過測試電纜直接連接被測設(shè)備。
檢測儀的應(yīng)用軟件由БЦВМ計(jì)算機(jī)檢測儀測試軟件ATK_PRO和PC計(jì)算機(jī)系統(tǒng)測試軟件ATK_MON兩部分組成,軟件結(jié)構(gòu)組成如圖2所示。
圖2 檢測儀應(yīng)用軟件組成框圖
1.2.1 БЦВМ計(jì)算機(jī)檢測儀軟件
БЦВМ計(jì)算機(jī)檢測儀上運(yùn)行的應(yīng)用軟件為硬件測試軟件ATK_PRO,采用C++編程語言,運(yùn)用C++Builder編譯環(huán)境,基于Windows XP平臺(tái)進(jìn)行開發(fā),具備429信號(hào)串行通訊能力、一次性指令信號(hào)通訊能力、以及啟動(dòng)計(jì)算機(jī)ATK測試程序等功能。
1.2.2 PC計(jì)算機(jī)系統(tǒng)測試軟件
PC機(jī)上運(yùn)行的應(yīng)用軟件為軟件測試軟件ATK_MON,其功能是通過RS232串口向被測試計(jì)算機(jī)發(fā)送測序測試、校驗(yàn)指令,接收計(jì)算機(jī)反饋的程序測試數(shù)據(jù),并對(duì)其進(jìn)行解析,輸出測試報(bào)告。
檢測儀的總體工作原理框圖如圖3所示。檢測儀主要完成如下5個(gè)功能:
圖3 檢測儀總體工作原理框圖
圖4 檢測儀硬件和軟件測試軟件工作流程圖
1.3.1 串行碼通訊功能檢查原理
運(yùn)行測試程序ATK_TPro,配置測試命令,啟動(dòng)計(jì)算機(jī)自檢程序,進(jìn)行ARINC-429串行碼數(shù)據(jù)交換,檢測儀429信號(hào)測試區(qū)相應(yīng)的指示燈,以特定周期點(diǎn)亮(有信號(hào)時(shí)信號(hào)電平±5 V,誤差)。
1.3.2 一次性指令通訊功能檢查原理
運(yùn)行測試程序ATK_TPro,配置測試命令,啟動(dòng)計(jì)算機(jī)自檢程序,進(jìn)行一次性指令數(shù)據(jù)交換,檢測儀一次性指令信號(hào)測試區(qū)+27 V、CASING、COMMON對(duì)應(yīng)的相應(yīng)的指示燈以特定周期點(diǎn)亮。
1.3.3 計(jì)算機(jī)良好信號(hào)檢測原理
對(duì)機(jī)載計(jì)算機(jī)良好信號(hào)(_ERRBCVM信號(hào))進(jìn)行持續(xù)監(jiān)測,此信號(hào)為機(jī)載計(jì)算機(jī)運(yùn)行良好輸出信號(hào),以開路集流器(UH<30 V,IH<30 mA)的形式與機(jī)載電路斷電,低有效(允許誤差-3~+2.4 V)。
1.3.4 計(jì)算機(jī)消耗功率測試原理
按照平均功率計(jì)算公式(P=UI)對(duì)所測試的機(jī)載計(jì)算機(jī)進(jìn)行消耗功率測試,并實(shí)時(shí)顯示和存儲(chǔ)此數(shù)據(jù)。
1.3.5 機(jī)載計(jì)算機(jī)FLSH程序測試原理
在檢測儀中虛擬俄文版Windows系統(tǒng),為АТК_MON程序運(yùn)行提供虛擬工作平臺(tái),完成機(jī)載計(jì)算機(jī)的FLASH盤中系統(tǒng)軟件、應(yīng)用軟件和POST軟件的檢查。
由于某型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀檢測內(nèi)容多,精度要求高,在硬軟件存在很多技術(shù)難點(diǎn)。為避免研制風(fēng)險(xiǎn),提高軟件開發(fā)的效率和人機(jī)界面的友好,研制過程軟件基本遵循如下設(shè)計(jì)原則:
1)滿足自動(dòng)測試需求,提高測試效率和準(zhǔn)確度;
2)應(yīng)用程序的開發(fā)平臺(tái)必須是基于Windows的軟件開發(fā)環(huán)境;
3)應(yīng)用軟件采用模塊化設(shè)計(jì),可靠性要好,安全性要強(qiáng);
4)人機(jī)界面友好,操作簡單;
5)具有比較強(qiáng)的硬件操作能力;
6)具有支持第三方硬件的能力。
計(jì)算機(jī)檢測儀測試軟件運(yùn)行的具體工作流程如圖4所示。計(jì)算機(jī)機(jī)檢測儀主要完成機(jī)載計(jì)算機(jī)硬件測試和機(jī)載計(jì)算機(jī)軟件測試。
硬件測試是通過ATK_PRO程序來完成機(jī)載計(jì)算機(jī)各硬件組成及總線通訊能力的檢測。測試軟件采用BCB開發(fā)環(huán)境,基于Windows XP平臺(tái)開發(fā),動(dòng)態(tài)調(diào)用必要的總線接口模塊底層驅(qū)動(dòng)函數(shù),不僅需要主控計(jì)算機(jī)安裝Windows 2000/XP操作系統(tǒng)和必要的接口驅(qū)動(dòng)程序外,硬件上還需要主控計(jì)算機(jī)安裝ARINC429接口模塊、一次性離散量接口模塊,并完好連接。啟動(dòng)ATK_TPro程序時(shí),系統(tǒng)會(huì)自動(dòng)進(jìn)行必要的軟件和硬件自檢測,否則會(huì)提示相應(yīng)的啟動(dòng)失敗信息。
軟件測試通過ATK_MON程序進(jìn)行比對(duì)正確機(jī)載計(jì)算機(jī)軟件達(dá)到校驗(yàn)機(jī)載計(jì)算機(jī)系統(tǒng)軟件、應(yīng)用軟件和POST軟件的目的。虛擬俄文版Windows系統(tǒng),為ATK_MON程序運(yùn)行提供虛擬工作平臺(tái)。
2.2.1 硬件測試流程
嵌入式計(jì)算機(jī)上的ATK_PRO程序完成自檢后,給被測機(jī)載計(jì)算機(jī)上電和配置參數(shù),測試的內(nèi)容主要為ARINC429和一次性指令信號(hào)的通訊能力、計(jì)算機(jī)良好信號(hào)。ARINC429總線處于總線數(shù)據(jù)采集監(jiān)視模式,用戶可根據(jù)需要進(jìn)行數(shù)據(jù)存儲(chǔ)選擇。一次性指令信號(hào)ATK_PRO軟件提供了信號(hào)的分析電平測試功能,用戶可利用軟件提供的通道選擇功能進(jìn)行通道選擇,將數(shù)據(jù)還原成波形信號(hào)進(jìn)行分析。
2.2.2 軟件測試流程
軟件測試需要嵌入式計(jì)算機(jī)啟動(dòng)ATK_PRO程序?yàn)楸粶y計(jì)算機(jī)上電,由于機(jī)載計(jì)算機(jī)軟件運(yùn)行在前一版本的操作系統(tǒng)中,因此需要在虛擬測試環(huán)境下啟動(dòng)ATK_MON程序?qū)C(jī)載計(jì)算機(jī)機(jī)軟件進(jìn)行檢驗(yàn),在虛擬測試環(huán)境下PC計(jì)算機(jī)可通過RS-232接口發(fā)送軟件測試指令,根據(jù)指令要求終止機(jī)載計(jì)算機(jī)的當(dāng)前正常工作模式,強(qiáng)制機(jī)載計(jì)算機(jī)啟動(dòng)擴(kuò)展的軟件檢驗(yàn)檢查功能,并通過RS-232接口向測試主機(jī)傳輸測試信息,生成測試報(bào)告。
檢測儀狀態(tài)的合理劃分,可有效控制檢測儀的狀態(tài),有利于軟件開發(fā)、多人合作、設(shè)計(jì)相互轉(zhuǎn)換之間的信息交換。為便于編程控制,將檢測儀的整體工作狀態(tài)分為5個(gè)狀態(tài),并由3個(gè)事件來控制,檢測儀的軟件整體可劃分為初始化、準(zhǔn)備好(狀態(tài)1)、硬件測試(狀態(tài)5)和軟件測試(狀態(tài)2、狀態(tài)3、狀態(tài)4)4種狀態(tài),檢測儀狀態(tài)控制如圖5所示。
圖5 檢測儀狀態(tài)控制框圖
檢測儀的狀態(tài)主要由3個(gè)事件來控制:
“開始”事件:首先判斷檢測儀及被測機(jī)載計(jì)算機(jī)是否處于準(zhǔn)備好狀態(tài),并且電壓在規(guī)定范圍內(nèi),如滿足條件,則對(duì)各控制端口進(jìn)行配置,端口配置成功后轉(zhuǎn)入狀態(tài)5,否則不做任何動(dòng)作;
“停止”事件:當(dāng)檢測儀測試應(yīng)用程序軟面板的“停止”按鈕被按下,檢測儀收回總線控制權(quán)限,停止當(dāng)前測試進(jìn)程,轉(zhuǎn)入狀態(tài)1;
“退出”事件:無論檢測儀處于什么狀態(tài),都將檢測儀停止當(dāng)前工作狀態(tài),恢復(fù)到初始狀態(tài),同時(shí)關(guān)閉所有測試進(jìn)程。
檢測儀的5個(gè)工作狀態(tài)如下:
狀態(tài)1:準(zhǔn)備好狀態(tài),即БЦВМ計(jì)算機(jī)檢測儀上電啟動(dòng)正常,應(yīng)用軟件加載成功,端口配置完成,通過應(yīng)用測試軟件的軟面板上的電源控制開關(guān),可控制被測機(jī)載計(jì)算機(jī)供電啟動(dòng),自動(dòng)轉(zhuǎn)入狀態(tài)5;
狀態(tài)2:系統(tǒng)軟件校驗(yàn)狀態(tài),即被測機(jī)載計(jì)算機(jī)加電啟動(dòng),與臺(tái)式計(jì)算機(jī)通過RS-232總線連接成功,并根據(jù)控制指令,退出當(dāng)前正常工作狀態(tài),轉(zhuǎn)入系統(tǒng)軟件校驗(yàn)狀態(tài);
狀態(tài)3:應(yīng)用軟件校驗(yàn)狀態(tài),即被測機(jī)載計(jì)算機(jī)加電啟動(dòng),與臺(tái)式計(jì)算機(jī)通過RS-232總線連接成功,并根據(jù)控制指令,退出當(dāng)前正常工作狀態(tài),轉(zhuǎn)入應(yīng)用軟件校驗(yàn)狀態(tài);
狀態(tài)4:POST軟件校驗(yàn)狀態(tài),即被測機(jī)載計(jì)算機(jī)加電啟動(dòng),與臺(tái)式計(jì)算機(jī)通過RS-232總線連接成功,并根據(jù)控制指令,退出當(dāng)前正常工作狀態(tài),轉(zhuǎn)入POST軟件校驗(yàn)狀態(tài);
根據(jù)測試流程,采用模塊化設(shè)計(jì),方便應(yīng)用軟件的設(shè)計(jì)和多人合作開發(fā)。軟件采用原型系統(tǒng)方法進(jìn)行設(shè)計(jì),待某一功能完全調(diào)試成功后,再逐步進(jìn)行新的功能開發(fā)。檢測儀的工作狀態(tài)通過連接調(diào)試信號(hào)模擬器進(jìn)行測試,其過程與最終的實(shí)裝測試完全相同。
運(yùn)用計(jì)算機(jī)檢測理論與方法,綜合應(yīng)用國內(nèi)外軟件設(shè)計(jì)先進(jìn)技術(shù)和成熟商用產(chǎn)品,成功研制了某型飛機(jī)機(jī)載計(jì)算機(jī)檢測儀。在軟件設(shè)計(jì)采用了以下關(guān)鍵技術(shù):
運(yùn)用逆向工程技術(shù)[5-6],借助DD反匯編工具,對(duì)機(jī)載計(jì)算機(jī)中央處理器上FLASH盤上的程序進(jìn)行反匯編,區(qū)分各程序代碼段起始地址,對(duì)程序文件進(jìn)行了分離,獲取了機(jī)內(nèi)各模塊的自檢程序、計(jì)算機(jī)軟件校驗(yàn)程序的輸入條件及相關(guān)測試機(jī)理,包括必要的測試函數(shù),故障代碼字典等信息,同時(shí)對(duì)串口通訊配置文件進(jìn)行分析破譯,掌握了機(jī)載計(jì)算機(jī)的串口通訊配置參數(shù),破解了被測計(jì)算機(jī)硬件測試的測試機(jī)理和軟件測試的輸入條件,突破了俄方在出口產(chǎn)品離位測試方面的限制問題。實(shí)現(xiàn)了運(yùn)用機(jī)載計(jì)算機(jī)前端串口進(jìn)行計(jì)算機(jī)FLASH盤上的軟件校驗(yàn)、計(jì)算機(jī)各模塊的獨(dú)立檢查。
機(jī)載計(jì)算機(jī)的軟件測試機(jī)理是測試計(jì)算機(jī)(上位機(jī))通過RS232串行總線接口向機(jī)載計(jì)算機(jī)(下位機(jī))發(fā)送測試指令,機(jī)載計(jì)算機(jī)根據(jù)上位機(jī)的測試指令運(yùn)行相應(yīng)的測試程序段,不斷向上位機(jī)反饋測試結(jié)果,并在上位機(jī)上進(jìn)行顯示。在測試軟件環(huán)境構(gòu)建上,由于機(jī)載計(jì)算機(jī)上運(yùn)行的操作系統(tǒng)為俄文版WIN98實(shí)時(shí)操作系統(tǒng)RelMK32,測試反饋結(jié)果在檢測儀操作系統(tǒng)(中文操作系統(tǒng))下顯示為亂碼。如進(jìn)行漢化顯示,則因數(shù)據(jù)量較大,且部分內(nèi)容在漢化過程中因編碼存在過多的對(duì)比匹配,將導(dǎo)致文字顯示不全,影響判讀。通過在檢測儀操作系統(tǒng)中安裝虛擬機(jī)[7]系統(tǒng)(影子系統(tǒng)),構(gòu)建雙語兼容的測試軟件工作環(huán)境,解決了測試計(jì)算機(jī)和機(jī)載計(jì)算機(jī)操作系統(tǒng)因使用字庫不同,導(dǎo)致出現(xiàn)顯示亂碼或顯示信息不全的問題。
為了滿足部隊(duì)實(shí)際使用需求,校驗(yàn)被測機(jī)載計(jì)算機(jī)應(yīng)用程序的正確性,通過實(shí)裝測繪,掌握了良好狀態(tài)下機(jī)載計(jì)算機(jī)固化在FLASH中軟件正確性測試指令的特征及狀態(tài),獲取了被測軟件對(duì)比模板;準(zhǔn)確分清了已編譯成機(jī)器碼的系統(tǒng)程序及各應(yīng)用程序的存儲(chǔ)單元地址;建立了實(shí)時(shí)的數(shù)據(jù)傳輸通道,實(shí)現(xiàn)被測軟件代碼按字節(jié)進(jìn)行比對(duì),并判斷其正確性。
本節(jié)給出了機(jī)載計(jì)算機(jī)檢測儀顯示屏上運(yùn)行的硬件測試軟件運(yùn)行界面截圖(如圖6所示)和軟件測試軟件虛擬機(jī)界面截圖(如圖7所示)。軟件的設(shè)計(jì)遵循了軟件設(shè)計(jì)原則,使用符合部隊(duì)維護(hù)操作規(guī)程,界面簡捷直觀,操作簡單。通過測試,軟件運(yùn)行穩(wěn)定可靠,也彌補(bǔ)了原檢測儀不易判讀的問題。
圖6 檢測儀硬件測試軟件運(yùn)行界面
檢測儀硬件測試軟件運(yùn)行界面通過虛擬面板模擬引俄檢測設(shè)備的指示燈、開關(guān)和按鈕,操作簡便,直觀可靠,增加了數(shù)字示波器,可以展示測試端口的波形,便于檢測維修,同時(shí)還可在檢測后留下檢測記錄。
檢測儀軟件測試運(yùn)行界面需要啟動(dòng)虛擬機(jī)運(yùn)行在WIN98操作系統(tǒng)中,可記錄被測機(jī)載計(jì)算機(jī)的編號(hào),選擇FLASH盤上的系統(tǒng)軟件、應(yīng)用軟件和POST軟件分別進(jìn)行比對(duì)檢驗(yàn),并在檢驗(yàn)完成后生成測試報(bào)告,便于維護(hù)人員深度研究和維護(hù)。
該檢測儀軟件設(shè)計(jì)充分利用了現(xiàn)代檢測技術(shù),突破了國外引進(jìn)裝備技術(shù)限制,兼容了雙語軟件環(huán)境,具有模塊化設(shè)計(jì)、測控功能完善和操作簡單可靠等特點(diǎn)。實(shí)用證明,檢測儀軟件在修理廠對(duì)機(jī)載計(jì)算機(jī)離位檢測時(shí),能夠完成對(duì)機(jī)載計(jì)算機(jī)硬件、軟件對(duì)比和機(jī)載武器邏輯運(yùn)算控制能力的檢測,在保證某型飛機(jī)武器系統(tǒng)的可靠性和順利遂行作戰(zhàn)和訓(xùn)練任務(wù)方面發(fā)揮了重要作用。
圖7 檢測儀軟件測試虛擬機(jī)運(yùn)行界面
[1] 歐陽寰,王超勇,等. 某型飛機(jī)武器控制系統(tǒng)計(jì)算機(jī)檢測儀的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測量與控制,2016,24(12):103-105.
[2] 李小魁,王忠勇. 基于嵌入式操作系統(tǒng)平臺(tái)下的觸摸屏驅(qū)動(dòng)程序的開發(fā)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)與數(shù)字工程,2009,37(4):73-76.
[3] 史永勝, 祖以慧. 基于虛擬測試儀器的診斷技術(shù)及在VMTS中應(yīng)用[J]. 計(jì)算機(jī)測量與控制,2015,23(5):1464-1466.
[4] Julia C,Jaime R,Angelica D A . Applying a student modeling with non-monotonic diagnosis to Intelligent Virtual Environment for Training/Instruction[J]. Expert Systems with Applications,2014,41(2):508-520.
[5] 周立萍,孫青巖,等. 逆向工程分析技術(shù)研究[J]. 微機(jī)發(fā)展,2004,14(4):4-7.
[6] 李志新,黃曼慧,等. 逆向工程中的CAD建模技術(shù)及軟件系統(tǒng)[J]. 機(jī)床與液壓,2007,35(9):46-47,78.
[7] 張 磊,陳興蜀,等. 基于虛擬機(jī)的內(nèi)核完整性保護(hù)技術(shù)[J]. 電子科技大學(xué)學(xué)報(bào),2015,44(1):117-122.
Design of Test Software for Airborne Computer Detector of a Certain Type Aircraft
Ouyang Huan, Wang Chaoyong, Chen Zunyin, Li Zifen
(Qingdao Campus, Naval Aeronautical Engineering Institute,Qingdao 266041,China)
A test software for the detector is designed based on embedded computer platform and virtual test environment according to the prescriptive hardware detection function for the airborne computer of the detector imported from Russia and the combat training demand for the software logic function calibration for the airborne computer. The general structure is described for the detector. The composition, running process and control state are introduced in detail. Some key technologies are used in the procedure of designing, such as reverse engineering, bilingual compatibility and software template comparison etc. The test software has been used in the airborne computer detector of an aircraft. The application results show that the characteristics of the software are convenient operation and steady performance. It can improve the efficiency of training and combat readiness.
embedded computer; software design; reverse engineering; template comparison
2017-02-18;
2017-03-07。
歐陽寰(1970-),男,江西彭澤人,碩士,副教授,主要從事航空火控專業(yè)教學(xué)科研及計(jì)算機(jī)軟硬件設(shè)計(jì)方向的研究。
1671-4598(2017)08-0116-04
10.16526/j.cnki.11-4762/tp.2017.08.030
TP311.1
A