国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ADS2的嵌入式軟件測試仿真建模方法研究

2014-03-21 05:12張海軍王艷軍劉海見張凱翊
電子技術(shù)應(yīng)用 2014年6期
關(guān)鍵詞:測試環(huán)境嵌入式軟件實時性

張海軍,王艷軍,劉海見,張凱翊

(1.91413部隊,河北秦皇島066001;2.海軍大連艦艇學(xué)院基礎(chǔ)部,遼寧大連116018;3.91635部隊,北京102249)

軟件測試是保證軟件質(zhì)量和可靠性的重要手段。但由于嵌入式軟件的嵌入性、實時性、反應(yīng)性等特點[1],使其測試變得非常困難。實踐證明,仿真測試是發(fā)現(xiàn)嵌入式軟件缺陷、提高其可靠性的一種非常有效的方法。

嵌入式軟件仿真測試先后發(fā)展起來三種主要方案:全實物仿真測試環(huán)境、全數(shù)字仿真測試環(huán)境、半實物仿真測試環(huán)境[2-3]。半實物仿真測試能夠逼真地模擬、組織被測軟件運行所需的真實物理環(huán)境輸入信號,驅(qū)動被測軟件運行,同時接收被測軟件的輸出結(jié)果,對被測軟件進(jìn)行自動、實時、非侵入性的閉環(huán)測試。由于半實物仿真解決方案能夠較好地兼顧真實性和可操作性,從而得到國內(nèi)外的重視,具有良好的發(fā)展前景。典型的半實物仿真測試工具有:德國TechSAT公司的ADS2,美國Opal-RT公司的RT-LAB,德國dSPACE公司的dSPACE等。

1 ADS2測試環(huán)境體系結(jié)構(gòu)

1.1 硬件體系結(jié)構(gòu)

ADS2(Avionics Development System/2nd Generation)硬件包括實時主機(jī)、工作站、接線矩陣、故障注入單元FIBO(Fault Insertion&Break-Out Unit)、外部設(shè)備和被測件等,如圖1所示[4]。

圖1 ADS2硬件體系結(jié)構(gòu)圖

ADS2實時主機(jī)為VxWorks實時系統(tǒng),底層采用VME總線,通過不同的VME接口轉(zhuǎn)換板實現(xiàn)CPU板與不同接口之間的連接。接線矩陣用來實現(xiàn)對系統(tǒng)I/O信號的連接和切換;故障注入單元用來模擬實際系統(tǒng)中信號可能產(chǎn)生的故障現(xiàn)象;外部設(shè)備是與被測件交互的真實設(shè)備,可連接多個;工作站是用戶進(jìn)行測試管理、配置、執(zhí)行的終端,可以有多個工作站分別執(zhí)行不同的任務(wù)。

1.2 軟件體系結(jié)構(gòu)

ADS2軟件包括用戶工具套件devSMART bench、實時內(nèi)核VxWorks、仿真模型、接口驅(qū)動程序等[5],如圖2所示。

圖2 ADS2軟件體系結(jié)構(gòu)圖

用戶工具套件用來實現(xiàn)測試場景管理、系統(tǒng)配置、變量觀察和數(shù)據(jù)記錄、腳本編輯、仿真建模等。

用戶開發(fā)接口devExchange提供了一種運行仿真模型的機(jī)制,能夠使其運行于非實時的工作站或?qū)崟r主機(jī)上。

2 仿真建模實現(xiàn)原理

仿真建模必須滿足通用化、實時性的基本要求[6],才能快速構(gòu)建測試環(huán)境,有效進(jìn)行嵌入式軟件測試。

2.1 仿真建模的通用化

嵌入式軟件外部設(shè)備的I/O接口類型和實現(xiàn)功能差異很大,這就要求在仿真建模時要有很大的靈活性,能夠支持不同I/O接口類型,快速實現(xiàn)各種功能算法。

