高漢昆,高 鵬
(1.山西煤炭職業技術學院 機電工程系,山西 太原 030031;2.山西離柳焦煤集團有限公司,山西 呂梁 033000)
標準ADS-B 機載設備使用二次雷達頻率1 090 MHz進行廣播,地面站進行接收,廣播的數據中包含了飛機的位置等數據。ADS-B系統算法原理框圖如圖1所示[1]。本文所討論的糾檢錯算法主要工作在ADS-B 解碼器和數據提取單元,地面站接收到ADS-B廣播消息之后,需經過數據處理解碼得到相應的參數信息,為了保證數據傳輸接收的準確性和可靠性,需進行糾檢錯處理。

圖1 ADS-B系統算法原理框圖
CRC校驗的基本原理是:根據線性編碼原理,信號產生端把要傳輸的m 位二進制碼按某種規則產生n位以后要在接收端用到的監督碼,并把這n 位信息碼附在m 位原碼之后,產生一個新的二進制碼序列。
在信號接收端,根據原傳送碼和接收到的CRC碼之間的規則進行校驗,以確認在傳輸過程中碼位是否發生錯誤。發送接收雙方約定好一個多項式G(x),給定消息為M(x),經過CRC除法電路后得到一串校驗碼。假設發送端的原始數據經過除法電路后得到的比特序列R(x)為:

發送方發送碼字S(x)為:

其中:n、k為碼字和消息對應的二進制序列的比特數。則接收端經相同CRC 除法電路得到的比特序列R′(x)[2]為:

判斷R′(x)是否為0,若為0,說明信息未發生錯誤;反之,發生錯誤。
在本文中,針對ADS-B 下行通信數據鏈的特點,采用了一種改進的生成多項式,即CRC-24循環冗余校驗碼:

其中:CRC-24中的24表示表達式中最高次冪的數字。
本文采用長除法對輸入串行碼流設計CRC 校驗電路,在ADS-B 接收機系統中采用的是CRC 校驗除法電路。數據從電路右端串行輸入(按時間順序),異或為Reg3,即上次模2的最高位,當最高位為0時相當于只左移一位;為1時,模2后左移。當數據串行輸入完成后,最終四個寄存器中的值即為余數。本文針對ADS-B系統采用多項式CRC-24設計其相對應的校驗除法電路,如圖2所示。

圖2 CRC-24校驗除法電路
在S模式ADS-B接收系統中,下行數據鏈信號是經過脈沖位置調制的。即對于任意比特位,脈沖能量出現在前一個(chip1)表示1,出現在后一個(chip0)表示0,因此我們可以通過比較每個比特中前后兩個chip的能量分布來判定比特及其置信度[3,4]。有多種方法可以實現這種判定,這里采用基線多樣點算法,采樣點分布如圖3所示。從圖3可以看出每個信號都分為高低電平兩部分,占空比為50%,每個電平各采樣5個點,系統時鐘用的是10 MHz,每個bit占用1μs,由此也可以推斷出一個bit位采樣10個點。

圖3 ADS-B消息多點采樣示意圖
圖4為糾錯檢錯算法在FPGA 中實現的流程圖。
(1)在接收端,對接收到的ADS-B 消息經過CRC校驗電路,得到相應數據的錯誤校驗子。如果該錯誤校驗子結果為0,則表示應答數據中沒有錯誤位。
(2)由步驟(1)得到的組合校驗子與經過糾檢錯電路得到的錯誤校驗子相比對,如果相等,則將對應的低置信度比特位取反(1變為0,0變為1)。
(3)到此,完成糾檢錯功能,輸出正確消息數據。
本文選用Xilinx公司開發的Spartan-6系列中的XC6SLX150,在ISE 11.3集成軟件平臺上進行編譯、仿真和綜合[5]。
CRC檢錯模塊仿真波形圖如圖5 所示。圖5 中只保留了關鍵信號,接收端接收到的ADS-B 信號數據為8C4E6132A4EB0C05CED38BDC2A6D,以串行比特流方式輸入,當信號輸入完成后,在CRC 寄存器signal_crc_reg中保留的數據即為輸入信號的CRC檢驗碼,糾錯模塊仿真波形圖如圖6所示(圖5橢圓所圈數字C721A6)。

圖4 信號糾錯檢錯流程圖

圖5 檢錯模塊仿真波形圖

圖6 糾錯模塊仿真波形圖
蠻力糾錯模塊仿真波形圖如圖7 所示(由于在testbanch中只產生了一幀ADS-B消息數據,所以圖7中無效區域是由于相應信號沒有數據)。根據檢錯模塊中輸出信號的CRC校驗碼,通過蠻力糾錯算法找出低置信度的組合以及錯誤的比特位,然后對數據對應的錯誤比特位取反并輸出。測試數據中置信度為低的位都發生錯誤,因此圖7中檢測出來的w1~w5都有對應的值,糾錯的結果是將其接收端接收到的對應數據位正確取反并輸出。仿真結果證明了算法的正確性。

圖7 蠻力糾錯模塊仿真波形圖
仿真結果說明此糾檢錯算法能正確地檢測出在傳輸過程中出錯的比特位,并糾正其錯誤,然后將正確的數據輸出。本文所提出的基于置信度分析的蠻力糾錯技術大大提高了循環冗余碼(CRC)糾錯能力,提高了數據傳輸的準確性和可靠性,保證信息傳輸的完整性。
[1] Samir Palnitkar.A Guide to Digital Design and Synthesis[M].夏宇聞,譯.第2版.北京:電子工業出版社,2004.
[2] 陳士毅,李玉柏.基于置信度判定的循環冗余校驗糾錯技術[J].電訊技術,2007(1):175-178.
[3] 劉曉斌.基于模式S 的ADS-B 接收機系統算法研究[D].成都:電子科技大學,2011:30.
[4] 周建紅.ADS-B系統應答的一種糾錯算法設計與實現[J].火控雷達技術,2011(3):91-95.
[5] 吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.