使用軟體無線電接收飛航自動回報監視(ADS-B)訊號與分析

Posted on Posted in 未分類

簡介
ADS-B系統即廣播式自動監視系統,由多地面站和機載站構成,以網狀、多點對多點方式完成數據雙向通信。它主要實施空對空、地對空監視,用於輔助航機以及地面航管系統,提高航機在飛行中的安全性。

起源
早期航管使用一次雷達作為最基礎的航空管制,由於僅利用雷達回波得知某一個相對位置有物體,但無法得知對方的資訊後來發展了二次雷達,二次雷達是基於一次雷達上面安裝了接收機,在雷達發射時帶有要求詢問航機的應求碼,航機接收後透過機上的應答機(會先利用無線電由航管給予Squawk電碼以利航機識別)提供了最基本的航班號、飛行速度、高度讓雷達接收顯示在航管系統上增加了更高的精確性,之後又發展了ACARS(飛機通信尋址與報告系統),ACARS是透過無線電或者是衛星來提供電報短文發送,ACARS能夠提供基礎的航機訊息之外,還能進行氣象報告、日常通訊等等供ATM(飛航管理)使用,但因為ACARS是使用音頻解調變來進行傳輸,容易造成解碼不正確的問題,因此目前大多用在越洋航機長距離短波通訊、航空公司與班機對話使用。之後發展了ADS-B,在新的航空管理系統中,航空交通監視的部分主要是依靠廣播式自動相關監視系統(ADS-B)來取代現有的一次、二次雷達監視(但還是會混合使用),ADS-B系統利用全球衛星定位 (GPS) 獲得航機位置資訊取得航機位置,搭配機載訊息處理單元將所有航機的即時資料,藉由完善的通訊系統以廣播的方式傳遞給附近的使用者,以達到更安全、更有效率的飛行。而且 ADS-B 採用高頻通訊並使用二進位進行調變,較不受環境與地形因素的影響,可以提供較為完整而連續的運作,且利用數據化的資料有較傳統監視系統更大的運作彈性,目前各國積極地的在發展 ADS-B的相關技術,提供更即時、更安全的空中隔離。

ADS-B/modeS

既然ADS-B是採用二進位編碼方式進行廣播代表他是公開能夠自己解析的,而現在有民間的ADS-B的即時航機顯示的網站,是由各地區熱心的網友架設使用,例如: Flightradar24 / PlaneFinder / FlightAware ,這些網站透過各站台接收的訊息來即時顯示在網站地圖上,那我們能不能自行架設來分析並且分享到這些網站上,自己能夠收得開心之外還能讓網站能夠更完整呢?可以的,像是一般有專業的ModeS/ADS-B接收機之外,還能透過便宜的電視棒來解決。像是RTL2832U+R820T2 就是一個完美且經濟的解決方案,Realtek RTL2832U原來是Realtek 的工程師為了用在電視棒使用,結果被發現是業餘人士玩SDR的最佳利器,常見搭配的Tuner 有:Elonics E4000 頻率:60MHz~1700MHz/Raphael Micro R820T/R820T2 頻率:24MHz~1850MHz。一般來說最建議的是使用R820T2,是R820T的改進版,有更少的頻率飄移(ppm)之外,靈敏度也比較高且價格不變,所以一般大家都是使用這一個搭配組合,價格也只要300-500就能夠解決了。

MLAT5

MLAT5是使用ModeS+ADS-B,ModeS 是跟 ADS-B 是屬於同一個架構的廣播式自動監視系統,ADS-B 是基於 ModeS 上的架構,差異的是 ModeS 的是因為機上的應答機是屬於比較低階的,接收到資料時就會是 ModeS,ModeS 跟 ADS-B 會因為站台的疏密度關係而有覆蓋範圍跟死角問題,當遇到接收時不完整等等或者是使用 ModeS 的航機時要如何推算飛機位置呢?另外 ADS-B 這時候要如何推算出飛機位置高度等?這時候就會使用 MLAT5 的方式來推算,各站台都會標記自己精確的經緯度(通常是精確到小數點下六位),MLAT5利用各站台接收的強度以及接收到的部分資料加上各站台的經緯度來進行計算,但是缺點是 MLAT5 的情況下必須要高達 5 台的地面接收站才能夠進行較完整的推算過程,在網站當中雷達站就會顯示他是使用 MLAT5 來進行估算的。

