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

?

一種基于分布式結(jié)構(gòu)的半實物仿真測試環(huán)境設(shè)計

2016-12-15 13:23:43李兆陽陳泉根
環(huán)境技術(shù) 2016年5期
關(guān)鍵詞:測試環(huán)境時序實物

李兆陽,陳泉根

(1.中國工程物理研究院計算機應(yīng)用研究所,綿陽 621900; 2.中國工程物理研究院研究生院,綿陽 621900)

一種基于分布式結(jié)構(gòu)的半實物仿真測試環(huán)境設(shè)計

李兆陽1,2,陳泉根1

(1.中國工程物理研究院計算機應(yīng)用研究所,綿陽 621900; 2.中國工程物理研究院研究生院,綿陽 621900)

半實物仿真技術(shù)廣泛用于航空航天,通信,軍事等領(lǐng)域,對于驗證嵌入式軟件的可靠性提供了有利的依據(jù)。針對分布式和可擴展的測試需求,提出了一種基于分布式結(jié)構(gòu)的半實物仿真測試環(huán)境設(shè)計,并且討論了該測試環(huán)境中測試腳本、控制器、軟設(shè)備等關(guān)鍵部分的設(shè)計方法,最后將該系統(tǒng)與現(xiàn)有半實物測試環(huán)境進(jìn)行對比并進(jìn)行了總結(jié)。

分布式;半實物;仿真

前言

半實物仿真又稱硬件在回路的仿真,其通過I/O,CAN,1553B等外部接口模擬被測件工作環(huán)境與其進(jìn)行數(shù)據(jù)交換來達(dá)到測試軟件可靠性等目的。半實物仿真系統(tǒng)能保持嵌入式系統(tǒng)的完整性,它只對被測件的外部交聯(lián)系統(tǒng)以及物理環(huán)境進(jìn)行仿真,同時在高實時性要求的靠可性測試中,能夠提供更高的置信度。

隨著被測系統(tǒng)的多樣化,對于半實物測試系統(tǒng)的分布式測試場景愈來愈多,常常出現(xiàn)“單測試節(jié)點”對“多被測節(jié)點”的情況,這種情況的增加對于傳統(tǒng)半實物測試系統(tǒng)的分布式能力提出了更高的要求。并且隨著測試領(lǐng)域的多樣化,測試系統(tǒng)外部接口的可擴展能力也面臨挑戰(zhàn)。因此,需要引入新的系統(tǒng)設(shè)計方案來解決上述問題。

本文針對以上問題提出了一種分布式的半實物測試系統(tǒng)的設(shè)計方法,希望通過該設(shè)計提升半實物系統(tǒng)的接口可擴展性以及分布式測試能力。

1 半實物測試環(huán)境設(shè)計

1.1 測試環(huán)境硬件結(jié)構(gòu)

本文設(shè)計的測試環(huán)境硬件結(jié)構(gòu)示意圖如圖1所示,硬件設(shè)計采用主從式結(jié)構(gòu),即一臺測試引擎部署宿主計算機,通過網(wǎng)絡(luò)連接多臺測試處理計算機。對于現(xiàn)有的大多數(shù)半實物仿真測試環(huán)境而言,要完成這種分布式部署是可能的,但是因為現(xiàn)有半實物測試環(huán)境采用的是多數(shù)工作在宿主機上完成,即仿真測試引擎的“負(fù)擔(dān)”過重,一旦變?yōu)榉植际讲渴?,使系統(tǒng)性能下降。測試引擎不光要完成測試腳本解釋翻譯,命令傳輸,更需要進(jìn)行多節(jié)點的任務(wù)調(diào)度,并且隨著測試領(lǐng)域的增多和測試接口的復(fù)雜化,接口協(xié)議的可擴展性也不能得到很好滿足。因此,我們提出一種三層結(jié)構(gòu)的系統(tǒng)設(shè)計方法,希望通過這個設(shè)計簡化和明確測試過程中各個部分的任務(wù),通過設(shè)計多節(jié)點上下位機交互協(xié)議、引入自定義的測試命令、加入軟設(shè)備等方式來實現(xiàn)圖1所示結(jié)構(gòu)。

1.2 系統(tǒng)整體架構(gòu)

基于分布式結(jié)構(gòu)的半實物仿真測試環(huán)境系統(tǒng)整體架構(gòu)如圖2所示。

