楊 勇,王占領,張登福
(1.解放軍93594部隊,內蒙古巴彥淖爾014413;2.空軍工程大學航空航天工程學院,西安710038)
?
一種1553B總線協議編解碼器的設計研究*
楊勇1*,王占領1,2,張登福2
(1.解放軍93594部隊,內蒙古巴彥淖爾014413;2.空軍工程大學航空航天工程學院,西安710038)
摘要:編解碼器是1553B協議芯片中的重要組成部分。為了自主研發1553B總線協議的IP核,滿足對1553B協議芯片的廣泛需求,設計了基于1553B總線協議的編解碼器。對編碼器和解碼器采用自頂向下和獨立設計的方法,充分利用同步時鐘方法,提高了可靠性,有效解決了數據間干擾和亞穩態問題。通過仿真驗證,結果表明設計實現了編碼與解碼功能。最后在FPGA硬件平臺上進行了實際調試,測試取得了良好的效果,結果符合設計要求。
關鍵詞:1553B總線;編解碼器;FPGA;Verilog HDL
1553B總線是一種航空串行總線標準,憑借著其突出的可靠性及靈活性等性能,廣泛應用在航空航天、艦船、坦克等軍事平臺上,并發揮著越來越重要的作用[1]。隨著對1553B總線的不斷深入研究,開發出了大量的1553B專用協議芯片,如DDC公司的ACE系列產品,INTEL公司的M82553以及ACTEL研發的1553BBC等。目前國內使用的1553B芯片絕大多數是從國外進口,但是集成化程度還不是太高,且有很多功能略顯多余,同時價格也非常昂貴。
針對此情況,國內的一些單位也開展了針對1553B協議芯片的研究。在研發的過程中,比較關鍵的部分是對1553B協議芯片的編解碼器的設計,從而真正打破國外對技術核心的封鎖。由于DDC公司的BU-61580是目前市場上應用最廣泛的1553B協議芯片[2],本文就以其數據手冊為基礎,研究了協議芯片的特性,并結合以往設計的編解碼器存在的問題,設計了一種高速可靠的1553B總線協議編解碼器。為后續設計1553B協議芯片打下了堅實的基礎。最后對所設計的編解碼器進行了全面測試。
1553B總線又稱為MIL-STD-1553B數據總線,全稱為飛行器內部時分命令/響應式多路數據總線。1553B總線具有3種工作模式,分別為總線控制器(BC),遠程終端(RT),總線監視器(MT)[3]。BC負責對1553B總線數據傳輸的控制與管理,也是所有信息傳輸過程的發起者,任何時刻總線上只能有一個BC;RT對從總線上接收到的有效命令做出響應,回送狀態字;MT監聽和記錄總線上傳輸的命令和數據的終端,它受BC控制,不參與任何總線傳輸。
1553B總線采用半雙工的方式進行通信,總線上的信息流由一串1553B消息構成,消息又可分為3種類型的字組織:命令字、數據字、狀態字,每個字長均為20 bit,可表示為:3 bit同步頭+16 bit數據/命令/狀態位+1bit奇偶校驗位。根據字的類型,命令字與狀態字的同步頭先正后負,數據字的同步頭先負后正,正負各占1.5 bit。
總線上的數據傳輸速度是1 Mbit/s,傳輸的數據碼是曼徹斯特Ⅱ型雙相電平碼。邏輯1為雙極編碼信號1/0,即一個正脈沖繼之以一個負脈沖。邏輯0為雙極編碼信號0/1,即一個負脈沖繼之以一個正脈沖[4]。過零跳變發生在每一位時的中點。曼徹斯特Ⅱ型數據編碼格式如圖1所示。

圖1 曼徹斯特Ⅱ型數據編碼
在使用VerilogHDL描述語言設計FPGA時,本文采用同步時鐘的方法進行設計,以避免出現建立時間和保持時間無效的情況,從而達到清晰高效的目的[5]。整個編解碼器采用2 MHz的時鐘。
編解碼器由編碼器和解碼器兩部分組成。編碼器接收來自1553B協議處理器的16 bit并行數據,經并串轉換、生成同步頭和奇偶校驗位,轉換成曼徹斯特Ⅱ型碼格式的串行數據,再經模擬收發器發送到1553B總線上。
解碼器接收由1553B總線發送來的曼徹斯特Ⅱ型串行數據,對數據進行數據有效檢測,奇偶校驗位檢測,并經串并轉換輸出16 bit并行數據。
2.1編碼器設計
編碼器的功能有同步頭與有效數據編碼、產生奇偶校驗位。編碼器接收需要編碼的16 bit并行數據,根據數據類型,前面加上同步頭,在20 bit處補上奇偶校驗位,編碼生成曼徹斯特Ⅱ型碼[6],再通過模擬收發器處理后,從A、B兩個通道發送到1553B總線上。
這里采用2 MHz時鐘。由于總線上數據的傳輸速度為1 Mbit/s,那么傳輸一個比特則需要計數2個時鐘周期[7]。具體編碼步驟如下:在復位信號為高電平時,在時鐘信號的上升沿,鎖存待編碼數據。根據輸入tx_csw和tx_dw信號,生成相應的同步頭,3 bit的同步頭需要計數6個編碼時鐘周期。在完成16 bit數據的編碼后,由鎖存器生成奇偶校驗位,最后從tx_data輸出20 bit曼徹斯特Ⅱ型數據。編碼器原理框圖如圖2所示,編碼器模塊接口信號定義如表1所示。

