文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.06.005
中文引用格式: 辛永利,靳偉平,賈釗,等. 1394總線三節(jié)點(diǎn)仿真設(shè)備設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(6):17-20.
英文引用格式: Xin Yongli,Jin Weiping,Jia Zhao,et al. Design and implementation of 1394 three-node simulation card[J].Application of Electronic Technique,2016,42(6):17-20.
0 引言
在機(jī)載、防務(wù)領(lǐng)域,仿真技術(shù)已經(jīng)成為武器裝備研制與試驗(yàn)中的一項(xiàng)核心關(guān)鍵技術(shù),在綜合化仿真環(huán)境和仿真系統(tǒng)的研制和建設(shè)中尤為重要。1394總線三節(jié)點(diǎn)仿真設(shè)備源于我國新型飛機(jī)綜合化仿真環(huán)境的研制需求,產(chǎn)品從需求出發(fā),結(jié)合多種復(fù)雜仿真應(yīng)用環(huán)境,設(shè)計(jì)滿足多個機(jī)載領(lǐng)域1394總線產(chǎn)品的試驗(yàn)驗(yàn)證需求,全面系統(tǒng)地實(shí)現(xiàn)機(jī)載網(wǎng)絡(luò)環(huán)境的綜合化仿真、測試,并輔助完成系統(tǒng)聯(lián)試、試驗(yàn)。
本文從硬件設(shè)計(jì)、邏輯設(shè)計(jì)、軟件設(shè)計(jì)三方面闡述1394總線三節(jié)點(diǎn)仿真設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)過程,并通過搭建仿真試驗(yàn)環(huán)境,完成產(chǎn)品及系統(tǒng)級綜合驗(yàn)證。
1 產(chǎn)品設(shè)計(jì)
1394總線三節(jié)點(diǎn)仿真設(shè)備主要應(yīng)用于地面仿真環(huán)境下,實(shí)現(xiàn)1394總線系統(tǒng)中的控制計(jì)算機(jī)、遠(yuǎn)程節(jié)點(diǎn)、監(jiān)控節(jié)點(diǎn)以及加載維護(hù)節(jié)點(diǎn)的虛擬仿真功能。產(chǎn)品設(shè)計(jì)中通過軟硬件協(xié)同模式實(shí)現(xiàn)1394總線數(shù)據(jù)的收發(fā)功能[1],其鏈路層和物理層采用商業(yè)協(xié)議處理芯片實(shí)現(xiàn)了IEEE 1394b總線鏈路層和物理層協(xié)議處理功能,傳輸層采用基于FPGA邏輯電路實(shí)現(xiàn)AS5643協(xié)議處理功能。同時每個產(chǎn)品配置3條獨(dú)立的總線接口,各總線擁有獨(dú)立的軟件及硬件接口資源,每條總線提供3個獨(dú)立的端口(Port),支持S100B、S200B、S400B 3種傳輸速率。
1.1 硬件設(shè)計(jì)
1394總線三節(jié)點(diǎn)仿真設(shè)備硬件模塊設(shè)計(jì)中主要包括:FPGA電路、電源電路、復(fù)位電路、時鐘電路、1394接口電路,具體如圖1所示。FPGA電路實(shí)現(xiàn)1394總線協(xié)議處理,通過鏈路層組包/解包,再由物理層進(jìn)行編解碼處理后通過接口電路發(fā)送到總線上,實(shí)現(xiàn)1394總線數(shù)據(jù)交互。
(1)主機(jī)接口
PCI接口采用標(biāo)準(zhǔn)的PC卡接口金手指連接器,主機(jī)通過金手指連接器獲得電源、訪問板卡資源并與板卡進(jìn)行數(shù)據(jù)交互,完成FPGA與主機(jī)的通信。PCI接口邏輯部分由FPGA實(shí)現(xiàn),采用32 bit/33 MHz的PCI總線接口。
(2)電源電路
仿真設(shè)備采用PC提供的5 V直流供電,經(jīng)過電壓轉(zhuǎn)換器件產(chǎn)生FPGA+LLC+PHY所需的1.0 V電壓和3.3 V電壓。電壓轉(zhuǎn)換器選用LTC公司的LTM4616IV#PBF,該器件為兩路輸出,最大輸出電流均為8 A。
(3)復(fù)位電路
仿真設(shè)備支持兩種復(fù)位,分別是上電復(fù)位和總線復(fù)位。FPGA、三路鏈路層的上電復(fù)位和三路物理層的上電復(fù)位相互獨(dú)立均采用RC上電消抖復(fù)位,復(fù)位延時為10 ms;主機(jī)總線復(fù)位信號來自主機(jī)接口的復(fù)位輸出,這兩種復(fù)位信號均引入FPGA。
(4)時鐘電路
49.152 MHz的晶體提供給仿真設(shè)備的1394B總線協(xié)議芯片,50 MHz晶振作為FPGA的本板晶振,該時鐘在FPGA內(nèi)部作為調(diào)度時鐘,避免與1394接口時鐘混用,便于邏輯分塊實(shí)現(xiàn)。為了能夠給晶振提供更穩(wěn)定的電源,晶振電源輸入端增加磁珠隔離,并添加濾波電容,晶振的1管腳將其上拉為高電平。
(5)1394接口電路
仿真設(shè)備中1394信號通過矩型連接器引出,9個端口分別采用9根1394專用電纜引出,每根電纜的引線定義相同。同時1394總線信號采用變壓器耦合方式,提供Bilingual或Beta端口,端口模式可配置。1394總線信號通過矩型連接器插頭轉(zhuǎn)圓形連接器電纜引出到連接器上。
1.2 邏輯設(shè)計(jì)
仿真設(shè)備邏輯設(shè)計(jì)如圖2所示,主要集成了主機(jī)接口和DMA模塊、配置表模塊、AS5643協(xié)議處理等模塊。
其中主機(jī)接口主要負(fù)責(zé)填寫FPGA內(nèi)部配置表內(nèi)容、對FPGA內(nèi)部寄存器進(jìn)行讀寫操作和中斷操作,以及將鏈路層寄存器映射到主機(jī)接口的地址空間開放給主機(jī)訪問;DMA模塊負(fù)責(zé)主機(jī)主存與片外DPRAM之間的數(shù)據(jù)搬運(yùn)。
配置表模塊主要是用于存儲總線發(fā)送接收配置表,配置表信息在初始化階段由主機(jī)加載完成,在總線收發(fā)調(diào)度邏輯來時供邏輯查詢調(diào)度,完成數(shù)據(jù)的匹配功能。
AS5643協(xié)議處理模塊實(shí)現(xiàn)了主機(jī)與鏈路層接口設(shè)備之間的通信,滿足基于IEEE-1394b的用法和需求建立的航空領(lǐng)域網(wǎng)絡(luò)傳輸數(shù)據(jù)總線標(biāo)準(zhǔn)SAE AS5643。FPGA邏輯配合軟件實(shí)現(xiàn)了AS5643總線網(wǎng)絡(luò)協(xié)議定義的異步流包、固定幀速率、STOF包同步、帶寬預(yù)分配、縱向奇偶校驗(yàn)VPC、匿名簽署消息、通道號的靜態(tài)分配[2]、VPC與CRC錯誤注入、心跳字初始值自設(shè)定、數(shù)據(jù)收發(fā)控制、容錯檢測等功能。
子系統(tǒng)主機(jī)通過主機(jī)總線橋接口完成板卡資源的訪問、板卡狀態(tài)控制、狀態(tài)信息讀取,同時將節(jié)點(diǎn)配置表內(nèi)容寫入片內(nèi)DPRAM中,完成發(fā)送、接收、通信參數(shù)的配置功能,如圖2線①所示。在數(shù)據(jù)處理方面,為了提高數(shù)據(jù)處理效率,設(shè)計(jì)中采用DMA方式完成數(shù)據(jù)搬運(yùn)工作,發(fā)送數(shù)據(jù)時主機(jī)軟件將待發(fā)送的數(shù)據(jù)按要求封裝完成后,啟動DMA控制器,將數(shù)據(jù)存入片外DPRAM中,在發(fā)送邏輯到來后完成數(shù)據(jù)組包及調(diào)度發(fā)送,如圖2中線②所示;接收數(shù)據(jù)時,主機(jī)軟件實(shí)時檢測接收消息狀態(tài),在新的有效消息到來時,啟動DMA控制器將數(shù)據(jù)從片外DPRAM搬運(yùn)至主機(jī)內(nèi)存,供主機(jī)軟件處理,如圖2線③所示。
1.3 軟件設(shè)計(jì)
仿真設(shè)備軟件的作用是讓宿主機(jī)操作系統(tǒng)識別硬件設(shè)備,并且能夠完成對硬件資源的訪問,包括硬件資源初始化、硬件控制,以完成仿真設(shè)備正常通信功能。在進(jìn)行軟件設(shè)計(jì)時,采用分層設(shè)計(jì)的思想,每一層軟件完成各自的功能,軟件層次之間采用簡單的接口進(jìn)行交互,較低層次的軟件為高一層的軟件提供服務(wù),如圖3所示。應(yīng)用軟件為用戶提供可視化界面,通過調(diào)用1394驅(qū)動軟件來完成數(shù)據(jù)的發(fā)送;WDM驅(qū)動軟件一方面與1394驅(qū)動軟件完成數(shù)據(jù)及命令的交互,另一方面通過主機(jī)PCI能夠直接訪問AS5643邏輯。
1.3.1 WDM驅(qū)動軟件設(shè)計(jì)
WDM驅(qū)動軟件主要提供了設(shè)備存儲空間的讀寫訪問、應(yīng)用層事件掛接、接收例程數(shù)據(jù)初始化、獲取數(shù)據(jù)等功能[3],同時在數(shù)據(jù)搬運(yùn)時,為了提高軟件的運(yùn)行效率及健壯性,在程序的設(shè)計(jì)上盡可能地減少軟件開銷,將數(shù)據(jù)處理交由板卡邏輯進(jìn)行處理,軟件只進(jìn)行狀態(tài)監(jiān)控及數(shù)據(jù)整理。
1.3.2 1394驅(qū)動軟件設(shè)計(jì)
1394驅(qū)動軟件使用Win32標(biāo)準(zhǔn)API接口來訪問設(shè)備的硬件資源,完成主機(jī)端與FPGA之間的數(shù)據(jù)交互,以函數(shù)接口的形式提供給上層應(yīng)用程序使用,使應(yīng)用層不必關(guān)心仿真設(shè)備硬件邏輯及數(shù)據(jù)流轉(zhuǎn)的細(xì)節(jié),只需要處理應(yīng)用層數(shù)據(jù)的組織即可,其主要包括:通用控制接口、調(diào)試控制接口、消息控制接口、總線控制接口、系統(tǒng)配置接口、系統(tǒng)控制接口,具體如圖4所示。
1.3.3 應(yīng)用軟件設(shè)計(jì)
仿真設(shè)備上層應(yīng)用程序按照功能劃分為配置表模塊、狀態(tài)監(jiān)控模塊、數(shù)據(jù)捕獲模塊、數(shù)據(jù)發(fā)送模塊和拓?fù)滹@示模塊,如圖5所示。各功能模塊如下:
(1)Commander(拓?fù)滹@示及控制):通過獲取仿真設(shè)備鏈路層芯片在總線節(jié)點(diǎn)狀態(tài)發(fā)生變動后產(chǎn)生的自標(biāo)識包信息,解析出當(dāng)前總線的連接拓?fù)潢P(guān)系并進(jìn)行圖形化顯示,同時可發(fā)起總線長復(fù)位、短復(fù)位、復(fù)位風(fēng)暴以及進(jìn)行總線端口禁止、使能等;
(2)Monitor(狀態(tài)監(jiān)控):對當(dāng)前仿真設(shè)備的狀態(tài)信息進(jìn)行實(shí)時監(jiān)控,包括指定類型、指定速率數(shù)據(jù)包個數(shù)統(tǒng)計(jì)、錯誤包個數(shù)、總線復(fù)位次數(shù)統(tǒng)計(jì)、VPC錯誤統(tǒng)計(jì)、數(shù)據(jù)包負(fù)載錯誤統(tǒng)計(jì)等;
(3)Generator(數(shù)據(jù)發(fā)送):構(gòu)造符合AS5643協(xié)議的數(shù)據(jù)包的各個字段,發(fā)送給目的終端,用于測試總線數(shù)據(jù)的發(fā)送功能;
(4)Recorder(數(shù)據(jù)記錄):將仿真設(shè)備接收到的數(shù)據(jù)包進(jìn)行實(shí)時顯示,并按照1394協(xié)議的標(biāo)準(zhǔn)形式進(jìn)行協(xié)議解析及分析;
(5)Recvcfg(配置表模塊):體現(xiàn)AS5643協(xié)議帶寬預(yù)分配策略,節(jié)點(diǎn)的發(fā)送消息、接收消息、消息偏移等配置參數(shù)的生成及修改;
(6)TicLoad(加載維護(hù)):提供總線網(wǎng)絡(luò)維護(hù)及節(jié)點(diǎn)配置表、邏輯文件遠(yuǎn)程管理功能。
2 驗(yàn)證與測試
通過上述1394總線三節(jié)點(diǎn)仿真設(shè)備搭建地面驗(yàn)證測試系統(tǒng)環(huán)境,從拓?fù)錁?gòu)建、組網(wǎng)通信、總線容錯、加載維護(hù)等方面進(jìn)行產(chǎn)品功能及網(wǎng)絡(luò)仿真驗(yàn)證,如圖6所示,該演示環(huán)境由1個控制計(jì)算機(jī)、9個遠(yuǎn)程節(jié)點(diǎn)和1個監(jiān)控維護(hù)模塊組成基本的網(wǎng)絡(luò)拓?fù)?,每個功能模塊均采用1394總線三節(jié)點(diǎn)仿真設(shè)備實(shí)現(xiàn)。
(1)拓?fù)錁?gòu)建
拓?fù)錁?gòu)建模塊中對總線系統(tǒng)中的總線拓?fù)浣Y(jié)構(gòu)顯示、節(jié)點(diǎn)狀態(tài)、端口速率顯示以及對各個端口進(jìn)行禁止、使能、掛起等功能進(jìn)行驗(yàn)證測試。
(2)組網(wǎng)通信
組網(wǎng)通信模塊中基于總線測試系統(tǒng),在遠(yuǎn)程節(jié)點(diǎn)仿真中對其通道配置、配置加載、STOF包接收、數(shù)據(jù)偏移修改、異步流數(shù)據(jù)收發(fā)等功能進(jìn)行驗(yàn)證測試;控制計(jì)算機(jī)中對其配置加載、STOF包的配置發(fā)送、異步流數(shù)據(jù)收發(fā)、節(jié)點(diǎn)同步等功能進(jìn)行驗(yàn)證測試;總線監(jiān)控中對其網(wǎng)絡(luò)數(shù)據(jù)異步流包、STOF包以及總線復(fù)位的數(shù)據(jù)監(jiān)控及數(shù)據(jù)過濾等功能進(jìn)行測試;同時在該總線中加載完整的通信配置表進(jìn)行總線模擬仿真測試。
(3)總線容錯
總線容錯測試中通過仿真設(shè)備進(jìn)行數(shù)據(jù)錯誤故障注入以及總線競爭等異??偩€通信功能測試。
(4)加載維護(hù)
加載維護(hù)測試中主要測試總線節(jié)點(diǎn)信息的管理及加載功能,測試包括:節(jié)點(diǎn)標(biāo)識、節(jié)點(diǎn)網(wǎng)絡(luò)狀態(tài)以及進(jìn)行遠(yuǎn)程節(jié)點(diǎn)配置表及邏輯文件加載測試。
基于上述總線仿真測試環(huán)境,分別對總線系統(tǒng)中的遠(yuǎn)程節(jié)點(diǎn)、控制計(jì)算機(jī)、監(jiān)控節(jié)點(diǎn)的功能及性能進(jìn)行全面有效的測試,同時通過在實(shí)驗(yàn)室組網(wǎng)模擬機(jī)載系統(tǒng)工作,并且接入到機(jī)載網(wǎng)絡(luò)中模擬其中的總線控制節(jié)點(diǎn)。經(jīng)過大量的試驗(yàn)及系統(tǒng)聯(lián)試,結(jié)果表明仿真設(shè)備的功能、性能均滿足試驗(yàn)驗(yàn)證需求。
3 結(jié)論
本文就1394總線三節(jié)點(diǎn)仿真設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)進(jìn)行了研究,從硬件、邏輯及軟件等方面進(jìn)行了分析。通過搭建1394總線地面仿真驗(yàn)證環(huán)境,實(shí)測設(shè)備的各項(xiàng)功能、性能指標(biāo),完成總線系統(tǒng)綜合化仿真測試。
經(jīng)大量試驗(yàn)驗(yàn)證表明,該產(chǎn)品相比于國內(nèi)外同類產(chǎn)品集成度高,通用性強(qiáng),在仿真應(yīng)用中有效降低了實(shí)驗(yàn)成本,提高了驗(yàn)證效率,進(jìn)而為在地面仿真環(huán)境下構(gòu)建1394總線系統(tǒng)提供了強(qiáng)有力的保障,可以推動1394總線通信技術(shù)在機(jī)載系統(tǒng)中的應(yīng)用,對于進(jìn)一步研制和開發(fā)1394總線具有重要意義。
參考文獻(xiàn)
[1] 張少峰,田澤,楊峰,等.基于AS5643協(xié)議的Mil-1394仿真卡設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,8(23):168-171.
[2] Society of Automotive Engineers.IEEE 1394b interface requirements for military and aerospace vehicle applications[S].SAE Aerropace Standard 5643,2004.
[3] 張帆,史彩成.Windows驅(qū)動開發(fā)計(jì)數(shù)詳解[M].北京:電子工業(yè)出版社,2008.