王婷琦,盧起斌
(中國傳媒大學 廣播電視數字化教育部工程研究中心,北京 100024)
ADS-B(Automatic Dependent Surveillance-Broadcast,廣播式自動相關監視)是一種基于全球衛星定位系統(GNSS)和空-空、地-空數據鏈通信的航空器運行監視技術[1]。ADS-B發射系統能從機載的衛星導航設備獲取當前的位置信息,連同本機的身份編碼、氣壓高度、航速、航向、航行意圖等信息一起,以數據鏈的形式,實時、自發、周期性的對外廣播。地面監視設備通過地-空數據鏈通信的方式獲得該航空器的相關信息,達到空域監視的目的。
1090ES(1090MHz Extended Squitter)由美國麻省理工學院林肯實驗室研究提出,是一種基于S模式擴展應答機的技術。S模式應答機采用脈沖位置編碼(Pulse Position Modulation,PPM),下行頻率1090MHz,傳輸速率可以達到1Mbps,提供空-空、地-空數據鏈,適合高速率數據的傳送。
從功能處理劃分,ADS-B發射系統由GPS接收模塊、基帶信號生成模塊、射頻調制模塊和放大濾波模塊四部分組成,其組成框圖如圖1所示。

圖1 ADS-B發射系統的組成框圖
GPS接收模塊接收GPS信號,獲取該信號發生器自身的位置信息、速度信息和精確的時間信息等定位數據;基帶信號生成模塊是信號發生器的核心,它提取GPS接收的定位信息和自身的身份、狀態等信息進行格式分解、編碼、組裝等處理,按照標準數據幀的格式生成ADS-B基帶信號,并以特定的速率發送給射頻調制模塊;基帶信號在射頻調制模塊進行ASK調制到1090MHz載波上;在放大濾波模塊將射頻信號進行帶通濾波、功率放大等處理,由全向天線以廣播的形式向周邊空域進行信息發送。
本設計根據模塊化設計、方便靈活應用的設計原則,只完成圖1框中三部分內容,放大濾波模塊不在設計范圍之內。
GPS接收部分使用第三方GPS模塊,用于獲取ADS-B信號發生器自身的定位數據。本設計選擇u-blox公司的NEO-7N模塊,其性能指標如表1[2]所示,該芯片具備出色的定位精度與鎖定時間性能,同時功耗低,外形尺寸小,適用于本設計需求。

表1 NEO-7N的性能指標
GPS接收模塊通過UART串口與基帶信號生成模塊進行通信。上電后,FPGA首先配置GPS模塊,使其輸出數據轉換為UBX格式,并只輸出位置、速度、時間(PVT)三種數據包,便于Nios II軟核處理器接收處理。
基帶信號生成模塊的功能由FPGA完成,本設計選用的型號為EP4CE10E22。
3.2.1 ADS-B的幀格式和消息結構
ADS-B基帶信號的幀格式如圖2所示,每幀由8us報頭和112us數據塊組成,共120us。數據塊由112個比特組成,每個比特持續1us。ADS-B消息采用PPM調制:當脈沖出現在比特的前半部分時,該數據比特為“1”,否則為“0”[3]。

圖2 ADS-B基帶信號幀格式
ADS-B的消息結構如表2所示,本設計采用DF=17的下行鏈路分配方式,每個1090ES信號包含112比特,其中56比特(位33-位88,ME字段)為ADS-B消息域,包含經緯度、高度、方位、速度等ADS-B數據消息。其余56比特分別為:5比特下行鏈路格式(DF:Downlink Format),3比特設備能力標示(CA:Capability),24比特ICAO地址(AA:Announced Address),以及24比特校驗信息(PI:Parity/Identify)。由于消息格式簡單,承載信息能力較弱,所以一個消息幀只能傳輸一種特定類型的信息[4]。對于不同類型的消息,其更新速率也有所不同。

表2 ADS-B消息結構
3.2.2 基帶信號生成模塊的搭建
基帶信號生成模塊是由FPGA的RTL電路和Nios II軟核處理器搭建而成,如圖3所示,具體實現步驟如下:
第一步:先將板載GPS模塊發送的PVT數據包通過Avalon總線的UART串口讀入到Nios II軟核kernel內,再在kernel中將PVT信息及信號發生器的其他數據信息進行編碼,組裝成112比特的標準數據幀格式,按照特定速率發送給幀序列生成部分。
第二步:在幀序列生成部分,將UART串口接收到的一幀消息按字段拆分存入相應寄存器內。按照消息幀輸出的時序要求,先輸出固定的4脈沖報頭,再依次輸出DF、CA、AA、ME和PI字段。在按位取出各字段的數據比特時,進行脈沖位置編碼,由計數器生成單個比特1/0對應的時序波形,產生120us的ADS-B基帶信號。

