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