一種低誤碼率的ADS-B接收機的設計
2.4 傳輸模塊設計
本文引用地址:http://www.104case.com/article/274749.htm傳輸模塊實現的是FPGA與電腦之間的信息交換。利用FPGA的FIFO進行數據緩存,并通過該模塊發送到上位機中。為了提高信息的傳輸速率,傳輸模塊采用的是PL2303HX,實現了TTL和USB信號的轉換,將ADS-B信號轉換為AISC II碼傳遞到電腦上位機中。通過上位機解碼,提取相關的飛機的位置、速度、高度、經緯度等信息,并顯示在界面上,原理圖如圖5所示。
3 軟件設計
3.1 總體設計
軟件設計包括ADC數據讀取、數字濾波、信息提取、CRC校驗、串口發送等幾個部分。通過讀取前端信號,并濾除相關的干擾信號,得到平滑信號,提取相關信息發送到上位機中。由于FPGA 并行處理的特點,所以數據的濾波和數據的提取是流水線的處理方式;數據格式的轉換采用的是連續型賦值的方法,保證數據隨時更新;同時,數據的發送是獨立進行的,通過是否存在存儲數據來判斷是否發送;其流程圖如圖6所示。
3.2 信號提取設計
ADS-B的信號經過數字濾波之后,去掉干擾成分。在模式S應答處理中,首先要完成的操作是報頭檢測,它是一切后續處理的前提和基礎[3],信號的提取主要是檢測信號的報頭起始部分,即檢測四個有效脈沖;檢測到報頭之后提取信號的有效功率,通過多振幅采樣點方法[5]計算代碼,提取112位或56位消息。其流程圖如圖7所示。
3.3 串口程序設計
通過FPGA實現串口的設計,需要將數據送入FIFO中,然后從FIFO讀取相關的數據,發送到上位機中,保障數據的完整性。為了保證數據讀寫速率相同,這里的FIFO采用了讀寫時鐘同步的FIFO讀寫方式。在得到信號提取接收信號之后,讀取存儲ADS-B信息的數組,然后進行CRC校驗,如果校驗正確,轉化為ASIC II碼,將數據寫入FIFO中,并改變FIFO的存儲狀態;同時,串口發送部分通過判斷FIFO的狀態信號來判斷是否發送信息,如果FIFO為空,則等待不為空信號;否則發送相關數據。具體流程圖如8所示。
3.4 RTL級原理圖
使用Verilog編寫了FPGA的實現程序,共包含數據處理部分、FIFO讀寫部分、串口發送部分和PLL部分,實現ADS-B信息的數字濾波、數據信息提取、數據讀寫和數據發送的功能。其RTL級原理圖如圖9所示。
4 實驗結果
利用MATLAB讀取接收機經過模數轉換之后的數據,并通過MATLAB GUI界面顯示,獲得圖10中的濾波前的信號;經過MATLAB編寫中值濾波算法實現仿真驗證,測試中值濾波在ADS-B信號濾波中的實際效果,得到了圖10濾波之后的波形。從圖中可以看出中值濾波,能夠消除信號中的雜波干擾,使信號變得平滑,并且不改變信號的信號寬度和信號位置,僅僅消除了信號中的雜波干擾信號。
利用串口調試助手驗證濾波效果,在相同波特率下,經過濾波之后的信號CRC校驗正確的數據要比對比實驗組的數據量大,由此可以看出該設計可以降低接收機的誤碼率。
5 結論
本文介紹的基于FPGA的ADS-B接收機的設計方法,采用了高速ADC轉換電路,通過數字濾波算法實現了信號的濾波,消除了雜波的干擾,采用了多振幅采樣點方法提取消息更加精確。系統采用了數字濾波的方法,降低了ADS-B信號的誤碼率,提高了設備的精確度。
參考文獻:
[1] 張天平,郝建華,許斌,等. ADS-B技術及其在空管中的發展與應用[J].電子產品世界. 2009(06):34-37+43
[2] 中國民用航空局.中國民用航空ADS-B實施規劃[Z].2012-11
[3] 鄭植,練馬林,張超,等.模式S應答處理中報頭檢測算法的研究與實現[J]. 電子科技大學學報. 2008(S1):66-70
[4]孫宏琦,施維穎,巨永鋒.利用中值濾波進行圖像處理[J]. 長安大學學報(自然科學版). 2003(02):104-106
[5] 劉曉斌.基于模式S的ADS-B接收機系統算法研究[D].電子科技大學,2011
模擬信號相關文章:什么是模擬信號
晶振相關文章:晶振原理
評論