基于1553B總線遠(yuǎn)程終端的FPGA程序設(shè)計
0 引言
1553B總線是MIL-STD-1553美國軍用標(biāo)準(zhǔn)總線的簡稱,在飛機(jī)的航電系統(tǒng)中應(yīng)用廣泛.為了提高可靠性,1553B 總線一般采用雙余度總線結(jié)構(gòu),在1553B 總線上可掛接三種終端類型:總線控制器(BC).遠(yuǎn)程終端(RT)和總線監(jiān)視器(BM).總線網(wǎng)絡(luò)上可掛接32 個終端,在這32 個終端中,遠(yuǎn)程終端的數(shù)量往往最多.目前,為實現(xiàn)1553B 總線通信,大都是開發(fā)獨立的通信接口模塊,不但成本高,整個系統(tǒng)的重量也會因此增加,不利于航空領(lǐng)域的使用.隨著電子技術(shù)的發(fā)展,F(xiàn)PGA已經(jīng)迅速應(yīng)用于各個領(lǐng)域,系統(tǒng)中的各個電路模塊大都包含F(xiàn)PGA 芯片.本文介紹一種使用FPGA 編程,實現(xiàn)1553B總線通信中遠(yuǎn)程終端的方法,本方法具有開發(fā)周期短.方法簡單.可移植性強(qiáng)的特點,可大大降低系統(tǒng)的開發(fā)成本,縮短開發(fā)周期.
1 1553B總線簡介
現(xiàn)代飛機(jī)典型的航電系統(tǒng)及1553B 總線應(yīng)用框圖如圖1所示.1553B總線采用指令/ 響應(yīng)型通信協(xié)議,構(gòu)成1553B 總線傳輸協(xié)議有三要素:命令字.數(shù)據(jù)字和狀態(tài)字,每個字的長度為20 b,且由3部分組成:同步頭(3 b).數(shù)據(jù)段(16 b)和奇偶位(1 b),如圖2所示.
命令字由總線控制器(BC)發(fā)出,共包含20位的長度,前3位是同步頭,最后一位是奇偶校驗位,有效信息為16位,有效信息位中,前5位為RT 的地址場,該場指出了被尋址的終端地址.有1位是發(fā)送/接收(T/R)位,當(dāng)此位為“1”時,命令被尋址的終端發(fā)送消息,為“0”時,則命令被尋址的終端接收消息.另外5位為子地址/方式代碼場,一般情況下,按指示向被尋址終端某一個分地址進(jìn)行通信,當(dāng)這5位全為“0”或全為“1”時定義為方式代碼場.有效信息中的最后5位為計數(shù)/方式碼場,通常情況下,它定義了與該指令相關(guān)的數(shù)據(jù)字?jǐn)?shù),但在前5位為方式場時,它就成了方式控制碼.
數(shù)據(jù)字有20 位長,其中16 位有效信息是總線上傳輸?shù)臄?shù)據(jù)信息.
狀態(tài)字僅僅對指令字響應(yīng),被尋址的遠(yuǎn)程終端發(fā)出,并包括5位本RT地址場和8位指示了通信狀態(tài)和本RT及子系統(tǒng)狀態(tài)的信息位.
2 硬件構(gòu)成
信號調(diào)制解調(diào)所需的隔離變壓器和收發(fā)器需單獨購買,本文采用HOLT 公司的PM-DB2745D 芯片和HI-
1573 芯片,從而曼徹斯特編碼解碼往后的部分都可以在一片F(xiàn)PGA芯片內(nèi)實現(xiàn).本文是將1553B總線的遠(yuǎn)程終端集成到海軍某型號飛機(jī)航電子系統(tǒng)的一塊計算機(jī)板上,計算機(jī)板采用的是Altera 公司的Cyclone Ⅲ系列FPGA芯片,硬件連接關(guān)系如圖3所示.
3 FPGA內(nèi)部模塊構(gòu)成
遠(yuǎn)程終端是用戶子系統(tǒng)到數(shù)據(jù)總線上的接口,它在BC 的控制下提取或吸收數(shù)據(jù),總線上的位傳輸速率為1.0 Mb/s,信號以串行數(shù)字脈沖調(diào)制方式在數(shù)據(jù)總線上傳輸,傳輸?shù)臄?shù)據(jù)碼為曼徹斯特Ⅱ型雙電平編碼,邏輯1為雙極編碼信號1/0(即一個正脈沖繼之以一個負(fù)脈沖),邏輯0 為雙極編碼信號0/1(即一個負(fù)脈沖繼之以一個正脈沖),過零跳變發(fā)生在每一位時的中點,如圖4所示.
總線系統(tǒng)中傳輸?shù)南⒏袷接?0種,本文涉及到的有三種消息傳輸方式,即總線控制器向遠(yuǎn)程終端的傳輸.遠(yuǎn)程終端向總線控制器的傳輸和遠(yuǎn)程終端向遠(yuǎn)程終端的傳輸.FPGA的主要編程思路如圖5所示.
實際編程時,對1553B總線數(shù)據(jù)的解析響應(yīng)在數(shù)據(jù)解析模塊.數(shù)據(jù)編碼模塊.主控模塊和軟件接口模塊的協(xié)調(diào)工作下完成,F(xiàn)PGA 內(nèi)部各功能模塊的聯(lián)系如圖6所示.
FPGA中各模塊的詳細(xì)功能詳述如下:
(1)數(shù)據(jù)解析模塊:本模塊對總線上串行數(shù)字脈沖進(jìn)行接收并解析,數(shù)據(jù)解析模塊負(fù)責(zé)檢測命令字.數(shù)據(jù)字.狀態(tài)字的同步頭,1553B 總線的每一條消息都是從命令字開始的,數(shù)據(jù)解析模塊在檢測到命令字同步頭后,將同步頭后邊的16位有效信息進(jìn)行串并轉(zhuǎn)換,經(jīng)過解析后,判定是否對該命令做出響應(yīng),若此命令是發(fā)給本RT終端的,則根據(jù)命令做出接收數(shù)據(jù)或發(fā)送數(shù)據(jù)的響應(yīng),若此命令不是發(fā)給本RT 終端的,則不做出任何響應(yīng).
(2)數(shù)據(jù)編碼模塊:本模塊在接收到數(shù)據(jù)發(fā)送命令時進(jìn)行工作,主要完成對發(fā)送數(shù)據(jù)的曼徹斯特Ⅱ型雙電平編碼.
(3)主控模塊:本模塊控制各模塊協(xié)調(diào)工作,為各模塊提供正常工作的時鐘信號,當(dāng)數(shù)據(jù)解析模塊接收到的是接收數(shù)據(jù)命令時,將數(shù)據(jù)解析模塊解析得到的數(shù)據(jù)字存儲到一個雙口RAM中,記為RAM1,等待CPU前來讀取,RAM1 被劃分為32 個區(qū)域,對應(yīng)此RT 終端的32 個子地址;當(dāng)數(shù)據(jù)解析模塊接收到的是發(fā)送數(shù)據(jù)命令時,將CPU事先存儲在另一個雙口RAM中的數(shù)據(jù)發(fā)送給數(shù)據(jù)編碼模塊,此雙口RAM 記為RAM0?RAM0 同樣被劃分為32個區(qū)域,對應(yīng)RT終端的32個子地址.
(4)軟件接口模塊:本模塊是與CPU 通信的接口,當(dāng)RAM1中某個區(qū)域存儲新的數(shù)據(jù)時,通知軟件前來讀取,當(dāng)軟件向RAM0中某個區(qū)域?qū)懭霐?shù)據(jù)后,通知FPGA軟件寫入數(shù)據(jù)完畢.
4 試驗
試驗時,將程序下載至FPGA中,使用Quartus Ⅱ軟件自帶的邏輯分析儀觀察FPGA的通信性能,采用上海旋極公司提供的成品1553B 板卡和配套測試軟件與本文開發(fā)的電路進(jìn)行通信,試驗證實:兩者通信結(jié)果正確無誤,滿足1553B總線通信要求,其中,A路總線接收數(shù)據(jù)的邏輯關(guān)系如圖7所示.[!--empirenews.page--]
5 結(jié)語
本文介紹了1553B 軍用航空總線遠(yuǎn)程終端通過FPGA 編程實現(xiàn)的方法,該程序通過調(diào)試之后可以很好的工作,完全可以滿足海軍某型號飛機(jī)某系統(tǒng)遠(yuǎn)程終端1553B 總線通信的要求。將1553B 總線接口集成到FPGA 內(nèi),不但降低了成本,縮短了開發(fā)周期,也減輕了機(jī)身的重量,具有非常重要的現(xiàn)實意義和良好的應(yīng)用前景。