蘇 宇,孔 璐,周 珊,馬云云,王金波
(中國科學(xué)院 空間應(yīng)用工程與技術(shù)中心,北京 100094)
?
基于ARM&FPGA的1394仿真測(cè)試前端系統(tǒng)設(shè)計(jì)
蘇 宇,孔 璐,周 珊,馬云云,王金波
(中國科學(xué)院 空間應(yīng)用工程與技術(shù)中心,北京 100094)
針對(duì)在航天嵌入式軟件測(cè)試中遇到的將1394總線仿真測(cè)試融合到分布式測(cè)試系統(tǒng)中的實(shí)際需求,提出了一種基于ARM&FPGA架構(gòu)的1394仿真測(cè)試前端系統(tǒng);在簡單介紹了1394總線和分布式測(cè)試系統(tǒng)后,設(shè)計(jì)和實(shí)現(xiàn)了1394仿真測(cè)試前端軟硬件,并基于此前端構(gòu)建分布式仿真測(cè)試系統(tǒng);經(jīng)測(cè)試,1394仿真測(cè)試前端滿足1394等時(shí)數(shù)據(jù)包和異步數(shù)據(jù)包的收發(fā)時(shí)序要求,并成功應(yīng)用于某航天器軟件第三方評(píng)測(cè)中。
IEEE1394協(xié)議;ARM;現(xiàn)場(chǎng)可編程門陣列;分布式系統(tǒng)
近年來,伴隨著載人航天技術(shù)的飛速發(fā)展,系統(tǒng)的復(fù)雜度越來越高,對(duì)各個(gè)子系統(tǒng)之間的數(shù)據(jù)傳輸速率的要求也在不斷提高;而且隨著航天器上的載荷設(shè)備進(jìn)行的科學(xué)探測(cè)和科學(xué)實(shí)驗(yàn)的越來越豐富和深入,對(duì)數(shù)據(jù)通信速率的要求也隨之提高,原有的1553B總線的1 Mbps的傳輸速率已經(jīng)無法滿足高速數(shù)據(jù)通信要求。IEEE1394是一種高速串行總線,一項(xiàng)與平臺(tái)無關(guān)的技術(shù),可以應(yīng)用于各種設(shè)備和PC機(jī)中,憑借這種與眾不同的跨平臺(tái)能力,得到了眾多的IT廠商(Microsoft和Intel)的大力支持[1]。但是在目前的市面上眾多的嵌入式IEEE1394開發(fā)系統(tǒng)中,幾乎都是通用設(shè)備,接口較為單一,用戶軟件操作界面較為復(fù)雜。有時(shí)候?yàn)榱送瓿蓪?shí)際的任務(wù),不得不花費(fèi)較大的精力去學(xué)習(xí)和配置用戶軟件;甚至有時(shí)候還無法將其完美融入到現(xiàn)有的仿真測(cè)試系統(tǒng)中,對(duì)重新構(gòu)建分布式集成測(cè)試系統(tǒng)也會(huì)有較大影響。
綜上所述,本文在對(duì)IEEE1394總線協(xié)議以及分布式集成測(cè)試系統(tǒng)結(jié)構(gòu)簡單分析的基礎(chǔ)上,由配置項(xiàng)級(jí)的航天嵌入式軟件第三方測(cè)試中關(guān)于IEEE1394總線的具體測(cè)試需求,設(shè)計(jì)了IEEE1394總線仿真測(cè)試前端系統(tǒng),屆時(shí)IEEE1394總線數(shù)據(jù)幀和任務(wù)調(diào)度運(yùn)行于移植了嵌入式Linux操作系統(tǒng)的ARM11(S3C6410)處理器中,以ARM+FPGA為硬件核心的控制處理器就可以根據(jù)仿真監(jiān)控測(cè)試系統(tǒng)的測(cè)試指令[2],實(shí)現(xiàn)靈活對(duì)IEEE1394協(xié)議芯片的初始化、工作模式以及消息進(jìn)行配置,測(cè)試人員只要根據(jù)測(cè)試需求,通過在監(jiān)顯控制終端配置一系列指令就可以完成對(duì)IEEE1394總線設(shè)備的功能測(cè)試、強(qiáng)度測(cè)試以及故障測(cè)試等。
IEEE1394是一種高速串行總線,也稱“火線(FireWire)”,其最早由Apple公司在20世紀(jì)80年代主導(dǎo)開發(fā)的一種高速實(shí)時(shí)數(shù)據(jù)傳輸總線,意在簡化其計(jì)算機(jī)的連線。在1995年由IEEE(電氣與電子工程師協(xié)會(huì))正式制定為總線標(biāo)準(zhǔn),被認(rèn)定為IEEE1394-1995規(guī)范,即IEEE1394[3]。IEEE1394早期版本如IEEE1394a在Backplace模式下支持12.5 Mbps、25 Mbps以及50 Mbps等傳輸速率,在Cable模式下則可以達(dá)到400 Mbps的速率;而在后來發(fā)布的新版本如IEEE1394b,傳輸速率則可達(dá)到800 Mbps;在2007年更新的IEEE1394c規(guī)范中傳輸速率則可達(dá)到1.6 Gbps和3.2 Gbps。
IEEE1394是一項(xiàng)成熟的技術(shù),幾乎被所有現(xiàn)代操作系統(tǒng)所支持[4],廣泛應(yīng)用于數(shù)碼相機(jī)、數(shù)字?jǐn)z像機(jī)、電視機(jī)頂盒以及計(jì)算機(jī)及其外部設(shè)備中。其中IEEE1394b還被用于F-22猛禽戰(zhàn)斗機(jī)和F-35閃電II攻擊戰(zhàn)斗機(jī)數(shù)據(jù)總線中[5]。此外,美國國家極軌道軍事環(huán)境衛(wèi)星系統(tǒng)(NPOESS)和地球行星探測(cè)器(FPT)等航天器都采用了IEEE1394總線進(jìn)行設(shè)備間的通信。
IEEE1394串行總線支持等時(shí)傳輸和異步傳輸,分別用于等時(shí)事務(wù)和異步事務(wù)的傳輸[6]。異步傳輸不占據(jù)固定的帶寬, 但能保證節(jié)點(diǎn)獲得時(shí)間上的公平訪問;等時(shí)傳輸以固定的時(shí)間間隔(125 μs)發(fā)送數(shù)據(jù),有著高于異步傳輸?shù)膬?yōu)先級(jí)[7]。
IEEE1394總線根據(jù)協(xié)議可以分為4個(gè)部分,即物理層、鏈路層、事物層以及總線管理層。物理層的作用是提供設(shè)備間的電氣連接以及機(jī)械連接,主要特點(diǎn)是提供邏輯信號(hào)到物理電氣信號(hào)的轉(zhuǎn)換[8]。鏈路層的主要功能是轉(zhuǎn)化數(shù)據(jù)流格式使其按照協(xié)議成為總線可以識(shí)別的數(shù)據(jù)包[9]。鏈路層也對(duì)進(jìn)來的等時(shí)包或異步包進(jìn)行地質(zhì)或信道號(hào)的解碼,以及CRC校驗(yàn)[10]。事務(wù)層只處理異步包,提供讀事物、寫事物以及鎖定事物等操作[11],但是不提供任何有關(guān)等式傳輸?shù)姆?wù)??偩€管理層的主要功能是對(duì)總線進(jìn)行配置,并管理各個(gè)節(jié)點(diǎn)[12],同時(shí)設(shè)定自身的傳輸速度和工作模式等。
分布式仿真測(cè)試平臺(tái)——DSTP (distributed simulation testing platform)是采用半實(shí)物仿真原理,通過對(duì)被測(cè)試的目標(biāo)板進(jìn)行仿真,模擬出被測(cè)目標(biāo)的運(yùn)作環(huán)境,從而實(shí)現(xiàn)對(duì)被測(cè)試目標(biāo)系統(tǒng)進(jìn)行動(dòng)態(tài)、閉環(huán)、非侵入式的系統(tǒng)仿真測(cè)試[13]。
一般來說,DSTP主要由測(cè)試服務(wù)器、嵌入式測(cè)試前端、被測(cè)設(shè)備以及監(jiān)顯控制終端等構(gòu)成。如圖1所示。
圖1 分布式仿真測(cè)試系統(tǒng)結(jié)構(gòu)圖
監(jiān)顯和控制終端的功能:
1)調(diào)用測(cè)試數(shù)據(jù)庫中已構(gòu)建好的測(cè)試指令序列,完成對(duì)測(cè)試數(shù)據(jù)和測(cè)試指令的配置操作,發(fā)起測(cè)試行為;
2)測(cè)試結(jié)果數(shù)據(jù)的回顯及回放:即測(cè)試監(jiān)顯終端將仿真測(cè)試前端回傳的被測(cè)軟件反饋數(shù)據(jù)包進(jìn)行實(shí)時(shí)顯示,以供測(cè)試人員參考;
3)測(cè)試數(shù)據(jù)的判讀功能:即測(cè)試人員事先寫好數(shù)據(jù)判讀腳本或判讀軟件,并嵌入到測(cè)試監(jiān)顯終端中,每當(dāng)被測(cè)軟件有下行數(shù)據(jù)包需要判讀時(shí),即可通過測(cè)試監(jiān)控終端的數(shù)據(jù)判讀功能,生成判讀結(jié)果數(shù)據(jù)或判讀報(bào)告,以供測(cè)試人員查看或參考。
根據(jù)測(cè)試的具體需求,測(cè)試服務(wù)器上一般運(yùn)行大型關(guān)系型數(shù)據(jù)庫,如:Oracle、IBM DB2以及Microsoft SQL Server等。測(cè)試服務(wù)器的功能:
1)測(cè)試指令序列存儲(chǔ):根據(jù)被測(cè)軟件的實(shí)際特點(diǎn),在數(shù)據(jù)庫中構(gòu)建并存儲(chǔ)測(cè)試指令序列的數(shù)據(jù)模型;
2)測(cè)試數(shù)據(jù)存儲(chǔ):將測(cè)試人員配置的測(cè)試激勵(lì)數(shù)據(jù)以及被測(cè)軟件反饋的原始測(cè)試結(jié)果數(shù)據(jù)進(jìn)行歸檔以及存儲(chǔ)。
由圖1可知,嵌入式仿真測(cè)試前端是連接測(cè)試監(jiān)控終端和被測(cè)設(shè)備(軟件)的橋梁,根據(jù)被測(cè)軟件的具體測(cè)試需要,測(cè)試前端可由一個(gè)或多個(gè)測(cè)試前端構(gòu)成,在本設(shè)計(jì)中,整個(gè)系統(tǒng)的工作流程如圖2所示。
圖2 仿真測(cè)試系統(tǒng)工作流程圖
本文要實(shí)現(xiàn)的IEEE1394仿真測(cè)試前端在結(jié)構(gòu)上仿真測(cè)試指令的處理以及IEEE1394 總線協(xié)議芯片的幀和消息處理部分,系統(tǒng)硬件結(jié)構(gòu)框圖如圖3所示。
圖3 系統(tǒng)硬件設(shè)計(jì)框圖
在本設(shè)計(jì)中,仿真測(cè)試前端板采用了核心板+底板的設(shè)計(jì)模式,核心板采用的是ARM+FPGA的通用架構(gòu),不同測(cè)試前端之間的核心板可以互換;由于底板的硬件資源有限,底板是采用通用接口和專用接口組成,通用接口是指RS232、SD卡、以太網(wǎng)以及電源模塊等;專用接口根據(jù)測(cè)試需要可包含RS422接口、1553B總線接口、IEEE1394接口、USB3.0接口等在內(nèi)的一種或多種專用接口。
測(cè)試開始時(shí),由測(cè)試監(jiān)控終端調(diào)用測(cè)試服務(wù)器內(nèi)已經(jīng)組建完成的測(cè)試指令序列,IEEE1394仿真測(cè)試前端通過以太網(wǎng)接收測(cè)試指令序列,并對(duì)其進(jìn)行解析處理,從而完成對(duì)IEEE1394協(xié)議芯片的配置以及測(cè)試激勵(lì)數(shù)據(jù)的轉(zhuǎn)發(fā),驅(qū)動(dòng)IEEE1394協(xié)議芯片和IEEE1394 PHY芯片的運(yùn)行;同時(shí)通過多線程設(shè)計(jì)將被測(cè)目標(biāo)軟件反饋的數(shù)據(jù)打包并傳送至測(cè)試監(jiān)控終端。
系統(tǒng)上電后,運(yùn)行于ARM中的應(yīng)用程序軟件會(huì)完成對(duì)IEEE1394協(xié)議芯片內(nèi)部寄存器的初始化,以及芯片工作模式的設(shè)置,然后等待測(cè)試控制終端發(fā)起測(cè)試任務(wù)。FPGA 內(nèi)部對(duì)IEEE1394協(xié)議芯的讀寫操作分別進(jìn)行, 為了通信的快速性和有效性,讀操作和寫操作都實(shí)例化了雙口的RAM,ARM 與IEEE1394協(xié)議芯片之間往來的數(shù)據(jù)幀首先經(jīng)過雙口的RAM,F(xiàn)PGA 內(nèi)部將數(shù)據(jù)幀和控制信號(hào)轉(zhuǎn)化成ARM 和IEEE1394 協(xié)議芯片需要的時(shí)序,再進(jìn)行數(shù)據(jù)傳輸。
3.1 NAND Flash和SDRAM存儲(chǔ)器
NAND Flash 存儲(chǔ)器是斷電非易失型存儲(chǔ)器,主要用于存放Bootloader、內(nèi)核映像文件、根文件系統(tǒng)以及用戶應(yīng)用程序等,在本文中,使用一片SAMSUNG公司型號(hào)為K9G8G08U0A容量大小為1 GB NAND Flash芯片;SDRAM 存儲(chǔ)器是斷電易失型存儲(chǔ)器,本文中SDRAM采用兩片SAMSUNG公司的K4X51163PC芯片,每片容量大小為128 MB,數(shù)據(jù)運(yùn)行速度可達(dá)266 MHz。
3.2 ARM處理器和FPGA芯片
本文中,嵌入式仿真測(cè)試前端的微處理器采用SAMSUNG公司的ARM11—S3C6410微處理器,該微處理器基于ARM1176JZF-S內(nèi)核,擁有強(qiáng)大的內(nèi)部資源,可穩(wěn)定工作在533 MHz,支持多種NAND Flash和Mobile DDR,同時(shí)支持以太網(wǎng)、RS232以及SD卡等多種外部接口;FPGA采用的是Xilinx公司的Virtex5系列的XC5VLX110T芯片,該芯片資源豐富,與ARM之間采用的是三態(tài)總線相連。同時(shí)該款FPGA芯片與IEEE1394協(xié)議芯片輸出都是3.3 V信號(hào),因此它們之間采用直連進(jìn)行通信。
3.3 IEEE1394協(xié)議芯片
在本設(shè)計(jì)中,IEEE1394協(xié)議芯片采用的是美國德州儀器公司(TI)的TSB12LV32芯片,物理層芯片采用TI公司的TSB41AB3芯片。TSB12LV32鏈路層芯片全面支持 IEEE 1394-1995 和P1394a高速串行總線協(xié)議規(guī)范;支持等時(shí)數(shù)據(jù)和異步數(shù)據(jù)傳輸?shù)裙δ埽恍酒泻幸粋€(gè)通用發(fā)送FIFO和一個(gè)通用接收FIFO,大小均為2 kB。
物理層芯片TSB41AB3全面支持 1394-1995和P1394a高速串行總線協(xié)議規(guī)范; 提供 3個(gè)線纜端口,最高速度可達(dá) 400 Mb/s; 芯片工作時(shí)鐘為24.576 MHz,由外部晶振提供。物理層芯片的/ISO管腳是鏈路層接口隔離控制標(biāo)識(shí)位。該引腳電平的高低決定了鏈路層芯片和物理層芯片之間電路的連接方式:直接連接方式還是隔離電路方式;本文中/ISO引腳接低電平,即鏈路層芯片和物理層芯片采用了直連的方式。
在本設(shè)計(jì)中,不僅要求系統(tǒng)能夠控制IEEE1394協(xié)議芯片的上電初始化、復(fù)位、工作模式的設(shè)定等,還要求其能夠?qū)崟r(shí)響應(yīng)測(cè)試控制終端發(fā)送的測(cè)試指令序列和被測(cè)設(shè)備的反饋數(shù)據(jù),因此在ARM處理器上移植了嵌入式操作系統(tǒng),測(cè)試人員只需根據(jù)測(cè)試具體需求建立不同優(yōu)先級(jí)的測(cè)試任務(wù),由嵌入式操作系統(tǒng)完成各個(gè)任務(wù)的調(diào)度,這樣大大提高了編程的效率和代碼可維護(hù)性。
在本設(shè)計(jì)中,IEEE1394嵌入式仿真測(cè)試前端系統(tǒng)選用了嵌入式Linux 操作系統(tǒng),嵌入式Linux操作系統(tǒng)具有內(nèi)核小巧、開放源代碼、開發(fā)簡單等優(yōu)點(diǎn)。嵌入式Linux系統(tǒng)軟件的開發(fā)包含了Bootloader與嵌入式Linux內(nèi)核的修改與編譯、設(shè)備驅(qū)動(dòng)程序的開發(fā)以及用戶應(yīng)用程序的開發(fā)3個(gè)部分。
4.1 Bootloader與嵌入式Linux內(nèi)核的修改與編譯
一個(gè)完整的嵌入式Linux系統(tǒng)需要包含Bootloader、內(nèi)核映像文件以及根文件系統(tǒng)3個(gè)部分。Bootloader是在硬件板上電時(shí)就加載運(yùn)行的用于初始化硬件設(shè)備、引導(dǎo)嵌入式Linux系統(tǒng)運(yùn)行的一段程序。
在本設(shè)計(jì)中,選用U-Boot1.6作為Bootloader。為了提高ARM與FPGA之間的通信能力,修改U-Boot1.6中Board/Samsung/smdk6410/smdk6410.c 下的函數(shù)DM9000_pre_init(),將其中的宏SROM_BC4_REG 和SROM_BC5_REG 修改為0x22032200,這樣ARM 與FPGA 之間設(shè)備通信軟總線由原來的8 bit位寬提高至16 bit位寬,大大提高了通信效率。
在Linux內(nèi)核源代碼的根目錄下執(zhí)行make menuconfig命令,以此來對(duì)Linux內(nèi)核配置進(jìn)行簡單的修改。在本文中,通過去除“Device Drivers->Input device support->Keyboards”選項(xiàng)及其子選項(xiàng)來釋放原操作系統(tǒng)中被外部鍵盤占用的CPU外部中斷接口,以便FPGA與ARM之間以中斷方式進(jìn)行通信。然后運(yùn)行make zImage -jn進(jìn)行編譯內(nèi)核映像文件,n值通常為執(zhí)行編譯計(jì)算機(jī)CPU的邏輯內(nèi)核數(shù)。編譯結(jié)束后,在/arch/arm/boot路徑下即可得到內(nèi)核映像文件:zImage。
4.2 嵌入式Linux驅(qū)動(dòng)程序開發(fā)
驅(qū)動(dòng)程序是聯(lián)系用戶應(yīng)用程序和硬件的橋梁。Linux內(nèi)核已經(jīng)集成了市面上多數(shù)硬件芯片的驅(qū)動(dòng)程序,如本設(shè)計(jì)中使用的網(wǎng)絡(luò)芯片DM9000E的驅(qū)動(dòng)程序,大大節(jié)省了開發(fā)周期。在本設(shè)計(jì)中,F(xiàn)PGA芯片作為嵌入式Linux操作系統(tǒng)的一個(gè)外設(shè),而Linux內(nèi)核并沒有集成該款芯片的驅(qū)動(dòng)程序,因此需要重新開發(fā)驅(qū)動(dòng)程序。將所有外設(shè)均視為文件進(jìn)行處理是Linux設(shè)備驅(qū)動(dòng)的一個(gè)非常重要的性質(zhì),因此在本文中將所有的外設(shè)均當(dāng)作字符設(shè)備來編寫驅(qū)動(dòng)程序。
通過static const struct file_operations fdev_fops來定義頂層用戶應(yīng)用程序?qū)诱{(diào)用設(shè)備文件的常用函數(shù),包括設(shè)備讀、寫操作,設(shè)備的打開與關(guān)閉等操作。通過static int __init fdev_init(void)和static int __exit fdev_exit(void)函數(shù)分別完成設(shè)備注冊(cè)、內(nèi)存堆??臻g的分配以及設(shè)備的注銷和內(nèi)存堆??臻g的回收等。為設(shè)備分配新的設(shè)備號(hào),建立與實(shí)際使用的Linux內(nèi)核版本號(hào)以及內(nèi)核配置相一致的依賴關(guān)系,然后編譯并生成可以動(dòng)態(tài)加載的*.ko文件,然后通過insmod命令將編譯好的*.ko文件加載到內(nèi)核中,用戶應(yīng)用程序可以根據(jù)相應(yīng)的文件名直接調(diào)用該設(shè)備。
4.3 用戶應(yīng)用程序開發(fā)
應(yīng)用程序的開發(fā)可以根據(jù)用戶實(shí)際測(cè)試任務(wù)的需要,來決定任務(wù)的類型以及開啟線程的數(shù)量,本設(shè)計(jì)中,根據(jù)實(shí)際測(cè)試的需要,將任務(wù)分為4個(gè)主要的部分,為每個(gè)任務(wù)線程分配足夠的堆棧空間,線程之間的通信通過互斥鎖以及信號(hào)量來實(shí)現(xiàn)。本文中用戶的應(yīng)用程序框架如圖4所示。
圖4 系統(tǒng)軟件設(shè)計(jì)結(jié)構(gòu)圖
IEEE1394協(xié)議芯片參數(shù)設(shè)置和工作模式的設(shè)置是系統(tǒng)應(yīng)用軟件設(shè)計(jì)的關(guān)鍵。系統(tǒng)上電后,1394處理線程即對(duì)1394協(xié)議芯片內(nèi)部寄存器進(jìn)行初始化;測(cè)試人員通過測(cè)試監(jiān)控終端配置參數(shù)來完成IEEE1394協(xié)議芯片的復(fù)位以及工作模式的設(shè)定,并通過監(jiān)顯終端實(shí)時(shí)回顯的數(shù)據(jù)查看芯片當(dāng)前的工作狀態(tài)以及工作模式。
4.4 FPGA固件編程
本文中,在充分考慮了系統(tǒng)的可靠性和可維護(hù)性,程序設(shè)計(jì)按照功能塊劃分,可分為以下3個(gè)模塊。
1)1394異步數(shù)據(jù)處理模塊。
本模塊與1394芯片的異步數(shù)據(jù)接口連接,主要完成1394異步數(shù)據(jù)接口與ARM處理器接口之間的時(shí)序轉(zhuǎn)換。當(dāng)仿真測(cè)試平臺(tái)向1394芯片發(fā)送異步數(shù)據(jù)包時(shí),本模塊根據(jù)接收到的ARM處理器寫使能信號(hào)、寫地址和寫數(shù)據(jù),按照1394異步數(shù)據(jù)傳輸時(shí)序要求將數(shù)據(jù)包依次寫入用戶配置的地址中;當(dāng)仿真測(cè)試平臺(tái)請(qǐng)求讀取1394芯片中某寄存器的值時(shí),ARM處理器向本模塊發(fā)起兩次讀操作,第一次讀操作后,本模塊根據(jù)接收到的讀地址從1394芯片中讀取相應(yīng)的值,并在第二次讀操作時(shí)將該值輸出至ARM數(shù)據(jù)總線上,供ARM處理器讀取。
2)1394等時(shí)數(shù)據(jù)處理模塊:
本模塊與1394芯片的等時(shí)接口連接,主要功能是按照用戶配置要求接收固定長度的等時(shí)數(shù)據(jù)包,并寫入U(xiǎn)SB3.0接收模塊中,最終傳輸?shù)絇C機(jī)上保存成數(shù)據(jù)文件。
3)處理器接口處理模塊:
本模塊與1394等時(shí)數(shù)據(jù)處理模塊配合使用,主要功能為解析ARM處理器發(fā)送的用戶指令,控制1394等時(shí)數(shù)據(jù)處理模塊開始或停止接收等時(shí)數(shù)據(jù)包。
各個(gè)模塊之間的關(guān)系如圖5所示。
圖5 FPGA內(nèi)部各模塊之間的關(guān)系圖
為了驗(yàn)證本設(shè)計(jì)的實(shí)用性與完整性,利用本設(shè)計(jì)按圖1所示構(gòu)建一套1394分布式仿真測(cè)試系統(tǒng),采用ChipScope(片上示波器)與1394總線分析儀相結(jié)合的方式對(duì)所設(shè)計(jì)的1394總線仿真測(cè)試系統(tǒng)的功能進(jìn)行測(cè)試。根據(jù)實(shí)際測(cè)試的需要,對(duì)1394等時(shí)和異步數(shù)據(jù)包的傳輸分別進(jìn)行了測(cè)試,結(jié)果如圖6和圖7所示。
圖6 等時(shí)數(shù)據(jù)包接收時(shí)序圖
圖7 異步數(shù)據(jù)包的發(fā)送時(shí)序圖
最終的測(cè)試結(jié)果表明,測(cè)試前端的發(fā)送數(shù)據(jù)包和接收數(shù)據(jù)包與1394總線分析儀監(jiān)測(cè)到的數(shù)據(jù)內(nèi)容完全一致,時(shí)序也滿足1394協(xié)議時(shí)序要求,因此本設(shè)計(jì)完整實(shí)現(xiàn)了1394總線等時(shí)數(shù)據(jù)包和異步數(shù)據(jù)包的發(fā)送和接收功能。
本文在充分分析了當(dāng)前載人航天嵌入式軟件測(cè)試過程中遇到的實(shí)際問題的基礎(chǔ)上,設(shè)計(jì)并研發(fā)了基于ARM&FPGA架構(gòu)的分布式1394仿真測(cè)試前端,工程實(shí)踐表明,本設(shè)計(jì)作為測(cè)試系統(tǒng)的一部分,成功完成了對(duì)載人航天工程某型號(hào)航天器嵌入式1394軟件的配置項(xiàng)級(jí)測(cè)試,包括功能測(cè)試、性能測(cè)試、強(qiáng)度測(cè)試以及故障測(cè)試等,不僅大大提高了測(cè)試的效率,而且對(duì)類似測(cè)試系統(tǒng)(前端)的研制也具有較高的參考意義。
[1] 杜 倩. 基于1394串行總線圖像采集的硬件設(shè)計(jì)[D]. 天津:天津大學(xué),2006.
[2] 王 彬,張 濤. 基于ARM-Linux 的1553B 仿真測(cè)試前端系統(tǒng)[J]. 電子設(shè)計(jì)工程,2013,20:147-150.
[3] 王桂強(qiáng). 基于 IEEE1394 總線的高速相機(jī)數(shù)據(jù)傳輸方案設(shè)計(jì)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2011.
[4] Brown K A, Frak B, Gassner D, et al. IEEE 1394 Camera Imaging System for Brookhaven’s Booster Application Facility Beam Diangostics*[A]. EPAC’02[C].2002.June,2-7.
[5] 蔡偉鵬. 應(yīng)用于1394b物理層實(shí)現(xiàn)的時(shí)鐘數(shù)據(jù)恢復(fù)電路的研究和設(shè)計(jì)[D]. 北京:北京交通大學(xué),2014.
[6] 常 安. IEEE1394物理層鏈路接口的設(shè)計(jì)與驗(yàn)證[D]. 西安:西安電子科技大學(xué),2014.
[7] 金曉紅, 高有行. IEEE1394 協(xié)議在外設(shè)端接口中的應(yīng)用[J]. 計(jì)算機(jī)測(cè)量與控制,2003,11(10):809-811.
[8] 陳爾釤. 1394總線鏈路層系統(tǒng)架構(gòu)設(shè)計(jì)及接收模塊實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2014.
[9] 李 潔. 基于IEEE1394數(shù)據(jù)鏈路層芯片設(shè)計(jì)與驗(yàn)證[D]. 西安:西安電子科技大學(xué),2014.
[10] 張 偉. 基于IEEE1394總線數(shù)控系統(tǒng)實(shí)時(shí)通信的DMA方式實(shí)現(xiàn)[D]. 上海:上海交通大學(xué),2009.
[11] 張盼盼. 基于IEEE1394b交叉通道數(shù)據(jù)鏈路FPGA的驗(yàn)證[D]. 西安:西安電子科技大學(xué),2014.
[12] 張 琨. 基于IEEE1394數(shù)據(jù)傳輸系統(tǒng)的驅(qū)動(dòng)程序及應(yīng)用程序設(shè)計(jì)[D]. 西安:西安電子科技大學(xué),2014.
[13] 蔡建軍. 嵌入式軟件測(cè)試實(shí)用技術(shù)[M]. 北京:清華大學(xué)出版社,2010.
Design of Front End System of IEEE1394 Simulation Test Based on ARM&FPGA
Su Yu, Kong Lu, Zhou Shan, Ma Yunyun, Wang Jinbo
(Technology and Engineering Center for Space Utilization,Chinese Academy of Sciences,Beijing 100094,China)
Analyzing the actual needs of the 1394 bus simulation tests are integrated into the distributed test system in the testing of aerospace embedded software, a front end system of 1394 Simulation Test Based on ARM&FPGA was proposed. After a brief introduction of the 1394 bus and distributed test system, the hardware and software of front End System of 1394 simulation tests are designed and implemented, and then the distributed test system is built. The result of the test shows that the 1394 simulation test front end could meet the sending and receiving timing requirements of the 1394 isochronous data and asynchronous data packages, and successfully applied to a spacecraft software third party evaluation.
IEEE Std 1394;ARM;FPGA;distributed systems
2015-09-14;
2015-10-20。
國家重大專項(xiàng)載人航天應(yīng)用系統(tǒng)軟件第三方評(píng)測(cè) (Y5181021RN)。
蘇 宇(1985-),男,吉林長春人,碩士,助理工程師,主要從事高可靠軟件測(cè)試與驗(yàn)證,嵌入式系統(tǒng)開發(fā)方向的研究。
1671-4598(2016)03-0035-05
10.16526/j.cnki.11-4762/tp.2016.03.011
TP39
A