基于CVT(Current Value Table)數(shù)據(jù)庫進(jìn)行內(nèi)部數(shù)據(jù)交換是ADS2仿真建模通用化的核心技術(shù)。CVT是一個分布式的實時數(shù)據(jù)庫,存儲著ADS2內(nèi)部的各種I/O數(shù)據(jù)及其相關(guān)的變量名、缺省值、最大/最小值等數(shù)據(jù)描述。實時內(nèi)核提供訪問CVT變量的方法,ADS2內(nèi)部所有被測件、真實交聯(lián)設(shè)備、仿真模型、信號仿真工具、數(shù)據(jù)顯示記錄工具等之間沒有直接的接口,均以CVT為核心進(jìn)行數(shù)據(jù)交換,如圖3所示。其中,仿真模型、信號仿真工具中的輸入輸出數(shù)據(jù)與CVT變量之間的對應(yīng)關(guān)系在仿真接口文檔中進(jìn)行配置;被測件、真實交聯(lián)設(shè)備的I/O接口數(shù)據(jù)與CVT變量之間的對應(yīng)關(guān)系在硬件接口映像文件中進(jìn)行設(shè)置;數(shù)據(jù)顯示記錄工具直接訪問CVT變量。

ADS2仿真建模的通用性主要體現(xiàn)在以下幾方面:

(1)支持多種I/O接口類型。ADS2支持接口控制文檔ICD(Interface Control Document)數(shù)據(jù)庫,可根據(jù)每個交聯(lián)設(shè)備的ICD配置相應(yīng)的IOM文件,支持多種I/O接口類型,如數(shù)字I/O、模擬I/O、RS-232、RS-422、ARINC429、MIL-STD-1553、CAN以及非標(biāo)信號等。

(2)以CVT數(shù)據(jù)庫為核心進(jìn)行數(shù)據(jù)交換,使硬件I/O接口與仿真模型算法有效隔離,這樣在仿真建模時不需要關(guān)心硬件接口類型,而專注于軟件功能算法的實現(xiàn)。

(3)利用MATRIX、Matlab/Simulink等第三方工具,能夠?qū)崿F(xiàn)復(fù)雜算法的仿真模型。

(4)在測試中,只需修改配置文件,就可實現(xiàn)真實交聯(lián)設(shè)備與仿真模型之間的切換,快速構(gòu)建各種測試場景。

ADS2在仿真建模通用化方面存在不足之處:仿真模型一旦開發(fā)、編譯完成之后,仿真參數(shù)值不能修改,而在實際測試中,經(jīng)常需要輸入不同參數(shù)值的多個用例進(jìn)行測試,頻繁地編譯仿真模型很不方便。

2.2 仿真建模的實時性

對于嵌入式軟件測試,仿真模型的實時性是最關(guān)鍵的問題之一。影響仿真模型實時性的主要因素有以下幾點:

(1)操作系統(tǒng)

ADS2實時主機(jī)采用VxWorks嵌入式操作系統(tǒng)。Vx-Works具有良好的可靠性和卓越的實時性,保證了能在限定的時間內(nèi)執(zhí)行完仿真計算,并能及時對任務(wù)進(jìn)行調(diào)度和響應(yīng)外部事件。

(2)調(diào)度策略

ADS2調(diào)度策略采用時間驅(qū)動模型,VxWorks實時內(nèi)核以幀為基本時間單位,對各任務(wù)進(jìn)行統(tǒng)一調(diào)度。在一個幀周期內(nèi):I/O設(shè)備可以進(jìn)行一次完整的數(shù)據(jù)輸入或輸出;仿真模型可以進(jìn)行一次輸入變量讀取、計算和結(jié)果輸出;可視化工具可以進(jìn)行一次CVT變量值讀取等。

(3)仿真周期

ADS2每一個仿真幀中包含許多基本幀,基本幀的幀速度、幀數(shù)等可由用戶設(shè)定。仿真程序既可在實時內(nèi)核上運行也可在工作站上運行,運行于工作站的非實時仿真程序采用環(huán)路連接(TCP/IP),運行于實時主機(jī)的實時仿真程序采用直接連接(VME、共享內(nèi)存、反射內(nèi)存)。直接連接方式下,可以支持很短的幀間隔,典型間隔時間為5 ms,最小可為1 ms。

