《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的1553B通信模塊的設計
基于FPGA的1553B通信模塊的設計
張晴暉1,,李俊萩1,,段芙蓉2,,徐安排1,張宏翔1
1.西南林學院 計算機科學系,,云南 昆明650224,;2.成都縱橫測控技術有限公司,四川 成都610
摘要: 提出一種將FPGA與PowerPC芯片結合,,實現MIL-STD-1553B通信模塊的技術方案,。詳細討論了該系統(tǒng)的結構、1553B總線協議在FPGA上的實現以及系統(tǒng)的軟件結構等關鍵技術,。該系統(tǒng)方案與采用專用的協議芯片實現1553總線接口的方法相比,,具有更靈活、成本更低,、可移植性好等特點。
中圖分類號: TP336
文獻標識碼: A
Design of 1553B communication module based on FPGA
ZHANG Qing Hui1,,LI Jun Qiu1,,DUAN Fu Rong2,,XU An Pai1,ZHANG Hong Xiang1
1.Dept.of Computer and Information Science,, Southwest Forestry College,, Kunming 650224,China,;2.Chengdu Jovian Measurement & Control Technology Co., Ltd,,Chengdu 610041,China
Abstract: A realization technique of the MIL-STD-1553B communication module is presented, which is a combination of FPGA and PowerPC chip. And the key technologies such as the system structure, the implementation of 1553B bus protocol on FPGA and software architecture are discussed in detail. This method is more flexible, lower cost and portability compared with method using 1553B ASIC chips.
Key words : MIL-STD-1553B,;FPGA,;PowerPC

    MIL-STD-1553總線是美國國防部制定的一種具有可確定性且傳輸可靠的數據總線,被廣泛應用于軍用飛機,、軍用車輛以及艦載等領域中,。目前,1553B總線接口模塊的實現主要有2種方式:一種是采用專用的協議芯片(如DDC公司的BU-61580,、HOLT公司的HI-6110等),;另一種是采用FPGACPU結合實現1553B的協議模塊。
    本系統(tǒng)采用后一種方式,,硬件上采用PowerPC芯片PPC405EP與Xilinx的FPGA芯片XC3S200為系統(tǒng)的核心芯片,,使用VHDL語言實現1553B的總線協議。與采用專用的協議芯片實現1553總線接口的方法相比,,該方案的成本很低,,也很容易根據需要進行功能擴展,使用靈活,。
1 1553總線分析
    在MIL-STD-1553總線上有總線控制器,、遠程終端和監(jiān)視器3種設備。其中,,最重要的是總線控制器(BC-Bus Controller),,總線上的任何操作都是由BC發(fā)起的(通過發(fā)不同的命令控制總線上的數據傳輸);遠程終端(RT-Remote Terminal)接收BC的命令,,并按命令進行相應數據傳輸,;總線監(jiān)視器(BM-Bus Monitor)對總線上的數據進行接收和存儲。
    1553B總線上數據的交互是基于消息機制的,。該標準定義了10種消息傳輸格式,,而這10種傳輸格式都采用前述的3種字類型,總線上的數據傳輸就是采用這10種消息傳輸格式中的一種,。其傳輸過程如下:BC通過總線發(fā)送某種命令字,,所有的RT接收該命令字,并將命令字中的地址域與自己的地址相比較,,相同則接收該命令字,;隨后,,RT對命令字進行解析,根據命令完成相應的操作(接收數據字,、發(fā)送數據字,、同步、自檢等),。這些操作都會產生相應的狀態(tài)字發(fā)送給BC,。BC通過狀態(tài)字來判斷RT是否工作正常。如果RT接收到的命令字中的終端地址是廣播地址,,則所有的RT都接收該命令,,但都不返回狀態(tài)字給BC。
2 系統(tǒng)設計
2.1 系統(tǒng)結構

    系統(tǒng)結構如圖1所示,。1553B的協議處理以及編解碼都由FPGA實現,。在同一電路上集成BC、BM和R/T功能,,可以通過軟件設置來選擇所需的功能,。同時,其綜合了通信和測試功能,,既能夠檢測出各種可能出現的錯誤,,又能根據測試要求產生各種錯誤。

    CPU芯片采用AMCC公司的PowerPC405EP,。該芯片不僅包括一個高性能的RISC處理器內核,,還有SDRAM控制器、PCI總線接口,、以太網接口,、外部ROM和周邊資源控制及串行口、IIC接口,、通用I/O口等,,支持DMA功能。
    系統(tǒng)中的PXI接口是用PowerPC405EP的PCI接口與外部的開關電路擴展實現的,。CPU通過EBC總線與1553模塊通信,,其接口電路由FPGA實現。圖1所示接口電路主要完成通道選擇,、數據環(huán)回等功能,。

2.2 總體方案
    1553B總線協議由硬件和軟件配合實現。整體設計思路是:硬件和軟件采用中斷和查詢2種方式,,通過一個共享的數據Buffer進行信息交互,。下面介紹系統(tǒng)整體數據收發(fā)流程。本系統(tǒng)的軟硬件功能就是根據該流程進行分工和實現的,。
2.2.1 數據發(fā)送流程
    上層軟件以數據結構的形式將控制和數據信息傳輸給硬件邏輯電路,,硬件電路自動地將數據按照控制信息發(fā)送到1553B總線上,。CPU向硬件邏輯發(fā)送數據時,首先應檢測上次的發(fā)送是否已經結束,。具體方法是:讀通道狀態(tài)寄存器發(fā)送完成位,如果有效,,表示上次發(fā)送已經結束了,。只有檢測到上次發(fā)送結束了,才能進行數據的發(fā)送操作,。硬件電路在將數據發(fā)送完之后,,會產生中斷請求。軟件根據中斷請求去查詢狀態(tài)寄存器,,決定下一步的操作,。傳輸流程簡述如下:
    (1)CPU向數據發(fā)送FIFO寫入1個指令字/狀態(tài)字和錯誤控制信息;
    (2)CPU向通道控制寄存器寫入發(fā)送使能信號,;
    (3)CPU向數據發(fā)送FIFO寫入0~32次數據和錯誤控制信息,;
    (4)硬件邏輯檢測到發(fā)送使能信號;
    (5)硬件邏輯自動將存儲在FIFO中的數據順序取出,;
    (6)硬件邏輯根據錯誤控制信息對數據進行相應處理后將數據發(fā)送到1553B總線上,;
    (7)硬件邏輯在發(fā)送消息結束2 μs后,置發(fā)送完成狀態(tài)位,,并產生中斷信號,。
2.2.2 數據接收流程
    硬件邏輯接收到1553B總線上的數據后,對該數據進行錯誤檢測,,并將相應的狀態(tài)信息和數據組合起來一起存入到接收FIFO中,。當接收FIFO達到一定容量后,便向CPU產生中斷信號,。CPU對FIFO進行讀操作,,將數據和狀態(tài)取出。接收步驟如下:
    (1)硬件邏輯接收總線上的數據,;
    (2)硬件邏輯對數據進行錯誤檢測,,產生狀態(tài)信息;
    (3)硬件邏輯將數據和狀態(tài)信息寫入接收FIFO中,;
    (4)當接收FIFO達到一定容量時便產生中斷信號,;
    (5)CPU響應外部中斷;
    (6)CPU對FIFO進行讀操作,,將狀態(tài)信息和數據取走,;
    (7)CPU對狀態(tài)信息進行解析,決定對數據的處理,。
3 總線編解碼的FPGA實現
    本系統(tǒng)中的FPGA芯片采用Xilinx公司的Spartan-3A XC3S200,。該系列產品采用了90 nm工藝,,支持業(yè)界最廣泛的I/O標準(26種),具備獨特的功耗和配置功能以及防克?。╝nti-cloning)安全性優(yōu)勢,。
    FPGA的功能全部采用VHDL語言實現,其功能框圖如圖2所示,。其主要完成的工作有:(1)曼徹斯特碼的編解碼,,包括串/并轉換。(2)1553B協議的消息的解析,,包括同步頭的識別,,以及各種錯誤的識別、奇偶校驗等,。(3)1553B協議的消息發(fā)生,,包括同步頭的產生、各種狀態(tài)位的產生以及各種錯誤信息的產生,。(4)與CPU接口的實現,。(5)各種中斷信號的實現。(6)定時和超時控制電路等,。
3.1 總線發(fā)送電路實現
    如果沒有注入錯誤的要求,,編碼器的實現就比較簡單,只需要用若干倍1553B的傳輸速率(本設計采用12倍頻)將并行數據轉換為串行數據,,加上相應的同步頭即可,。在硬件上數據發(fā)送電路主要由一個狀態(tài)機、雙口FIFO,、注入錯誤標志寄存器以及控制電路組成,。狀態(tài)機的狀態(tài)圖如圖3所示。復位之后,,該狀態(tài)機在每個時鐘的上升沿都檢測FIFO中是否有數據,,若為空則停留在空閑狀態(tài)。一旦上層軟件通過EBC接口向FIFO寫入數據后,, 硬件電路自動將數據讀出,。進入到同步頭發(fā)送狀態(tài),硬件電路根據命令寄存器的控制字送出相應的串行同步頭,,隨后進入數據發(fā)送狀態(tài),。在每個時鐘沿,移位寄存器將數據寄存器的數據移出,,進行曼碼編碼后發(fā)出,,同時,數據計數器自動加1。當計數值為16時,,則轉入到奇偶校驗狀態(tài),,將異或得到的檢驗位編碼后發(fā)出。

    本系統(tǒng)要求具有測試功能,,主要有以下注入錯誤的要求:
    (1)EI_BITCOUNT:消息中指定數據的位數錯誤(不為16位),;
    (2)EI_PARITY:消息中指定數據的校驗位錯誤;
    (3)EI_SYNC:錯誤的同步頭,;
    (4)EI_WORDCOUNT:使消息中的數據長度不等于命令字中的長度,;
    (5)EI_MIDBIT:指定數據位過零點錯誤,比期望位置延時300 ns,;
    (6)EI_MIDSYNC:同步頭的過零點錯誤,比期望位置延時300 ns,;
    (7)EI_BIPHASE:整個位時無過零點,。
    硬件電路要求在狀態(tài)機中加入對應的電路,檢測錯誤寄存器中的標志位,,并產生對應的錯誤,。
