Содержание статьи
- Введение
- Типы сообщений AIS
- Сообщения передатчиков класса А
- Сообщения передатчиков класса Б
- Сообщения ATON
- Бинарные сообщения
- Типы AIS
- Класс А
- Класс Б
- Наземные станции
- SART
- ATON
- Подводим итоги
- Демодуляция
- Частота
- Модуляция
- Слоты
- SOTDMA
- RATDMA
- ITDMA
- FATDMA
- CSTDMA
- PATDMA
- Устройства и их совместимость с типами TDMA
- Форматы и кодирование сигналов
- NRZI
- Bit stuffing
- NMEA и формат передачи
- MSB и LSB
- Кодирование сигнала
- Записываем сигнал
- Демодуляция
- SDRangel
- GNU Radio
- GNU AIS
- Безопасность
Введение
AIS была создана давно, и ее главная цель — безопасное мореплавание. В настоящий момент система выполняет следующие функции:
- защита от столкновения судов;
- передача информации о корабле наземным станциям;
- контроль трафика судов через порты;
- слежка за судами для помощи в ЧП.
Применений у системы много. Например, люди, часто плавающие на своих яхтах, покупают маячки AIS, которые могут транслировать сигнал бедствия всем судам вокруг, если человек окажется за бортом или судно попадет в экстренную ситуацию.
AIS позволяет общаться с другими судами для обмена важной информацией. Такая технология помогает избежать аварий. Это особенно актуально для больших кораблей, которые не могут резко поменять курс или остановиться.
Для реализации AIS нужен транспортер, работающий в диапазоне VHF (134–174 МГц). Используя специальную систему разделенного доступа к каналу, SOTDMA, AIS может передавать до 4500 отчетов в минуту. Про SOTDMA мы поговорим чуть позже.
В реальных же условиях корабли не всегда находятся возле берегов и наземные станции не всегда могут получить данные о кораблях. Чтобы это исправить, в AIS добавили интеграцию со спутниковой связью. Эта система называется SAT-AIS, она есть на всех больших кораблях и стоит очень дорого, что делает ее недоступной для обычных судов. Чтобы исправить эту проблему, люди разработали систему, в которой суда без SAT-AIS могут использовать ближайшие корабли с SAT-AIS для передачи данных о себе.
Типы сообщений AIS
В зависимости от передаваемой информации сообщения могут иметь разную структуру. Чтобы не запутаться, в систему внедрили типы сообщений, первые 6 бит показывают тип и, соответственно, формат дальнейших данных. Немного углубимся в форматы сообщений и разберемся, какие данные можно передавать и получать в AIS.
Всего в AIS 21 основной тип сообщений, в будущем этот список может быть расширен до 63. Сообщения имеют разные форматы временного доступа к системе, разный приоритет и назначение. Рассмотрим все сообщения, разделив их на классы: сообщения передатчиков класса А, сообщения передатчиков класса Б, сообщения от ATON, бинарные сообщения AIS с адресом, бинарные сообщения AIS для всех приемников.
Сообщения передатчиков класса А
Позиция корабля
Сообщения передатчиков класса А с позицией передаются через равные промежутки времени от 2 до 10 с автоматически. Они содержат данные о текущей позиции корабля, его скорости, направлении, состоянии индикаторов маневров, в случае если корабль делает разворот или другой сложный маневр. Разберем формат сообщений типа 1, 2 и 3, которые отвечают за передачу позиции.
Поле | Размер | Описание |
---|---|---|
Тип сообщения | 6 | Тип, 1, 2 или 3 |
Индикатор повтора | 2 | Сколько раз сообщение будет повторяться |
MMSI | 30 | Уникальный номер передатчика |
Навигационный статус | 4 | 0 = в пути с работающим двигателем, 1 = на якоре, 2 = неуправляем, 3 = ограниченная маневренность, 4 = ограничен осадкой, 5 = на причале, 6 = на мели, 7 = занимается рыбной ловлей, 8 = в пути под парусом, 9–13 = зарезервировано для будущего использования, 14 = AIS-SART (активный), 15 = не определено = по умолчанию |
Скорость поворота | 8 | 0 до +126 = поворот направо до 708 град/мин или выше, 0 до –126 = поворот налево до 708 град/мин или выше. Значения от 0 до 708 град/мин кодируются как ROTAIS = 4.733 * sqrt(ROTsensor) |
Скорость над землей | 10 | Скорость над землей в шагах по 1/10 узла (0–102,2 узла) |
Точность положения | 1 | Флаг точности положения: 1 = высокая (<= 10 м), 0 = низкая (> 10 м), 0 = по умолчанию |
Долгота | 28 | Долгота в 1/10 000 мин (+/–180 град, восток — положительное, запад — отрицательное значение); 181 = (6791AC0h) = недоступно = по умолчанию |
Широта | 27 | Широта в 1/10 000 мин (+/–90 град, север — положительное, юг — отрицательное значение); 91 град (3412140h) = недоступно = по умолчанию |
Курс | 12 | Курс над землей в 1/10 градуса (0–3599). 3600 (E10h) = недоступно = по умолчанию. 3601–4095 не должны использоваться |
Истинный курс | 9 | Градусы (0–359). 511 указывает, что недоступно = по умолчанию |
Метка времени | 6 | Секунда UTC, когда отчет был сгенерирован электронным позиционным устройством |
Индикатор маневра | 2 | 0 = недоступно = по умолчанию, 1 = не участвует в специальном маневре, 2 = участвует в специальном маневре (например, региональное обгонное соглашение на внутреннем водном пути) |
Зарезервировано | 3 | Не используется. Должно быть установлено в ноль |
Флаг RAIM | 1 | Флаг автономного мониторинга целостности приемника (RAIM) |
Состояние связи | 19 | Состояние связи |
Общее количество битов | 168 | Общее количество битов в сообщении |
В целом ничего сложного, есть термины, которые используются только в корабельном деле, но общая суть должна быть ясна. С помощью этих типов сообщений строятся карты кораблей и отслеживаются их передвижения.
Статические данные о корабле
Статические данные могут включать в себя позывной, версию AIS, идентификаторы приемника и передатчика, тип судна, тип груза и еще кучу важных деталей. Эти сообщения относятся к типу 5, рассмотрим их структуру.
Поле | Размер | Описание |
---|---|---|
Тип сообщения | 6 | Тип 5 |
Индикатор повтора | 2 | Сколько раз сообщение будет повторяться |
MMSI | 30 | Идентификатор MMSI |
Версия AIS | 2 | В зависимости от версии станции могут быть различные значения |
Номер IMO | 30 | 0 = недоступно (по умолчанию), 0001000000–0009999999 = действительный номер IMO |
Позывной | 42 | Семь символов ASCII по 6 бит, @@@@@@@ = недоступно (по умолчанию). Для судов, связанных с родительским судном, следует использовать A, за которым идут последние шесть цифр MMSI родительского судна |
Название | 120 | Максимум 20 символов 6-битного ASCII, @@@@@@@@@@@@@@@@@@@@ = недоступно (по умолчанию) |
Тип судна и тип груза | 8 | Множество разных чисел, соответствующих разным грузам и типам |
Общие размеры / опорная точка для позиции | 30 | Опорная точка для сообщаемой позиции. Также указывает размеры судна (в метрах) |
Тип устройства для определения позиции | 4 | GPS, ГЛОНАСС, Galileo или другие виды GNSS |
Ожидаемое время прибытия (ETA) | 20 | Ожидаемое время прибытия, MMDDHHMM UTC |
Максимальная текущая статическая осадка | 8 | В 1/10 м, 255 = осадка 25,5 м или более; 0 = недоступно (по умолчанию) |
Пункт назначения | 120 | Максимум 20 символов, с использованием 6-битного ASCII |
DTE | 1 | Терминальное оборудование для передачи данных готово; 0 = доступно, 1 = недоступно (по умолчанию) |
Резерв | 1 | Не используется |
Количество битов | 424 | Занимает два слота |
Сообщения со статической информацией транслируются каждые 6 мин.
Широковещательное сообщение
Сообщение типа 27, которое используется для передачи позиции (как в типах 1, 2 и 3), но имеет меньшее количество битов — 96 бит вместо 168 в типах 1, 2 и 3. Это позволяет транслировать сообщение на спутники или на более дальние расстояния без проблем.
Сообщения передатчиков класса Б
Сообщения передатчиков класса Б соответствуют форматам, описанным в классе А, но имеют немного другую бинарную структуру передаваемых сообщений. В связи с этими различиями сообщения этих передатчиков выделяют в отдельные типы. За передачу позиции отвечают сообщения типа 18 и 19, последнее является своеобразным легаси. Сообщение типа 24 содержит статическую информацию о корабле.
Сообщения ATON
Остановимся на формате сообщений ATON и проанализируем их более подробно, потому что это довольно интересно. ATON имеет только один тип сообщений — 27. Передаются эти сообщения автоматически через определенный промежуток времени.
Параметр | Биты | Описание |
---|---|---|
Идентификатор сообщения | 6 | Тип 21 |
Индикатор повтора | 2 | Используется ретранслятором для указания, сколько раз сообщение было повторено |
MMSI | 30 | Идентификатор MMSI |
Тип средств навигации | 5 | В данном поле описывается тип ATON, который может включать множество разных версий, начиная с обычных буев и заканчивая специальными системами, установленными на наземных станциях |
Название средства навигации | 120 | Максимум 20 символов 6-битного ASCII |
Точность позиции | 1 | 1 = высокая (менее 10 м), 0 = низкая (более 10 м), 0 = по умолчанию |
Долгота | 28 | Долгота в 1/10 000 мин для позиции средства навигации (±180°, восток — положительное значение, запад — отрицательное значение, 181 = (6791AC0h) = недоступно = по умолчанию) |
Широта | 27 | Широта в 1/10 000 мин для позиции средства навигации (±90°, север — положительное значение, юг — отрицательное значение, 91 = (3412140h) = недоступно = по умолчанию) |
Размеры | 30 | Точка отсчета для сообщаемой позиции; также указывает размеры средства навигации |
Тип устройства для определения положения | 4 | Тип GNSS |
Метка времени | 6 | Секунда UTC, когда отчет был сгенерирован |
Индикатор смещения | 1 | Только для плавучих средств навигации: 0 = на позиции, 1 = вне позиции |
Статус средства навигации | 8 | Зарезервировано для указания статуса средства навигации |
Флаг RAIM | 1 | Флаг RAIM (receiver autonomous integrity monitoring) устройства для определения положения |
Флаг виртуального средства навигации | 1 | 0 = по умолчанию = реальное средство навигации на указанной позиции |
Флаг назначенного режима | 1 | 0 = станция работает в автономном и непрерывном режиме (по умолчанию), 1 = станция работает в назначенном режиме |
Зарезервировано | 1 | Не используется. Должно быть установлено в ноль. Зарезервировано для будущего использования |
Расширение имени средства навигации | 0, 6, 12, 18, 24, 30, 36, ..., 84 | Этот параметр до 14 дополнительных 6-битных ASCII-символов для сообщения на два слота может быть объединен с параметром «Название средства навигации» в конце этого параметра, когда требуется более 20 символов для названия средства навигации. Этот параметр надо опустить, если в общей сложности не требуется более 20 символов для названия средства навигации. Нужно передавать только требуемое количество символов, то есть символ @ использовать не следует |
Зарезервировано | 0, 2, 4 или 6 | Зарезервировано. Используется только при использовании параметра «Расширение имени средства навигации» |
Количество битов | 272–360 | Занимает два слота |
Как видишь, в сообщении много разной интересной информации.
Бинарные сообщения
Бинарные сообщения имеют типы 6 для сообщений с получателем и 8 для широковещательных. Бинарные сообщения используются для передачи любой информации, например сообщений другим кораблям. Рассмотрим структуру бинарных сообщений типа 6, для типа 8 она похожа, просто отсутствует поле назначения.
Параметр | Биты | Описание |
---|---|---|
Идентификатор сообщения | 6 | Тип 6 |
Индикатор повтора | 2 | Используется ретранслятором для указания, сколько раз сообщение было повторено |
MMSI | 30 | Номер MMSI исходной станции |
Номер последовательности | 2 | 0–3 |
MMSI назначения | 30 | Номер MMSI станции назначения |
Флаг ретрансляции | 1 | Флаг ретрансляции должен быть установлен при ретрансляции: 0 = без ретрансляции (по умолчанию), 1 = ретранслируется |
Зарезервировано | 1 | Не используется. Должно быть установлено в ноль. Зарезервировано для будущего использования |
Двоичные данные | 936 максимум | Любые данные |
Максимальное количество битов | 1008 | Занимает до 3 слотов или до 5 слотов при использовании резервирования FATDMA. Для мобильных станций AIS класса B SO длина сообщения не должна превышать 3 слота. Для мобильных станций AIS класса B CS сообщение не должно передаваться |
Типы AIS
У системы множество применений, и, соответственно, есть множество устройств, где она реализована. Давай посмотрим, какие есть основные типы девайсов и чем они отличаются друг от друга.
Класс А
Это самые популярные передатчики для кораблей. Сигнал с позицией (тип 1, 2 и 3) автоматически транслируется каждые 2 с. Время передачи может меняться в зависимости от курса и скорости судна. Сигналы с дополнительной информацией, например с показаниями датчиков (тип 5), транслируются каждые 6 мин тоже автоматически. Передатчики этого типа позволяют кораблям обмениваться текстовыми данными. Также системы класса А могут принимать информацию о погоде от наземных станций. Больше информации можно найти в стандарте IEC 61993-2.
Класс Б
Станции этого типа намного слабее станций класса А, у них меньше и мощность, и число возможностей. Станции точно так же автоматически транслируют свое местоположение, но с большим интервалом и меньшей мощностью. Также они передают дополнительную информацию, но количество этой информации на порядок меньше. Устройства класса Б могут получать текстовые сообщения, но не могут их передавать. За подробностями обращайся к стандартам IEC 62287-1 и 62287-2.
Наземные станции
Наземные станции помогают синхронизировать информацию из разных источников и время передачи, а также передавать судам текстовые сообщения, например о надвигающемся шторме. Каждые 4 с наземная станция отправляет свой уникальный идентификатор (MMSI вида 00MIDXXXXX
) и данные о времени. Наземные станции также могут передавать данные для систем AIS ATON (AIS Aid to Navigation) и ASM (Application Specific Messages), которая передает точную информацию о прогнозе погоды. Больше информации — в стандарте IEC 62320-1.
SART
Поисково‑спасательные системы, которые используются в экстренных ситуациях как маяк для спасения. После активации транслирует сообщения типа 14 и позицию передатчика. Всего передается восемь сообщений в минуту. Передатчики спасательного типа можно определить по MMSI, который начинается на 970, 972 или 974. Передатчики SART транслируют по четыре сообщения на каждой из частот AIS, то есть четыре на 161,975 МГц и четыре на 162,025 МГц. Позиция передатчика определяется через встроенный приемник GNSS. Подробнее — в стандарте IEC 61097-14.
ATON
Навигационная система AIS Aid to Navigation позволяет кораблям, которые используют AIS, получать информацию о физических объектах в водах, например скалах или мелководье. Существует три основных ATON. Первый из них — физический объект, который транслирует информацию о ближайших физических объектах. Второй — синтетический, который не транслирует AIS, а просто с помощью света показывает местонахождение объектов. Обычно данные о синтетических ATON передаются с наземных станций. Третий тип — виртуальный, в данном типе информация об объектах передается только через наземные станции или спутники. Системы ATON можно обнаружить по MMSI, который начинается на 993XXXXX
. Подробности — в стандарте IEC 62320-2.
Подводим итоги
Как видно, в AIS много подсистем, которые отвечают за разные функции — начиная от передачи данных между кораблями и заканчивая спасательными объектами. Все они передают данные по незащищенному каналу, кроме, конечно, Blue Force Tracking, военной системы США и НАТО, которую они используют в зашифрованном виде через спутники. Атакующий может легко передать данные, например ATON, и заставить корабли развернуться или запустить еще один корабль, который будет идти прямо на цель. Все это возможно сделать с простым SDR-передатчиком за 200–300 долларов. В этой статье мы не будем углубляться в атаки на AIS, а только попробуем полностью разобраться в передаче, модуляции и кодировании.
warning
Статья имеет ознакомительный характер. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Отметим основные пункты:
- Данные о позиции AIS получает по GNSS.
- Данные о других кораблях система получает либо с наземных станций, либо непосредственно от других кораблей.
- Есть разные типы передатчиков.
- Типы передатчиков можно установить по MMSI.
- Некоторые корабли могут работать с AIS-SAT, а некоторые нет.
- Система не имеет шифрования, кроме как для военных частот.
- AIS работает на двух частотах или каналах (VHF): 161,975 МГц и 162,025 МГц с шириной в 25 кГц.
Изучить, как выглядит AIS, можно на официальном сайте системы.
Демодуляция
Перейдем к более интересной составляющей статьи. В этом разделе изучим модуляцию сигнала и основные форматы данных.
Частота
AIS работает на двух основных частотах. В некоторых источниках их называют каналами. Это 161,975 МГц и 162,025 МГц, каналы же соответственно называются 87b и 88b. Все это находится в диапазоне VHF, который включает в себя метровые волны от 1 до 10 м. Радиосвязь на этом диапазоне, как правило, возможна на расстояние до нескольких десятков километров, а при совпадении факторов ионизации и отражения и до тысяч километров — при наличии мощного передатчика. VHF отлично подходит для связи в городе и на местностях с прямой видимостью, какой воды и являются.
Модуляция
Для модуляции используется GMSK — это один из видов частотной модуляции, который передает данные, изменяя частоту при изменении бита. Например, если 1 — это 10 Гц, а 0 — 20 Гц, то в зависимости от исходных данных сигнал будет иметь разные частоты в разных временных промежутках.
GMSK — это улучшенная версия частотной модуляции. Так как большое количество передатчиков не должны мешать друг другу, GMSK имеет минимальную ширину спектра и хорошую скорость передачи. Это позволяет экономить место в полосе, причем сложность передатчиков и приемников не слишком возрастает.
В основе такой модуляции лежит гауссовский фильтр нижних частот, а индекс модуляции, который задает разницу между частотами для 0 и 1, минимален (0,5). Все это позволяет получить минимальную ширину спектра. Если хочешь подробнее изучить, как работает GMSK, можешь начать с моих статей про FSK, MSK и CPFSK.
Здесь же мы углубимся в частотную модуляцию, чтобы лучше понимать, что именно мы будем демодулировать.
GMSK
Рассмотрим несколько примеров работы GMSK-модуляции. Начнем с простого — с того, как модулируется сигнал. Начнем с FSK. Это самая простая частотная модуляция, которая без какой‑либо обработки переключает частоты в зависимости от входного сигнала. Обычно в схеме модуляции FSK есть два генератора с разными частотами и ключ.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»