李 輝 張敬波 張 磊
北京航天自動(dòng)控制研究所,北京 100854
1553B多功能RT IP核的設(shè)計(jì)與實(shí)現(xiàn)
李 輝 張敬波 張 磊
北京航天自動(dòng)控制研究所,北京 100854
介紹了采用一種自主研發(fā)多功能IP核實(shí)現(xiàn)總線全地址響應(yīng)的設(shè)計(jì)方案,其可在FPGA中靈活配置,配備外圍電路后可以方便實(shí)現(xiàn)各種功能。設(shè)計(jì)采用VHDL硬件描述語言進(jìn)行編程,采用綜合工具ISE Foundation對(duì)設(shè)計(jì)進(jìn)行綜合、優(yōu)化,在ModelSim-SE 6.1g中進(jìn)行時(shí)序仿真,并且最后在FPGA上實(shí)現(xiàn)。
MIL-STD-1553B總線;全地址;FPGA
美國(guó)軍用數(shù)據(jù)總線標(biāo)準(zhǔn)MIL-STD-l553B(以下簡(jiǎn)稱1553B總線)是目前國(guó)際公認(rèn)的數(shù)據(jù)總線標(biāo)準(zhǔn),其憑借優(yōu)異的性能在航空、航天、航海及其它武器裝備上得到廣泛應(yīng)用。對(duì)于使用1553B總線應(yīng)用系統(tǒng)而言,采用簡(jiǎn)單、經(jīng)濟(jì)、高效的方法實(shí)現(xiàn)1553B總線各個(gè)站點(diǎn)功能完全模擬,以便完成整個(gè)總線中包含0~31個(gè)的全地址終端站點(diǎn)系統(tǒng)功能的調(diào)試與分析,已經(jīng)成為1553B總線系統(tǒng)設(shè)計(jì)與驗(yàn)證的必備手段。市場(chǎng)現(xiàn)有協(xié)議芯片(如DDC公司的BU—61580等),均可實(shí)現(xiàn)固定RT(Remote Terminal遠(yuǎn)程終端),BC(Bus Controller總線控制器)和MT(Monitor Terminal監(jiān)視終端)數(shù)據(jù)收發(fā)響應(yīng),多功能1553B站點(diǎn)功能的實(shí)現(xiàn)大多是各個(gè)公司采用自身專用的IP核設(shè)計(jì)實(shí)現(xiàn),而并不對(duì)外公開發(fā)售專用的應(yīng)用芯片。針對(duì)這一問題和實(shí)際需求,本文介紹了一種采用自主研發(fā)IP核實(shí)現(xiàn)功能總線站點(diǎn)的設(shè)計(jì)方案,其可在FPGA中靈活配置,配備外圍電路后可以方便實(shí)現(xiàn)各種功能。設(shè)計(jì)采用VHDL硬件描述語言進(jìn)行編程,采用綜合工具ISE Foundation對(duì)設(shè)計(jì)進(jìn)行綜合、優(yōu)化,在ModelSim-SE 6.1g中進(jìn)行時(shí)序仿真,并且最后在FPGA上實(shí)現(xiàn)。由于1553B總線BC和MT的功能在一般的1553B協(xié)議芯片上均有支持,因此,本文重點(diǎn)介紹全地址1553B RT站點(diǎn)的模擬的實(shí)現(xiàn)方案。
1)可同時(shí)模擬0~31個(gè)RT站點(diǎn);
2)模擬站點(diǎn)應(yīng)及時(shí)響應(yīng)總線信息,不能因模擬站點(diǎn)切換影響總線數(shù)據(jù)發(fā)送接收;
3)功能上應(yīng)覆蓋MIL-STD-1553B協(xié)議,通過遠(yuǎn)程終端有效性測(cè)試;
4)總線傳輸速率1Mbit;
5)支持時(shí)標(biāo)模式;
6)可設(shè)置非法命令表;
7)雙通道數(shù)據(jù)發(fā)送和接收;
8)支持與各種常用CPU的控制接口,存儲(chǔ)器接口支持SRAM,尋址空間≥256K,單站點(diǎn)尋址≥4K。
圖1給出了方案的功能模塊規(guī)劃。
圖1 IP核功能模塊規(guī)劃
如圖1所示,F(xiàn)PGA功能實(shí)現(xiàn)由全局Clock和Reset信號(hào)產(chǎn)生模塊、處理器接口模塊、寄存器控制模塊、RT協(xié)議處理模塊、RAM0操作仲裁模塊、RAM1操作仲裁模塊、RAM0讀寫接口模塊、RAM1讀寫接口模塊、1553曼徹斯特碼接收模塊、1553曼徹斯特碼發(fā)送模塊組成。圖2給出了實(shí)際設(shè)計(jì)中的IP核詳細(xì)框圖。
IP核與CPU接口邏輯匹配后,可以實(shí)現(xiàn)與各種CPU的連接,同時(shí)需要完成相關(guān)操作函數(shù)的移植,以滿足具體應(yīng)用需求。
1)全局CLOCK和RESET模塊
全局Clock和Reset信號(hào)產(chǎn)生模塊,調(diào)用Xilinx的IP生成同頻同相時(shí)鐘CLK0作為全局工作時(shí)鐘,生成的2倍頻時(shí)鐘CLK2X作為曼碼接收模塊RX的接收時(shí)鐘;采用寄存器同步輸出全局復(fù)位信號(hào),硬復(fù)位和軟復(fù)位中任何一個(gè)復(fù)位,全局都可以實(shí)現(xiàn)復(fù)位。
脈沖生成單元PULSE_GEN產(chǎn)生不同頻率的單脈沖信號(hào),為其他模塊定時(shí)使用(如時(shí)標(biāo)計(jì)數(shù))。
2)RX模塊
圖3 RX模塊給出了RX模塊框圖。RX模塊完成1553B總線通信信號(hào)的曼徹斯特解碼,串并轉(zhuǎn)換,把接收的數(shù)據(jù),奇偶校驗(yàn)的結(jié)果,錯(cuò)誤信息一并傳送給“RT協(xié)議處理模塊”。
3)TX模塊
圖4為TX模塊框圖,此模塊從“RT協(xié)議處理模塊”接收需要發(fā)送的字,進(jìn)行并串轉(zhuǎn)換,曼徹斯特編碼,發(fā)送出去。
4)RT協(xié)議處理模塊
圖5為RT協(xié)議處理模塊框圖,此模塊包括接收狀態(tài)機(jī)和發(fā)送狀態(tài)機(jī)。根據(jù)接收的命令(共10種),進(jìn)入相應(yīng)的狀態(tài)機(jī)。狀態(tài)機(jī)根據(jù)命令的格式,在響應(yīng)的不同狀態(tài),調(diào)動(dòng)SRAM中的數(shù)據(jù),改動(dòng)寄存器模塊的堆棧指針,向“TX模塊”發(fā)送返回字。消息處理結(jié)束后,等待下一條消息的到來;在處理消息的過程中,還要進(jìn)行包括對(duì)接收數(shù)據(jù)的存儲(chǔ),從存儲(chǔ)區(qū)取待發(fā)送的數(shù)據(jù),選擇消息通道,產(chǎn)生各種錯(cuò)誤標(biāo)志,控制各種堆棧指針。
圖2 IP核詳細(xì)框圖
5)寄存器模塊
如圖6所示,寄存器模塊存放著RT的堆棧指針,控制寄存器等。此模塊為整個(gè)設(shè)計(jì)的中樞,存放著RT的一系列控制寄存器,中斷生成單元,負(fù)責(zé)時(shí)間標(biāo)簽的處理。
SOC_IF模塊接口單元。此單元負(fù)責(zé)和SOC_IF的接口處理。先由長(zhǎng)請(qǐng)求信號(hào)CPU_REQ產(chǎn)生單pulse請(qǐng)求信號(hào)s_CPU_REQ_PLS;在請(qǐng)求到來后,根據(jù)讀寫,產(chǎn)生讀ACK,寫ACK返回給SOC_IF模塊。
寄存器地址選擇單元。不同的地址對(duì)應(yīng)不同的寄存器,此單元將所用到的地址翻譯,供其他進(jìn)程調(diào)用,使用簡(jiǎn)潔方便。
時(shí)標(biāo)生成單元。此單元根據(jù)CPU設(shè)置的時(shí)標(biāo)使能,RT接收到的關(guān)于時(shí)標(biāo)的命令,控制時(shí)標(biāo)計(jì)數(shù)器計(jì)時(shí)。時(shí)間標(biāo)簽用于記錄消息處理的時(shí)間,存放在RT操作中的堆棧。
6)處理器接口模塊
圖7為處理器接口模塊框圖,此模塊是SOC的接口模塊,處理CPU芯片對(duì)FPGA的讀寫操作,將CPU對(duì)FPGA的不同存儲(chǔ)區(qū)的操作分開處理(REG存儲(chǔ)區(qū),SRAM0存儲(chǔ)區(qū),SRAM1存儲(chǔ)區(qū))。
7)仲裁模塊
仲裁模塊如圖8所示,上位機(jī)可以對(duì)SRAM讀寫操作,“RT協(xié)議處理模塊”也可以對(duì)SRAM讀寫操作。仲裁模塊就是防止兩個(gè)部分操作沖突,控制優(yōu)先級(jí),使讀寫通暢。
圖8 仲裁模塊
8)SRAM控制模塊
SRAM控制模塊負(fù)責(zé)外圍SRAM的讀寫控制。
作為多功能終端,RT響應(yīng)BC的命令。首先BC命令的格式如圖9所示。
圖9 BC命令格式
BC命令的高5位是RT地址,與指定的RT通訊。多功能IP有地址使能寄存器RT_REEN如圖10所示,此寄存器的[30:0]的各Bit位對(duì)應(yīng)相應(yīng)的地址是否使能,‘1’表示使能,‘0’表示無效。
圖10 RT命令格式
一旦接收到命令,IP將對(duì)BC命令中的地址和RT_REEN中的相應(yīng)使能位對(duì)比,檢查地址是否使能。如果有效,則IP響應(yīng)此命令,否則,不響應(yīng)。
根據(jù)BC命令的T/R位,可以判斷此命令是發(fā)送命令還是接收命令,由此,我們進(jìn)入發(fā)送有限狀態(tài)機(jī)TX_FSM,或接收有限狀態(tài)機(jī)RX_FSM。RT協(xié)議處理模塊主要是由這兩個(gè)FSM構(gòu)成的,由他們來完成命令的處理、數(shù)據(jù)的調(diào)度。
FSM處理完畢后,堆棧指針已經(jīng)被更新。處理器可以通過查詢堆棧指針的變化來確定消息處理完畢。也可以通過中斷使能,通過中斷通知處理器消息處理完畢。這樣,處理器就可以讀取消息的詳細(xì)信息??偣ぷ髁鞒檀笾氯鐖D11所示:
圖11 工作流程圖
仿真環(huán)境的搭建如下所述:
1)操作系統(tǒng):Windows XP
2)仿真環(huán)境:ModelSim SE 6.1g
用Verilog語言編寫測(cè)試文件,模擬總線時(shí)序,用Modelsim對(duì)IP進(jìn)行仿真。
測(cè)試文件是使用verilog語言編寫的testbench模擬BC的功能。BC命令格式包括BC-to-RT傳輸,RT-to-BC傳輸,RT-to-RT傳輸,不帶數(shù)據(jù)的模式代碼,發(fā)送帶數(shù)據(jù)的模式代碼,接收帶數(shù)據(jù)的模式代碼,廣播,RT-to-RTs(廣播)傳輸,不帶數(shù)據(jù)的廣播模式代碼。
為了方便觀察數(shù)據(jù)的正確性,將每一種命令編輯成一個(gè)輸入文件din.txt,并且將此條命令接收或處理后的數(shù)據(jù)存成另一個(gè)輸出文件dout.txt。圖12給出了仿真驗(yàn)證圖。
圖12 仿真驗(yàn)證圖
應(yīng)用板卡主要采用以下周邊器件:
1)CPU:SPARC V8
2)靜態(tài)RAM:SM512K32V017
3)1553 收發(fā)器:HI-1573PSI
驗(yàn)證多功能RT的測(cè)試規(guī)則完全依照GJB5186.1-“遠(yuǎn)程終端有效性測(cè)試方法”進(jìn)行。
消息測(cè)試如圖13所示。首先用Conder的1553板卡對(duì)多功能IP評(píng)估板卡進(jìn)行簡(jiǎn)單的消息測(cè)試,對(duì)IP進(jìn)行調(diào)試。此項(xiàng)測(cè)試只包括協(xié)議測(cè)試的部分內(nèi)容。
圖13 消息測(cè)試
后期采用“多功能MIL-STD-1553A/B總線測(cè)試儀(型號(hào)為AT15030)”,對(duì)IP進(jìn)行系統(tǒng)測(cè)試,測(cè)試環(huán)境如圖14所示?!皡f(xié)議測(cè)試”完全通過,電氣測(cè)試基本通過。
圖14 總線測(cè)試儀測(cè)試
測(cè)試項(xiàng)目窗口如圖15所示。具體測(cè)試項(xiàng)目參見GJB5186所列條目。測(cè)試結(jié)果及日志如圖16所示。
圖15 測(cè)試項(xiàng)目窗口
1553B多功能IP仿真站點(diǎn)功能上覆蓋MIL-STD-1553B協(xié)議,通過應(yīng)用測(cè)試,完全通過GJB5186.1-“遠(yuǎn)程終端有效性測(cè)試方法”測(cè)試。
本方案成本低、使用方便和易于升級(jí),還可以根據(jù)總線的測(cè)試要求增加必要的擴(kuò)展功能,具有推廣應(yīng)用價(jià)值。
圖16 測(cè)試結(jié)果及日志
[1]GJB/Z 209-2002數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線應(yīng)用手冊(cè)[Z].
[2]GJB 289A-97數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[Z].
[3]顏學(xué)龍,梅明.1553B總線接口中的曼徹斯特編解碼器的設(shè)計(jì)與驗(yàn)證[Z].電子測(cè)量與儀器學(xué)報(bào),2006年.
[4]許宏杰,田澤,袁曉軍.高速1553B IP核的設(shè)計(jì)與實(shí)現(xiàn)[Z].計(jì)算機(jī)技術(shù)與發(fā)展,2009年.
The Design and Implementation of 1553B Multifunctional RT IP Core
LI HuiZHANG Jingbo ZHANG Lei
Beijing Aerospace Automatic Control Institute,Beijing 100854,China
A design method of implementation functions of1553Bfull address remote terminal is introduced by using independent researched and developedIPcore which can be flexibly configured inFPGA.And the multifunction can be achieved with peripheral circuit equipped.This design is programmed by hardware description language known asVHDL,synthesized and optimized byISEFoundation.This design is timing simulated by ModelSim-SE 6.1gand finally fits intoFPGA.
MIL-STD-1553Bbus;VHDLhardware description language;FPGA
TP336
A
1006-3242(2012)01-0059-07
2011-10-20
李 輝(1984-),男,山東莘縣人,碩士研究生,研究方向?yàn)榭刂葡到y(tǒng)綜合設(shè)計(jì);張敬波(1979-),男,山東人,工程師,主要從事運(yùn)載火箭測(cè)發(fā)控系統(tǒng)設(shè)計(jì)工作;張 磊(1972-),男,河北晉州人,研究員,主要從事運(yùn)載火箭控制系統(tǒng)設(shè)計(jì)工作。