安宏勇+范祥輝+武堅(jiān)
摘要:隨著1553B總線在航空領(lǐng)域的大規(guī)模應(yīng)用,低成本、高效率的接口模塊測(cè)試驗(yàn)證尤為重要。本文設(shè)計(jì)并實(shí)現(xiàn)了基于串行總線架構(gòu)的通用1553B總線接口模塊測(cè)試設(shè)備,通過(guò)將CPU外置并通過(guò)串行總線與測(cè)試工裝連接,在測(cè)試工裝內(nèi)實(shí)現(xiàn)串行總線接口到并行總線接口的協(xié)議轉(zhuǎn)換,具有通貨量大、成本低、簡(jiǎn)單易用的特點(diǎn)。長(zhǎng)時(shí)間應(yīng)用驗(yàn)證表明,該設(shè)計(jì)能夠滿足1553B總線接口模塊試驗(yàn)條件要求,對(duì)其他同類型接口模塊測(cè)試設(shè)備研制具有一定的參考價(jià)值。
關(guān)鍵詞:1553B總線;測(cè)試設(shè)備;協(xié)議轉(zhuǎn)換
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)25-0168-03
Abstract:With the widespread application of 1553B bus in the aviation, low-cost and effective testing technology of the interface module is particularly important. In this paper, a kind of general 1553B testing equipment based serial bus architecture is designed. It realized the protocol conversion of serial bus interface to 1553B bus interface with the CPU outsiding and connecting with the testing equipment by the serial bus. It has low-cost and easy to used features. The long time application and testing results show that the design satisfy the testing requirement of 1553B bus interface module. It has a certain reference value for the design of other similar interface module testing.
Key words:1553B bus;testing equipment;protocol conversion
1 引言
1553B總線由于其成熟、可靠的特點(diǎn)已廣泛的作為飛機(jī)的機(jī)載總線應(yīng)用于各個(gè)分系統(tǒng)中,在許多分系統(tǒng)中,總線接口模塊往往需要采用非標(biāo)準(zhǔn)局部總線設(shè)計(jì)來(lái)滿足與所在系統(tǒng)的數(shù)據(jù)交互功能。由于非標(biāo)準(zhǔn)總線定義各不相同,這就對(duì)總線接口模塊的測(cè)試和試驗(yàn)造成了很大的難度。傳統(tǒng)的測(cè)試方法為每一種接口模塊設(shè)計(jì)專用的測(cè)試設(shè)備,與其相配套的CPU模塊來(lái)進(jìn)行測(cè)試,這樣不僅成本高、通用性差、測(cè)試效率低,而且在試驗(yàn)條件下對(duì)配套CPU模塊損害大。對(duì)于總線接口模塊的測(cè)試如何降低測(cè)試成本,并且提高測(cè)試效率已成急需解決的問(wèn)題。
本文采用基于串行總線架構(gòu)的測(cè)試設(shè)備設(shè)計(jì),由于串行總線克服了并行總線在系統(tǒng)帶寬、可靠性和可擴(kuò)展性等方面的固有缺陷,有利于數(shù)據(jù)的長(zhǎng)距離有效傳輸,這就大大提高了設(shè)備的通用性及可靠性。
2 測(cè)試產(chǎn)品描述
多路傳輸數(shù)據(jù)總線接口(MBI)模塊是航空電子通信子系統(tǒng)最為重要的組成部分。各子系統(tǒng)通過(guò)MBI模塊接入1553B總線通信系統(tǒng)中。由于各個(gè)子系統(tǒng)沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),MBI模塊連接器有多種標(biāo)準(zhǔn)及自定義局部總線型號(hào),而這些總線協(xié)議并不兼容,通用的測(cè)試設(shè)備至關(guān)重要。航空產(chǎn)品在交付前要經(jīng)過(guò)大量的試驗(yàn),包括低溫試驗(yàn)、高溫試驗(yàn)、ESS試驗(yàn)及功能振動(dòng)試驗(yàn)等等,如果CPU端隨產(chǎn)品一塊試驗(yàn),這種高強(qiáng)度長(zhǎng)時(shí)間的實(shí)驗(yàn)對(duì)CPU端造成很大的損害,所以分離式的測(cè)試設(shè)備設(shè)計(jì)必不可少。
3工裝設(shè)計(jì)方案
MBI模塊測(cè)試設(shè)備滿足接口測(cè)試和通信測(cè)試的要求,包括測(cè)試工裝(內(nèi)含4塊MBI模塊)、CPU端、工控機(jī)三部分。測(cè)試工裝完成MBI模塊安裝,提供主機(jī)信號(hào)、1553B信號(hào)及電源轉(zhuǎn)換功能;CPU端用于模擬用戶主處理器,通過(guò)運(yùn)行驅(qū)動(dòng)軟件完成對(duì)多個(gè)MBI模塊的控制;測(cè)試工裝與CPU端通過(guò)串行總線連接;工控機(jī)內(nèi)裝1553B仿真卡,用于運(yùn)行測(cè)試軟件和與測(cè)試工裝內(nèi)各模塊相連;CPU端通過(guò)網(wǎng)口、串口與工控機(jī)相連,完成主機(jī)軟件的調(diào)試、加載。
3.1 硬件設(shè)計(jì)
方案中CPU端通過(guò)串行總線接口來(lái)訪問(wèn)MBI模塊,串行總線信號(hào)先轉(zhuǎn)換為并行總線信號(hào),可供標(biāo)準(zhǔn)并行接口MBI模塊工作使用,若為其他接口總線,可以進(jìn)一步通過(guò)FPGA芯片轉(zhuǎn)換。本次測(cè)試產(chǎn)品為自定義總線接口,本設(shè)計(jì)以自定義總線接口為例。功能架構(gòu)如圖1所示,測(cè)試工裝硬件電路包括:電源電路、時(shí)鐘電路、接口轉(zhuǎn)換電路、驅(qū)動(dòng)隔離電路、主機(jī)接口電路。接口轉(zhuǎn)換電路中,標(biāo)準(zhǔn)并行總線接口轉(zhuǎn)換為自定義總線接口,然后通過(guò)驅(qū)動(dòng)隔離電路與MBI模塊相連,從而實(shí)現(xiàn)CPU端對(duì)MBI模塊的配置和數(shù)據(jù)收發(fā)功能。加載程序及調(diào)試通過(guò)自定義總線引出的調(diào)試串口和調(diào)試網(wǎng)口實(shí)現(xiàn)。測(cè)試設(shè)備供電28V,然后通過(guò)電源轉(zhuǎn)換電路轉(zhuǎn)為各芯片使用的低電壓信號(hào)。
PCI作為一種通用的總線接口標(biāo)準(zhǔn),它在目前的計(jì)算機(jī)系統(tǒng)中得到了非常廣泛的應(yīng)用,本身可以直接供PCI接口的模塊使用。
PCI總線是地址/數(shù)據(jù)復(fù)用的總線,包括以下主要信號(hào):AD(32位地址/數(shù)據(jù)總線)、C/BE(命令/字節(jié)使能信號(hào))、FRAME(總線訪問(wèn)發(fā)起信號(hào))、DEVSEL(設(shè)備選擇信號(hào))、IRDY(初始準(zhǔn)備好信號(hào))、TRDY(目標(biāo)準(zhǔn)備好信號(hào))。PCI總線單周期訪問(wèn)時(shí)序關(guān)系如圖2所示。
自定義總線已廣泛應(yīng)用于機(jī)載嵌入式計(jì)算機(jī)系統(tǒng),最高總線速度可達(dá)33MHz,位寬32位。自定義總線是地址、數(shù)據(jù)分開(kāi)的總線,包括以下主要信號(hào):XA(地址總線)、XD(32位數(shù)據(jù)總線)、XBE(字節(jié)使能)、XM/IO(表示總線周期為存儲(chǔ)器訪問(wèn)周期或IO訪問(wèn)周期)、XD/C(表示總線周期為數(shù)據(jù)周期或指令周期)、XW/R(表示總線周期為寫(xiě)周期或讀周期)、XSEL(總線設(shè)備選擇信號(hào))XCYC(訪問(wèn)請(qǐng)求信號(hào),表示總線周期的地址已有效)、XCMD(總線信號(hào),表示總線周期的數(shù)據(jù)已有效)、XWAIT(等待信號(hào),表示從設(shè)備未準(zhǔn)備好)、XBS16(16位設(shè)備標(biāo)識(shí)信號(hào))。自定義總線訪問(wèn)周期時(shí)序關(guān)系見(jiàn)圖3。
本設(shè)計(jì)在FPGA內(nèi)部實(shí)現(xiàn)從PCI總線擴(kuò)展自定義總線的控制,F(xiàn)PGA內(nèi)部設(shè)置狀態(tài)機(jī),對(duì)總線狀態(tài)進(jìn)行監(jiān)控、轉(zhuǎn)換,實(shí)現(xiàn)了PCI總線至自定義總線的透明橋控制。雖然PCI與自定義總線協(xié)議不同,但是在訪問(wèn)數(shù)據(jù)的時(shí)候,地址線、數(shù)據(jù)線、片選信號(hào)、讀寫(xiě)使能信號(hào)都是并行發(fā)送的,邏輯需要處理的就是依據(jù)總線訪問(wèn)信號(hào)來(lái)進(jìn)行數(shù)據(jù)包解析和讀寫(xiě)信號(hào)的提取,具體流程如下:
3.2 軟件設(shè)計(jì)
在本文中與CPU端采用PowerPC處理器,移植嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks5.5,在Tornado環(huán)境下開(kāi)發(fā)串行總線驅(qū)動(dòng)和測(cè)試程序。
(1)主機(jī)串行總線接口驅(qū)動(dòng)
系統(tǒng)上電后,主機(jī)串行總線接口驅(qū)動(dòng)軟件對(duì)PowerPC的總線控制器和橋片進(jìn)行配置,配置完成后,主機(jī)就可以訪問(wèn)從設(shè)備。配置流程如圖5所示。
首先初始化PowerPC的基地址和空間大小。PowerPC在內(nèi)部定義了多個(gè)局部存取窗口,按照優(yōu)先級(jí)選取一個(gè)窗口作為串行總線的配置窗口,可配置窗口大小和窗口的基地址。然后通過(guò)ID號(hào)能掃描PowerPC的串行總線設(shè)備,并對(duì)設(shè)備進(jìn)行鏈路訓(xùn)練。然后查詢訓(xùn)練狀態(tài),如果狀態(tài)為0x16,訓(xùn)練通過(guò),若果鏈路正常,可以進(jìn)行下一步設(shè)置;如果不是,則需要檢查鏈路上的異常,出現(xiàn)異常的原因可能有物理鏈接、時(shí)鐘、以及PCB走線等。訓(xùn)練通過(guò)后進(jìn)行PowerPC的串行總線設(shè)備寄存器設(shè)置,需要把PowerPC的串行總線設(shè)備配置為主設(shè)備,設(shè)置為BUS0,點(diǎn)對(duì)點(diǎn)連接的設(shè)備為BUS1。配置完P(guān)owerPC的串行總線設(shè)備后再次掃描鏈路,查找鏈路上的橋片,橋片的總線號(hào)是BUS1,找到后再按照類型1配置橋片的頭標(biāo)區(qū),配置原級(jí)總線號(hào)、次級(jí)總線號(hào)寄存器,并配置下游設(shè)備的PCI空間基址和大小。
(2)多模塊訪問(wèn)設(shè)計(jì)
為了實(shí)現(xiàn)同一個(gè)宿主機(jī)CPU模塊控制多個(gè)同一種MBI模塊,需要區(qū)分MBI模塊在主機(jī)存儲(chǔ)空間的地址。MBI模塊是通過(guò)雙口存儲(chǔ)器來(lái)實(shí)現(xiàn)和宿主機(jī)的數(shù)據(jù)交換、指令執(zhí)行。MBI模塊的雙口存儲(chǔ)器空間為0xX0000000~0xX0003FFFH,0xX*******H 的高位地址片選信號(hào)由CPU 模塊通過(guò)SEL0給出并連接到MBI模塊的大存儲(chǔ)器片選引腳。MBI模塊的宿主機(jī)接口部分電路用來(lái)譯碼的自定義總線地址信號(hào)A19~A16和MBI模塊的大存儲(chǔ)器片選來(lái)實(shí)現(xiàn)0xX0000000~0xX0003FFFH,可以將CPU 處理器的A22~A16 與MBI 模塊的A19~A16地址信號(hào)移位連接,實(shí)現(xiàn)MBI模塊占用宿主機(jī)CPU 不同的存儲(chǔ)器空間設(shè)計(jì),實(shí)現(xiàn)一個(gè)CPU 可以同時(shí)初始化啟動(dòng)4塊MBI模塊的設(shè)計(jì)思想。移位連接地址信號(hào)的連接邏輯框圖如圖6所示。
通過(guò)軟件編程的方法保證主機(jī)板CPU測(cè)試程序可以同時(shí)初始化和啟動(dòng)4 塊MBI模塊。多MBI模塊和主機(jī)的接口地址如下:
MBI1:0xX0000000~0xX0003FFF 命令字單元:0xX0001BC0,消息接收區(qū):0xX0001C00,發(fā)送區(qū):0xX0001D00
MBI2:0xX0080000~0xX0083FFF 命令字單元:0xX0081BC0,消息接收區(qū):0xX0081C00,發(fā)送區(qū):0xX0081D00
MBI3:0xX0100000~0xX0103FFF 命令字單元:0xX0101BC0,消息接收區(qū):0xX0101C00,發(fā)送區(qū):0xX0101D00
MBI4:0xX0200000~0xX0203FFF 命令字單元:0xX0201BC0,消息接收區(qū):0xX0201C00,發(fā)送區(qū):0xX0201D00
4 測(cè)試驗(yàn)證
依據(jù)產(chǎn)品功能,MBI模塊要進(jìn)行三方面測(cè)試:資源測(cè)試,對(duì)MBI模塊每個(gè)節(jié)點(diǎn)進(jìn)行資源有效性測(cè)試;通信測(cè)試,對(duì)MBI模塊每個(gè)節(jié)點(diǎn)進(jìn)行通信有效性測(cè)試;循環(huán)測(cè)試,對(duì)MBI模塊每個(gè)節(jié)點(diǎn)進(jìn)行循環(huán)測(cè)試。具體測(cè)試內(nèi)容如圖7所示。
(1)MBI模塊資源測(cè)試
對(duì)MBI模塊進(jìn)行資源有效性測(cè)試,主要包括IO測(cè)試(RTC測(cè)試)、DPRAM的讀寫(xiě)測(cè)試、BIT測(cè)試和RESET測(cè)試,測(cè)試函數(shù)邏輯如下:
a. 根據(jù)測(cè)試菜單提示,進(jìn)入不同的資源測(cè)試;
b. RTC測(cè)試:根據(jù)地址讀取高16位和低16位的RTC值,并將其拼為32位RTC值,調(diào)用MBI模塊驅(qū)動(dòng)軟件接口Delay_nus延遲,再讀取RTC值,與之前讀取的值進(jìn)行比較;
c. DPRAM測(cè)試:向指定地址寫(xiě)入指定值,將地址中存儲(chǔ)數(shù)據(jù)取出,并與寫(xiě)入值進(jìn)行比較;
d. BIT測(cè)試:調(diào)用MBI模塊驅(qū)動(dòng)軟件接口MBI_BitDrv,檢查返回值;
e. RESET測(cè)試:調(diào)用MBI模塊驅(qū)動(dòng)軟件接口MBI_ResetDrv,檢查返回值;
f. 根據(jù)返回結(jié)果打印。
(2)MBI模塊通信測(cè)試
對(duì)MBI模塊每個(gè)節(jié)點(diǎn)進(jìn)行通信有效性測(cè)試,測(cè)試函數(shù)邏輯如下:
a. 調(diào)用MBI模塊驅(qū)動(dòng)軟件接口MBI_OpenDevice打開(kāi)設(shè)備;
b. 調(diào)用MBI模塊驅(qū)動(dòng)軟件接口MBI_dataInit初始化MBI模塊輸入、輸出串口,通信地址;
c. 根據(jù)MBI模塊驅(qū)動(dòng)軟件接口MBI_RefreshDrv發(fā)送消息,調(diào)用MBI模塊驅(qū)動(dòng)軟件接口MBI_ReadDrv從Buffer中讀取數(shù)據(jù);
d. 根據(jù)測(cè)試結(jié)果打印。
(3)MBI模塊循環(huán)測(cè)試
對(duì)MBI模塊每個(gè)節(jié)點(diǎn)進(jìn)行循環(huán)測(cè)試,依次進(jìn)行上述所有測(cè)試,測(cè)試函數(shù)邏輯如下:
a. 進(jìn)入循環(huán),根據(jù)循環(huán)次數(shù)依次進(jìn)行IO測(cè)試(RTC測(cè)試)、DPRAM測(cè)試、BIT測(cè)試、通信測(cè)試;
b. 循環(huán)結(jié)束,根據(jù)設(shè)置的參量統(tǒng)計(jì)各個(gè)測(cè)試的失敗次數(shù);
c. 根據(jù)測(cè)試結(jié)果打印。
5 總結(jié)
本文主要介紹了一種基于串行總線接口的1553B總線接口模塊測(cè)試設(shè)備的設(shè)計(jì)與實(shí)現(xiàn),通過(guò)將CPU外置并通過(guò)串行總線與測(cè)試工裝連接,在測(cè)試工裝內(nèi)實(shí)現(xiàn)串行總線接口到并行總線接口的協(xié)議轉(zhuǎn)換以及并行總線接口到自定義總線接口的協(xié)議轉(zhuǎn)換,解決了傳統(tǒng)的1553B總線接口模塊一對(duì)一測(cè)試的問(wèn)題,大大提高了測(cè)試設(shè)備的通用性和可靠性,有效降低了成本,為1553B總線接口模塊的批量測(cè)試驗(yàn)證提供了方法和技術(shù)。
參考文獻(xiàn):
[1] 于海勛, 苗紫暉. 基于1553B的一種測(cè)試系統(tǒng)設(shè)計(jì)[J]. 西安工業(yè)大學(xué)學(xué)報(bào),2009,29(2):172?176.
[2] 國(guó)防科工委. GJB29A?97 數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[S]. 北京:國(guó)防科工委,1997.
[3] 王海鋒,梁晶晶,田苗. 某型測(cè)試系統(tǒng)中1553B 總線通信設(shè)計(jì)與應(yīng)用[J]. 現(xiàn)代電子技術(shù),2013,36(7):44?46.
[4] RaviBudruk,DonAnderson,TomShanley. PCIExpress系統(tǒng)體系結(jié)構(gòu)標(biāo)準(zhǔn)教材[M]. 電子工業(yè)出版社,2005.
[5] 王齊. PCIExpress體系結(jié)構(gòu)導(dǎo)讀[M]. 機(jī)械工業(yè)出版社,2011.