馮 巖
(電子科技大學 成都 611731)
在現代飛機上,大量信息在飛機與系統、系統與部件之間傳遞。ARINC429總線是廣泛應用于航空系統中的數字總線傳輸技術。ADS_B系統是未來空中交通管理發展的方向,如何將ADS_B系統良好的嵌入到航空系統中,是必須要考慮的問題。目前,國內的文章僅有ARINC429的實現方法或僅論述如何 ADS_B 實現系統[1-4],鮮有文章對如何實現ARINC429總線在ADS_B系統的應用有所研究。ADS_B系統是未來航空系統的重要組成部分,實現ARINC429總線在ADS_B系統中的應用,可有效減少機內布線、減輕飛機重量,以及避免由于ADS_B系統的應用而造成大量的硬件替換。本設計采用ARINC429專用芯片HI-8582構成數據收發核心單元,FPGA進行ARINC429收發邏輯控制,ARM實現對ADS_B報文的編解碼算法。該設計在幾乎沒有增加硬件資源的條件下,很好的將ARINC429總線技術嵌入到ADS_B系統中,具有較強的實用價值。
ARINC 429總線是美國航空無線電公司制定的民用航空數字總線傳輸標準,規定其數據格式為雙極性歸零碼,即調制信號由“高”、“低”和“零”狀態組成。ARINC 429字由32個數據位組成,分為5個基本區域,分別為 Parity、SSM、DATA、SDI、LABEL,如圖1所示。

圖1 ARINC429數據格式
ARINC429數據格式中,各比特位代表含義如下:
Parity:字的第32位,一般為奇校驗。
SSM:位30、位31為信號/狀態矩陣,表示硬件設備條件,操作模式,合法數據內容。
DATA:位11到位29是數據位。
SDI:位10、位9為目的/源接收標示。
LABEL:位8到位1用于區別數據類型和相關參數。
1090MHzS模式擴展電文數據鏈(1090ES)是國際航空組織推薦的ADS-B的廣播數據鏈,最大下行數據長度達到112位,最大數據率達到1M比特/秒[5]。其主要的信息類型有空中位置消息、狀態消息、速度消息等。本文僅以空中位置消息為例介紹。如圖2所示.部分比特位的含義如下:
DF:下行數據鏈格式標志
CA:S模式應答機的能力
ICAO:國際民航組織為飛機分配的編號
CPR:為0,表示“偶”編碼,為1表示“奇”編碼
PI:奇偶校驗位

圖2 ADS_B報文數據格式(1090ES)
系統整體方案設計如圖3所示。為了測試需要,圖中所搭載的系統為測試系統。電腦端ARINC429APP軟件為西安方元明科技發展有限公司開發,主要用來發送或接收ARINC49格式的數據。ADS_B信號模擬器為電子科技大學寧波研究院開發,主要用來發送ADS_B格式的數據。在具體的應用中,ARINC429APP軟件相當于各傳感器,ADS_B信號模擬器相當于ADS_B系統中的發射部分。