圖3 基帶信號生成模塊RTL圖
本設計選用ADF4351產生1090MHz的本振信號,選用射頻開關HMC435AMS8G完成基帶信號和本振信號的2ASK調制。
ADF4351是ADI公司推出的一款內置低相位噪聲VCO的寬帶頻率合成器,輸出頻率范圍為35MHz~4400MHz[5-6]。該芯片尺寸僅有5×5mm,內部集成鑒相器和VCO,外圍只需再設計一個環路濾波器即可完成鎖相環結構,不僅降低電路設計復雜度,也大大減少該模塊的占用面積,原理圖如圖4所示。此外片內所有寄存器通過DATA,CLOCK,LE三線串行接口控制,簡單且易于編程,本設計通過FPGA配置寄存器,可得到1090MHz的本振信號。

圖4 環路濾波器原理圖
HMC435AMS8G是HITTITE公司的單刀雙擲開關芯片,工作帶寬為DC-4 GHz,當控制端A、B分別為0V、+5V時,RF1通道輸出;反之,RF2通道輸出。圖5是調制電路原理圖,當TARGET的邏輯電平為“1”時(電平值約為+3.3V),高電平經雙路反相器轉換后得到0V和+5V兩路電平信號,分別接通開關芯片的A、B通道,此時信號通過RF1通道輸出;反之,接通RF2通道,即RF_OUT輸出為零。

圖5 2ASK調制電路原理圖
本文設計實現三種ADS-B消息的編碼和發送:空中位置消息、空中速度消息以及身份識別和類
型消息,主程序設計流程如圖6所示。
初始化內容包括:UART串口1、2初始化,分別用于Nios II與GPS、RTL的通信;ADF4351的寄存器配置初始化;CRC查找表初始化,預先計算出每個字節CRC編碼的中間結果,提高運算效率;TIMER中斷初始化,用于控制ADS-B消息的發送速率;消息發送緩存初始化。

圖6 主程序設計流程
ADS-B幀的最后24比特為校驗位PI,采取CRC校驗編碼,為之前的88比特信息提供檢錯與糾錯能力。CRC的生成多項式如式(1)所示,對應的二進制表示為0xFFF409(不含最高位)。
G(x)=x24+x23+x22+x21+x20+x19+x18+x17+x16+x15+x14+x13+x12+x10+x3+1
(1)
本設計在編碼時,采用單字節查表法,即以字節為單位,將每個字節的CRC校驗碼計算出來放入一個表中。編碼時每次只處理一個字節,從表中查找對應的值后再進行下一字節的處理,直至將所有字節處理完,此時CRC寄存器存放的數據就是校驗碼。采用查表法可以大大提高運算效率。
設要進行CRC編碼的數據流為D(i)(i=1,2n,單字節為單位),對應CRC碼為R(i),余數初始值R(0),結果異或值XOR。編碼步驟為:
(1)初始化查找表crcTable,便于第(3)步查表。
(2)設置CRC寄存器R,并賦初始余數值R(0)。
(3)將D(i)與R(i-1)的高8位異或,并進行查表。其中,初始i=1。
(4)將R(i-1)左移8位并與第(3)步查表得到的24位校驗碼進行異或運算,得到第i個字節的CRC碼R(i)。
(5)重復第(3)(4)步,直到n個字節全部處理完成。
(6)最終的校驗碼PI由R(n)與XOR進行異或得到。
ADS-B消息的最大發射頻率不會超過每秒6.2個消息,即平均每秒2個空中位置、2個空中速度、0.2個身份及2個事件驅動消息,每個消息的發射是獨立的且與其他消息無關[3][7]。
設計時,在Qsys中添加一個TIMER用作定時器中斷,定時器節拍TIMER_TICK為200次/秒。對于不同類型消息的廣播速率,以速度消息為例,要求以0.4s~0.6s范圍的隨機間隔進行發送,則所需定時器節拍的個數為80~120,此范圍內的隨機數rand可通過調用rand()函數產生,即rand = 80 + rand()% 40。當定時器節拍計數tick達到rand時,速度消息發送標志flag置1,發送空中速度消息,從而相鄰兩個空中速度消息的發送間隔為rand *5 ms。采用隨機間隔而不是一個固定值廣播發送,可以有效減少ADS-B信號之間的同步串擾,大大降低信號混疊的概率[8]。定時器中斷函數流程圖如圖7所示。

圖7 定時器中斷函數流程圖
ADS-B信號發生器的電路實物如圖8所示,大小僅為7.7×4.9cm;圖9為射頻信號的頻譜圖和瀑布圖;圖10為調制信號和射頻輸出波形圖,均滿足規范要求。使用第三方的ADS-B接收設備可正確接收和解析該ADS-B信號發生器廣播的報文。

圖8 電路實物圖

圖9 輸出頻譜圖(右)和瀑布圖(左)

圖10 調制信號和射頻輸出波形
本文設計的ADS-B信號發生器,可通過GPS模塊獲取定位數據,對外發送不同類型消息的1090ES ADS-B報文,發送速率和幀格式滿足RTCA DO-260A標準要求;在結構上采用FPGA和Nios II軟核架構,具有成本低、功耗低、小巧緊湊、方便集成等特點,配以相應的濾波和功放模塊,即可部署在各種類型的航空飛行器上,有效助力空域安全與監管。