ADS-B-and-MLAT

What is SDR?

傳統數位無線通訊系統由幾個基本的硬體模組組成,包括天線模組、多頻帶射頻( RF )模組、中頻( IF )濾波器、 類比-數位轉換器、數位-類比轉換器、
現在由開放性算法處理器模組軟體定義無線電系統架構。 由軟體定義無線電系統的架構圖中可以看到,軟體定義無線電系統利用寬頻類 比-數位轉換器與數位-類比轉換器將射頻或中頻訊號與數位訊號做轉換,這樣一來, 在通訊系統中,原本由硬體電路實現的基頻工作,像是調變、解調、編解碼等工作, 都可以改由軟體來實現,然後再經過處理器做執行的動作。 因此,軟體定義無線電具備了下列的優點: A. 彈 性:可以包含各種通訊環境標準的通訊系統。 B. 適應性:能夠針對不同的通訊需求,提供良好的通訊品質。 C. 升級性:利用下載更新軟體的方式,能夠輕易的對通訊模組做版本的升 級。 D. 低成本:許多的工作交由矽晶片所製的處理器來執行,能夠大量減少電路 體積以及成本的花費


螢幕快照 2017-01-24 下午7.47.50
SDR硬體
最便宜SDR 硬體源自於Realtek  RT2832U 及 Rahael Micro R820T Chip 應用於全球規格格式的DVB-T ATSC等  DAB+ 數位收音機。RT2832U 是 RF demodulator (解調器) ,而 R820T 是一顆 24MHz-1.7GHz 數位調諧器(Tuner)。

螢幕快照 2017-01-23 下午3.56.47

圖為OrangePi+(RTL2832U+R820T2)

IMG_2508

(ADS-B帶通濾波器)

IMG_2509

(1090天線)

RTL2832U詳細資料:

Realtek RTL2832U 為一個6*6mm 單邊12隻腳的QFN封裝晶體,使用3.3V 電壓搭配 28.8 MHz k的石英晶振即可使用,這棵IC是DVB-T COFDM 解調器(Demodulator),並且內建 USB2.0 傳輸,建議使用時使用USB延長線避免電腦的干擾,另外它內建了8組的I/O port以及一組紅外線接收。 

TUNERS:

晶片支援:IF, low-IF, 零IF 調解器

Elonics E4000 頻率:60MHz~1700MHz

Raphael Micro R820T/R820T2 頻率:24MHz~1850MHz 

DATA THROUGHPUT:

當作音效卡時能夠提供 192kHz 32bit 的解析度,資料流約6.144 Mbps

並且內建8-bit ADC 可以提供 3.2 MS/s (在 3200kHz 時每秒百萬個採樣率經計算後的資料流約為25.6Mbps) 

另外支援 MP2/MP4(H.264) 影片串流服務包含語音、數據、影像,編碼包括:4QAM (QPSK), 16QAM, or 64QAM,2K 模式下載波間隔為 4464Hz ,8K 模式下載波間隔為 2232Hz,在這之下的採樣率中皆為18.284544 MHz,而最低的頻率能到達4.571136 Mhz 所能夠提供的帶寬為: 6/7/8 MHz  

重要腳位:

1/2:In-phase Input pos/neg

4/5:Quadrature Input pos/neg

11/12:28.8MHz 石英震盪器

13:Tuner 的AGC控制

16/17:I2C tunner控制

18/19:I2C 2k (256 byte)EEPROM存取控制

 25/26:3.3V電源輸入

38:紅外線輸入

40/41:USB資料輸入

輸入阻抗:

搭配E4000:250-ohms (ROUT),無訊號時:377-ohms

直接取樣:

RTL2832U有內建ADC(類比轉數位)與DSP(數位訊號處理器)、施行數位降變頻到基頻後經由I/Q混頻器混頻(相位相差90度)過數位低通濾波、I/Q 通道重新取樣、之後額外一組的8-bit I/Q 資料經由USB輸出

傅立葉變換與COFDM: 