3.2 總線接收電路實現
    無論是BC還是RT都需要對收到的數據進行解析。接收電路的主要功能有:曼碼的解碼,、串并轉換,、同步頭檢測、奇偶校驗以及各種錯誤的檢測,。如圖4所示,,狀態(tài)機復位之后進入同步頭搜索狀態(tài)。硬件電路以12倍1553總線傳輸速率的頻率去檢測幾種同步頭,。若收到同步頭,,則將狀態(tài)寄存器中的對應位置位,并轉入數據接收狀態(tài),;否則,,停留在該狀態(tài)下。數據接收狀態(tài)下,,移位寄存器在時鐘沿將經過解碼的數據移入,。在數據計數器計數到16之后轉入到奇偶校驗狀態(tài);之后,,將數據和狀態(tài)寫入到FIFO中,。硬件電路在狀態(tài)機的每個階段都要檢測各種錯誤,如果出錯則回到同步頭搜索狀態(tài),。同時,,產生錯誤標志和中斷信號。

3.3 硬件中斷功能的實現
    如上所述,本系統(tǒng)軟件和硬件的通信主要通過中斷和查詢的方式進行信息交互,。硬件電路實現了如下中斷功能:
    (1)每收到1個命令/狀態(tài)字產生中斷,;
    (2)數據長度計數器中斷和使能。軟件對收到的命令/狀態(tài)字進行解析,,如果有數據準備接收,,將數據長度值寫入數據長度計數器,同時使能計數器,。硬件收到1個數據字,,遞減計數器,直到0產生中斷,,同時禁止該數據計數器中斷,;
    (3)接收FIFO半滿或3/4滿產生中斷;
    (4)接收FIFO全滿(overflow)產生中斷,;
    (5)發(fā)送FIFO為空產生中斷,;
    (6)中斷狀態(tài)/使能寄存器;
    (7)等待超時中斷(接收數據長度不夠),;
    (8)數據計數器中斷處,,打上時間戳;收到每個命令/狀態(tài)字打上時間戳,;發(fā)送的命令/狀態(tài)字的同步頭過零點打上時間戳,。
4 軟件設計
    軟件設計包括板載嵌入程序、主機驅動程序設計,。板載嵌入程序和主機驅動程序通過共享PPC外掛內存來完成數據交互,,板載嵌入式程序通過訪問FPGA的寄存器和FIFO來完成硬件操作和數據收發(fā)。其結構如圖5所示,。

    主機驅動程序的開發(fā)平臺是LabWindows/CVI,,為用戶提供方便實用的API接口函數及其定義。
    嵌入式程序的開發(fā)平臺是Tornado2.2,。該程序主要完成模塊的初始化,、各通道BC\RT\BM的消息解析、中斷服務處理,、與主機交互等功能,。其中消息解析是嵌入式程序的核心部分。
    當模塊選項為多功能模塊時,,要求各通道在同一個工作時期可同時作為BC,、BM和最多31個RT進行工作。當被測系統(tǒng)的可得終端有限時,,又希望獲得充足完備的測試,,多功能模塊將提供充足的終端用以測試。為了能同時且正確充當BC、BM,、RT 3個不同的角色,,模塊的嵌入式程序設計引入了可編程邏輯設計的狀態(tài)機設計思想。BC,、BM,、RT各自擁有自己的狀態(tài)機。
5 測試與結論
    圖6所示為1553收發(fā)器仿真波形圖,。由于篇幅原因,,只顯示了部分功能。該仿真主要驗證了如下過程:軟件通過EBC總線接口將3個待傳輸數據以及對應的控制字寫入到FIFO中,,經過硬件電路轉換為串行數據輸出到差分輸出端,;輸出再環(huán)回到差分輸入端,經過解碼電路再寫入到FIFO中,,產生中斷信號,,并被軟件通過EBC總線將數據和狀態(tài)讀回。

    經過仿真和實際驗證,,本系統(tǒng)滿足1553B總線協議的要求。同時,,該設計已經成為產品,,在實際中得到了應用。
參考文獻
[1] Condor Engineering Inc.MIL-STD-1 553 Tutorial[Z].2000.
[2] Data Device Corporation.MIL-STD-1 553 DESIGNER′S GUIDE[Z].1998.
[3] Applied Micro Circuits Corporation.PowerPC 405EP Embedded Processor datasheet[EB/OL].http://www.appliedmicro. com/MyAMCC/retrieveDocument/PowerPC/405EP/PPC405EP_DS2003.pdf,2003.
[4] Xilinx INC.Spartan-3 FPGA Family:Complete Data Sheet [EB/OL].http://www.xilinx.com/support/documentation/data_sheets/ds099.pdf,,2008.

此內容為AET網站原創(chuàng),,未經授權禁止轉載。