基于1553B總線(xiàn)遠程終端的FPGA程序設計
0 引言
本文引用地址:http://dyxdggzs.com/article/201609/303476.htm1553B總線(xiàn)是MIL-STD-1553美國軍用標準總線(xiàn)的簡(jiǎn)稱(chēng),在飛機的航電系統中應用廣泛.為了提高可靠性,1553B 總線(xiàn)一般采用雙余度總線(xiàn)結構,在1553B 總線(xiàn)上可掛接三種終端類(lèi)型:總線(xiàn)控制器(BC).遠程終端(RT)和總線(xiàn)監視器(BM).總線(xiàn)網(wǎng)絡(luò )上可掛接32 個(gè)終端,在這32 個(gè)終端中,遠程終端的數量往往最多.目前,為實(shí)現1553B 總線(xiàn)通信,大都是開(kāi)發(fā)獨立的通信接口模塊,不但成本高,整個(gè)系統的重量也會(huì )因此增加,不利于航空領(lǐng)域的使用.隨著(zhù)電子技術(shù)的發(fā)展,FPGA已經(jīng)迅速應用于各個(gè)領(lǐng)域,系統中的各個(gè)電路模塊大都包含FPGA 芯片.本文介紹一種使用FPGA 編程,實(shí)現1553B總線(xiàn)通信中遠程終端的方法,本方法具有開(kāi)發(fā)周期短.方法簡(jiǎn)單.可移植性強的特點(diǎn),可大大降低系統的開(kāi)發(fā)成本,縮短開(kāi)發(fā)周期.
1 1553B總線(xiàn)簡(jiǎn)介
現代飛機典型的航電系統及1553B 總線(xiàn)應用框圖如圖1所示.1553B總線(xiàn)采用指令/ 響應型通信協(xié)議,構成1553B 總線(xiàn)傳輸協(xié)議有三要素:命令字.數據字和狀態(tài)字,每個(gè)字的長(cháng)度為20 b,且由3部分組成:同步頭(3 b).數據段(16 b)和奇偶位(1 b),如圖2所示.


命令字由總線(xiàn)控制器(BC)發(fā)出,共包含20位的長(cháng)度,前3位是同步頭,最后一位是奇偶校驗位,有效信息為16位,有效信息位中,前5位為RT 的地址場(chǎng),該場(chǎng)指出了被尋址的終端地址.有1位是發(fā)送/接收(T/R)位,當此位為“1”時(shí),命令被尋址的終端發(fā)送消息,為“0”時(shí),則命令被尋址的終端接收消息.另外5位為子地址/方式代碼場(chǎng),一般情況下,按指示向被尋址終端某一個(gè)分地址進(jìn)行通信,當這5位全為“0”或全為“1”時(shí)定義為方式代碼場(chǎng).有效信息中的最后5位為計數/方式碼場(chǎng),通常情況下,它定義了與該指令相關(guān)的數據字數,但在前5位為方式場(chǎng)時(shí),它就成了方式控制碼.
數據字有20 位長(cháng),其中16 位有效信息是總線(xiàn)上傳輸的數據信息.
狀態(tài)字僅僅對指令字響應,被尋址的遠程終端發(fā)出,并包括5位本RT地址場(chǎng)和8位指示了通信狀態(tài)和本RT及子系統狀態(tài)的信息位.
2 硬件構成
信號調制解調所需的隔離變壓器和收發(fā)器需單獨購買(mǎi),本文采用HOLT 公司的PM-DB2745D 芯片和HI-
1573 芯片,從而曼徹斯特編碼解碼往后的部分都可以在一片FPGA芯片內實(shí)現.本文是將1553B總線(xiàn)的遠程終端集成到海軍某型號飛機航電子系統的一塊計算機板上,計算機板采用的是Altera 公司的Cyclone Ⅲ系列FPGA芯片,硬件連接關(guān)系如圖3所示.

3 FPGA內部模塊構成
遠程終端是用戶(hù)子系統到數據總線(xiàn)上的接口,它在BC 的控制下提取或吸收數據,總線(xiàn)上的位傳輸速率為1.0 Mb/s,信號以串行數字脈沖調制方式在數據總線(xiàn)上傳輸,傳輸的數據碼為曼徹斯特Ⅱ型雙電平編碼,邏輯1為雙極編碼信號1/0(即一個(gè)正脈沖繼之以一個(gè)負脈沖),邏輯0 為雙極編碼信號0/1(即一個(gè)負脈沖繼之以一個(gè)正脈沖),過(guò)零跳變發(fā)生在每一位時(shí)的中點(diǎn),如圖4所示.

總線(xiàn)系統中傳輸的消息格式有10種,本文涉及到的有三種消息傳輸方式,即總線(xiàn)控制器向遠程終端的傳輸.遠程終端向總線(xiàn)控制器的傳輸和遠程終端向遠程終端的傳輸.FPGA的主要編程思路如圖5所示.

實(shí)際編程時(shí),對1553B總線(xiàn)數據的解析響應在數據解析模塊.數據編碼模塊.主控模塊和軟件接口模塊的協(xié)調工作下完成,FPGA 內部各功能模塊的聯(lián)系如圖6所示.

FPGA中各模塊的詳細功能詳述如下:
(1)數據解析模塊:本模塊對總線(xiàn)上串行數字脈沖進(jìn)行接收并解析,數據解析模塊負責檢測命令字.數據字.狀態(tài)字的同步頭,1553B 總線(xiàn)的每一條消息都是從命令字開(kāi)始的,數據解析模塊在檢測到命令字同步頭后,將同步頭后邊的16位有效信息進(jìn)行串并轉換,經(jīng)過(guò)解析后,判定是否對該命令做出響應,若此命令是發(fā)給本RT終端的,則根據命令做出接收數據或發(fā)送數據的響應,若此命令不是發(fā)給本RT 終端的,則不做出任何響應.
(2)數據編碼模塊:本模塊在接收到數據發(fā)送命令時(shí)進(jìn)行工作,主要完成對發(fā)送數據的曼徹斯特Ⅱ型雙電平編碼.
(3)主控模塊:本模塊控制各模塊協(xié)調工作,為各模塊提供正常工作的時(shí)鐘信號,當數據解析模塊接收到的是接收數據命令時(shí),將數據解析模塊解析得到的數據字存儲到一個(gè)雙口RAM中,記為RAM1,等待CPU前來(lái)讀取,RAM1 被劃分為32 個(gè)區域,對應此RT 終端的32 個(gè)子地址;當數據解析模塊接收到的是發(fā)送數據命令時(shí),將CPU事先存儲在另一個(gè)雙口RAM中的數據發(fā)送給數據編碼模塊,此雙口RAM 記為RAM0?RAM0 同樣被劃分為32個(gè)區域,對應RT終端的32個(gè)子地址.
(4)軟件接口模塊:本模塊是與CPU 通信的接口,當RAM1中某個(gè)區域存儲新的數據時(shí),通知軟件前來(lái)讀取,當軟件向RAM0中某個(gè)區域寫(xiě)入數據后,通知FPGA軟件寫(xiě)入數據完畢.
4 試驗
試驗時(shí),將程序下載至FPGA中,使用Quartus Ⅱ軟件自帶的邏輯分析儀觀(guān)察FPGA的通信性能,采用上海旋極公司提供的成品1553B 板卡和配套測試軟件與本文開(kāi)發(fā)的電路進(jìn)行通信,試驗證實(shí):兩者通信結果正確無(wú)誤,滿(mǎn)足1553B總線(xiàn)通信要求,其中,A路總線(xiàn)接收數據的邏輯關(guān)系如圖7所示.
評論