一般未使用RTL-SDR時使用快速傅立葉FFT單元轉換,將時域訊息轉為頻域訊息,時域是當y軸是振幅x軸是時間,頻域是當y軸是振幅x軸是頻率,一般軟體情況下例如:GQRX/HDSDR/CubicSDR下顯示的是頻域訊息,再直接採樣情況下則直接使用FFT。

RTL2832U是一個COFDM解調器,它的功能包括:符號同步,新頻率調整,旋轉相位,頻率估計和校正,內部和外部解交變,維特比解碼,RS解碼,轉換糾錯,相鄰和同頻率干擾抑制,脈衝噪聲消除,自動載波恢復,頻道均衡,頻道狀態訊息,去除保護週期,導頻和TPS解碼,採樣率校正,採樣率內插和抽取,AGC延遲,測量,SNR估計,調諧器的AGC控制,MPEG比例積分微分濾波等。芯片可以通過特殊的算法自動檢測調製參數(例如傳輸模式,碼率,保護隔離)。


改裝SDR硬體

RTL2832U+R820T2配置預設入手之後是MCX+一般的石英晶振,收到後都會把它改造一番,把MCX換成常見的SMA可以增加屏蔽與抗干擾,因為MCX的抗干擾比較弱之外,一般業餘使用的都是SMA佔最大多數,如果還要透過一個轉接頭的話還會增加 3dB 的轉換插損,因此直接換掉會比較簡單解決,另外還會更換掉原來的石英晶振,原有的晶振的偏移很大(10-30ppm),換上之後可以壓到(5ppm)以下,頻率接收會更準確之外也比較不會因為發熱之後大量的偏移頻率造成接收品質變差。

 

IMG_2447

完成改裝之後都會先接上電腦,連接天線之後開啟SDR軟體進行檢查硬體是否有問題,筆者常用的是QubicSDR進行檢查,他是開放原始碼的,支援 Windows / macOS / Linux 以及原始碼可以到其他的作業系統自行編譯後使用,GUI介面很簡單易用,還有其他常用的例如:GQRX/HDSDR/RTLSDR等等的軟體可以使用,都算非常易用的,接上電腦之後他會顯示為RTL2832U的音效卡,在Windows底下只要補一個RTLSDR.Dll即可以用在SDR軟體內,而在Linux / macOS上大部分在安裝過程中就會自動帶上,因此比較沒有這個問題。

IMG_2448

軟體

IMG_2446

以上工程都完工之後就能夠進行後續接收ADS-B的工作了,接下來可以準備一台Raspberry Pi 或者是Linux 的電腦,使用 Ubuntu/Debian 會相對比較簡單,詳細方法如這個網址:點我前往 ,安裝方式大部分系統都是一樣的,安裝完成之後在Dump1090上增加

方法:sudo dpkg-reconfigure dump1090-mutability

“Interface address to bind to (blank for all interfaces) “ , 刪除 127.0.0.1 後留空直接按Enter 並且在Extra arguments to pass to dump1090“, 上打入  –net –net-http-port 8080  這樣的話就能夠使用Web介面查看ADS-B的接收狀況。

螢幕快照 2017-01-21 下午4.55.00

(圖片為筆者自行編譯的版本,實際使用不同Dump1090版本會有所差異)

ADS-B編碼

螢幕快照 2017-01-22 下午5.27.04

ADS-B是使用二進制編碼,前面有0.8us 的標頭之後送出DATA,DATA 內含飛機廣播的所有訊息,0/1的編碼方式如圖,依照資料量可能花費的時間是56 或 112 us 總共就是每送一次訊息會有64us /120us的花費時間。

adsb-packet而ADS-B要怎麼看RAW呢?我們在安裝時他會問你要不要開相關Port進行輸出,只要透過軟體連到這Port之後就能看到RAW檔或者是Decode 檔來提供給其他的軟體解析使用。RAW輸出為16進位,透過ADS-B通用轉換格式之後就能夠轉換成易懂的內容,ADS-B的解碼內除了基本的航班、速度、高度之外,還會有例如引擎推力狀況、系統內部的設定等等 都可以被接收解出來,所以ADS-B在災難發生時還能夠透過收到的內容去推估班機情況,非常好用。

AVR RAW碼範例:

Decode:

 

IMG_2504

圖為RTL1090 接收直出RAW

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *