高漢昆,高 鵬
(1.山西煤炭職業(yè)技術(shù)學(xué)院 機電工程系,山西 太原 030031;2.山西離柳焦煤集團有限公司,山西 呂梁 033000)
標(biāo)準(zhǔn)ADS-B 機載設(shè)備使用二次雷達頻率1 090 MHz進行廣播,地面站進行接收,廣播的數(shù)據(jù)中包含了飛機的位置等數(shù)據(jù)。ADS-B系統(tǒng)算法原理框圖如圖1所示[1]。本文所討論的糾檢錯算法主要工作在ADS-B 解碼器和數(shù)據(jù)提取單元,地面站接收到ADS-B廣播消息之后,需經(jīng)過數(shù)據(jù)處理解碼得到相應(yīng)的參數(shù)信息,為了保證數(shù)據(jù)傳輸接收的準(zhǔn)確性和可靠性,需進行糾檢錯處理。
圖1 ADS-B系統(tǒng)算法原理框圖
CRC校驗的基本原理是:根據(jù)線性編碼原理,信號產(chǎn)生端把要傳輸?shù)膍 位二進制碼按某種規(guī)則產(chǎn)生n位以后要在接收端用到的監(jiān)督碼,并把這n 位信息碼附在m 位原碼之后,產(chǎn)生一個新的二進制碼序列。
在信號接收端,根據(jù)原傳送碼和接收到的CRC碼之間的規(guī)則進行校驗,以確認在傳輸過程中碼位是否發(fā)生錯誤。發(fā)送接收雙方約定好一個多項式G(x),給定消息為M(x),經(jīng)過CRC除法電路后得到一串校驗碼。假設(shè)發(fā)送端的原始數(shù)據(jù)經(jīng)過除法電路后得到的比特序列R(x)為:
發(fā)送方發(fā)送碼字S(x)為:
其中:n、k為碼字和消息對應(yīng)的二進制序列的比特數(shù)。則接收端經(jīng)相同CRC 除法電路得到的比特序列R′(x)[2]為:
判斷R′(x)是否為0,若為0,說明信息未發(fā)生錯誤;反之,發(fā)生錯誤。
在本文中,針對ADS-B 下行通信數(shù)據(jù)鏈的特點,采用了一種改進的生成多項式,即CRC-24循環(huán)冗余校驗碼:
其中:CRC-24中的24表示表達式中最高次冪的數(shù)字。
本文采用長除法對輸入串行碼流設(shè)計CRC 校驗電路,在ADS-B 接收機系統(tǒng)中采用的是CRC 校驗除法電路。數(shù)據(jù)從電路右端串行輸入(按時間順序),異或為Reg3,即上次模2的最高位,當(dāng)最高位為0時相當(dāng)于只左移一位;為1時,模2后左移。當(dāng)數(shù)據(jù)串行輸入完成后,最終四個寄存器中的值即為余數(shù)。本文針對ADS-B系統(tǒng)采用多項式CRC-24設(shè)計其相對應(yīng)的校驗除法電路,如圖2所示。
圖2 CRC-24校驗除法電路
在S模式ADS-B接收系統(tǒng)中,下行數(shù)據(jù)鏈信號是經(jīng)過脈沖位置調(diào)制的。即對于任意比特位,脈沖能量出現(xiàn)在前一個(chip1)表示1,出現(xiàn)在后一個(chip0)表示0,因此我們可以通過比較每個比特中前后兩個chip的能量分布來判定比特及其置信度[3,4]。有多種方法可以實現(xiàn)這種判定,這里采用基線多樣點算法,采樣點分布如圖3所示。從圖3可以看出每個信號都分為高低電平兩部分,占空比為50%,每個電平各采樣5個點,系統(tǒng)時鐘用的是10 MHz,每個bit占用1μs,由此也可以推斷出一個bit位采樣10個點。
圖3 ADS-B消息多點采樣示意圖
圖4為糾錯檢錯算法在FPGA 中實現(xiàn)的流程圖。
(1)在接收端,對接收到的ADS-B 消息經(jīng)過CRC校驗電路,得到相應(yīng)數(shù)據(jù)的錯誤校驗子。如果該錯誤校驗子結(jié)果為0,則表示應(yīng)答數(shù)據(jù)中沒有錯誤位。
(2)由步驟(1)得到的組合校驗子與經(jīng)過糾檢錯電路得到的錯誤校驗子相比對,如果相等,則將對應(yīng)的低置信度比特位取反(1變?yōu)?,0變?yōu)?)。
(3)到此,完成糾檢錯功能,輸出正確消息數(shù)據(jù)。
本文選用Xilinx公司開發(fā)的Spartan-6系列中的XC6SLX150,在ISE 11.3集成軟件平臺上進行編譯、仿真和綜合[5]。
CRC檢錯模塊仿真波形圖如圖5 所示。圖5 中只保留了關(guān)鍵信號,接收端接收到的ADS-B 信號數(shù)據(jù)為8C4E6132A4EB0C05CED38BDC2A6D,以串行比特流方式輸入,當(dāng)信號輸入完成后,在CRC 寄存器signal_crc_reg中保留的數(shù)據(jù)即為輸入信號的CRC檢驗碼,糾錯模塊仿真波形圖如圖6所示(圖5橢圓所圈數(shù)字C721A6)。
圖4 信號糾錯檢錯流程圖
圖5 檢錯模塊仿真波形圖
圖6 糾錯模塊仿真波形圖
蠻力糾錯模塊仿真波形圖如圖7 所示(由于在testbanch中只產(chǎn)生了一幀ADS-B消息數(shù)據(jù),所以圖7中無效區(qū)域是由于相應(yīng)信號沒有數(shù)據(jù))。根據(jù)檢錯模塊中輸出信號的CRC校驗碼,通過蠻力糾錯算法找出低置信度的組合以及錯誤的比特位,然后對數(shù)據(jù)對應(yīng)的錯誤比特位取反并輸出。測試數(shù)據(jù)中置信度為低的位都發(fā)生錯誤,因此圖7中檢測出來的w1~w5都有對應(yīng)的值,糾錯的結(jié)果是將其接收端接收到的對應(yīng)數(shù)據(jù)位正確取反并輸出。仿真結(jié)果證明了算法的正確性。
圖7 蠻力糾錯模塊仿真波形圖
仿真結(jié)果說明此糾檢錯算法能正確地檢測出在傳輸過程中出錯的比特位,并糾正其錯誤,然后將正確的數(shù)據(jù)輸出。本文所提出的基于置信度分析的蠻力糾錯技術(shù)大大提高了循環(huán)冗余碼(CRC)糾錯能力,提高了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性,保證信息傳輸?shù)耐暾浴?/p>
[1] Samir Palnitkar.A Guide to Digital Design and Synthesis[M].夏宇聞,譯.第2版.北京:電子工業(yè)出版社,2004.
[2] 陳士毅,李玉柏.基于置信度判定的循環(huán)冗余校驗糾錯技術(shù)[J].電訊技術(shù),2007(1):175-178.
[3] 劉曉斌.基于模式S 的ADS-B 接收機系統(tǒng)算法研究[D].成都:電子科技大學(xué),2011:30.
[4] 周建紅.ADS-B系統(tǒng)應(yīng)答的一種糾錯算法設(shè)計與實現(xiàn)[J].火控雷達技術(shù),2011(3):91-95.
[5] 吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,2010.