張曉 胡穎毅 黃子碩 魏鵬
摘 ? 要:為了滿足某型機(jī)載顯示器與機(jī)上其他設(shè)備的復(fù)雜任務(wù)和可靠的數(shù)據(jù)通信,文章提出了一種基于FPGA控制協(xié)議芯片SM61864G3實(shí)現(xiàn)1553B總線遠(yuǎn)程終端通信的設(shè)計(jì)方法。該設(shè)計(jì)將整個(gè)系統(tǒng)的數(shù)據(jù)處理與接口控制邏輯集成在FPGA內(nèi)實(shí)現(xiàn),保障系統(tǒng)實(shí)時(shí)的可確定性。測(cè)試結(jié)果表明:該通用接口實(shí)時(shí)性及可靠性高,實(shí)際應(yīng)用效果良好。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程邏輯門陣列;1553B;SM61864G3
MIL-STD-1553是為數(shù)據(jù)總線定義的軍方標(biāo)準(zhǔn),該標(biāo)準(zhǔn)作為美國(guó)國(guó)防部武器系統(tǒng)集成和標(biāo)準(zhǔn)化管理的基礎(chǔ)之一,被用來為各系統(tǒng)之間的數(shù)據(jù)和信息的交換提供媒介,1553B標(biāo)準(zhǔn)總線現(xiàn)已被廣泛應(yīng)用于飛機(jī)綜合航電應(yīng)用系統(tǒng),并逐步擴(kuò)展到航天、坦克、艦船等領(lǐng)域。1553B總線系統(tǒng)主要由3部分組成:總線控制器BC、遠(yuǎn)程終端RT、總線監(jiān)視器BM,其應(yīng)用結(jié)構(gòu)示意如圖1所示。1553B總線接口技術(shù)研究與實(shí)現(xiàn)作為總線通信的核心,其性能成為影響航電綜合系統(tǒng)的關(guān)鍵因素。本文以某機(jī)載顯示器為平臺(tái),采用嵌入式處理的接口方式,實(shí)現(xiàn)與機(jī)上其他設(shè)備的1553B總線通信。
該機(jī)載顯示器通過1553B總線與外部設(shè)備進(jìn)行信息交互,以1553B總線為主通路,通過1553B總線與綜合處理機(jī)進(jìn)行數(shù)據(jù)交換,自主生成顯示畫面,能為飛行員提供基本返航信息。本文重點(diǎn)研究RT模式下的應(yīng)用,開展現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)的1553B總線通信設(shè)計(jì),并進(jìn)行相應(yīng)的試驗(yàn)驗(yàn)證。
1 ? ?硬件系統(tǒng)設(shè)計(jì)
為提高接口的靈活性和擴(kuò)展性,本文采用FPGA與SM61864G3進(jìn)行硬件接口與軟件設(shè)計(jì)實(shí)現(xiàn)。本設(shè)計(jì)使用的電路原理如圖2所示,其中FPGA選用Xilinx公司生產(chǎn)的XQ5VSX95T可編程邏輯器件。SM61864G3是深圳國(guó)微公司設(shè)計(jì)研發(fā)的一款內(nèi)部集成有數(shù)字協(xié)議控制電路、雙路總線收發(fā)器等模塊的協(xié)議芯片。本文通過FPGA來控制協(xié)議芯片的配置寄存器和內(nèi)部RAM完成數(shù)據(jù)的傳輸。
1553B的耦合方式分為直接耦合和變壓器耦合,直接耦合最長(zhǎng)傳輸距離(約30.5 cm),變壓器耦合最長(zhǎng)距離(約6.1 m),由于傳輸距離較遠(yuǎn),該系統(tǒng)采用變壓器耦合的方式,耦合器兩端配備終端電阻,具體硬件原理框架如圖2所示,SM61864G3通過變壓器LS3067-5耦合到1553B總線上,SM61864G3協(xié)議芯片完成1553B通信系統(tǒng)的傳輸層、數(shù)據(jù)鏈路層和物理層接口,同時(shí)FPGA和SM61864G3的接口及其底層軟件構(gòu)成了應(yīng)用層、驅(qū)動(dòng)層[1]。
SM61864G3芯片工作模式由其引腳配置決定[2],本系統(tǒng)的配置為16位緩沖工作模式、FPGA共享緩存模式、RT地址鎖存、非零等待模式、進(jìn)行忙位設(shè)置等。
2 ? ?邏輯設(shè)計(jì)
2.1 ?設(shè)計(jì)遠(yuǎn)程終端的流程
FPGA控制SM61864G3芯片進(jìn)行上電自檢,完成與綜合任務(wù)處理機(jī)的通信、中斷響應(yīng)、數(shù)據(jù)的接收和發(fā)送,并將接口電路的狀態(tài)信息(是否離線狀態(tài))實(shí)時(shí)發(fā)送給綜合任務(wù)處理機(jī)[3]。FPGA接口控制軟件采用模塊化設(shè)計(jì),使軟件具有較好的移植性,便于后期維護(hù),邏輯程序包含初始化模塊、中斷控制模塊、數(shù)據(jù)處理模塊,其中數(shù)據(jù)處理模塊是中斷控制模塊的重要部分。
2.1.1 ?初始化模塊
系統(tǒng)上電后,完成硬件復(fù)位和軟件復(fù)位后,需要對(duì)SM61864G3相應(yīng)的配置寄存器、子地址查詢表以及子地址控制字進(jìn)行初始化,設(shè)置非法指令區(qū)。當(dāng)系統(tǒng)自檢結(jié)束后,將“忙”位清零,此后該設(shè)備就處于在線,只要BC發(fā)送一條消息命令與該設(shè)備相關(guān),該設(shè)備就會(huì)作出反應(yīng)。
2.1.2 ?中斷控制模塊
中斷控制模塊用于接收1553B總線數(shù)據(jù)中斷信號(hào),當(dāng)FPGA芯片接收到中斷信號(hào)后,通過解析命令,根據(jù)總線相應(yīng)的要求,進(jìn)行數(shù)據(jù)接收和發(fā)送處理。
2.1.3 ?數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊,通過查詢相應(yīng)總線數(shù)據(jù)標(biāo)志位,分別來進(jìn)行1553B總線的接收、處理和發(fā)送上位機(jī)命令。
(1)FPGA控制SM61864G3的數(shù)據(jù)發(fā)送。作為某機(jī)載顯示器,在沒有特殊情況時(shí),暫不需要進(jìn)行周期性的數(shù)據(jù)發(fā)送,但需要根據(jù)機(jī)上操作人員的指令,進(jìn)行指令數(shù)據(jù)發(fā)送,即數(shù)據(jù)上報(bào)。當(dāng)FPGA檢測(cè)到SM61864G3需要進(jìn)行數(shù)據(jù)上報(bào)請(qǐng)求時(shí),采集數(shù)據(jù),組裝成數(shù)據(jù)塊,將對(duì)應(yīng)子地址的數(shù)據(jù)字發(fā)送到相應(yīng)的查詢表地址中,同時(shí)按照接口控制文件要求,將相應(yīng)子地址的矢量字置為“1”。FPGA中斷控制模塊中,當(dāng)檢測(cè)到命令字與發(fā)送子地址相同時(shí),表明SM61864G3已將需要上傳的數(shù)據(jù)發(fā)送到1553B總線上,此時(shí),在FPGA中斷控制模塊中將該發(fā)送子地址的矢量字清零。完成數(shù)據(jù)上傳后,進(jìn)入中斷等待狀態(tài)。
(2)FPGA控制SM61864G3的數(shù)據(jù)接收。當(dāng)RT接收到BC的命令,需要進(jìn)行數(shù)據(jù)接收時(shí),F(xiàn)PGA判斷該指令為合法指令,若為合法指令,SM61864G3協(xié)議芯片回復(fù)綜合任務(wù)處理機(jī)命令收到,將相應(yīng)的數(shù)據(jù)存儲(chǔ)在芯片內(nèi)部的RAM緩存中,同時(shí)輸出中斷信號(hào)給FPGA,此時(shí)FPGA需要進(jìn)行命令字的解析和判斷,按接口控制文件的要求及時(shí)將BC發(fā)送的數(shù)據(jù)從緩沖區(qū)中取出。完成數(shù)據(jù)接收后,進(jìn)入中斷等待狀態(tài)。
2.2 ?初始化模塊
對(duì)于某機(jī)載顯示器,作為RT模式,電路上電后,系統(tǒng)的復(fù)位電路將MSTCLR#引腳置低大約200 ms,完成對(duì)SM61864G3硬件復(fù)位;之后對(duì)SM61864G3進(jìn)行軟件復(fù)位,即通過FPGA對(duì)啟動(dòng)/復(fù)位寄存器進(jìn)行相應(yīng)的配置。完成復(fù)位后,F(xiàn)PGA對(duì)相應(yīng)的配置寄存器、相應(yīng)的子地址查詢表以及子地址控制字進(jìn)行初始化配置,設(shè)置非法指令區(qū)等。
在完成芯片初始化后,F(xiàn)PGA完成協(xié)議芯片的上電自檢后,F(xiàn)PGA將子地址忙位表中的接收部分清零,此后RT(機(jī)載顯示器)處于在線狀態(tài),可實(shí)時(shí)響應(yīng)綜合任務(wù)處理機(jī)發(fā)出的消息命令,并接收和上傳1553B數(shù)據(jù)。
2.3 ?中斷處理模塊
FPGA完成對(duì)SM61864G3的初始化后,系統(tǒng)狀態(tài)機(jī)處在1553B控制主狀態(tài)機(jī)的中斷處理模塊的等待狀態(tài)。SM61864G3協(xié)議芯片具有1個(gè)8 bit地址(0x00~0xFF)的存儲(chǔ)空間,用于存儲(chǔ)記錄消息的描述符,每個(gè)消息的描述符占用4個(gè)存儲(chǔ)空間,從上到下依次存儲(chǔ)消息狀態(tài)、消息時(shí)間、數(shù)據(jù)指針、命令字,一共可存儲(chǔ)64個(gè)消息的描述符。當(dāng)接收到新的消息后,協(xié)議芯片將該消息的描述符存儲(chǔ),將下一條消息描述符的首地址更新至堆棧指針寄存器中,并向FPGA發(fā)出中斷信號(hào)。FPGA接收到中斷信號(hào)后,首先解析堆棧指針寄存器中存儲(chǔ)的地址A,應(yīng)從A-2,A-1地址中讀取數(shù)據(jù)指針和命令字。其次,根據(jù)消息描述符存儲(chǔ)的數(shù)據(jù)指針和命令字,在RAM中讀取總線數(shù)據(jù)。如果是對(duì)于發(fā)送子地址的命令,進(jìn)入發(fā)送數(shù)據(jù)模塊,待發(fā)送完成,清除相關(guān)vector位即可;當(dāng)判斷為接收命令時(shí),根據(jù)消息描述符中的數(shù)據(jù)塊指針,找到接收數(shù)據(jù)塊并保存數(shù)據(jù)至FPGA,退出中斷。若需要上傳數(shù)據(jù),則將數(shù)據(jù)寫入到命令緩存里,置相應(yīng)的服務(wù)請(qǐng)求后,等待BC將數(shù)據(jù)讀走。中斷處理模塊流程如圖3所示。
2.4 ?讀/寫數(shù)據(jù)模塊
本文以數(shù)據(jù)接收,即讀SM61864G3協(xié)議芯片內(nèi)部的緩存RAM為例來說明FPGA的時(shí)序邏輯設(shè)計(jì)[4]。SM61864G3 RAM讀寫時(shí)序是采用FPGA對(duì)芯片內(nèi)部緩存RAM的讀寫操作來實(shí)現(xiàn)的。
FPGA設(shè)置SM61864G3的2號(hào)配置寄存器bit3為“0”,當(dāng)SM61864G3收到接收數(shù)據(jù)命令,且當(dāng)總線上數(shù)據(jù)傳輸完成后,其芯片管腳INT輸出低電平,向FPGA發(fā)出中斷請(qǐng)求。FPGA通過對(duì)SM61864G3的STRBD,SELECT,MEM/REG進(jìn)行邏輯控制,在其中斷控制模塊中,及時(shí)將芯片RAM內(nèi)數(shù)據(jù)讀出。為驗(yàn)證邏輯正確性,編寫testbench,仿真FPGA寫RAM/REG數(shù)據(jù)的過程如圖4所示。
3 ? ?系統(tǒng)測(cè)試驗(yàn)證
采用歐比特公司生產(chǎn)的仿真板卡—“EMBC1000-USB1553BEI-1錯(cuò)誤注入型USB接口單通道1553B總線通信模塊”進(jìn)行調(diào)試,測(cè)試本文設(shè)計(jì)的1553B總線數(shù)據(jù)收發(fā)。以某機(jī)載顯示器為測(cè)試平臺(tái),以板卡的上位機(jī)模擬綜合任務(wù)處理機(jī),通過自定義命令消息,驗(yàn)證1553B數(shù)據(jù)在顯示器上數(shù)據(jù)和狀態(tài)的顯示以及數(shù)據(jù)上傳功能。通過測(cè)試,系統(tǒng)可正確實(shí)現(xiàn)1553B數(shù)據(jù)的接收和發(fā)送,并處于穩(wěn)定的狀態(tài),滿足設(shè)計(jì)需求。
4 ? ?結(jié)語
本文采用的FPGA控制1553B接口協(xié)議芯片總線接口電路及FPGA實(shí)現(xiàn)數(shù)據(jù)通信的方法,應(yīng)用在某機(jī)載顯示器中,系統(tǒng)工作穩(wěn)定,運(yùn)行良好。
[參考文獻(xiàn)]
[1]徐麗清,姬勞.1553B總線接口技術(shù)研究及FPGA實(shí)現(xiàn)[D].西安:西北工業(yè)大學(xué),2006.
[2]DATA DEVICE CORPORATION.BU-6174X/61864X/6186X Enhanced miniature advanced communications engine[Z].Volume 2 Hardware Reference,2005.
[3]郭克平,王丹.基于BU-61864的1553B總線接口電路設(shè)計(jì)[J].科技創(chuàng)新導(dǎo)報(bào),2013(10):38-39,41.
[4]張飛,王煥玉,徐玉朋,等.基于FPGA控制實(shí)現(xiàn)的1553B總線通訊設(shè)計(jì)[J].航天控制,2010(6):67-71.
Research and implementation of 1553B bus interface technology based on FPGA
Zhang Xiao, Hu Yingyi, Huang Zishuo, Wei Peng
(Beijing Keeven Aviation Instrument Co., Ltd., Beijing 101300, China)
Abstract:Aiming to accomplish the complex tasks and reliable communication between some kind of on-board display and other equipment on board. This paper presents a design method of realizing 1553B bus remote terminal communication based on FPGA control protocol chip SM61864G3. In this design, data processing and interface control logic of the whole system are integrated into FPGA to ensure the real-time determinability of the system. The test results show that the universal interface has high real-time performance and reliability, and the practical application effect is good.
Key words:field programmable gate array; 1553B bus; SM61864G3