1 引言 數(shù)據(jù)總線是飛機(jī)航電系統(tǒng)中首先運(yùn)用的數(shù)字電子設(shè)備之一,MIL-STD-1553B 就是其典型代表,它利用一條屏蔽的雙絞線進(jìn)行帶有時(shí)鐘信息的數(shù)據(jù)傳輸。1553B 具有高可靠性的特點(diǎn),它已經(jīng)成為我國航空航天領(lǐng)域廣泛采用的軍用總線標(biāo)準(zhǔn)。由于1553B 總線協(xié)議控制器基本依賴于進(jìn)口的專用芯片,價(jià)格昂貴,還受到限制,并且這些芯片需要很多外圍的硬件電路配合工作,如果完成整個(gè)總線接口板的設(shè)計(jì),還需要單獨(dú)的MCU,集成度不高,這樣就在某種程度上限制了設(shè)計(jì)能力。隨著嵌入式技術(shù)的發(fā)展,可編程片上系統(tǒng)設(shè)計(jì)(System on aProgrammable Chip,SOPC)技術(shù)已經(jīng)在很多領(lǐng)域得到實(shí)際應(yīng)用。本文采用SOPC 技術(shù),以Xilinx 公司的Virtex-II Pro FPGA 為核心,實(shí)現(xiàn)1553B 總線傳輸協(xié)議的接口邏輯設(shè)計(jì)。 2 1553B 數(shù)據(jù)總線傳輸協(xié)議簡介 現(xià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ī)、艦船等武器平臺上。1553B 數(shù)據(jù)總線的傳輸速率為1Mbps,協(xié)議規(guī)定3 種字:命令字、數(shù)據(jù)字和狀態(tài)字。字的長度為20 個(gè)bit,且由3 部分組成:同步頭(3bit),消息塊(16bit)和奇偶位(1bit)。信息量最大長度為32 個(gè)字?偩系統(tǒng)由一個(gè)總線控制器(BC)與不多于31 個(gè)的遠(yuǎn)程終端(RT)組成,有時(shí)系統(tǒng)中還可以加入總線.(MT),由于終端類型的不同,可辨別出命令字和狀態(tài)字,命令字由BC 發(fā)出,而狀態(tài)字則由RT 發(fā)出。總線上傳輸?shù)男畔⒏袷街饕蠦C 到RT,RT到BC,RT 到RT,廣播方式和系統(tǒng)控制方式。 3 系統(tǒng)結(jié)構(gòu)及功能 系統(tǒng)采用 Xilinx 公司的Virtex-II Pro XC2VP30 FPGA 為核心,其內(nèi)部帶有2 個(gè)PowerPC405 處理器核?偩接口協(xié)議實(shí)現(xiàn)是基于Xilinx Virtex-II Pro 開發(fā)系統(tǒng)平臺的,Virtex-II Pro開發(fā)平臺是整個(gè)系統(tǒng)的核心,可以快速的搭建1553B 總線實(shí)現(xiàn)平臺。系統(tǒng)的硬件平臺主要由Virtex-II Pro 開發(fā)板、總線轉(zhuǎn)換器、總線終端設(shè)備和PC 機(jī)構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1 所示。 在系統(tǒng)的開發(fā)中,為了提高開發(fā)效率,同時(shí)系統(tǒng)主要驗(yàn)證的就是1553B 總線協(xié)議模塊,因此可以充分利用Xilinx 公司的Virtex-II Pro 開發(fā)板。開發(fā)板上具有豐富的資源,主要包括:XC2VP30 芯片、SDRAM(可以擴(kuò)展到2GB)、高速SelectMAP FPGA 配置PROM、RS232 串口、嵌入平臺的USB 配置端口、高速系統(tǒng)擴(kuò)展接口(與FPGA 的I/O 管腳相連)并可選擇差分或單端模式、PS2 接口、AC97 音頻接口、板上10/100M 以太網(wǎng)設(shè)備等等。這些豐富的板上資源為1553B 總線協(xié)議邏輯的開發(fā)提供了支持。 1553B 總線協(xié)議開發(fā)主要在FPGA 芯片中開發(fā),因此FPGA 本身性能的好壞將影響系統(tǒng)的開發(fā)。XC2VP30 內(nèi)部具有兩個(gè)PowerPC 405 處理器核、13969 個(gè)Slices、分布式RAM 為428Kb、136 個(gè)乘法器單元、塊RAM 為2448Kb、8 個(gè)DCM、8 個(gè)多吉比特收發(fā)器。由此可見,系統(tǒng)選用的FPGA 完全可以滿足1553B 總線邏輯開發(fā)的需求;赬ilinx 公司的Virtex-IIPro 開發(fā)板搭建起來的1553B 總線開發(fā)平臺共分為4 個(gè)部分。其中各部分的功能說明如下:Virtex-II Pro 開發(fā)板:主要完成與PC 機(jī)通信功能,接收或向總線終端設(shè)備發(fā)送數(shù)據(jù)并將其轉(zhuǎn)換成1553B 總線協(xié)議格式。 PC 機(jī):系統(tǒng)通過PC 機(jī)對整個(gè)系統(tǒng)運(yùn)行進(jìn)行控制,如開始、運(yùn)行、結(jié)束等命令都是通過PC 機(jī)由串口發(fā)送給開發(fā)板。 總線終端設(shè)備:采用單片機(jī)作為總線終端設(shè)備的核心,它與 FPGA 采用8 位并行數(shù)據(jù)總線進(jìn)行數(shù)據(jù)傳遞。由總線終端設(shè)備向開發(fā)板發(fā)送數(shù)據(jù),通過1553B 總線協(xié)議模塊轉(zhuǎn)換成協(xié)議格式,同時(shí)1553B 總線協(xié)議模塊也可以接收來自總線的數(shù)據(jù),并將其轉(zhuǎn)換成總線終端設(shè)備可以接收的數(shù)據(jù)格式,總線終端設(shè)備通過判斷發(fā)送數(shù)據(jù)與接收數(shù)據(jù),可以確定 1553B 總線協(xié)議轉(zhuǎn)換模塊的有效性。 總線轉(zhuǎn)換器:由于 1553B 總線上傳輸?shù)氖请p極性的差分信號,因此,開發(fā)板在收發(fā)數(shù)據(jù)時(shí)首先要進(jìn)行電平轉(zhuǎn)換以及相應(yīng)的調(diào)制解調(diào),總線轉(zhuǎn)換器就是完成這部分功能的。 4 1553B 總線接口邏輯的SOPC 設(shè)計(jì) SOPC 的開發(fā)過程與傳統(tǒng)的嵌入式系統(tǒng)設(shè)計(jì)不同,可以分為硬件開發(fā)和軟件開發(fā)兩個(gè)流程。Xilinx 公司的嵌入式開發(fā)工具EDK(Embeded Development Kit)SOPC 開發(fā)套件,可以進(jìn)行Power PC 硬核嵌入式微處理器的開發(fā)工作,使用靈活方便,帶有豐富的IP 資源,是目前性能比較優(yōu)異的嵌入式微處理器開發(fā)工具,系統(tǒng)設(shè)計(jì)中使用的為EDK8.2 版本。應(yīng)用EDK開發(fā)SOPC 系統(tǒng)過程中可以與ISE(Integrated Software Environment)軟件配合使用,ISE 是Xilinx 公司FPGA/CPLD 的集成開發(fā)環(huán)境,該軟件環(huán)境集成了FPGA 的整個(gè)開發(fā)過程所用到的工具。在本文1553B 總線接口邏輯的設(shè)計(jì)過程中,對于1553B 的編碼、解碼等核心模塊,就是在ISE 環(huán)境下利用Verilog HDL 編寫并調(diào)試通過,然后通過EDK 嵌入到系統(tǒng)當(dāng)中的。 4.1 編碼/解碼模塊 曼徹斯*編碼/解碼是1553B 總線接口重要的組成部分,曼徹斯*編解碼模塊設(shè)計(jì)的好壞直接影響總線接口的性能。系統(tǒng)編碼模塊完成的是曼徹斯*的編碼及解碼,并檢測錯(cuò)誤。它能夠接收具有有效同步字頭的曼徹斯*,并進(jìn)行譯碼,以及識別其類型和串并轉(zhuǎn)換、奇偶校驗(yàn)等;編碼模塊能將處理器輸出的并行二進(jìn)制數(shù)據(jù)進(jìn)行曼徹斯*編碼,再加上同步字頭及奇偶位,從而滿足符合1553B 標(biāo)準(zhǔn)的字進(jìn)行輸出。 曼徹斯*是一種廣泛應(yīng)用于航空電子綜合系統(tǒng)中的總線數(shù)據(jù)傳輸?shù)碾p極性碼。它在每個(gè)碼位中點(diǎn)存在一個(gè)跳變,1 信號是一個(gè)由1 到0 的負(fù)跳沿,而0 信號是由0 到1 的正跳沿。在MIL-STD-1553B 協(xié)議中其數(shù)據(jù)格式如圖2 所示。 在系統(tǒng)的編碼/解碼模塊設(shè)計(jì)中采用同步設(shè)計(jì)的方法,這樣,所有的觸發(fā)器都由一個(gè)公共時(shí)鐘信號來同步。因此,可以很好的解決毛刺和一些競爭與冒險(xiǎn)。 編碼模塊主要分為三個(gè)部分,分別為檢測編碼周期是否開始并產(chǎn)生同步字頭、串并轉(zhuǎn)換并產(chǎn)生奇偶校驗(yàn)位、對數(shù)據(jù)和奇偶校驗(yàn)位進(jìn)行編碼。下面給出了部分編碼模塊的源代碼: always @(posedge enc_clk or negedge rst_n)//檢測編碼周期開始,根據(jù)字型確定同步頭 begin if (!rst_n) sync_bits else if (tx_csw) sync_bits else if (tx_dw) sync_bits else sync_bits end 解碼模塊也可以分為三個(gè)部分,分別為同步字頭檢測、數(shù)據(jù)解碼、串并轉(zhuǎn)換與奇偶校驗(yàn)。 這個(gè)過程與編碼模塊是類似的。 4.2 消息處理模塊 消息處理模塊主要是接收來自 PC 機(jī)的命令,并且將運(yùn)行結(jié)果上傳到PC 機(jī)。為了能夠快速完成系統(tǒng)的開發(fā),采用EDK 自帶的串口控制器IP Core。由于在Virtex-II Pro 開發(fā)板上面已經(jīng)設(shè)計(jì)了與PC 機(jī)相連的RS232 串口,并且配有標(biāo)準(zhǔn)的DB-9 接口,因此只需要通過IPCore 16450-UART 控制器接收和發(fā)送數(shù)據(jù)即可實(shí)現(xiàn)系統(tǒng)與PC 機(jī)的消息處理功能。 4.3 PC 機(jī)和終端機(jī)程序設(shè)計(jì) 系統(tǒng)整個(gè)運(yùn)行過程是,通過PC 機(jī)上的應(yīng)用程序控制FPGA 是否開始工作,如果FPGA開始工作,則接收終端設(shè)備單片機(jī)發(fā)送來的并行數(shù)據(jù),并根據(jù)用戶邏輯對數(shù)據(jù)進(jìn)行解析,并將數(shù)據(jù)送往編碼模塊,編碼后的數(shù)據(jù)經(jīng)過總線轉(zhuǎn)換器送到1553B 總線上,通過測試儀器接收分析。同時(shí),F(xiàn)PGA 也可以接收來自總線上的數(shù)據(jù),在解碼模塊的作用下,完成同步字頭檢測、數(shù)據(jù)解碼、串并轉(zhuǎn)換以及奇偶校驗(yàn)等處理,然后根據(jù)用戶邏輯對數(shù)據(jù)進(jìn)行封裝并送給終端設(shè)備,終端設(shè)備接收到數(shù)據(jù)進(jìn)行存儲,并連同原始發(fā)送數(shù)據(jù)一起通過FPGA 上傳到PC機(jī),以便對數(shù)據(jù)的正確性進(jìn)行判斷與驗(yàn)證。對于PC 機(jī)程序在VC6.0 環(huán)境下采用C++語言開發(fā);終端設(shè)備單片機(jī)程序在Keil 編程環(huán)境,采用c51 語言開發(fā)。由于PC 機(jī)和單片機(jī)程序只是為了驗(yàn)證基于SOPC 開發(fā)的1553B 接口邏輯,不是本文論述重點(diǎn),這里不過多贅述。 5 測試結(jié)果及結(jié)論 本文采用基于 SOPC 的設(shè)計(jì)方法,完成了MIL-STD-1553B .接口邏輯的開發(fā),并且通過儀器對系統(tǒng)進(jìn)行了測試。圖3 是通過Tektronix 公司的TDS3032B 型示波器測得的系統(tǒng)輸出的數(shù)據(jù)波形。測試結(jié)果表明,系統(tǒng)能夠正確的接收和發(fā)送符合1553B 總線接口協(xié)議的數(shù)據(jù),工作穩(wěn)定可靠。 本文作者創(chuàng)新點(diǎn):將 SOPC 技術(shù)應(yīng)用于1553B 總線接口邏輯的開發(fā)中,使系統(tǒng)設(shè)計(jì)簡單,配置更靈活,易于擴(kuò)展,從而擺脫了1553B 總線控制器依賴于國外進(jìn)口芯片的束縛,具有良好的軍事和經(jīng)濟(jì)效益。初步預(yù)測項(xiàng)目經(jīng)濟(jì)效益約為300 萬元。 |