基于FPGA的航空總線協(xié)議接口設(shè)計(jì)
數(shù)據(jù)總線是飛機(jī)航電系統(tǒng)中首先運(yùn)用的數(shù)字電子設(shè)備之一,其典型代表是飛機(jī)內(nèi)部時(shí)分制指令/響應(yīng)式多路傳輸數(shù)據(jù)總線MIL-STD-1553B(簡(jiǎn)稱1553B)。它利用一條屏蔽的雙絞線進(jìn)行帶有時(shí)鐘信息的數(shù)據(jù)傳輸。高可靠性1553B已成為我國(guó)航空航天領(lǐng)域廣泛采用的軍用總線標(biāo)準(zhǔn)。由于1553B總線協(xié)議控制器基本依賴于進(jìn)口的專用器件,價(jià)格昂貴,還受到限制,并且這些器件需要外圍的硬件電路配合工作,如果完成整個(gè)總線接口板的設(shè)計(jì),還需要單獨(dú)的MCU,集成度不高,這樣就在某種程度上限制了設(shè)計(jì)能力。隨著嵌入式技術(shù)的發(fā)展,可編程片上系統(tǒng)設(shè)計(jì)SoPC技術(shù)已廣泛應(yīng)用于諸多領(lǐng)域。這里采用SoPC技術(shù),以Virtex-II Pro FPGA為核心,實(shí)現(xiàn)1553B航空總線傳輸協(xié)議的接口邏輯設(shè)計(jì)。
2 1553B航空總線傳輸協(xié)議標(biāo)準(zhǔn)
目前廣泛采用的1553B標(biāo)準(zhǔn)是根據(jù)1973年軍標(biāo)1553原版基礎(chǔ)上發(fā)展。1553B是一種集中控制式、飛機(jī)內(nèi)部時(shí)分指令/響應(yīng)型多路串行數(shù)據(jù)總線標(biāo)準(zhǔn)。具有高可靠性和靈活性。已經(jīng)成為現(xiàn)代航空機(jī)載系統(tǒng)設(shè)備互聯(lián)的關(guān)鍵技術(shù)。廣泛應(yīng)用于飛機(jī)、艦船等武器平臺(tái)。1553B數(shù)據(jù)總線的傳輸速率為1Mb/s,協(xié)議規(guī)定3種字:命令字、數(shù)據(jù)字和狀態(tài)字。字的長(zhǎng)度為20 bit,且由同步頭(3 bit)消息塊(16 bit)和奇偶位(1 bit)3部分組成。信息量最大長(zhǎng)度為32。總線系統(tǒng)由一個(gè)總線控制器(BC)與不多于31個(gè)的遠(yuǎn)程終端(RT)組成,有時(shí)系統(tǒng)中還可加入總線監(jiān)控器(MT)??偩€上傳輸?shù)男畔⒏袷街饕蠦C到RT,RT到BC,RT到RT,以及廣播方式和系統(tǒng)控制方式。
3 系統(tǒng)設(shè)計(jì)
該系統(tǒng)采用Xilinx公司的Virtex-II Pm XC2VP30 FPGA為核心,該器件內(nèi)部帶有2個(gè)PowerPC 405處理器核。總線接口協(xié)議實(shí)現(xiàn)是基于Xilinx Virtex-II Pro開(kāi)發(fā)系統(tǒng)平臺(tái),Virtex-II Pro開(kāi)發(fā)平臺(tái)是整個(gè)系統(tǒng)的核心。這樣可以快速搭建1553B總線實(shí)現(xiàn)平臺(tái)。系統(tǒng)的硬件平臺(tái)主要由Vinex-II Pro開(kāi)發(fā)板、總線轉(zhuǎn)換器、總線終端設(shè)備和主控計(jì)算機(jī)構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。
在系統(tǒng)開(kāi)發(fā)中,為了提高開(kāi)發(fā)效率,同時(shí)系統(tǒng)主要驗(yàn)證的就是1553B總線協(xié)議模塊,因此可充分利用Xilinx公司的Virtex-II Pro開(kāi)發(fā)板。開(kāi)發(fā)板上具有豐富的資源,主要包括:XC2VP30器件、SDRAM (可擴(kuò)展到2 GB)、高速SelectMAPFPGA配置PROM、RS232串口、嵌入平臺(tái)的USB配置端口、高速系統(tǒng)擴(kuò)展接口(與FPGA的I/O引腳相連)并可選擇差分或單端模式、PS2接口、AC97音頻接口、板上10/100 M以太網(wǎng)設(shè)備等等。這些豐富的板上資源為1553B總線協(xié)議邏輯的開(kāi)發(fā)提供支持。
1553B總線協(xié)議開(kāi)發(fā)主要在FPGA器件中開(kāi)發(fā),因此FPGA本身性能的好壞將影響系統(tǒng)的開(kāi)發(fā)。XC2VP30內(nèi)部具有2個(gè)PowerPC 405處理器核、13 969個(gè)Slices、分布式RAM為428 KB、136個(gè)乘法器單元、塊RAM為2 448 KB、8個(gè)DCM、8個(gè)多吉比特收發(fā)器。因此,選用XC2VP30FPGA完全滿足1553B總線邏輯開(kāi)發(fā)需求。
該系統(tǒng)設(shè)計(jì)采用Virtex-II Pro系列XC12VP30型FPGA,而FPGA的配置則是硬件設(shè)計(jì)中很關(guān)鍵的問(wèn)題。FPGA配置是對(duì)其內(nèi)容進(jìn)行編程。采用SRAM工藝的FPGA,每次上電后都需重新配置。XC2VP30通過(guò)模式引腳選擇配置模式,其中M2、M1和M0是專用引腳,HSWAP_EN和配置模式引腳相組合,決定I/O引腳在配置過(guò)程中是否具有上拉功能。默認(rèn)情況下,HSWAP_EN置為高電平,此時(shí)在配置過(guò)程中關(guān)閉I/O引腳的上拉功能;當(dāng)其置為低電平時(shí),I/O引腳具有上拉功能。當(dāng)選擇某些配置模式時(shí),CCLK可作為FPGA的信號(hào)輸出引腳,也可作為外部時(shí)鐘的輸入信號(hào),這些引腳不受VCCO的影響,而是采用2.5 V的輔助電源(VCCAUX)。
圖2給出的是FPGA配置引腳連接電路圖。XC2VP30支持5種配置模式,分別是Slave-serial模式、Master-serial模式、Slave SelectMAP模式、MasterSelectMAP模式和Boundary-Scan (IEEE 1532/IEEE 1149)模式。通過(guò)調(diào)整配置引腳MO、M1、M2調(diào)整配置模式。該系統(tǒng)設(shè)計(jì)只提供兩種配置模式,在XC2VP30的配置電路中將M0引腳拉為高電平,這樣只能選擇MasterSelectMAP模式和Boundary-Scan模式(即邊界掃描模式)。Master SelectMAP模式是SelectMAP模式的主版本模式,在由XC2VP30所提供的CCLK信號(hào)的作用下,器件通過(guò)字節(jié)寬度數(shù)據(jù)總線即配置器件XCF32P的[D7:D0],除了CCLK是由FPGA提供之外,配置時(shí)序與Slave SelectMAP模式相似。在邊界掃描模式下,XC2VP30通過(guò)專用配置引腳CCLK,DONE,PROG_B,TDI,TDO,MS,TCK按照IEEE 1149.1標(biāo)準(zhǔn)進(jìn)行配置。
4 1553B航空總線協(xié)議接口的SoPC設(shè)計(jì)
SoPC的開(kāi)發(fā)設(shè)計(jì)與傳統(tǒng)嵌入式系統(tǒng)設(shè)計(jì)不同,分為硬件開(kāi)發(fā)和軟件開(kāi)發(fā)。系統(tǒng)設(shè)計(jì)思想是充分利用FPGA片上資源,以PPC405處理器硬核為核心,1553B接口邏輯為主要設(shè)計(jì)內(nèi)容的SoPC系統(tǒng),在FPGA內(nèi)部實(shí)現(xiàn)系統(tǒng)的總線架構(gòu)、外設(shè)接口、編碼/解碼、消息處理模塊等系統(tǒng)部件和功能,各功能部件在FPGA的內(nèi)部都是通過(guò)IP核的形式連接在一起的。Xilinx為了用戶能夠?qū)⒆孕芯帉?xiě)的邏輯方便連接到OPB總線上,提供總線與用戶邏輯之間的接口,即IPIF(IP Interface,IP接口),利用IPIF便可解決總線接口信號(hào),總線協(xié)議以及其他接口問(wèn)題。
4.1 曼徹斯特編碼,解碼模塊
曼徹斯特碼編碼/解碼是1553B總線接口重要組成部分,曼徹斯特碼編解碼模塊設(shè)計(jì)將直接影響總線接口的性能。系統(tǒng)編碼模塊完成曼徹斯特碼的編解碼,并檢測(cè)錯(cuò)誤。它能夠接收具有有效同步字頭的曼徹斯特碼,并對(duì)其譯碼,識(shí)別類型和串并轉(zhuǎn)換、奇偶校驗(yàn)等;編碼模塊能將處理器輸出的并行二進(jìn)制數(shù)據(jù)進(jìn)行曼徹斯特碼編碼,再加上同步字頭及奇偶位,從而輸出滿足符合1553B標(biāo)準(zhǔn)的字。
曼徹斯特碼是一種廣泛應(yīng)用于航空電子綜合系統(tǒng)中的總線數(shù)據(jù)傳輸?shù)碾p極性碼。它在每個(gè)碼位中點(diǎn)存在一個(gè)跳變,1信號(hào)是一個(gè)由1到0的負(fù)跳沿,而0信號(hào)是由0到1的正跳沿。在MIL-STD-1553B協(xié)議中其數(shù)據(jù)格式如圖3所示。
系統(tǒng)的編碼,解碼模塊設(shè)計(jì)采用同步方式,這樣,所有的觸發(fā)器都南一個(gè)公共時(shí)鐘信號(hào)實(shí)現(xiàn)同步。因此,可以很好解決毛刺和一些競(jìng)爭(zhēng)與冒險(xiǎn)。
編碼模塊主要分為檢測(cè)編碼周期是否開(kāi)始并產(chǎn)生同步字頭、串并轉(zhuǎn)換并產(chǎn)生奇偶校驗(yàn)位、對(duì)數(shù)據(jù)和奇偶校驗(yàn)位進(jìn)行編碼。
評(píng)論