系統(tǒng)的整體架構(gòu)包涵三層,由測試總線和控制總線隔開,第一層為仿真引擎層;第二層為多節(jié)點的控制器層;第三層為軟設(shè)備層。測試人員通過仿真引擎部署的宿主計算機,進(jìn)行測試用例的設(shè)計與測試腳本開發(fā),將測試腳本通過測試總線傳輸?shù)侥康墓?jié)點控制器存儲,當(dāng)引擎向掛載的節(jié)點處理器下達(dá)統(tǒng)一的測試命令時,節(jié)點控制器按照自定義的腳本命令進(jìn)行有時序的任務(wù)執(zhí)行調(diào)度,此時的任務(wù)調(diào)度是控制器對于掛載在其上面的軟設(shè)備進(jìn)行的時序操作,最終單個測試用例注入命令由軟設(shè)備通過I/0總線傳入被測件而達(dá)到測試目的。

由于為了使得系統(tǒng)的分布式能力和可擴展性,設(shè)計較傳統(tǒng)半實物仿真測試環(huán)境的不同之處主要體現(xiàn)在第二和第三層上,因此以下著重討論系統(tǒng)整體架構(gòu)中第二和第三層所進(jìn)行的一些設(shè)計。

2 各部分設(shè)計

2.1 測試總線服務(wù)

測試總線加載于網(wǎng)絡(luò)上的總線,其為測試主要提供兩種服務(wù):①測試準(zhǔn)備或進(jìn)行時節(jié)點控制器和仿真引擎的數(shù)據(jù)交換服務(wù)。②測試開始時的時鐘對齊服務(wù)。

在TCP/IP模型中,存在TCP和UDP兩個傳輸層協(xié)議,負(fù)責(zé)承擔(dān)數(shù)據(jù)傳輸任務(wù)。其中,TCP是面向連接的協(xié)議,它能夠保證傳輸?shù)目煽啃裕鄬τ赨DP而言,UDP的處理簡單相對,并且效率高于TCP,在分布式的數(shù)據(jù)傳輸中,要求數(shù)據(jù)傳輸是大量的,測試的實時數(shù)據(jù)要求能夠做到大量的可靠傳輸,因此,為了保證測試過程中能做到實時數(shù)據(jù)可靠傳輸,由能提高效率,我們對UDP進(jìn)行以下的改造:

1)在測試總線服務(wù)的程序設(shè)計時,設(shè)置相應(yīng)大小的緩存區(qū),以防止多個節(jié)點向引擎回饋實時數(shù)據(jù)時發(fā)生的阻塞現(xiàn)象。

2)每個UDP包中尾部加上一個節(jié)點順序戳序號以及一個校驗和,當(dāng)引擎與控制器通過網(wǎng)絡(luò)建立連接,分發(fā)測試命令時,控制器根據(jù)控制命令描述字符位獲得命令,并且驗證數(shù)據(jù)校驗和以及順序序號,驗證校驗和保證了數(shù)據(jù)的完整性,節(jié)點順序戳序號保證該節(jié)點當(dāng)前獲得的測試信息順序正確,如二者都正確,則說明此次通信正確,沒有丟包的情況存在。如果校驗和與順序戳序號有誤,則處理器要求引擎重新發(fā)送數(shù)據(jù)。

圖1 硬件結(jié)構(gòu)示意圖

圖2 半實物仿真測試環(huán)境系統(tǒng)整體架構(gòu)

在分布式多節(jié)點測試時,測試節(jié)點的時間一致性是個必然的要求,當(dāng)測試命令下達(dá)時,要求各節(jié)點之間軟時鐘同步,需要設(shè)置測試開始命令開始時刻為測試零時刻,時間對齊服務(wù)使各測試節(jié)點測試時間一致,在并行測試過程中,這種對齊機制可以以測試開始時刻為標(biāo)準(zhǔn),明確每個測試動作時序上的相互關(guān)系,并進(jìn)行記錄。對齊流程如圖3所示。

2.2 控制器及自定義命令

節(jié)點控制器的功能主要為負(fù)責(zé)測試任務(wù)的時序地調(diào)度,采用單個進(jìn)程的方式進(jìn)行實現(xiàn),軟件設(shè)計中,該進(jìn)程包括一個控制器類,控制器類主要由三個部分組成:①控制器描述符——帶有該節(jié)點控制器在該分布式測試中的唯一標(biāo)識信息以及該控制器下的參數(shù)信息如:任務(wù)列表地址,任務(wù)斷點個數(shù),輸入輸出緩存buff大小,同步時鐘等;②控制器類需要的各種方法;③用于存儲測試命令的測試任務(wù)表和等待條件列表。

