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