《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ADS2的嵌入式軟件測試仿真建模方法研究
基于ADS2的嵌入式軟件測試仿真建模方法研究
2014年電子技術(shù)應(yīng)用第6期
張海軍1,王艷軍1,劉海見2,張凱翊3
1.91413部隊,河北 秦皇島066001; 2.海軍大連艦艇學(xué)院 基礎(chǔ)部,遼寧 大連116018
摘要: 嵌入式軟件通常運行于特定的物理環(huán)境中,外部設(shè)備接口種類多,功能差異大,實時性強,在進行測試時需要花費大量人力、物力來構(gòu)建測試環(huán)境。針對這一問題,采用半實物仿真技術(shù),利用ADS2測試工具對外部設(shè)備進行仿真建模,構(gòu)建一個逼真的模擬環(huán)境來進行嵌入式軟件測試。ADS2能夠滿足嵌入式軟件仿真測試的通用化和實時性要求,可以有效支持?jǐn)?shù)據(jù)源、交聯(lián)設(shè)備等多種仿真模型的設(shè)計開發(fā)。測試實例表明,利用ADS2進行嵌入式軟件半實物仿真測試,能夠加快測試環(huán)境構(gòu)建過程,降低測試成本,拓寬測試范圍,提高嵌入式軟件測試的質(zhì)量和效率。
中圖分類號: TP391.9
文獻標(biāo)識碼: A
文章編號: 0258-7998(2014)06-0017-03
Research on the embedded software testing simulation modeling based on ADS2
Zhang Haijun1,Wang Yanjun1,Liu Haijian2,Zhang Kaiyi3
1.91413 Units, Qinhuangdao 066001,China;2.Department of Basic Science, Dalian Naval Academy, Dalian 116018,China;3.91635 Units, Beijing 102249,China
Abstract: Embedded software usually runs on a specific physical environment, which has external devices of many kinds of interfaces and big function difference and demands strong real-time, so the testing needs to spend a lot of manpowered and material resources for building test environment. Aiming at this problem, with the semi physical simulation technology, simulation modeling of external equipments was established by using ADS2 test tools, and a realistic simulation environment for embedded software testing was build. ADS2 can meet the requirements of embedded software simulation testing′s generalization and real-time, and can effectively support the design and development of the simulation model of data source and crosslinking equipment. Test examples show that, by using the ADS2 embedded software simulation testing, it can speed up the construction process of testing environment, reduce the cost of testing, broaden the testing scope, and improve the quality and efficiency of embedded software testing.
Key words : ADS2;embedded software testing;simulation modeling

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

        嵌入式軟件仿真測試先后發(fā)展起來三種主要方案:全實物仿真測試環(huán)境、全數(shù)字仿真測試環(huán)境、半實物仿真測試環(huán)境[2-3]。半實物仿真測試能夠逼真地模擬、組織被測軟件運行所需的真實物理環(huán)境輸入信號,驅(qū)動被測軟件運行,同時接收被測軟件的輸出結(jié)果,對被測軟件進行自動、實時、非侵入性的閉環(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)硬件包括實時主機、工作站、接線矩陣、故障注入單元FIBO(Fault Insertion & Break-Out Unit)、外部設(shè)備和被測件等,如圖1所示[4]。

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

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

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

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

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

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

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

2.1 仿真建模的通用化

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

        基于CVT(Current Value Table)數(shù)據(jù)庫進行內(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為核心進行數(shù)據(jù)交換,如圖3所示。其中,仿真模型、信號仿真工具中的輸入輸出數(shù)據(jù)與CVT變量之間的對應(yīng)關(guān)系在仿真接口文檔中進行配置;被測件、真實交聯(lián)設(shè)備的I/O接口數(shù)據(jù)與CVT變量之間的對應(yīng)關(guā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ù)庫為核心進行數(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ù)值的多個用例進行測試,頻繁地編譯仿真模型很不方便。

2.2 仿真建模的實時性

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

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

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

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

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

        (3)仿真周期

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

3 仿真建模方法研究

        對嵌入式軟件進行仿真測試時,通常需要兩種類型的仿真模型:數(shù)據(jù)源模型和交聯(lián)設(shè)備模型[7]。數(shù)據(jù)源模型為被測軟件的正常運行提供所需的激勵信號數(shù)據(jù),建模時要重點考慮激勵信號的數(shù)據(jù)類型、時序控制等;而交聯(lián)設(shè)備模型是對與被測件有數(shù)據(jù)交互關(guān)系的外部設(shè)備進行建模,建模時要重點考慮交聯(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用來連接外部仿真模型。devExchange提供了一種運行仿真程序的機制,用戶可以采用C、Fortran、Ada等編程語言進行仿真模型的編寫。

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

        (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進行ADS2實時仿真模型開發(fā)的基本方法為:利用Simulink以及控制、通信、魯棒等工具箱進行仿真模型開發(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處理板進行了測試,測試環(huán)境如圖4所示。DSP程序從ADC接口讀取輸入波形數(shù)據(jù),經(jīng)過處理后將結(jié)果數(shù)據(jù)從DAC接口輸出;DSP程序通過RS232接口從控制臺仿真器接收工作模式等控制命令。

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

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

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

參考文獻 

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

[2] 康一梅,張永革.嵌入式軟件測試[M].北京:機械工業(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].計算機工程,2008,34(4):87-89.

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。