《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的1553B通信模塊的設(shè)計
基于FPGA的1553B通信模塊的設(shè)計
張晴暉1,李俊萩1,段芙蓉2,徐安排1,張宏翔1
1.西南林學(xué)院 計算機(jī)科學(xué)系,云南 昆明650224;2.成都縱橫測控技術(shù)有限公司,四川 成都610
摘要: 提出一種將FPGA與PowerPC芯片結(jié)合,實現(xiàn)MIL-STD-1553B通信模塊的技術(shù)方案。詳細(xì)討論了該系統(tǒng)的結(jié)構(gòu)、1553B總線協(xié)議在FPGA上的實現(xiàn)以及系統(tǒng)的軟件結(jié)構(gòu)等關(guān)鍵技術(shù)。該系統(tǒng)方案與采用專用的協(xié)議芯片實現(xiàn)1553總線接口的方法相比,具有更靈活、成本更低、可移植性好等特點。
關(guān)鍵詞: FPGA PowerPC MIL-STD-1553B 1553B總線 CPU
中圖分類號: TP336
文獻(xiàn)標(biāo)識碼: 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總線是美國國防部制定的一種具有可確定性且傳輸可靠的數(shù)據(jù)總線,被廣泛應(yīng)用于軍用飛機(jī)、軍用車輛以及艦載等領(lǐng)域中。目前,1553B總線接口模塊的實現(xiàn)主要有2種方式:一種是采用專用的協(xié)議芯片(如DDC公司的BU-61580、HOLT公司的HI-6110等);另一種是采用FPGACPU結(jié)合實現(xiàn)1553B的協(xié)議模塊。
    本系統(tǒng)采用后一種方式,硬件上采用PowerPC芯片PPC405EP與Xilinx的FPGA芯片XC3S200為系統(tǒng)的核心芯片,使用VHDL語言實現(xiàn)1553B的總線協(xié)議。與采用專用的協(xié)議芯片實現(xiàn)1553總線接口的方法相比,該方案的成本很低,也很容易根據(jù)需要進(jìn)行功能擴(kuò)展,使用靈活。
1 1553總線分析
    在MIL-STD-1553總線上有總線控制器、遠(yuǎn)程終端和監(jiān)視器3種設(shè)備。其中,最重要的是總線控制器(BC-Bus Controller),總線上的任何操作都是由BC發(fā)起的(通過發(fā)不同的命令控制總線上的數(shù)據(jù)傳輸);遠(yuǎn)程終端(RT-Remote Terminal)接收BC的命令,并按命令進(jìn)行相應(yīng)數(shù)據(jù)傳輸;總線監(jiān)視器(BM-Bus Monitor)對總線上的數(shù)據(jù)進(jìn)行接收和存儲。
    1553B總線上數(shù)據(jù)的交互是基于消息機(jī)制的。該標(biāo)準(zhǔn)定義了10種消息傳輸格式,而這10種傳輸格式都采用前述的3種字類型,總線上的數(shù)據(jù)傳輸就是采用這10種消息傳輸格式中的一種。其傳輸過程如下:BC通過總線發(fā)送某種命令字,所有的RT接收該命令字,并將命令字中的地址域與自己的地址相比較,相同則接收該命令字;隨后,RT對命令字進(jìn)行解析,根據(jù)命令完成相應(yīng)的操作(接收數(shù)據(jù)字、發(fā)送數(shù)據(jù)字、同步、自檢等)。這些操作都會產(chǎn)生相應(yīng)的狀態(tài)字發(fā)送給BC。BC通過狀態(tài)字來判斷RT是否工作正常。如果RT接收到的命令字中的終端地址是廣播地址,則所有的RT都接收該命令,但都不返回狀態(tài)字給BC。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)結(jié)構(gòu)

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

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

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

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

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

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

    經(jīng)過仿真和實際驗證,本系統(tǒng)滿足1553B總線協(xié)議的要求。同時,該設(shè)計已經(jīng)成為產(chǎn)品,在實際中得到了應(yīng)用。