3 仿真建模方法研究

對嵌入式軟件進(jìn)行仿真測試時,通常需要兩種類型的仿真模型:數(shù)據(jù)源模型和交聯(lián)設(shè)備模型[7]。數(shù)據(jù)源模型為被測軟件的正常運行提供所需的激勵信號數(shù)據(jù),建模時要重點考慮激勵信號的數(shù)據(jù)類型、時序控制等;而交聯(lián)設(shè)備模型是對與被測件有數(shù)據(jù)交互關(guān)系的外部設(shè)備進(jìn)行建模,建模時要重點考慮交聯(lián)設(shè)備功能的內(nèi)部算法實現(xiàn)。

3.1 數(shù)據(jù)源模型建模方法

ADS2提供的信號仿真工具SST(Signal Simulation Tool)擁有良好的圖形化編輯界面,可以圖形定義測試時序,使用方便、直觀,能夠用來快速編輯、產(chǎn)生多種類型的信號源數(shù)據(jù),如正余弦、斜坡、脈沖信號和用戶自定義波形等,并可檢查預(yù)期行為。

3.2 交聯(lián)設(shè)備模型建模方法

交聯(lián)設(shè)備模型重點在于功能算法的實現(xiàn),ADS2提供了2種方法。

3.2.1 手工編寫仿真模型

針對不同功能的交聯(lián)設(shè)備仿真測試,ADS2提供了用戶開發(fā)接口devExchange用來連接外部仿真模型。dev-Exchange提供了一種運行仿真程序的機(jī)制,用戶可以采用C、Fortran、Ada等編程語言進(jìn)行仿真模型的編寫。

手工編寫仿真模型的過程如下:

(1)創(chuàng)建測試場景工程文件;

(2)配置基本幀數(shù)、幀速度等系統(tǒng)參數(shù);

(3)利用配置管理工具創(chuàng)建CVT文件,添加需要的CVT變量;

(4)硬件接口連接,在I/O映射文檔中,將接口數(shù)據(jù)映射到輸入和輸出CVT變量;

(5)利用配置管理工具創(chuàng)建仿真接口定義SID文件,建立CVT變量與仿真模型中輸入或輸出變量的對應(yīng)關(guān)系;

(6)按照ADS2格式編寫仿真模型源代碼,模型中使用的仿真輸入或輸出變量要與SID文件中定義的一致;

(7)編輯malefile文件,指明編譯目標(biāo)文件的格式,如:ARCH=PPC表示在VxWorks 55系統(tǒng)上執(zhí)行,ARCH=win32表示在Windows XP/2000系統(tǒng)上執(zhí)行等;

(8)利用make命令編譯仿真模型源代碼,生成目標(biāo)程序;

(9)添加SID文件和目標(biāo)程序文件;

(10)設(shè)計并添加數(shù)據(jù)顯示記錄組件,如數(shù)據(jù)觀察面板、數(shù)據(jù)記錄器等;

(11)執(zhí)行測試場景。

3.2.2 第三方仿真建模工具實現(xiàn)

ADS2提供的用戶開發(fā)接口devExchange也支持MATRIX、Matlab/Simulink等第三方建模工具,實現(xiàn)復(fù)雜算法仿真模型的快速開發(fā)。

利用Matlab進(jìn)行ADS2實時仿真模型開發(fā)的基本方法為:利用Simulink以及控制、通信、魯棒等工具箱進(jìn)行仿真模型開發(fā)[8];設(shè)置RTW(Real-Time Workshop)編譯參數(shù),系統(tǒng)目標(biāo)文件選擇為“Generic Real-Time Target”,“template makefile”為ADS2專用的grt_ads2_vxworks.tmf;編譯生成目標(biāo)程序。

4 ADS2仿真測試實例

利用ADS2構(gòu)建半實物仿真測試環(huán)境,對某型DSP處理板進(jìn)行了測試,測試環(huán)境如圖4所示。DSP程序從ADC接口讀取輸入波形數(shù)據(jù),經(jīng)過處理后將結(jié)果數(shù)據(jù)從DAC接口輸出;DSP程序通過RS232接口從控制臺仿真器接收工作模式等控制命令。