控制器是一個擁有兩個狀態(tài)的二維狀態(tài)機,狀態(tài)包括測試管理態(tài)和測試執(zhí)行態(tài)。兩個狀態(tài)通過測試開始或者結(jié)束命令進(jìn)行相互轉(zhuǎn)換,在測試管理態(tài)時,引擎下發(fā)的測試管理命令可直接執(zhí)行無嚴(yán)格的時序要求(測試數(shù)據(jù)查詢,測試設(shè)備查詢,測試端口配置等)。而下發(fā)的執(zhí)行命令被控制器存儲進(jìn)測試任務(wù)隊列,待測試進(jìn)入執(zhí)行態(tài)后再開始執(zhí)行,現(xiàn)有的半實物環(huán)境對于多節(jié)點的調(diào)度一般集中于仿真引擎之上,我們希望將調(diào)度功能放于每個節(jié)點分散進(jìn)行,這需要控制器能夠識別時序進(jìn)行該節(jié)點下的調(diào)度過程,因此,我們通過嵌于一種自定義命令格式,按照一定解釋規(guī)則,使得控制器能夠完成這個功能,自定義命令格式如下:

其中:

@ :時序命令標(biāo)志。

:命令行執(zhí)行條件位。

: 命令行進(jìn)行的操作位。

:數(shù)據(jù)1。

:數(shù)據(jù)2。

:數(shù)據(jù)3。

time以測試總線對齊時鐘一個計數(shù)時常為單位;命令執(zhí)行條件包括中斷,接受,發(fā)出,等待等;進(jìn)行的操作包括接受,注入,觸發(fā),重復(fù)發(fā)送等;數(shù)據(jù)為對各種端口進(jìn)行操作的具體數(shù)據(jù)。在測試執(zhí)行狀態(tài)下,控制器對已有的操作任務(wù)進(jìn)行的調(diào)度邏輯如圖4所示。

圖3 時鐘對齊流程

圖4 控制器調(diào)度邏輯

當(dāng)控制器接到時序命令行時,將執(zhí)行條件位數(shù)據(jù)存入條件等待列表,標(biāo)記命令序號,同時將時序關(guān)系位,操作位,數(shù)據(jù)位存入測試任務(wù)表,綁定相同的命令序號。測試執(zhí)行時,一次取列表命令,如條件位為空,則無條件等待,直接執(zhí)行對應(yīng)的任務(wù)列表命令。當(dāng)條件不為空時,進(jìn)行等待,待條件滿足時,取出相同序號的等待條件和測試任務(wù),在滿足條件time個單位時間后,將操作位與操作數(shù)通過控制總線下發(fā)至軟設(shè)備。

2.3 軟設(shè)備

控制總線下掛載了多個軟設(shè)備模塊,每個軟設(shè)備代表一個不同接口類型,如can,I/O,1553b等。

軟設(shè)備的目的是將最基本的測試激勵收發(fā)以及測試端口的配置等測試過程中最簡單的操作進(jìn)行統(tǒng)一封裝,對于上層而言,調(diào)用軟設(shè)備所使用的接口是不變的,這樣就增加了在復(fù)雜接口的情況下,系統(tǒng)的插拔和可擴展能力,軟設(shè)備采用三層的設(shè)計結(jié)構(gòu)。分別包括應(yīng)用層,協(xié)議層以及驅(qū)動層,如圖5所示。

應(yīng)用層主要是為上一層的測試總線和控制器提供統(tǒng)一的操作方法接口,其中包括協(xié)議參數(shù)配置,協(xié)議參數(shù)獲取,接受發(fā)送激勵,清除或者設(shè)置緩存隊列等操作。

協(xié)議層主要實現(xiàn)的是各種端口協(xié)議的統(tǒng)一封裝,協(xié)議層面向應(yīng)用層的接口也是統(tǒng)一的,主要包括協(xié)議修改等操作接口。這樣在協(xié)議改變的情況下,就需要修改具體協(xié)議個某些方法的具體實現(xiàn)即可,在每一個軟設(shè)備的協(xié)議層中,都加入了一個FIFO的鏈表緩存隊列,其只保存一定幀數(shù)的實時數(shù)據(jù),目的是為了方便測試人員在測試過程中能夠回退查找相應(yīng)端口之前的幾幀數(shù)據(jù),從而能夠更加快速的找到測試過程中的問題所在。

驅(qū)動層主要包涵兩個函數(shù),_recv()和_send(),其主要面向的是被測件的驅(qū)動層,收發(fā)函數(shù)下面均為調(diào)用相應(yīng)接口的驅(qū)動,最終驅(qū)動層將測試的整個過程簡化為收發(fā)的基本操作。

3 應(yīng)用案例

