





摘要:針對廣播式自動相關監控(ADS-B)接收機存在高誤碼率的問題,設計一種基于FPCJA的ADS-B接收機,通過ADC電路轉換解調后的模擬信號為數字信號,并利用FPCJA的并行處理的特點,采用流水線方式處理ADS-B信號;利用有關數字濾波和數字信號提取算法,計算得到ADS-B信息,并經過PL2303HX發送電腦上位機中。實驗結果證明,可以較好地完成1090MHz ES ADS-B信號的接收,實現了內部數字信號濾波算法和CRC校驗,有效地降低設備的誤碼率。本文網絡版地址:http://xvww.eepxv.com.cn/article/274749.htm
關鍵字:ADS-B;FPCJA;1090MHzDOI:10.3969/j .issn.1005-5517.2015.5.01 2
1 序言
廣播式自動相關監視(ADS-B)是一種基于GPS全球衛星定位系統和空一空、地一空數據鏈通信的航空器運行監視技術,正在逐漸成為空中交通管制的一種重要監視手段。ADS-B技術將衛星導航、通信技術、機載設備以及地面設備等先進技術相結合,提供了更加安全、高效的空中交通監視手段,能有效提高管制員和飛行員的運行態勢感知能力,擴大監視覆蓋范圍,提高空中交通安全水平、空域容量與運行效率。本文介紹了一種基于FPGA的1090MHz ES ADS-B的設計方法,通過ADC采樣解調之后的信號,并通過數字濾波的方法濾除干擾信號,得到真實信號,利用相關的解算算法,提出ADS-B中的信息,并將其發送到上位機中。
1.1 ADS-B消息格式
1090MHz ES ADS-B消息包含了四個識別脈沖信號和112位或56位的消息序列。AD S-B消息數據編碼格式采用脈沖位置調制(PPM)編碼,如圖1所示。
1.2 消息提取算法
ADS-B的消息提取采用振幅比較的方法,在該接收機中,采用了10MSPS的采樣速率,所以每個信息位前、后時間位置脈沖分別采樣5次。
(1)將信息位前時間位置的采樣集合命名為,后時間位置采樣集合為
(2)計算出SA,SB內在參考功率正負3dB之內的所有采樣點: 其中Ref參考功率,即每個信息位的10個采樣點相近振幅最多點的集合;
(3)計算出SA,SB內參考功率小6dB以上所有采樣點集合:
(4)對以上四個集合的點進行加權運算,考慮到本系統FPGA的性能,所有權值均為整數,其中點S0、S4、s5、s9運算權值是1,點S1、S3、S6、S8運算權值是2,點S2、S7的運算權值是3,則求的四個運算結果分別為A、B、C、D:
(5)對以上四個運算結果再次做如下運算:
Ri=A-B+C-D
R2= B-A+D-C
若R1>R2則該信息位為“1”,否則信息位的值為“o”。
1.3 數字濾波
為了消除ADS-B信號中的雜波,這里采用圖像應用中的中值濾波算法。中值濾波的原理是將序列中一點的值,用該點領域內各點值的中值來代替。
假設x1,X2,X3…Xn為一組信號序列,按照其大小排序為x1、x2、x3、…xn,則計算得到其中值數值y是
以上公式中,在一維情況下,中值濾波器是一個含有奇數個采樣點的滑動濾波窗口。則濾波器的輸出信號序列為:
2 硬件設計
2.1 系統設計
接收機通過1090MHz天線接收ADS-B的信號,并通過解調設備,得到解調信號,采用FPGA作為核心處理器,通過AD9233高速ADC轉換芯片采集信號,在FPGA中解算提取相關信息。其設計框圖如圖2所示。
2.2 前端硬件設計
前端設備采用了TA1090EC、BGM1013.TA0232.AD8313芯片,實現濾波和解調的功能,由于后端采用ADC轉換電路,所以此處不需要轉換為TTL電平信號,最大程度保證信號的完整性和真實性,提高解碼的高效性和降低誤碼率。原理圖如圖3所示。
2.3 ADC電路設計
ADC采樣電路需要滿足10MSPS的采樣速率,并且需要保證信號的適當幅度。在這個模塊中,采用了ADI公司的AD9233芯片(電路圖如圖14),其采樣頻率可以達到125MHz,大大提高ADS—B接收機的信號采集效率:其分辨率為12位,能夠很好地識別小信號,還原真實信號,為后面的數字濾波提供數據。
2.3 FPGA電路設計
ADS-B信號的濾波和解碼都是通過FPGA實現的。FPGA電路采用Altera公司的EP4CE6E22C8N的芯片,外部通過AMS-1117系列的電源芯片實現3.3V、1.2V、2.5V的供電,并采用EPCS4SI8N作為FPGA的配置芯片。整個系統采用外部有源晶振50MHz作為系統時鐘,并通過時鐘分頻產生ADS—B信號的采樣和串口發送的時鐘信號。并預留了JTAG和AS的下載接口,以便實現FPGA的調試和下載。整個FPGA在AD S-B接收機中起到了信號的數字濾波、信號報頭識別、信號提取、CRC校驗、信息轉換為ASICⅡ碼和信息的發送等功能是AD S-B接收機的核心。
2.4 傳輸模塊設計
傳輸模塊實現的是FPGA與電腑之間的信息交換。利用FPGA的FIFO進行數據緩存,并通過該模塊發送到上位機中。為了提高信息的傳輸速率,傳輸模塊采用的是PL2303HX,實現了TTL和USB信號的轉換,將ADS-B信號轉換為AISC II碼傳遞到電腦上位機中。通過上位機解碼,提取相關的飛機的位置、速度、高度、經緯度等信息,并顯示在界面上,原理圖如圖5所示。
3 軟件設計
3.1 總體設計
軟件設計包括ADC數據讀取、數字濾波、信息提取、CRC校驗、串口發送等幾個部分。通過讀取前端信號,并濾除相關的干擾信號,得到平滑信號,提取相關信息發送到上位機中。由于FPGA并行處理的特點,所以數據的濾波和數據的提取是流水線的處理方式:數據格式的轉換采用的是連續型賦值的方法,保證數據隨時更新;同時,數據的發送是獨立進行的,通過是否存在存儲數據來判斷是否發送:其流程圖如圖6所示。
3.2信號提取設計
ADS—B的信號經過數字濾波之后,去掉干擾成分。在模式S應答處理中,首先要完成的操作是報頭檢測,它是一切后續處理的前提和基礎,信號的提取主要是檢測信號的報頭起始部分,即檢測四個有效脈沖;檢測到報頭之后提取信號的有效功率,通過多振幅采樣點方法計算代碼,提取112位或56位消息。其流程圖如圖7所示。
3.3 串口程序設計
通過FPGA實現串口的設計,需要將數據送入FIFO中,然后從FIFO讀取相關的數據,發送到上位機中,保障數據的完整性。為了保證數據讀寫速率相同,這里的FIFO采用了讀寫時鐘同步的FIFO讀寫方式。在得到信號提取接收信號之后,讀取存儲ADS—B信息的數組,然后進行CRC校驗,如果校驗正確,轉化為ASICII碼,將數據寫入FIFO中,并改變FIFO的存儲狀態;同時,串口發送部分通過判斷FIFO的狀態信號來判斷是否發送信息,如果FIFO為空,則等待不為空信號;否則發送相關數據。具體流程圖如8所示。
3.4 RTL級原理圖
使用Verilog編寫了FPGA的實現程序,共包含數據處理部分、FIFO讀寫部分、串口發送部分和PLL部分,實現AD S-B信息的數字濾波、數據信息提取、數據讀寫和數據發送的功能。其RTL級原理圖如圖9所示。
4 實驗結果
利用MATLAB讀取接收機經過模數轉換之后的數據,并通過MATLABGUI界面顯示,獲得圖10中的濾波前的信號:經過MATLAB編寫中值濾波算法實現仿真驗證,測試中值濾波在AD S-B信號濾波中的實際效果,得到了圖10濾波之后的波形。從圖中可以看出中值濾波,能夠消除信號中的雜波干擾,使信號變得平滑,并且不改變信號的信號寬度和信號位置,僅僅消除了信號中的雜波干擾信號。
利用串口調試助手驗證濾波效果,在相同波特率下,經過濾波之后的信號CRC校驗正確的數據要比對比實驗組的數據量大,由此可以看出該設計可以降低接收機的誤碼率。
4 結論
本文介紹的基于FPGA的AD S-B接收機的設計方法,采用了高速ADC轉換電路,通過數字濾波算法實現了信號的濾波,消除了雜波的干擾,采用了多振幅采樣點方法提取消息更加精確。系統采用了數字濾波的方法,降低了ADS-B信號的誤碼率,提高了設備的精確度。