圖2 編碼器原理框圖

表1 編碼器接口信號定義
2.2解碼器設計
解碼器的工作流程是編碼器的逆過程。
解碼器的功能有同步頭檢測、把串行曼徹斯特Ⅱ型碼轉換成并行非歸零二進制數據、曼徹斯特Ⅱ型碼錯誤檢測以及奇偶位校驗。
解碼器具體過程:按其功能分離出同步頭信號,將接收的曼徹斯特Ⅱ碼解碼成二進制電平信號,并進行奇偶校驗。如果數據出錯(rx_dval=0)或校驗位出錯(rx_perr=1),發送出錯信號。為了保證解碼過程的正確性,解碼器需要產生以下幾個判斷信號:(1)同步頭正誤判斷信號,在同步頭結束時發送;(2)數據有效判斷信號,校驗位結束時發送;(3)校驗位錯誤判斷信號,校驗位結束時發送。
接收到一個完整的帶同步頭和奇校驗位的20 bit曼徹斯特碼字后,檢測到正確的同步頭,若數據有效信號置‘1’(rx_dval=1),數據被讀取或錯誤信號被讀取后回到‘0’。通過判斷解碼數據校驗位錯誤信號的值,若rx_perr=0,表示數據正確,讀取16 bit的數據(rx_dword)。如果有任何一位判斷信號無效,表示數據出錯,讀取出錯消息,不再讀取16 bit數據。讀取數據正確,則輸出數據并鎖存至數據寄存器。數據錯誤,則讀取相應錯誤信息,存放到相應的寄存器。
在解碼過程中,為了減小亞穩態的影響,首先對輸入的待解碼數據rx_data寄存一個解碼時鐘周期,這樣可使整個解碼過程與2 MHz時鐘同步,然后再進行同步頭的檢測,在命令字或數據字的同步頭檢測正確后,開始采集數據以讀取。
編碼器原理框圖如圖3所示,編碼器模塊接口信號定義如表2所示。

圖3 解碼器原理框圖

表2 編碼器接口信號定義
設計采用Verilog HDL語言進行描述,在集成開發環境Quartus 7.2中實現仿真綜合驗證[8]。
在編碼器中,通過計數操作實現并串轉換。

圖4 數據編碼流程圖
用該編碼器對1011010100111001B進行命令字的編碼,接著分別對兩個數據字1011010100111010B 和1011010100111011B編碼,仿真時序圖如圖5和圖6所示。

圖5 編碼器時序仿真圖(命令字)

圖6 編碼器時序仿真圖(數據字)
在解碼器中,通過移位操作實現串并轉換,串并轉換的代碼如下:
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
用該解碼器分別對命令字和數據字解碼,rx_csw為高電平時,數據為命令字,rx_dw為高電平時,數據為數據字。仿真時序圖如圖7所示。
最后,將該編解碼器下載到Altera CycloneⅡ系列的EP2C5T144C8芯片上進行硬件調試[9]。為使得1553B總線上的通信能夠更加直觀,這里用示波器來捕獲信息流,部分消息串如圖8所示。

圖7 解碼器時序仿真圖

圖8 測得總線上的部分消息串
采用ATTEN公司的ADS1022C示波器對編解碼器進行測試。將其USB Device接口與PC連接后,再利用ATTEN公司的示波器測試軟件EasyS?cope3.0顯示捕獲的波形、數據和測量值。根據測試波形可以看出,其頻率、電壓幅值以及波形升降均符合1553B總線的協議標準。
經多次測試,結果表明:該解碼器效果良好,能高效實現相應功能。
本文設計了1553B總線協議編解碼器,用Ver?ilog HDL語言描述并實現了曼徹斯特Ⅱ型碼與二進制碼數據間的相互轉換。在設計過程中充分利用了FPGA芯片資源。經軟件仿真與硬件實際測試,符合設計要求,為后續設計1553B協議芯片的IP核奠定了理論與實驗基礎。
參考文獻:
[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核的設計與實現[J].航天控制,2012,30(1),60-64.
[4]孫濤,張華春.基于1553B協議的總線控制器和遠程終端的FP?GA實現[J].中國科學院研究生院學報,2010,27(4),523-526.
[5]解彥.基于FPGA的1553B遠置終端IP核的設計與實現[D].北京:中國科學院研究生院,2011:31-39.
[6]許宏杰,田澤,袁曉軍.高速1553BIP核的設計與實現[J].計算機技術與發展,2009,19(12):155-158.
[7]孫濤,張華春.基于MIL-STD-1553B協議的遠程終端的FPGA實現[J].電子器件,2010,33(3):353-356.
[8]夏宇聞. Verilog數字系統設計教程[M].第2版.北京:北京航空航天大學出版社,2008:16-19.
[9]姚愛紅,張國印,武俊鵬.基于FPGA的硬件系統設計實驗與實踐教程[M].北京:清華大學出版社,2011:38-45.
楊勇(1981-),男,漢族,陜西商洛人,工程師,主要研究方向為航空通信電子系統;

王占領(1988-),男,漢族,河南商丘人,碩士,CCF會員,主要研究方向為綜合航空電子系統,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
文獻標識碼:A
文章編號:1005-9490(2016)01-0046-05