В своей простейшей форме «режим» или тип запроса обычно определяется интервалом между двумя или более импульсами запроса. Существуют различные режимы от режима 1 до 5 для использования в военных целях, до режима A, B, C и D и режима S для гражданского использования.
Содержание
Режимы допроса
Для авиационных транспондеров стандартизировано несколько различных протоколов радиочастотной связи :
Военный режим
Гражданский режим
Описание
1
Предоставляет 2-значный 5-битный код миссии (выбирается из кабины)
2
Предоставляет 4-значный восьмеричный код единицы (устанавливается на земле для истребителей, может быть изменен в полете транспортным самолетом)
3
А
Предоставляет 4-значный восьмеричный идентификационный код для самолета, который устанавливается в кабине, но назначается авиадиспетчером. Режим 3 / A часто сочетается с режимом C для получения информации о высоте.
C
Предоставляет барометрическую высоту воздушного судна и обычно комбинируется с режимом 3 / A для обеспечения комбинации четырехзначного восьмеричного кода и высоты в качестве режима 3 A / C, часто называемого режимами A и C.
4
Обеспечивает 3-импульсный ответ, задержка зависит от зашифрованного запроса
5
Обеспечивает криптографически защищенную версию GPS-положения в режиме S и ADS-B
S
Предоставляет несколько информационных форматов для выборочного опроса. Каждому самолету назначается фиксированный 24-битный адрес.
Режим А
Когда транспондер получает запрос на опрос, он передает сконфигурированный код транспондера (или » код крика «). Это называется «режимом 3A» или, чаще, режимом A. Отдельный тип ответа, называемый «Ident», может быть инициирован с самолета путем нажатия кнопки на панели управления транспондером.
Режим A с режимом C
Режимы A и C используются, чтобы помочь авиадиспетчерам определить местоположение и высоту конкретного воздушного судна на экране радара, чтобы сохранить эшелонирование.
Режим S
Особенности режима S
24-битный адрес ИКАО
В качестве примера ниже приведен 24-битный адрес ИКАО, присвоенный самолету- перевозчику с регистрацией N905NA:
Это все тот же 24-битный адрес самолета-перевозчика, представленный в разных системах счисления (см. Выше).
Проблемы с транспондерами режима S
Проблема с транспондерами режима S возникает, когда пилоты вводят неправильный идентификационный код полета в транспондер режима S. В этом случае возможности БСПС II и ВОРЛ режима S могут ухудшиться.
Расширенный сквиттер
В 2009 году ИКАО опубликовала «расширенную» форму режима S с большим количеством форматов сообщений для использования с ADS-B ; в 2012 году он был дополнительно доработан. Страны, внедряющие ADS-B, могут потребовать использования либо расширенного режима самогенерируемого сигнала соответственно оборудованного транспондера режима S, либо транспондера UAT на 978 МГц.
Мониторинг сигналов ADS-B (радарспоттинг) или как отслеживать самолеты. Мой FR24-радар T-UMGG2
Аббревиатура «ADS-B» расшифровывается так: Automatic – не требует вмешательства пилота или внешнего запроса Dependant – зависит от точных данных о положении и скорости от навигационной системы самолета (например, GPS) Surveillance – предоставляет положение воздушного судна, высоту, скорость и другие данные наблюдения службам, которым требуется эта информация Broadcast – информация передается для использования как воздушными судами, так и наземными службами
Воздушные суда оснащаются такими транспондерами ADS-B:
Вот так выглядят такие сигналы:
Приемник ADS-B In
Для приема я использовал RTL-SDR приемник с различными вариантами антенн
Антенны для приема сигналовADS-B
Сначала я использовал штатную антенну от донгла: Для улучшения качества приема антенна была расположена на металлическом кожухе от компьютерного блока питания, играющего роль заземляющей поверхности. Также рекомендуется обрезать антенну до длины 67 мм. Антенна была расположена внутри дома, у окна, поэтому полярная диаграмма дальности принимаемых сигналов получилась несимметричной (соответствует направлениям, видным из окна и не закрытым препятствиями): Максимальное расстояние, на котором я смог принять сигнал ADS-B с этой антенной, составило 137 морских миль (nm). 1 морская миля равна 1852 м.
Сопротивление такой антенны также зависит от высоты подъема антенны над землей:
Я закрепил антенну над крышей дома:
Диаграмма (по статистике сервиса FR24) оказалась намного равномернее, чем в первом случае:
Вместо радиальных проводников можно использовать металлическую банку емкостью 330-350 миллилитров (диаметром 65 мм).
Максимальное расстояние, на котором я смог принять сигнал ADS-B с этой антенной, составило 188 морских миль (nm):
Альтернативой такой антенне служит антенна «$ <5 \lambda>\over 8$»:
Также можно построить двухэлементную коллинеарную антенну:
Трансляция на сервис FlightRadar24
Также можно организовать трансляцию информации о принимаемых ADS-B сигналах на сервис FlightRadar24 (FR24).
Для этого я использовал предлагаемую этим сервисом программу fr24feed:
Программа fr24feed при работе отображается в трее таким значком:
Мой радар получил код T-UMGG2:
Вблизи аэропорта Гомель располагается 5 радаров сервиса FR24:
F-UMGG1
Anonymous
F-UMGG2
gleb_gomel
T-UMGG2
UMGG
F-UMGG3
Avtunich
F-UMGG4
За трансляцию данных сервис FR24 дарит пользователям уровень Business использования своего сервиса:
При перерыве в вещании уровень меняется на Gold:
Вот пример работы моего радара, отслеживающего борт EW-308PA:
Программа fr24feed для приема ADS-B-сообщений через RTL-SDR-приемник и их декодирования использует программу mr-dump1090:
При работе программы fr24feed я наблюдал такие сообщения в командном окне:
Число N показывает порядковый номер пинга (от 1).
синхронизация времени через NTP-сервер
Трафик, отправляемый программой за час работы, не превышает 1-2 МБайт.
Программа fr24feed при запуске открывает порт:
К этому порту можно подключиться с помощью стандартной утилиты telnet:
можно сохранять сообщения в текстовый файл.
Визуализация и протоколирование ADS-B данных
Для визуализации данных сначала я использовал программу Virtual Radar Server, в настройках приемника fr24feed которой следует указать:
Этот же приемник fr24feed следует указать как основной.
Эта программа позволяет отображать положение текущего отслеживаемого борта на Google Картах при обращении в браузере по адресу http://127.0.0.1/VirtualRadar/desktop.html#:
Но для использования карт необходимо получить и указать в программе ключ API.
Для индикации я использовал два светодиода, подключенных через преобразователь USB-COM:
Программа создает Web-сервер с открытым портом 80, при обращении к которого отображается текущая ситуация в зоне действия радара:
Слева отображается карта, на которой маркерами с порядковыми номерами отмечено положение отслеживаемых в данный момент воздушных судов.
Подробнее о регистрационных номерах воздушных судов можно прочитать здесь.
Для трансляции данных своего виртуального радара в Интернет я использую программу ngrok. Для просмотра текущей воздушной обстановки в зоне действия моего радара T-UMGG2 (в то время, когда я запускаю вещание в Интернет) можно обратиться в браузере по адресу http://radar.ngrok.foxylab.com:1976. Информация в окне браузера обновляется автоматически каждые 30 секунд.
Для прерывания работы программы необходимо нажать в командном окне программы сочетание клавиш CTRL—C.
Программу можно загрузить из репозитария на GitHub: .
Предыдущие варианты моих программ:
Список интересных зафиксированных мной воздушных судов можно посмотреть здесь.
Следует отметить, что иногда транспондеры воздушных судов выдают неверные данные об их текущем местоположении.
В качестве примера я приведу случай с бортом Boeing 737-524 (рег. номер VP-BFW) авиакомпании UTair, выполнявшим 2 августа 2017 года рейс «Москва-Минск». Этот борт был направлен из-за погодных условий вместо Минска в Гомель:
В результате, по данным системы ADS-B самолет приземлился не в аэропорту Гомель, а в чистом поле :
Альтернативные декодеры ADS-B сигналов
Для декодирования принимаемых ADS-B сигналов также можно использовать программу rtl1090:
О введении процедуры присвоения 24-битовых адресов ВС ГА
Начальникам отделов ДВТ, Начальникам Управлений ГА, производственных объединений, руководителям авиакомпаний, концернов, корпораций, предприятий гражданской авиации
В настоящее время международной организацией гражданской авиации ИКАО принят стандарт на систему вторичной радиолокации (ВРЛ) режима S, основной принцип которого заключается в использовании индивидуального адреса воздушного судна, состоящего из 24 бит, для каждого воздушного судна. Определено глобальное распределение адресов режима S ВРЛ между государствами членами ИКАО. В ряде стран идет или уже закончена разработка наземного и бортового оборудования системы режима S вторичной радиолокации (ВРЛ), а также бортовой системы предупреждения столкновений (БСПС) TCAS 2, в состав которой входит ответчик режима S ВРЛ. Ряд зарубежных авиационных фирм приступила к выпуску и оборудованию воздушных судов ответчиками режима S и БСПС. В Российской Федерации также заканчивается разработка отечественных ответчиков системы режима S ВРЛ и БСПС ИНТЕРВАЛ-2. Вследствии эого, большое число государств либо применяют, либо планируют в скором времени использовать процедуру присвоения 24-битовых адресов режима S. Учитывая вышеизложенное, а также то, что ряд авиакомпаний России в настоящее время производят заказы отечественной и зарубежной авиационной техники, в состав которых входят ответчики режима S ВРЛ и БСПС. УСТАНОВИТЬ следующий порядок присвоения 24-битовых адресов воздушным судам Российской Федерации: 1. Регистрацией воздушных судов и присвоением им регистрационных номеров в Российской Федерации занимается отдел расследования авиационных происшествий и инспектирования (ОРАПИ) Департамента воздушного транспорта России, в связи с чем, ОРАПИ поручается производить процедуру присвоения 24-битовых адресов режима S воздушным судам гражданской авиации РФ. Адрес: 125836, ГСП, Москва, 167, Ленинградский проспект, 37, (095) 155-54-08, 155-58-19. 2. Так как 24-битовый адрес является принадлежностью конкретного воздушного судна, на котором производится установка соответствующего оборудования режима S ВРЛ, все Российские летно-эксплуатационные агентства, при заказе авиационной техники в России или за рубежом должны предварительно получить в ОРАПИ Департамента воздушного транспорта регистрационный номер воздушного судна и соответствующий ему 24-битовый адрес и после этого осуществлять заказ на изготовление и оборудование воздушного судна. 3. Летно-эксплуатационные агентства России, уже осуществившие закупку авиационной техники, в состав оборудования которых входят ответчики режима S ВРЛ и БСПС, должны уточнить 24-битовый адрес полученного воздушного судна и зарегистрировать его в ОРАПИ. 4. Установить процедуру присвоения 24-битовых адресов воздушным судам гражданской авиации Российской Федерации в соответствии с Приложением 1.
Приложение: процедура присвоения 24-битовых адресов воздушным судам РФ.
Заместитель Директора Департамента воздушного транспорта России
ПРОЦЕДУРА ПРИСВОЕНИЯ 24-БИТОВЫХ АДРЕСОВ ВОЗДУШНЫМ СУДАМ РОССИЙСКОЙ ФЕДЕРАЦИИ
Адрес воздушного судна (24-битовый адрес режима S ВРЛ)
Flightradar24 — как это работает? Часть 2, ADS-B протокол
Привет Хабр. Наверное каждый, кто хоть раз встречал или провожал родственников или друзей на самолет, пользовался бесплатным сервисом Flightradar24. Это весьма удобный способ отслеживания положения самолета в реальном времени.
В первой части был описан принцип работы такого онлайн-сервиса. Сейчас мы пойдем дальше, и выясним, какие данные передаются и принимаются от воздушного судна к приемной станции, и декодируем их самостоятельно с помощью Python.
История
Очевидно, что данные о самолетах передаются не для того, чтобы пользователи видели их на своих смартфонах. Система называется ADS–B (Automatic dependent surveillance—broadcast), и служит для автоматической передачи информации о воздушном судне в диспетчерский центр — передаются его идентификатор, координаты, направление, скорость, высота и прочие данные. Ранее, до появления таких систем, диспетчер мог видеть лишь точку на радаре. Этого стало недостаточно, когда самолетов стало слишком много.
Технически, ADS-B состоит из передатчика на воздушном судне, который периодически посылает пакеты с информацией на достаточно высокой частоте 1090 МГц (есть и другие режимы, но нам они не так интересены, т.к. координаты передаются только здесь). Разумеется, кроме передатчика, есть и приемник где-то в аэропорту, но для нас, как для пользователей, интересен приемник наш собственный.
Кстати, для сравнения, первая такая система, Airnav Radarbox, расчитанная на обычных пользователей, появилась в 2007 году, и стоила около 900$, еще около 250$ в год стоила подписка на сетевые сервисы.
Отзывы тех первых российских владельцев можно почитать на форуме radioscanner. Сейчас, когда массово стали доступны RTL-SDR приемники, аналогичный девайс можно собрать за 30$, подробнее об этом было в первой части. Мы же перейдем собственно, к протоколу — посмотрим как это работает.
Прием сигналов
Для начала, сигнал нужно записать. Весь сигнал имеет длительность всего лишь 120 микросекунд, поэтому чтобы комфортно разобрать его компоненты, желателен SDR-приемник с частотой дискретизации не менее 5МГц.
После записи мы получаем WAV-файл с частотой дискретизации 5000000 семплов/сек, 30 секунд такой записи «весят» около 500Мб. Слушать её медиаплеером разумеется, бесполезно — файл содержит не звук, а непосредственно оцифрованный радиосигнал — именно так работает Software Defined Radio.
Открывать и обрабатывать файл мы будем с помощью Python. Желающие поэкспериментировать самостоятельно, могут скачать пример записи по ссылке.
Загрузим файл, и посмотрим что внутри.
Результат: мы видим явные «импульсы» на фоне шума.
Каждый «импульс» — это и есть сигнал, структуру которого хорошо видно, если увеличить разрешение на графике.
Как можно видеть, картинка вполне соответствует тому, что приведено в описании выше. Можно приступать к обработке данных.
Декодирование
Для начала, нужно получить битовый поток. Сам сигнал закодирован с помощью manchester encoding:
Из разницы уровней в полубайтах легко получить реальные «0» и «1».
Структура самого сигнала имеет следующий вид:
Рассмотрим поля более подробно.
DF (Downlink Format, 5 бит) — определяет тип сообщения. Их несколько типов:
(источник таблицы)
Нас интересует только тип DF17, т.к. именно он содержит координаты воздушного судна.
ICAO (24 бита) — международный уникальный код воздушного судна. Проверить самолет по его коду можно на сайте (к сожалению, автор перестал обновлять базу, но она еще актуальна). К примеру, для кода 3c5ee2 имеем следующую информацию:
Правка: в комментарии к статье описание кода ICAO приведено более подробно, интересующимся рекомендую ознакомиться.
DATA (56 или 112 бит) — собственно данные, которые мы и будем декодировать. Первые 5 бит данных — поле Type Code, содержащее подтип хранящихся данных (не путать с DF). Таких типов довольно много:
TC = 00100b = 4, каждый символ C1-C8 содержит коды, соответствующие индексам в строке: #ABCDEFGHIJKLMNOPQRSTUVWXYZ#####_###############0123456789######
Раскодировав строку, несложно получить код самолета: EWG7184
Если с названием все просто, то с координатами посложнее. Они передаются в виде 2х, четных и нечетных фреймов. Код поля TC = 01011b = 11.
Пример четного и нечетного пакетов:
Само вычисление координат происходит по достаточно хитрой формуле:
(источник)
Я не специалист по ГИС, так что откуда оно выводится, не знаю. Кто в курсе, напишите в комментариях.
Высота считается проще — в зависимости от определенного бита, она может представляться либо кратной 25, либо 100 футам.
Пакет с TC=19. Интересно тут то, что скорость может быть как точная, относительно земли (Ground Speed), так и воздушная, измеряемая датчиком самолета (Airspeed). Еще передается множество разных полей:
(источник)
Заключение
Как можно видеть, технология ADS-B стала интересным симбиозом, когда какой-либо стандарт пригождается не только профессионалам, но и обычным пользователям. Но разумеется, ключевую роль в этом сыграло удешевление технологии цифровых SDR-приемников, позволяющим на девайсе буквально «за копейки» принимать сигналы с частотой выше гигагерца.
В самом стандарте разумеется, гораздо больше всего. Желающие могут посмотреть PDF на странице ICAO или посетить уже упомянутый выше сайт.
Вряд ли многим пригодится все вышенаписанное, но по крайней мере общая идея того, как это работает, надеюсь, осталась.
Кстати, готовый декодер на Python уже существует, его можно изучить здесь. А владельцы SDR-приемников могут собрать и запустить готовый ADS-B декодер со страницы, подробнее об этом рассказывалось в первой части.
Исходный код парсера, описанный в статье, приведен под катом. Это тестовый пример, не претендующий на production, но кое-что в нем работает, и парсить записанный выше файл, им можно.
I know that each transponder is linked to a unique 24-bit code assigned by ICAO. But to be seen by the Secondary surveillance radar the pilot set the squawk code (4 digit octal code) on the transponder as dictated by the Air Traffic Controller (ATC).
So, why do I need a ICAO 24-bit code? Has it any utility during navigation, or just during maintenance to identify the single transponder (and the aircraft associated)?
3 Answers 3
In short: the 24 bit address is critical on the technical layer of Air Traffic Control, but it is not used in the operational level. For identification of aircraft and association to flight plans, the air traffic controllers and the flight data processing systems rely mostly on the Mode A code and the aircraft ID (call sign) transmitted by the transponder.
The ICAO 24-bit aircraft address is an essential element of the way Mode S radar and TCAS work.
Before Mode-S radar, only modes A and C were used by civil ATC secondary radars.
Mode A and Mode C are unaddressed; every transponder receiving a Mode A or Mode C interrogation will reply*. This causes two problems, garbling and FRUIT.
Garbling is caused by the overlap of replies from multiple transponders. A transponder replies on 1090 MHz in the from of a number of pulses. For Mode A & C, there are at most 12 pulses between a set of framing pulses. When multiple aircraft reply to the same interrogation, these pulses mix up and it becomes difficult to find out which transponder sent which pulse. This leads to false altitudes or false squawk codes.
FRUIT (False Replies Unsynchronised to Interrogator Transmission) is caused by replies that are triggered by other radars. When multiple radars operate in an area, transponders can be quite busy and the radar is easily mislead by a reply to another radar. In addition to the timing (range) being wrong, the reply can be Mode A (squawk code) while the radar interrogated Mode C (altitude). There is no way to see what kind (A or C) reply was sent.
To overcome these problems of Mode A/C, Mode S was introduced. Mode S is quite different from Mode A/C and requires a more sophisticated radar and transponder. It uses the 24 bit address to distinguish responses from various aircraft and to interrogate specific aircraft.
Most Mode S interrogations are addressed; the interrogation contains the unique 24 bit address of the aircraft it is interrogating. This reduces the probability of garbling since other aircraft will not reply
Unaddressed Mode S interrogations will solicit replies that contain the address of interrogator (radar). This prevents FRUIT since the radar can verify that the reply is correctly addressed.
Unlike Mode A/C which does not have any error checking, a Mode S reply contains a 24 bit CRC check code.
Mode S Altitude and identity (squawk) replies have their own identifier so they can be distinguished.
Mode S radars can be operated in clusters and coordinate between them who is interrogating which aircraft at which time. This further reduces the message load and garbling / fruit probability.
For TCAS, the Mode S address is used to distinguish replies for various aircraft in the vicinity of the own aircraft. The TCAS transponder interrogates omnidirectionally (in all directions) and get’s replies from all direction. Again, this is very susceptible to Garbling and FRUIT. Whilst TCAS can work with Mode A/C, for its reliability and coordination of resolution advisories, the 24-bit address is crucial.