為了驗證設(shè)計的可行性,我們將該半實物仿真環(huán)境的原型機應(yīng)用于某航天遙測系統(tǒng)程控模塊的軟件測試中,主要以CAN和串口為主,將編 輯好的xml文本(內(nèi)嵌自定義的測試用例命令)導(dǎo)入原型機中,原型機通過解析命令完成測試,一共完成了1 432條測試命令,主要包括功能測試和故障測試,所收到的測試結(jié)果均與預(yù)期結(jié)果一致,并且能夠正常完成測試初始狀態(tài)的設(shè)置和被測件測試需求的全覆蓋,從而驗證了測試原型機的可行性。

圖5 三層設(shè)計結(jié)構(gòu)

4 總結(jié)及下一步工作

本文提出了一種三層架構(gòu)的分布式半實物仿真測試環(huán)境的設(shè)計,與現(xiàn)有的半實物仿真測試環(huán)境相比,其通過引入時序命令,軟設(shè)備模塊等多個設(shè)計,將分布式測試過程中的時序調(diào)度任務(wù)分散到各個節(jié)點進(jìn)行處理,將底層的協(xié)議和執(zhí)行動作進(jìn)行統(tǒng)一封裝,使得整個系統(tǒng)的測試任務(wù)自上而下逐漸細(xì)化,從而提高了半實物系統(tǒng)的分布式能力和可擴展性,并且這種設(shè)計使得仿真引擎的工作得到了減少,為整個上層系統(tǒng)實現(xiàn)更多的功能集成提供了可行性。不過設(shè)計還是有很多不足和值得改進(jìn)的地方,例如此次設(shè)計主要針對半實物仿真測試中下位機部分進(jìn)行展開,針對引擎部分沒有進(jìn)行深入探討,另外,測試系統(tǒng)的傳輸速率、實時性,腳本翻譯成時序命令機制等方面還需要進(jìn)行進(jìn)一步深入研究。

[1]阮鐮, 劉斌, 陳雪松.軟件可靠性測試及其環(huán)境[J].測控技術(shù), 2000, 19(2).

[2]劉斌, 高小鵬, 陸民燕,等.嵌入式軟件可靠性仿真測試系統(tǒng)研究[J]北京航空航天大學(xué)學(xué)報, 2000, 26(4).

[3]王恒霖,曹建國 .仿真系統(tǒng)的設(shè)計與應(yīng)用[M].北京:科學(xué)出版社, 2003.

李兆陽,男,(1991-),碩士,主要研究領(lǐng)域為軟件可靠性測試。

陳泉根,男,(1967-),研究員,碩士生導(dǎo)師,主要研究領(lǐng)域為計算機控制、信息安全。

A Design of Half-physical Simulation Environment Based on Distributed Architecture

LI Zhao-yang1,2, CHEN Quan-gen1
(1.The institute of computer application of CAEP, Mianyang 621900; 2.The Graduate School of CAEP, Mianyang 621900)

Hardware-in-the-loop simulation technology is widely used in aerospace, communications, and military, etc.It provides advantageous basis to verify the reliability of embedded software.In the view of the distributed and scalable test requirements, this paper proposes a design of half-physical simulation environment based on distributed architecture, which describes how to design the key parts of the environment included the script language, the controller, and the soft devices, etc.Finally the design compared with already existing hardware-in-the-loop test environment in a summary.

distributed; half-physical; simulation

TP391

A

1004-7204(2016)05-0082-04

猜你喜歡
測試環(huán)境時序實物
時序坐標(biāo)
帶你學(xué)習(xí)實物電路圖的連接
基于Sentinel-2時序NDVI的麥冬識別研究
全數(shù)字仿真測試環(huán)境在航天軟件測試中的應(yīng)用研究
雷達(dá)航跡處理測試環(huán)境構(gòu)建方法研究
科技視界(2019年10期)2019-09-02 03:22:27
當(dāng)手繪遇上實物
網(wǎng)絡(luò)設(shè)備自動化測試設(shè)計與實現(xiàn)
當(dāng)手繪遇上實物
基于Arduino控制的半實物模擬駕駛系統(tǒng)
電子制作(2018年1期)2018-04-04 01:48:26
一種毫米波放大器時序直流電源的設(shè)計
電子制作(2016年15期)2017-01-15 13:39:08
404 Not Found

404 Not Found


nginx
新丰县| 江山市| 宁都县| 宿州市| 调兵山市| 依兰县| 伊宁县| 吉安县| 兴业县| 胶州市| 广昌县| 息烽县| 开阳县| 日土县| 泸水县| 凉山| 安泽县| 宁安市| 綦江县| 桐梓县| 福泉市| 荥经县| 颍上县| 定边县| 铜山县| 买车| 广水市| 吉林省| 耿马| 仲巴县| 故城县| 即墨市| 丹江口市| 客服| 富川| 碌曲县| 龙游县| 江山市| 卓资县| 阿坝| 甘孜县|