《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ADS2的嵌入式軟件測(cè)試仿真建模方法研究
基于ADS2的嵌入式軟件測(cè)試仿真建模方法研究
2014年電子技術(shù)應(yīng)用第6期
張海軍1,王艷軍1,,劉海見2,,張凱翊3
1.91413部隊(duì),,河北 秦皇島066001,; 2.海軍大連艦艇學(xué)院 基礎(chǔ)部,,遼寧 大連116018
摘要: 嵌入式軟件通常運(yùn)行于特定的物理環(huán)境中,,外部設(shè)備接口種類多,,功能差異大,,實(shí)時(shí)性強(qiáng),在進(jìn)行測(cè)試時(shí)需要花費(fèi)大量人力,、物力來構(gòu)建測(cè)試環(huán)境,。針對(duì)這一問題,采用半實(shí)物仿真技術(shù),,利用ADS2測(cè)試工具對(duì)外部設(shè)備進(jìn)行仿真建模,,構(gòu)建一個(gè)逼真的模擬環(huán)境來進(jìn)行嵌入式軟件測(cè)試。ADS2能夠滿足嵌入式軟件仿真測(cè)試的通用化和實(shí)時(shí)性要求,,可以有效支持?jǐn)?shù)據(jù)源,、交聯(lián)設(shè)備等多種仿真模型的設(shè)計(jì)開發(fā),。測(cè)試實(shí)例表明,利用ADS2進(jìn)行嵌入式軟件半實(shí)物仿真測(cè)試,,能夠加快測(cè)試環(huán)境構(gòu)建過程,,降低測(cè)試成本,拓寬測(cè)試范圍,,提高嵌入式軟件測(cè)試的質(zhì)量和效率,。
中圖分類號(hào): TP391.9
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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

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

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

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

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

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

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

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

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

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

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

2.1 仿真建模的通用化

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

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

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

        (1)支持多種I/O接口類型。ADS2支持接口控制文檔ICD(Interface Control Document)數(shù)據(jù)庫,,可根據(jù)每個(gè)交聯(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)信號(hào)等,。

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

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

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

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

2.2 仿真建模的實(shí)時(shí)性

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

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

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

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

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

        (3)仿真周期

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

3 仿真建模方法研究

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

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

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

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

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

3.2.1 手工編寫仿真模型

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

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

        (1)創(chuàng)建測(cè)試場(chǎng)景工程文件,;

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

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

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

        (5)利用配置管理工具創(chuàng)建仿真接口定義SID文件,,建立CVT變量與仿真模型中輸入或輸出變量的對(duì)應(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è)計(jì)并添加數(shù)據(jù)顯示記錄組件,如數(shù)據(jù)觀察面板、數(shù)據(jù)記錄器等,;

        (11)執(zhí)行測(cè)試場(chǎng)景,。

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

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

        利用Matlab進(jìn)行ADS2實(shí)時(shí)仿真模型開發(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仿真測(cè)試實(shí)例

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

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

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

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

參考文獻(xiàn) 

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

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

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

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

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

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

[7] 蔣崇武,楊順昆,,劉斌.面向嵌入式軟件測(cè)試的仿真建模[J].計(jì)算機(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)載,。