圖3 系統整體框圖
在電腦端口通過ARINC429App軟件發送ARINC429格式數據,通過429板卡轉換成ARINC429規定的雙極性歸零碼。HI-8582為收發一體的接口控制芯片,接收從ARINC429總線發送來的串行數據,FPGA通過控制HI-8582芯片的和管腳使能,將兩次接收來的16位數據拼接成32位數據發送到緩沖fifo,再傳至ARM。ARM通過識別自定義協議中的標號信息編碼成ADS_B消息,回傳至FPGA,然后經DPSK(差分移相鍵控)調制,經過發射機和天線,可發送到基站或其他飛機。在具體測試時,可用示波器抓取ADS_B報文,核對是否轉換正確。
接收其他飛機的ADS_B消息數據后,FPGA通過一級fifo(緩存)發送給ARM。ARM通過解碼算法,將ADS_B消息中的有效數據提取,重新進行組合(具體參照下一章節)。FPGA接收ARM的數據,根據首部信息識別要編碼的ARINC429數據標號,編碼成32位ARINC429要求的數據格式。FPGA通過控制HI-8582芯片的和管腳使能,分兩次將數據傳送至HI-8582芯片。在具體測試時,可用ADS_B模擬器發送已知的ADS_B報文,通過電腦端ARINC429App軟件觀察數據是否轉換正確。
實現ADS_B數據和ARINC429數據格式之間的轉換,需要 ARM端進行編解碼作為中介。在ADS_B系統中,為了對飛機有效編碼,經度和緯度等信息采用簡潔報告(CPR)的形式。在具體使用這些信息時,需要將ADS_B報文格式的數據通過CPR算法轉換成固定字節格式的數據。
為了敘述簡單明了,文中對其中一種ADS_B消息(空中位置消息)的發送流程加以描述。FPGA接收ADS_B報文,經CPR解碼,回傳至FPGA。為了實現可靠傳輸,以及告知FPGA所傳送的信息類型,需要自定義傳輸協議。需要說明的是,以下協議為自定義,在相關開發時,可更改,如圖3所示。(注:AA,F9這兩類數字為自擬數值):
AA是同步頭,標明一段數據的開始,同時數字也代表了ARM與FPGA之間信息傳送的方向(此處自擬為ARM傳送信息至FPGA)。F9為功能號,作用是FPGA接收到信息后,可通過協議辨別后面的信息類型、字節位置,以及將其編碼ARINC429格式數據后label數值。在表格中,只有ICAO地址、高度、緯度、經度這三類信息被編碼成ARINC429數據。在編碼時,同一數據類型,編號相同。ARINC429的數據格式中只有19位數據為data位,如若要編碼的數據類型不超過19位,則高位補0,超過19位,分兩個ARINC429數輸。
為了驗證設計是否正確,通過ADS_B信號模擬器發送一幀已知的ADS_B數據(1090 MHZ ES模式)如圖6所示。限于示波器抓取的信號范圍有限,僅抓取了ADS_B報文的一部分。由圖6可知,ADS_B報文采用“極性歸零碼”表示,前兩個歸零碼為ADS_B的前導脈沖,是ADS_B數據的報頭標志[6]。ADS_B各數據位含義表示如圖4所示。為便于說明,我們選擇沒有經過 CPR算法變換的ICAO地址進行驗證。圖6為所發送的數據,用框框住的數據為ADS_B中的ICAO地址(二進制數據為“101010100000000000000001”,轉換為 16進制為“aa0001”)。通過圖2所設計的系統架構,在電腦ARINC429APP軟件上看到其label為“0x01”的數據為“08000401”和“80005401”,如圖5所示。轉換為二進制為


圖4 自擬ARM與FPGA傳輸協議
其中加粗的部分即為ADS_B中的ICAO地址。所接收到的標號為0x02,0x03,0x04的信息分別為經過CPR算法的高度、經度、緯度值。

圖5 ARINC429APP軟件接收的數據
在國內,ADS_B系統的研究已初步成熟,如何實現ADS_B系統與機載系統之間數據通信將是下一步要解決的問題。本文從ADS_B系統架構的角度出發,設計ARINC429總線在ADS_B系統的應用,此方法在不增加硬件的基礎上通過自定義協議,實現了ARINC429數據和ADS_B數據格式之間的相互轉換,對后續ADS_B系統如何整合到航空系統的研究具有一定的參考意義。

圖6 ADS_B的空中位置消息
[1]丁猛,郭英.ARINC429信號處理板的設計[J].微計算機信息,2008,24(5):30 -32.
[2]姬昕禹,馬捷中,翟正軍等.基于ARINC429總線接口板卡的驅動程序設計與實現[J].計算機工程與設計,2007,28(14):3511 -3514.
[3]趙顯紅,何谷惠.基于FPGA的ARINC429機載總線接口[J].現代電子技術,2008,10:92-95.
[4]張楨,孫沛.基于FPGA的ARINC429總線通訊板設計[J].航空計算技術,2010,40(4):112-115.
[5]RTCA,DO-260B:Minimum Operational Performance Standards for 1090 MHz Extended Squitter Automatic Dependent Surveillance-Broadcast(ADS-B)and Traffic Information Services-Broadcast(TIS-B) [S].2003.
[6]李慶,基于S模式ADS-B系統的控制與信息處理[D].電子科技大學學位論文,2011.