什麼是 ADS-B
每架客機都在廣播的訊號:它包含什麼、為什麼任何人都能接收、以及它不會告訴你什麼。
一架會自己報告位置的飛機
ADS-B 是 Automatic Dependent Surveillance – Broadcast(自動相關監視廣播)的縮寫。把這幾個詞一個一個拆開看。Automatic(自動):飛機自己發送,沒有人去問它。Dependent(相關):位置來自飛機自身的衛星導航,而不是地面上的雷達。Surveillance(監視):這是航空管制追蹤飛機的方式。Broadcast(廣播):訊號是發給所有人的,而不是某一個接收者。
大約每秒一次,飛機會在 1090 MHz 上發送一則短訊息。訊息裡有它的身分(指派給該機體的 24 位元位址,通常還有航班的呼號)、位置(緯度與經度)、高度、速度與航向。其他不時發送的訊息,則補充飛機的類別、垂直速率和幾個旗標。
自 2020 年起,在歐洲和美國管制空域內飛行的大多數飛機都必須廣播 ADS-B。客機會、商務噴射機會、許多輕型飛機也會。有些軍用和國家飛機不廣播,或廣播時不含位置。
為什麼你可以收聽
這些訊息沒有加密,也沒有簽章。這是刻意設計的:重點就在於周圍的每一架飛機和每一個地面站都能聽到其他所有飛機。格式是公開的,由航空業賴以運作的標準所定義,而且全世界使用同一個頻率。
所以接收器不過就是一台調到 1090 MHz 的無線電,加上一個把脈衝轉成文字的程式。二十年前,這樣的無線電要價數千元。今天,一支為數位電視設計、大約拇指大小的 USB 接收棒就能勝任,因為它的晶片可以被指示去收聽任何頻率,並把原始訊號交給電腦。這種接收棒叫做 RTL-SDR,名稱來自裡面的晶片(RTL2832U)和它的概念(software-defined radio,軟體定義無線電:由電腦來做解碼)。
在 Raspberry Pi 上負責解碼的程式通常是 readsb,它是較舊的 dump1090 的後繼者。它監聽接收棒、解碼訊息,然後把結果提供給任何需要它的東西:你瀏覽器裡的地圖(tar1090)、追蹤網路的餵送程式,或是 ZenithBoard 的那面牆。
在美國:還有 978 MHz
美國還使用第二個頻率 978 MHz,稱為 UAT(Universal Access Transceiver,通用存取收發器),主要用於低空飛行的小型飛機。要聽到它,需要第二支 USB 接收棒和第二支天線。在其他地方,只有 1090 MHz。ZenithBoard 只會問你一次所在地區,而且只有在你回答美國時才會提到 978 MHz。
你能聽多遠
訊號像光一樣直線傳播。一架在巡航高度的飛機,從很遠的地方就看得見,只要它和你的天線之間沒有任何阻擋。從一扇面對山坡的窗戶,你也許能聽到幾十公里;從一個地平線開闊的屋頂,250 公里以上很常見,而最邊緣的那些飛機就是飛在 11,000 公尺高度的那些。你附近的低空飛機則會被每一棟建築和每一棵樹擋住。距離取決於天線和它的視野,而不是電腦。
ADS-B 不會告訴你什麼
訊息說的是飛機在哪裡,而不是它要去哪裡。出發地、目的地、航空公司的名稱和飛機的照片都來自其他地方:來自公開登記簿,以及追蹤網路和 ZenithBoard 依飛機位址查詢的資料庫。ADS-B 也完全不說機上有誰,更不說關於你的任何事:接收是被動的,你的接收器不發射任何東西。
MLAT:聽見那些不報位置的飛機
有些飛機會發送身分但不發送位置(較舊的詢答機就是這樣)。如果有四個以上的接收器聽到同一則訊息,到達時間之間的微小差異就能算出位置,就像從雷聲定位閃電一樣。這叫做 MLAT,即 multilateration(多點定位)。你單獨一台接收器無法做到;但透過餵送資料給網路,它就成為那四台之一。這是值得分享的真正理由之一。