楊 勇,王占領(lǐng),張登福
(1.解放軍93594部隊,內(nèi)蒙古巴彥淖爾014413;2.空軍工程大學(xué)航空航天工程學(xué)院,西安710038)
?
一種1553B總線協(xié)議編解碼器的設(shè)計研究*
楊勇1*,王占領(lǐng)1,2,張登福2
(1.解放軍93594部隊,內(nèi)蒙古巴彥淖爾014413;2.空軍工程大學(xué)航空航天工程學(xué)院,西安710038)
摘要:編解碼器是1553B協(xié)議芯片中的重要組成部分。為了自主研發(fā)1553B總線協(xié)議的IP核,滿足對1553B協(xié)議芯片的廣泛需求,設(shè)計了基于1553B總線協(xié)議的編解碼器。對編碼器和解碼器采用自頂向下和獨立設(shè)計的方法,充分利用同步時鐘方法,提高了可靠性,有效解決了數(shù)據(jù)間干擾和亞穩(wěn)態(tài)問題。通過仿真驗證,結(jié)果表明設(shè)計實現(xiàn)了編碼與解碼功能。最后在FPGA硬件平臺上進(jìn)行了實際調(diào)試,測試取得了良好的效果,結(jié)果符合設(shè)計要求。
關(guān)鍵詞:1553B總線;編解碼器;FPGA;Verilog HDL
1553B總線是一種航空串行總線標(biāo)準(zhǔn),憑借著其突出的可靠性及靈活性等性能,廣泛應(yīng)用在航空航天、艦船、坦克等軍事平臺上,并發(fā)揮著越來越重要的作用[1]。隨著對1553B總線的不斷深入研究,開發(fā)出了大量的1553B專用協(xié)議芯片,如DDC公司的ACE系列產(chǎn)品,INTEL公司的M82553以及ACTEL研發(fā)的1553BBC等。目前國內(nèi)使用的1553B芯片絕大多數(shù)是從國外進(jìn)口,但是集成化程度還不是太高,且有很多功能略顯多余,同時價格也非常昂貴。
針對此情況,國內(nèi)的一些單位也開展了針對1553B協(xié)議芯片的研究。在研發(fā)的過程中,比較關(guān)鍵的部分是對1553B協(xié)議芯片的編解碼器的設(shè)計,從而真正打破國外對技術(shù)核心的封鎖。由于DDC公司的BU-61580是目前市場上應(yīng)用最廣泛的1553B協(xié)議芯片[2],本文就以其數(shù)據(jù)手冊為基礎(chǔ),研究了協(xié)議芯片的特性,并結(jié)合以往設(shè)計的編解碼器存在的問題,設(shè)計了一種高速可靠的1553B總線協(xié)議編解碼器。為后續(xù)設(shè)計1553B協(xié)議芯片打下了堅實的基礎(chǔ)。最后對所設(shè)計的編解碼器進(jìn)行了全面測試。
1553B總線又稱為MIL-STD-1553B數(shù)據(jù)總線,全稱為飛行器內(nèi)部時分命令/響應(yīng)式多路數(shù)據(jù)總線。1553B總線具有3種工作模式,分別為總線控制器(BC),遠(yuǎn)程終端(RT),總線監(jiān)視器(MT)[3]。BC負(fù)責(zé)對1553B總線數(shù)據(jù)傳輸?shù)目刂婆c管理,也是所有信息傳輸過程的發(fā)起者,任何時刻總線上只能有一個BC;RT對從總線上接收到的有效命令做出響應(yīng),回送狀態(tài)字;MT監(jiān)聽和記錄總線上傳輸?shù)拿詈蛿?shù)據(jù)的終端,它受BC控制,不參與任何總線傳輸。
1553B總線采用半雙工的方式進(jìn)行通信,總線上的信息流由一串1553B消息構(gòu)成,消息又可分為3種類型的字組織:命令字、數(shù)據(jù)字、狀態(tài)字,每個字長均為20 bit,可表示為:3 bit同步頭+16 bit數(shù)據(jù)/命令/狀態(tài)位+1bit奇偶校驗位。根據(jù)字的類型,命令字與狀態(tài)字的同步頭先正后負(fù),數(shù)據(jù)字的同步頭先負(fù)后正,正負(fù)各占1.5 bit。
總線上的數(shù)據(jù)傳輸速度是1 Mbit/s,傳輸?shù)臄?shù)據(jù)碼是曼徹斯特Ⅱ型雙相電平碼。邏輯1為雙極編碼信號1/0,即一個正脈沖繼之以一個負(fù)脈沖。邏輯0為雙極編碼信號0/1,即一個負(fù)脈沖繼之以一個正脈沖[4]。過零跳變發(fā)生在每一位時的中點。曼徹斯特Ⅱ型數(shù)據(jù)編碼格式如圖1所示。
圖1 曼徹斯特Ⅱ型數(shù)據(jù)編碼
在使用VerilogHDL描述語言設(shè)計FPGA時,本文采用同步時鐘的方法進(jìn)行設(shè)計,以避免出現(xiàn)建立時間和保持時間無效的情況,從而達(dá)到清晰高效的目的[5]。整個編解碼器采用2 MHz的時鐘。
編解碼器由編碼器和解碼器兩部分組成。編碼器接收來自1553B協(xié)議處理器的16 bit并行數(shù)據(jù),經(jīng)并串轉(zhuǎn)換、生成同步頭和奇偶校驗位,轉(zhuǎn)換成曼徹斯特Ⅱ型碼格式的串行數(shù)據(jù),再經(jīng)模擬收發(fā)器發(fā)送到1553B總線上。
解碼器接收由1553B總線發(fā)送來的曼徹斯特Ⅱ型串行數(shù)據(jù),對數(shù)據(jù)進(jìn)行數(shù)據(jù)有效檢測,奇偶校驗位檢測,并經(jīng)串并轉(zhuǎn)換輸出16 bit并行數(shù)據(jù)。
2.1編碼器設(shè)計
編碼器的功能有同步頭與有效數(shù)據(jù)編碼、產(chǎn)生奇偶校驗位。編碼器接收需要編碼的16 bit并行數(shù)據(jù),根據(jù)數(shù)據(jù)類型,前面加上同步頭,在20 bit處補上奇偶校驗位,編碼生成曼徹斯特Ⅱ型碼[6],再通過模擬收發(fā)器處理后,從A、B兩個通道發(fā)送到1553B總線上。
這里采用2 MHz時鐘。由于總線上數(shù)據(jù)的傳輸速度為1 Mbit/s,那么傳輸一個比特則需要計數(shù)2個時鐘周期[7]。具體編碼步驟如下:在復(fù)位信號為高電平時,在時鐘信號的上升沿,鎖存待編碼數(shù)據(jù)。根據(jù)輸入tx_csw和tx_dw信號,生成相應(yīng)的同步頭,3 bit的同步頭需要計數(shù)6個編碼時鐘周期。在完成16 bit數(shù)據(jù)的編碼后,由鎖存器生成奇偶校驗位,最后從tx_data輸出20 bit曼徹斯特Ⅱ型數(shù)據(jù)。編碼器原理框圖如圖2所示,編碼器模塊接口信號定義如表1所示。
圖2 編碼器原理框圖
表1 編碼器接口信號定義
2.2解碼器設(shè)計
解碼器的工作流程是編碼器的逆過程。
解碼器的功能有同步頭檢測、把串行曼徹斯特Ⅱ型碼轉(zhuǎn)換成并行非歸零二進(jìn)制數(shù)據(jù)、曼徹斯特Ⅱ型碼錯誤檢測以及奇偶位校驗。
解碼器具體過程:按其功能分離出同步頭信號,將接收的曼徹斯特Ⅱ碼解碼成二進(jìn)制電平信號,并進(jìn)行奇偶校驗。如果數(shù)據(jù)出錯(rx_dval=0)或校驗位出錯(rx_perr=1),發(fā)送出錯信號。為了保證解碼過程的正確性,解碼器需要產(chǎn)生以下幾個判斷信號:(1)同步頭正誤判斷信號,在同步頭結(jié)束時發(fā)送;(2)數(shù)據(jù)有效判斷信號,校驗位結(jié)束時發(fā)送;(3)校驗位錯誤判斷信號,校驗位結(jié)束時發(fā)送。
接收到一個完整的帶同步頭和奇校驗位的20 bit曼徹斯特碼字后,檢測到正確的同步頭,若數(shù)據(jù)有效信號置‘1’(rx_dval=1),數(shù)據(jù)被讀取或錯誤信號被讀取后回到‘0’。通過判斷解碼數(shù)據(jù)校驗位錯誤信號的值,若rx_perr=0,表示數(shù)據(jù)正確,讀取16 bit的數(shù)據(jù)(rx_dword)。如果有任何一位判斷信號無效,表示數(shù)據(jù)出錯,讀取出錯消息,不再讀取16 bit數(shù)據(jù)。讀取數(shù)據(jù)正確,則輸出數(shù)據(jù)并鎖存至數(shù)據(jù)寄存器。數(shù)據(jù)錯誤,則讀取相應(yīng)錯誤信息,存放到相應(yīng)的寄存器。
在解碼過程中,為了減小亞穩(wěn)態(tài)的影響,首先對輸入的待解碼數(shù)據(jù)rx_data寄存一個解碼時鐘周期,這樣可使整個解碼過程與2 MHz時鐘同步,然后再進(jìn)行同步頭的檢測,在命令字或數(shù)據(jù)字的同步頭檢測正確后,開始采集數(shù)據(jù)以讀取。
編碼器原理框圖如圖3所示,編碼器模塊接口信號定義如表2所示。
圖3 解碼器原理框圖
表2 編碼器接口信號定義
設(shè)計采用Verilog HDL語言進(jìn)行描述,在集成開發(fā)環(huán)境Quartus 7.2中實現(xiàn)仿真綜合驗證[8]。
在編碼器中,通過計數(shù)操作實現(xiàn)并串轉(zhuǎn)換。
圖4 數(shù)據(jù)編碼流程圖
用該編碼器對1011010100111001B進(jìn)行命令字的編碼,接著分別對兩個數(shù)據(jù)字1011010100111010B 和1011010100111011B編碼,仿真時序圖如圖5和圖6所示。
圖5 編碼器時序仿真圖(命令字)
圖6 編碼器時序仿真圖(數(shù)據(jù)字)
在解碼器中,通過移位操作實現(xiàn)串并轉(zhuǎn)換,串并轉(zhuǎn)換的代碼如下:
always @(posedge dec_clk or negedge rst_n)begin
if(! rst_n)begin
data_sftreg<=5'd0;
sync_sftreg<=24'd0;
endelse begin
data_sftreg<=
{data_sftreg[1:4],rx_data};
sync_sftreg<=
{sync_sftreg[1:23],data_sftreg[0]};
end
end
用該解碼器分別對命令字和數(shù)據(jù)字解碼,rx_csw為高電平時,數(shù)據(jù)為命令字,rx_dw為高電平時,數(shù)據(jù)為數(shù)據(jù)字。仿真時序圖如圖7所示。
最后,將該編解碼器下載到Altera CycloneⅡ系列的EP2C5T144C8芯片上進(jìn)行硬件調(diào)試[9]。為使得1553B總線上的通信能夠更加直觀,這里用示波器來捕獲信息流,部分消息串如圖8所示。
圖7 解碼器時序仿真圖
圖8 測得總線上的部分消息串
采用ATTEN公司的ADS1022C示波器對編解碼器進(jìn)行測試。將其USB Device接口與PC連接后,再利用ATTEN公司的示波器測試軟件EasyS?cope3.0顯示捕獲的波形、數(shù)據(jù)和測量值。根據(jù)測試波形可以看出,其頻率、電壓幅值以及波形升降均符合1553B總線的協(xié)議標(biāo)準(zhǔn)。
經(jīng)多次測試,結(jié)果表明:該解碼器效果良好,能高效實現(xiàn)相應(yīng)功能。
本文設(shè)計了1553B總線協(xié)議編解碼器,用Ver?ilog HDL語言描述并實現(xiàn)了曼徹斯特Ⅱ型碼與二進(jìn)制碼數(shù)據(jù)間的相互轉(zhuǎn)換。在設(shè)計過程中充分利用了FPGA芯片資源。經(jīng)軟件仿真與硬件實際測試,符合設(shè)計要求,為后續(xù)設(shè)計1553B協(xié)議芯片的IP核奠定了理論與實驗基礎(chǔ)。
參考文獻(xiàn):
[1]DDC. ACE/Mini- ACE Series BC/RT/MT Advanced Communica?tion Engine Integrated 1553 Terminal User’s Guide[EB/OL]. 2010. http://www.ddc-web.com.
[2]DDC. MIL-STD-1553 Designer’s Guide(sixth edition)[S]. 2003.
[3]李輝,張敬波,張磊. 1553B多功能RT IP核的設(shè)計與實現(xiàn)[J].航天控制,2012,30(1),60-64.
[4]孫濤,張華春.基于1553B協(xié)議的總線控制器和遠(yuǎn)程終端的FP?GA實現(xiàn)[J].中國科學(xué)院研究生院學(xué)報,2010,27(4),523-526.
[5]解彥.基于FPGA的1553B遠(yuǎn)置終端IP核的設(shè)計與實現(xiàn)[D].北京:中國科學(xué)院研究生院,2011:31-39.
[6]許宏杰,田澤,袁曉軍.高速1553BIP核的設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2009,19(12):155-158.
[7]孫濤,張華春.基于MIL-STD-1553B協(xié)議的遠(yuǎn)程終端的FPGA實現(xiàn)[J].電子器件,2010,33(3):353-356.
[8]夏宇聞. Verilog數(shù)字系統(tǒng)設(shè)計教程[M].第2版.北京:北京航空航天大學(xué)出版社,2008:16-19.
[9]姚愛紅,張國印,武俊鵬.基于FPGA的硬件系統(tǒng)設(shè)計實驗與實踐教程[M].北京:清華大學(xué)出版社,2011:38-45.
楊勇(1981-),男,漢族,陜西商洛人,工程師,主要研究方向為航空通信電子系統(tǒng);
王占領(lǐng)(1988-),男,漢族,河南商丘人,碩士,CCF會員,主要研究方向為綜合航空電子系統(tǒng),wangzhanling1988@163.com。
An Modified Weak BDS Signal Acquisition Algorithm*
LI Deng’ao*,NIU Wenhui,ZHAO Jumin,LI Shuai,LIU Jinqiang
(College of Information Engineering,Taiyuan University of Technology,Taiyuan 030024,China)
Abstract:The Beidou satellite signal strength is often less than -133 dBW under the weak environment,the coher?ent integration time are limited only in a period of primary code. A new algorithm which is based on combining seri?al and parallel search was presented to extended the coherent integration time so as to achieve acquisition of the weak Compass signal. Firstly,obtain the code phrase of the primary code by serial search within a period of PRN code,and then get the secondary code phase and Doppler shift by parallel search on the entire secondary code,thereby extending the coherent integration time to achieve weak Compass signal acquisition,simulation shows that the algorithm could be able to achieve accurate acquisition even the strength of the signal as low as -150 dBm.
Key words:BDS;secondary code;acquisition;serial;parallel
doi:EEACC:614010.3969/j.issn.1005-9490.2016.01.011
收稿日期:項目來源:國防科技重點實驗室基金項目(9140C6001070801)2015-03-22修改日期:2015-05-17
中圖分類號:TP336
文獻(xiàn)標(biāo)識碼:A
文章編號:1005-9490(2016)01-0046-05