国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的1553B通信模塊的設(shè)計

2010-07-02 10:46:56張晴暉李俊萩段芙蓉徐安排張宏翔
電子技術(shù)應(yīng)用 2010年1期
關(guān)鍵詞:狀態(tài)機寄存器中斷

張晴暉 ,李俊萩 ,段芙蓉 ,徐安排 ,張宏翔

(1.西南林學(xué)院 計算機科學(xué)系,云南 昆明650224;2.成都縱橫測控技術(shù)有限公司,四川 成都610041)

MIL-STD-1553總線是美國國防部制定的一種具有可確定性且傳輸可靠的數(shù)據(jù)總線,被廣泛應(yīng)用于軍用飛機、軍用車輛以及艦載等領(lǐng)域中。目前,1553B總線接口模塊的實現(xiàn)主要有2種方式:一種是采用專用的協(xié)議芯片(如 DDC公司的 BU-61580、HOLT公司的 HI-6110等);另一種是采用FPGA與CPU結(jié)合實現(xiàn)1553B的協(xié)議模塊。

本系統(tǒng)采用后一種方式,硬件上采用PowerPC芯片PPC405EP與Xilinx的FPGA芯片XC3S200為系統(tǒng)的核心芯片,使用VHDL語言實現(xiàn)1553B的總線協(xié)議。與采用專用的協(xié)議芯片實現(xiàn)1553總線接口的方法相比,該方案的成本很低,也很容易根據(jù)需要進行功能擴展,使用靈活。

1 1553總線分析

在MIL-STD-1553總線上有總線控制器、遠程終端和監(jiān)視器3種設(shè)備。其中,最重要的是總線控制器(BCBus Controller),總線上的任何操作都是由BC發(fā)起的(通過發(fā)不同的命令控制總線上的數(shù)據(jù)傳輸);遠程終端(RT-Remote Terminal)接收 BC的命令,并按命令進行相應(yīng)數(shù)據(jù)傳輸;總線監(jiān)視器(BM-Bus Monitor)對總線上的數(shù)據(jù)進行接收和存儲。

1553B總線上數(shù)據(jù)的交互是基于消息機制的。該標(biāo)準(zhǔn)定義了10種消息傳輸格式,而這10種傳輸格式都采用前述的3種字類型,總線上的數(shù)據(jù)傳輸就是采用這10種消息傳輸格式中的一種。其傳輸過程如下:BC通過總線發(fā)送某種命令字,所有的RT接收該命令字,并將命令字中的地址域與自己的地址相比較,相同則接收該命令字;隨后,RT對命令字進行解析,根據(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)生各種錯誤。

圖1 系統(tǒng)框圖

CPU芯片采用AMCC公司的PowerPC405EP。該芯片不僅包括一個高性能的RISC處理器內(nèi)核,還有SDRAM控制器、PCI總線接口、以太網(wǎng)接口、外部ROM和周邊資源控制及串行口、IIC接口、通用I/O口等,支持DMA功能。

系統(tǒng)中的PXI接口是用PowerPC405EP的PCI接口與外部的開關(guān)電路擴展實現(xiàn)的。CPU通過EBC總線與1553模塊通信,其接口電路由FPGA實現(xiàn)。圖1所示接口電路主要完成通道選擇、數(shù)據(jù)環(huán)回等功能。

2.2 總體方案

1553B總線協(xié)議由硬件和軟件配合實現(xiàn)。整體設(shè)計思路是:硬件和軟件采用中斷和查詢2種方式,通過一個共享的數(shù)據(jù)Buffer進行信息交互。下面介紹系統(tǒng)整體數(shù)據(jù)收發(fā)流程。本系統(tǒng)的軟硬件功能就是根據(jù)該流程進行分工和實現(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é)束了,才能進行數(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ù)進行相應(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ù)進行錯誤檢測,并將相應(yīng)的狀態(tài)信息和數(shù)據(jù)組合起來一起存入到接收FIFO中。當(dāng)接收FIFO達到一定容量后,便向CPU產(chǎn)生中斷信號。CPU對FIFO進行讀操作,將數(shù)據(jù)和狀態(tài)取出。接收步驟如下:

(1)硬件邏輯接收總線上的數(shù)據(jù);

(2)硬件邏輯對數(shù)據(jù)進行錯誤檢測,產(chǎn)生狀態(tài)信息;

(3)硬件邏輯將數(shù)據(jù)和狀態(tài)信息寫入接收FIFO中;

(4)當(dāng)接收FIFO達到一定容量時便產(chǎn)生中斷信號;

(5)CPU響應(yīng)外部中斷;

(6)CPU對FIFO進行讀操作,將狀態(tài)信息和數(shù)據(jù)取走;

(7)CPU對狀態(tài)信息進行解析,決定對數(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種),具備獨特的功耗和配置功能以及防克隆(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)定時和超時控制電路等。

圖2 FPGA功能框圖

3.1 總線發(fā)送電路實現(xiàn)