圖4 測試環(huán)境示意圖

測試時,在工作站上設(shè)計數(shù)據(jù)面板和數(shù)據(jù)記錄器查看、記錄輸入數(shù)據(jù)和輸出數(shù)據(jù),判斷程序功能實現(xiàn)是否正確;利用c語言編寫仿真模型產(chǎn)生輸入波形數(shù)據(jù),仿真模型編譯生成目標(biāo)程序后載入ADS2主機(jī)實時運行,它能夠根據(jù)測試數(shù)據(jù)面板中手工輸入的波形時間間隔參數(shù)產(chǎn)生不同的輸入波形;編寫能夠產(chǎn)生大數(shù)據(jù)量的仿真模型,對程序處理速度性能指標(biāo)進(jìn)行測試;利用仿真模型產(chǎn)生各種異常輸入數(shù)據(jù),對程序接口的冗錯能力進(jìn)行測試。

測試中發(fā)現(xiàn),被測軟件存在功能實現(xiàn)與設(shè)計需求不一致、對一些異常輸入未進(jìn)行冗錯處理而導(dǎo)致程序崩潰等問題,經(jīng)回歸測試所有發(fā)現(xiàn)問題均關(guān)閉,有效提高了軟件的質(zhì)量和可靠性。

本文采用半實物仿真技術(shù),將被測軟件的外部設(shè)備數(shù)字化來進(jìn)行嵌入式軟件測試,不需要消耗時間和精力去連接、調(diào)試真實設(shè)備,避免了設(shè)備在測試使用中的損耗和意外損壞,降低了測試成本,加快了測試環(huán)境構(gòu)建過程。另外,采用仿真模型不但可以進(jìn)行長時間連續(xù)測試,而且可以仿真某些特殊的故障現(xiàn)象、危險條件、超負(fù)荷狀態(tài)等,有效拓寬了軟件測試范圍。ADS2能夠滿足嵌入式軟件仿真測試的通用化、實時性要求,有效支持?jǐn)?shù)據(jù)源、交聯(lián)設(shè)備等多種仿真模型的設(shè)計開發(fā),為嵌入式軟件測試提供了一種方便、有效的手段。

[1]孫昌愛,靳若明,劉超,等.實時嵌入式軟件的測試技術(shù)[J].小型微型計算機(jī)系統(tǒng),2000,21(9):920-940.

[2]康一梅,張永革.嵌入式軟件測試[M].北京:機(jī)械工業(yè)出版社,2008.

[3]蔡建平.嵌入式軟件測試實用技術(shù)[M].北京:清華大學(xué)出版社,2010.

[4]TechSAT GmbH.ADS2模塊目錄(B3版)[Z].2002.

[5]TechSAT GmbH.ADS2用戶參考手冊(C1版)[Z].2003.

[6]張虹,阮鐮,劉斌.嵌入式軟件測試中的仿真建模方法研究[J].測控技術(shù),2002,21(3):37-38,42.

[7]蔣崇武,楊順昆,劉斌.面向嵌入式軟件測試的仿真建模[J].計算機(jī)工程,2008,34(4):87-89.

[8]卓金武.MATLAB在數(shù)學(xué)建模中的應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2011.

猜你喜歡
測試環(huán)境嵌入式軟件實時性
全數(shù)字仿真測試環(huán)境在航天軟件測試中的應(yīng)用研究
基于人工智能的模塊化嵌入式軟件開發(fā)研究
雷達(dá)航跡處理測試環(huán)境構(gòu)建方法研究
網(wǎng)絡(luò)設(shè)備自動化測試設(shè)計與實現(xiàn)
全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
航空電子AFDX與AVB傳輸實時性抗干擾對比
計算機(jī)控制系統(tǒng)實時性的提高策略
基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計與實現(xiàn)
航天嵌入式軟件浮點運算誤差分析與控制
負(fù)離子紡織品檢測方法分析