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

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

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

1 ADS2測試環境體系結構

1.1 硬件體系結構

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

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

1.2 軟件體系結構

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

        用戶工具套件用來實現測試場景管理、系統配置、變量觀察和數據記錄、腳本編輯、仿真建模等。

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

2 仿真建模實現原理

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

2.1 仿真建模的通用化

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

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

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

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

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

        (3)利用MATRIX、Matlab/Simulink等第三方工具,能夠實現復雜算法的仿真模型。

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

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

2.2 仿真建模的實時性

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

        (1)操作系統

        ADS2實時主機采用VxWorks嵌入式操作系統。VxWorks具有良好的可靠性和卓越的實時性,保證了能在限定的時間內執行完仿真計算,并能及時對任務進行調度和響應外部事件。

        (2)調度策略

        ADS2調度策略采用時間驅動模型,VxWorks實時內核以幀為基本時間單位,對各任務進行統一調度。在一個幀周期內:I/O設備可以進行一次完整的數據輸入或輸出;仿真模型可以進行一次輸入變量讀取、計算和結果輸出;可視化工具可以進行一次CVT變量值讀取等。

        (3)仿真周期

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

3 仿真建模方法研究

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

3.1 數據源模型建模方法

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

3.2 交聯設備模型建模方法

        交聯設備模型重點在于功能算法的實現,ADS2提供了2種方法。

3.2.1 手工編寫仿真模型

        針對不同功能的交聯設備仿真測試,ADS2提供了用戶開發接口devExchange用來連接外部仿真模型。devExchange提供了一種運行仿真程序的機制,用戶可以采用C、Fortran、Ada等編程語言進行仿真模型的編寫。

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

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

        (2)配置基本幀數、幀速度等系統參數;

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

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

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

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

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

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

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

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

        (11)執行測試場景。

3.2.2 第三方仿真建模工具實現

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

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

4 ADS2仿真測試實例

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

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

        測試中發現,被測軟件存在功能實現與設計需求不一致、對一些異常輸入未進行冗錯處理而導致程序崩潰等問題,經回歸測試所有發現問題均關閉,有效提高了軟件的質量和可靠性。

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

參考文獻 

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

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

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

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

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

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

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

[8] 卓金武.MATLAB在數學建模中的應用[M].北京:北京航空航天大學出版社,2011.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产亚洲人成网站在线观看 | 一级全黄男女免费大片 | 香港午夜伦理 | 欧美另类日韩中文色综合 | 亚洲综合区小说区激情区噜噜 | 波多野结衣一区二区三区 | 久久尹人香蕉国产免费天天 | 中文字幕一区二区三区精品 | 国产精品亚洲一区二区三区正片 | 日本午夜影院在线 | 在线播放第一页 | 国产美女无遮挡免费视频网站 | 日本高清在线一区 | 中国男女全黄大片一级 | 中国黄色一级大片 | 日本人甡交全过程 | 黄色录像一级毛片 | 一个人看的www在线播放 | 日本三级在在线观看 | 六月天综合网 | 欧美性bbbb| 真人午夜a一级毛片 | 特级毛片www俄罗斯免 | 麻豆视频一区二区 | 色免费看 | 日本欧美视频在线观看 | 搜索毛片 | 日韩成人免费在线 | 2022日韩理论片在线观看 | 亚洲一区浅井舞香在线播放 | 在线免费中文字幕 | 五月天婷婷激情网 | 免播放器在线 | 亚洲一区二区影视 | 大片刺激免费播放视频 | 黄网站在线观看高清免费 | 午夜免费剧场 | 色天使久久综合给合久久97色 | 狠狠干2018| 欧美无限看 | 久草首页在线观看 |