馬豪凡 薛志遠



摘要:根據1553B總線在空空導彈上的應用,提出一種基于FPGA的1553B總線協議設計與實現方法。分析了1553B總線在空空導彈上的通信需求,對1553B總線協議進行設計,給出了1553B總線解碼、編碼、命令字處理等關鍵技術的設計方法,最終實現了空空導彈1553B總線通訊。經驗證,1553B總線協議滿足空空導彈通訊需求,且運行穩定。
關鍵詞:1553B總線協議;空空導彈;FPGA;芯片
中圖分類號:TP368.11
文獻標識碼:A
DOI:10.15913/j .cnki.kj ycx.2019.11.023
1553B總線是航空電子系統常用的數據總線,是空空導彈與載機通信采用的主要通訊總線,目前中國空空導彈研究院的1553B設計多采用協議芯片方式,協議芯片價格昂貴,且體積偏大。FPGA(現場可編程門陣列)內部集成大量可編程器件門電路,具有設計靈活、可重構、并行性好等優點,是空空導彈核心處理芯片。本文通過在FPGA上實現1553B協議替代協議芯片的方法,提高了1553B總線設計的靈活性,減少了電路設計的成本與面積。
本文分析了空空導彈與載機之間的通訊需求,總結出基于空空導彈的1553B總線協議功能和指標,編寫了1553B總線協議邏輯,并通過了測試驗證。
1
1553B總線設計功能要求
1.1 空空導彈1553B總線通訊需求
導彈使用1553B總線與載機進行通訊,載機需要向導彈查詢其內部數據更新情況,并能夠控制接收導彈內部數據和發送消息字給導彈。每個消息都是以數據字的形式進行傳輸,最多包含30個數據字[1]。
1553B總線系統由總線控制器(BC)、遠程終端(RT)和總線監視器(BM)組成,載機與導彈在1553B總線系統中分別為BC和RT。載機與導彈通訊過程為:載機通過外圍接口對導彈RT地址進行設置,以命令字和數據字的形式向導彈發送信息;導彈以狀態字響應載機的命令;載機以讀取矢量字的方式查詢導彈的數據變化,并通過命令字要求導彈發送數據,同時導彈根據內部數據對矢量字進行置數,以方便載機知悉導彈內部數據變化[2]。
1.2 1553B總線通信需求分析
根據對空空導彈1553B通訊需求描述,總結出空空導彈1553B總線功能要求[1]:①具備響應BC命令字和數據字發送和接收功能的RT端;②能夠通過外圍接口對RT地址進行設置;③接收空間子地址應不少于10個,每個子地址能夠存儲至少30個數據字;④發送空間子地址應不少于10個,每個子地址能夠存儲至少30個數據字;⑤能夠響應載機的方式代碼發送矢量字。
1.3 1553B協議邏輯設計
本文采用Xilinx公司的7K325T芯片,使用ISE14.7編譯環境進行邏輯設計。考慮到空空導彈通訊需求與所實現1553B總線的通用性,本設計具備除了正常響應BC端的命令字外,同時具備數據總線、地址總線和控制總線,能夠供CPU對RT端進行設置、讀寫數據和矢量字[3]。發送空間和接收空間各具有30個子地址,提供每個子地址32個16 bit存儲空間,發送和接收空間示意圖如圖1所示。
基于空空導彈1553B總線的整體方案如圖2所示,分為四個部分[4]:接收模塊解碼曼徹斯特碼,識別接收到的命令字和數據字,并進行緩存;RT處理器對接收模塊的一幀消息進行校驗,根據命令字的類型對存儲空間進行操作,完成數據存儲或者發送;存儲空間存儲接收數據、發送數據、矢量字、RT地址等信息,并具備并行接口與CPU進行通信;發送模塊在規定時間內發送相應的消息字。
1.3.1 接收模塊
曼徹斯特碼外部輸入接收模塊,經過預處理后,輸入解碼模塊,解碼模塊首先進行同步字頭檢測,解析出命令字和數據字,并進行奇偶校驗,根據消息字類型存入相應的FIFO中,FIFO輸出命令字和數據字個數給RT處理器[5],接收模塊設計如圖3所示。在1553B總線傳輸過程中,高電平會出現衰減延時情況,本設計為保證曼徹斯特碼解碼的可靠性,對輸入信號進行預處理,如圖4所示。
預處理模塊在P端和N端兩個信號的上升沿進行信號翻轉,得出整形之后的曼徹斯特碼[6]。
曼徹斯特碼雙極編碼信號I/O解碼為邏輯1,雙極編碼信號O/I解碼為邏輯0,如圖5所示。
1553B信號的傳輸速率為1 Mb/s,本設計在解碼過程中采用8 MHz時鐘,每位數據采8個點,提高解碼的可靠性。首先識別同步字頭,之后根據時序對同步字頭后面數據進行提取。在設計中采用datasftreg[0:4]和sync_sftreg[0: 23]兩個寄存器,將預處理后信號通過8 MHz時鐘由高位到低位依次轉入data_sftreg寄存器中,同時data_sftreg[0]將數據按照[23]到[o]的順序依次存人sync_sftreg寄存器中,當data_sftreg[3]和data_sftreg[4]為異或時,對sync_sftreg寄存器進行檢測,若sync_sftreg[0: 11]全為1,sync_sftreg[12:23]全為O,則說明消息字為命令字;反之,為數據字。該部分巧妙地使用了同步字頭占用三位字長且高低電平各占一半,同時在下一位數據來臨時必存在高低電平的特點,準確地檢測到同步字頭。根據檢測到同步字頭的時序,對后續數據進行延時7個時鐘檢測,并取反,準確得到所解碼的數據。將得到的消息字依照類型存人響應FIFO中,等待RT處理器處理。
1.3.2 RT處理器
1553B總線協議具有很嚴格的傳輸機制,RT處理器對接收模塊的命令字進行解析,做出相應的響應。在16位的命令字中包含了RT地址、子地址、發送接收、數據個數、方式代碼等多種信息,如圖6所示。
RT處理器對命令字進行解析,并生成狀態字和存儲空間的控制指令。如圖7所示,根據命令字所解析的內容,RT處理器對RT地址是否正確、RT執行接收/發送命令、命令字是子地址/方式代碼形式、接收數據字個數與命令字中要求數據個數是否一致等內容進行判斷,并將相應控制指令的輸出至存儲模塊,根據校驗結果生成狀態字,在判斷消息正確傳輸之后產生中斷。
1.3.3 存儲模塊
存儲模塊主要完成兩項內容:識別RT處理器的控制指令,對存儲空間進行操作;與CPU進行數據通訊。
如圖8所示,存儲模塊若接收接收指令,按照子地址與數據字個數將接收模塊的數據存儲到相應接收空間;若接收發送指令,按照子地址與數據字個數將發送空間相應地址數據發送至發送模塊;若為方式代碼命令,發送矢量字至發送模塊。
總線接口支持TI公司的EMIF接口[4],可以對RT地址進行設置,對矢量字進行置數,讀取接收空間數據,并發送空間的數據存儲[3]。
1.3.4 發送模塊
發送模塊主要由FIFO模塊、發送控制器與曼徹斯特碼編碼組成,如圖9所示。首先存儲模塊將狀態字與消息字按照先后順序寫入FIFO,FIFO將輸出非空信號;之后發送控制器從FIFO中讀取數據,并對數據進行按照協議發送消息字時間周期把數據發送到曼徹斯特碼編碼器中;最后曼徹斯特碼編碼器以2 MHz時鐘對數據進行編碼,若數據為邏輯1,編碼器將P端編譯為1/O,若數據為邏輯0,編碼器將輸出P端O/1;N端輸出反之[7]。
2 仿真測試
本項目測試分為兩個階段,第一階段為邏輯上的仿真測試,第二階段為硬件電路測試。
2.1 仿真測試
編譯環境采用的Xilinx公司的ISE開發軟件,仿真軟件采用modelsim軟件。仿真測試軟件仿照1553B總線BC端,發送相應命令字和數據字,檢測1553B協議RT端輸出是否符合要求,本次共做了3次仿真測試。
測試一:仿真激勵發送接收數據指令的命令字和一個數據字以及對相應地址進行讀取。激勵發出命令字1OO1O_010000 00001 1,該命令字表示往地址為18的RT端子地址為16的空間發送一個數據字,緊接著后面發送數據字1001001000000001_1,如圖10所示。
測試二:仿真激勵發送發送數據指令的命令字,觀測RT的響應和發送的數據。激勵發出命令字IOOI0 1 10000_00011 1,該命令字表示地址為18的RT端,將子地址為16的三個數據發送到BC端,如圖11所示。
測試三:仿真激勵在矢量字空間寫數據,發送命令字。其中,所發送的命令字為10010 1 00000 10000 1,該命令字采用方式代碼的形式,是地址為18的RT端發送矢量字,如圖12所示。
通過仿真波形可以看出,RT端能夠正確地識別BC所發的命令字,并響應相應數據。
2.2 硬件測試
1553B總線硬件測試環境如圖13所示。設計電路通過DSP仿真器與PC端連接,通過耦合器與1553B測試盒子連接,1553B測試盒與PC端連接,構成一個閉環。PC端對1553B測試盒的BC端、RT地址、子地址、傳輸類型進行設置,通過TI公司CCS軟件對DSP進行傳輸數據讀寫,以此方式對傳輸過程進行驗證。
PC通過上位機軟件對1553B測試盒設置,設置RT地址為18,設置BC發送數據,設置為隨機數據,循環向RT端發送命令字和數據字,通過對照BC發送的數據和CCS讀取數據,本文設計的1553B總線傳輸數據正常,滿足空空導彈通訊需求。
3 總結
本文根據空空導彈與載機之間的通訊需求,完成基于FPGA的1553B總線協議RT端設計。仿真測試表明,該設計滿足基于空空導彈的通訊需求,且能夠穩定運行。該設計方法靈活性高,為之后空空導彈低成本、一體化、小型化設計提供有效支持。
參考文獻:
[1]易凡,雷杰.1553B總線在某制導控制系統中的設計與實現[J].航空兵器,2011(2):61-64.
[2]陳亮,劉麗霞,劉經宇.基于1553B協議的導彈控制系統信息流設計探討[J]。計算機測量與控制,2012,20(8):2180-2182, 2196.
[3]孫濤,張華春.基于1553B協議的總線控制器和遠程終端的FPGA實現[J].中國科學院大學學報,2010,27(4): 523-529.
[4]方晨.1553B總線協議控制器設計[D].哈爾濱:哈爾濱工業大學,2010.
[5]滕明暉,張瑞峰.基于1553B總線協議的解碼器設計與FPGA實現[J].電子技術,2011,38 (3): 27-29.
[6]潘亮,司斌,張從霞,等.基于FPGA的1553B總線曼徹斯特編解碼器設計與實現[J].航空兵器,2018(2): 83-88.
[7]解彥.基于FPGA的1553B遠置終端IP核的設計與實現[D].北京:中國科學院研究生院(空間科學與應用研究中心),2011.