參考文獻(xiàn)
[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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩视频一区二区三区| 亚洲在线视频| 欧美日韩一级大片网址| 久久成人一区| 亚洲一区二区三区免费观看| 亚洲精品国产欧美| 欧美一级黄色网| 在线精品国产欧美| 国产婷婷色综合av蜜臀av | 久久av最新网址| 亚洲视频一起| 亚洲电影网站| 亚洲欧美一区二区视频| 亚洲黄色一区| 1024国产精品| 国产精品三级视频| 欧美日韩xxxxx| 久久精品在线播放| 一区二区精品在线| 亚洲精品一二区| 欧美影院视频| 亚洲欧洲av一区二区三区久久| 亚洲蜜桃精久久久久久久| 国产一区香蕉久久| 国产精自产拍久久久久久蜜| 国产精品a级| 欧美三区不卡| 蜜臀91精品一区二区三区| 亚洲在线观看免费视频| 一本色道久久99精品综合 | 精品不卡一区| 国产伦精品一区二区三区在线观看| 欧美视频1区| 欧美日韩亚洲国产精品| 欧美激情一区二区三区高清视频| 久久久久在线观看| 欧美一区三区二区在线观看| 亚洲一区国产一区| 亚洲资源在线观看| 亚洲女人天堂av| 亚洲欧美日韩在线一区| 亚洲永久免费视频| 午夜在线电影亚洲一区| 午夜视频久久久| 午夜在线成人av| 91久久在线观看| 亚洲欧洲一区二区三区久久| 亚洲人成啪啪网站| 亚洲乱码国产乱码精品精可以看 | 亚洲日韩欧美视频一区| 亚洲美女av黄| 亚洲日本激情| 国产亚洲欧美另类中文 | 国产精品一区二区三区观看| 国产美女精品免费电影| 国产欧美日韩精品一区| 国产精品综合网站| 国产一区白浆| 亚洲高清视频一区二区| 在线观看欧美日韩| 亚洲伦理精品| 99精品免费视频| 亚洲一区二区三区免费在线观看| 午夜国产不卡在线观看视频| 久久精品五月| 99精品视频网| 午夜亚洲影视| 久久综合九色欧美综合狠狠| 欧美高清视频www夜色资源网| 欧美日韩在线免费视频| 国产精品国产三级欧美二区| 国产日韩欧美二区| 亚洲第一毛片| 在线视频免费在线观看一区二区| 亚洲欧美激情四射在线日 | 久久www成人_看片免费不卡| 亚洲人成网站777色婷婷| 日韩视频在线一区二区| 亚洲女人av| 欧美激情亚洲一区| 国产欧美日韩精品专区| 亚洲国产成人91精品| 国产自产在线视频一区| 亚洲精品小视频在线观看| 亚洲欧美欧美一区二区三区| 亚洲人成毛片在线播放| 午夜精品久久久久久久男人的天堂| 久久全球大尺度高清视频| 欧美人与性动交cc0o| 国产亚洲精品久久久| 亚洲精选久久| 欧美在线三区| 日韩视频免费在线| 蜜臀99久久精品久久久久久软件| 国产精品久99| 国产综合久久久久影院| 亚洲欧美日韩精品久久奇米色影视| 亚洲激情一区二区三区| 欧美一区视频| 国产精品美女诱惑| 亚洲国产欧美精品| 欧美一区二区高清| 欧美在线观看一区二区| 欧美日韩国产麻豆| 激情婷婷亚洲| 久久成人免费电影| 午夜一区在线| 欧美日韩国产页| 国产精品一区二区在线| 亚洲美女黄网| 91久久精品一区二区别| 亚洲一级片在线观看| 欧美国产精品专区| 国内精品久久久久伊人av| 亚洲特级片在线| 99av国产精品欲麻豆| 久久综合成人精品亚洲另类欧美| 国产亚洲一区二区三区在线观看 | 亚洲午夜视频在线观看| 日韩视频一区二区在线观看 | 久久久午夜视频| 国产精品久久久久99| 亚洲作爱视频| 夜夜嗨av一区二区三区网页| 毛片av中文字幕一区二区| 国产欧美日韩综合| 亚洲视频日本| 在线亚洲免费| 欧美精品少妇一区二区三区| 在线不卡免费欧美| 亚洲国产精品久久| 久久久久久久尹人综合网亚洲| 国产精品视频一二三| 欧美一区二区黄色| 欧美一区二区三区视频在线观看 | 亚洲在线日韩| 亚洲欧美国产一区二区三区| 欧美日韩国产综合视频在线| 亚洲乱码精品一二三四区日韩在线| 亚洲啪啪91| 免费日韩成人| 亚洲精品无人区| aa级大片欧美三级| 欧美激情按摩| 亚洲精品视频免费观看| 在线视频欧美日韩精品| 欧美人交a欧美精品| 亚洲电影激情视频网站| 夜夜夜久久久| 欧美日韩午夜精品| 一本色道久久综合亚洲精品小说| 性伦欧美刺激片在线观看| 国产伦精品免费视频| 欧美一区二区三区免费观看视频 | 欧美日韩在线直播| 亚洲日韩中文字幕在线播放| 99v久久综合狠狠综合久久| 欧美日本一道本在线视频| 一个色综合av| 性高湖久久久久久久久| 国产精品午夜在线观看| 欧美亚洲系列| 欧美亚洲一区二区三区| 欧美黄色影院| 正在播放亚洲一区| 久久久噜噜噜久久中文字免| 在线看国产日韩| 亚洲综合二区| 狠狠色噜噜狠狠色综合久| 99re6热只有精品免费观看| 国产精品自拍视频| 最新高清无码专区| 国产精品视频男人的天堂| 亚洲激情社区| 国产精品久久久久久久电影| 亚洲福利视频二区| 国产精品99免视看9| 亚洲国产精品嫩草影院| 国产精品久久午夜夜伦鲁鲁| 亚洲激情成人在线| 国产精品免费一区二区三区在线观看 | 久久精品毛片| 亚洲日本va午夜在线影院| 欧美亚洲系列| 亚洲精品永久免费精品| 久久免费观看视频| 亚洲视频在线观看三级| 美女被久久久| 亚洲一区激情| 欧美日本一道本| 久久精品国产77777蜜臀| 国产精品v日韩精品| 亚洲精品视频在线播放| 国产女同一区二区| 在线亚洲自拍| 亚洲国产美女| 久久久综合免费视频| 亚洲一区二区免费视频| 欧美精品一区二区三区在线播放| 久久精品国产一区二区电影|