如果沒有注入錯誤的要求,編碼器的實現(xiàn)就比較簡單,只需要用若干倍1553B的傳輸速率(本設(shè)計采用12倍頻)將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),加上相應(yīng)的同步頭即可。在硬件上數(shù)據(jù)發(fā)送電路主要由一個狀態(tài)機、雙口FIFO、注入錯誤標(biāo)志寄存器以及控制電路組成。狀態(tài)機的狀態(tài)圖如圖3所示。復(fù)位之后,該狀態(tài)機在每個時鐘的上升沿都檢測FIFO中是否有數(shù)據(jù),若為空則停留在空閑狀態(tài)。一旦上層軟件通過EBC接口向FIFO寫入數(shù)據(jù)后,硬件電路自動將數(shù)據(jù)讀出。進入到同步頭發(fā)送狀態(tài),硬件電路根據(jù)命令寄存器的控制字送出相應(yīng)的串行同步頭,隨后進入數(shù)據(jù)發(fā)送狀態(tài)。在每個時鐘沿,移位寄存器將數(shù)據(jù)寄存器的數(shù)據(jù)移出,進行曼碼編碼后發(fā)出,同時,數(shù)據(jù)計數(shù)器自動加1。當(dāng)計數(shù)值為16時,則轉(zhuǎn)入到奇偶校驗狀態(tài),將異或得到的檢驗位編碼后發(fā)出。

圖3 數(shù)據(jù)發(fā)送狀態(tài)機

本系統(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)機中加入對應(yīng)的電路,檢測錯誤寄存器中的標(biāo)志位,并產(chǎn)生對應(yīng)的錯誤。

3.2 總線接收電路實現(xiàn)

無論是BC還是RT都需要對收到的數(shù)據(jù)進行解析。接收電路的主要功能有:曼碼的解碼、串并轉(zhuǎn)換、同步頭檢測、奇偶校驗以及各種錯誤的檢測。如圖4所示,狀態(tài)機復(fù)位之后進入同步頭搜索狀態(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)機的每個階段都要檢測各種錯誤,如果出錯則回到同步頭搜索狀態(tài)。同時,產(chǎn)生錯誤標(biāo)志和中斷信號。

圖4 數(shù)據(jù)接收狀態(tài)機

3.3 硬件中斷功能的實現(xiàn)

如上所述,本系統(tǒng)軟件和硬件的通信主要通過中斷和查詢的方式進行信息交互。硬件電路實現(xiàn)了如下中斷功能:

(1)每收到1個命令/狀態(tài)字產(chǎn)生中斷;

(2)數(shù)據(jù)長度計數(shù)器中斷和使能。軟件對收到的命令/狀態(tài)字進行解析,如果有數(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è)計包括板載嵌入程序、主機驅(qū)動程序設(shè)計。板載嵌入程序和主機驅(qū)動程序通過共享PPC外掛內(nèi)存來完成數(shù)據(jù)交互,板載嵌入式程序通過訪問FPGA的寄存器和FIFO來完成硬件操作和數(shù)據(jù)收發(fā)。其結(jié)構(gòu)如圖5所示。

圖5 軟件結(jié)構(gòu)圖

圖6 1553收發(fā)器的仿真波形

主機驅(qū)動程序的開發(fā)平臺是LabWindows/CVI,為用戶提供方便實用的API接口函數(shù)及其定義。

嵌入式程序的開發(fā)平臺是Tornado2.2。該程序主要完成模塊的初始化、各通道BCRTBM的消息解析、中斷服務(wù)處理、與主機交互等功能。其中消息解析是嵌入式程序的核心部分。

當(dāng)模塊選項為多功能模塊時,要求各通道在同一個工作時期可同時作為BC、BM和最多31個RT進行工作。當(dāng)被測系統(tǒng)的可得終端有限時,又希望獲得充足完備的測試,多功能模塊將提供充足的終端用以測試。為了能同時且正確充當(dāng) BC、BM、RT 3個不同的角色,模塊的嵌入式程序設(shè)計引入了可編程邏輯設(shè)計的狀態(tài)機設(shè)計思想。BC、BM、RT各自擁有自己的狀態(tài)機。

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)用。

[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.

猜你喜歡
狀態(tài)機寄存器中斷
Lite寄存器模型的設(shè)計與實現(xiàn)
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
分簇結(jié)構(gòu)向量寄存器分配策略研究*
AT89C51與中斷有關(guān)的寄存器功能表解
FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
微處理機(2012年4期)2012-06-13 11:32:24
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
FPGA設(shè)計中狀態(tài)機安全性研究
基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
浮梁县| 卢氏县| 囊谦县| 云南省| 黑龙江省| 军事| 赣州市| 广平县| 平和县| 巴中市| 区。| 徐水县| 宝山区| 上犹县| 浦北县| 城固县| 兴仁县| 江孜县| 新安县| 上犹县| 高安市| 宝清县| 南投县| 西吉县| 黄龙县| 资溪县| 泊头市| 毕节市| 富裕县| 曲靖市| 陈巴尔虎旗| 丰台区| 荣昌县| 长阳| 邵武市| 溆浦县| 丹寨县| 南阳市| 嘉善县| 澎湖县| 鹤庆县|