APRS [1, 2] это протокол цифровой радиолюбительской связи. На базе этого протокола построена глобальная система связи. Её основные задачи: передача информации о координатах объектов в пространстве, обмен сообщениями, передача данных с погодных станций и многое другое.
О чем эта статья? Вообще APRS — большая, сложная и непонятная тема даже для большинства радиолюбителей. Но на Хабре радиолюбителей не очень много. Поэтому я бы хотел показать, что сам стандарт очень хорош и может применяться за пределами любительского радио. Существует много систем, где вопрос обмена сообщениями о координатах изобретается снова и снова (транспорт), придумываются форматы передачи информации, например, о погоде с погодных станций, разрабатываются способы передачи текстовых сообщений. Однако, если бы создатели этих систем знали о стандарте APRS то смогли бы не только сэкономить время(как минимум на разработку протокола), но и применить ряд уже готовых программных и аппаратных решений.
Большую часть своих знаний о системе я получил не из практического использования существующих программ и оборудования, а из разработки собственных программ и утилит для работы с ней [3, 4]. Информацию черпал из стандарта [5], исходных кодов Xastir[6], радиолюбительских форумов [7, 8] и из общения с радиолюбителями (всех и не счесть).
Если вы делаете:
- погодную станцию;
- систему двухстороннего обмена текстовыми сообщениями через интернет или радиоканал в виде децентрализованной системы с использованием других пейджеров, как ретрансляторов;
- спутниковую сигнализацию;
- мониторинг телеметрии удаленных станций;
- запускаете воздушный шар;
Да и почти в любом случае, когда вы хотите построить систему передачи данных по радиоканалу и изобретаете для этого протокол, то у радиолюбителей есть наработки в виде различных цифровых видов связи и протокол APRS.
Что есть APRS?
По сути дела это стандарт, описывающий типы и форматы сообщений, которые могут передаваться по сети. Формат пакета может немного отличаться в зависимости от среды передачи (см. ниже), но содержимое и назначение пакета от этого не меняются.
Типы сообщений:
- Маяк (Beacon) — пожалуй, самое часто используемое сообщение. Оно содержит в себе позывной станции, его координаты и короткий комментарий.
- Короткое текстовое сообщение (Message) — аналог СМС, содержит позывной получателя, отправителя и текст короткого сообщения.
- Пакет от погодной станции (WX) — содержит информацию о метеорологических условиях в данной точке (температура, давление, влажность, сила и направление ветра).
- Другие типы сообщений.
Маяки и текстовые сообщения — это самые часто используемые типы сообщений. Есть еще целый ряд типов сообщений, о которых можно узнать из стандарта. Среди них, например, сообщение о телеметрии станции, то есть можно передавать свободно определяемые параметры показаний каких-нибудь датчиков.
Как организована сеть и из каких частей состоит?
В первую очередь это станции (подвижные и стационарные), еще есть объекты. В сеть передается позывной сигнал (Callsign) и координаты (QTH) станции или объекта. Дополнительно передается значок, определяющий назначение станции (автомобиль, автобус, дом и т.д.) и короткий текстовый комментарий. К примеру, я хочу знать, где сейчас находится мой автомобиль. Или хуже того — моя супруга хочет знать, где сейчас находится мой автомобиль! Сеть как раз и выполняет функцию передачи информации о координатах станции и других его параметрах всем заинтересованным. Как правило, станции отображаются на карте по переданным координатам. Другая станция, являясь полноценным участником сети, может отправить текстовое сообщение другой станции. Например, диспетчер такси по карте видит авто, которые ближе всех к нужному месту и отправляет текстовое сообщение с адресом, куда ехать.
Почему система глобальная?
Потому что в идеальном случае пакеты от станции должны попасть в глобальную сеть Интернет. После этого любой подключенный к сети Интернет сможет получить информацию о станции. Для этого существуют мировые APRS серверы. Благодаря интернету, разрозненные части радиосети объединяются в одну мировую сеть APRS (и станции могут связаться между собой).
Но как пакеты с информацией попадают в Интернет?
Тут как раз очень много вариантов и огромный простор для радиолюбительского творчества!
Самый простой вариант, когда станция имеет прямое подключение к сети Интернет (например программа на смартфоне + GPS + мобильный интернет, либо программа на стационарном компьютере + подключение к интернет). В этом случае выполняется прямое подключение к APRS серверу и программа ведет прямой прием и отправку сообщений в мировую сеть APRS.
Но это скучно! У радиолюбителей же есть свой радио эфир!
Радиосвязь для передачи пакетов
Есть мнение, что сеть APRS пришла на смену пакетной радиосвязи. Я считаю, что это не совсем так. Пакетное радио это радиолюбительская версия протокола x.25, которая называется AX.25[10]. Стек простой: на физическом уровне трансиверы передают и принимают модулированный сигнал, который преобразуется модемами в байты информации. Байты собираются в пакеты. Пакеты содержат все необходимое: источник, приемник (в любительском ax.25 это позывные), сообщение, контрольная сумма. Так же существуют методы установки и поддержания соединения с подтверждением приема(по аналогии с TCP). Есть и пакеты без подтверждения приема(по аналогии с UDP). Раньше существовало большое количество BBS с которыми можно было устанавливать соединения через радио эфир, принимать и отправлять почту. Такие BBS с функциями обмена почтой были даже на радиолюбительских спутниках, которые могли через какое-то время, за счет особенностей орбиты, пролетать над любой точкой планеты, передавая почту куда угодно.
Со временем появилась сеть Интернет, стала доступной и закрыла потребности обмена сообщениями. Сеть пакетных радиостанций стала уменьшаться. Но осталось оборудование. И это пакетное оборудование может использоваться и сейчас для передачи пакетов сети APRS по радиоканалу. То есть APRS не пришел на смену пакету, а пакетная связь, вернее только один тип пакетов — пакет UI ax.25 (без контроля доставки) и радиоканал используются как среда передачи сообщений сети APRS.
Таким образом, пакетное радио — это один из способов передачи APRS пакета от станции в систему. В принципе, могут использоваться и используются другие методы и виды модуляций радиосигнала, например BPSK, в качестве среды для передачи сообщений сети APRS.
А нужен ли интернет вообще?
Вроде бы все отлично, но вдруг постапокалипсис, санкции, авария у провайдера? Может ли система работать без сети Интернет? Та часть системы, что использует Интернет, конечно, перестанет работать при аварии. Невозможно будет узнать координаты объектов через браузер и станции, напрямую подключенные к мировому APRS останутся без связи. Однако, та часть системы, которая использует радиоканал для связи, сможет работать самостоятельно.
Хорошо развитая радиосеть APRS подразумевает наличие сети класс станций — радиоретрансляторов (пакетные ретрансляторы — диджипитеры (DIGI)). Тут можно провести аналогию с базовыми станциями сотовой связи. Эти станции стоят высоко, слышат далеко и принимают сигналы мобильных радиостанций с подвижных объектов, которые, как правило работают на УКВ. После приема APRS сообщения DIGI его ретранслирует (это тема отдельного разговора, потому что пакет модифицируется, в путь может добавляться позывной DIGI для того, чтобы понять путь, либо пакет отбрасывается при определенных условиях).
Кроме ретрансляторов есть еще класс станций — мосты (GATE) они могут переслать пакет с одного диапазона на другой. Например, если у GATE есть два трансивера на разные диапазоны, то он может передать пакет с одного диапазона на другой. Дальность связи на УКВ может достигать 50км и GATE приняв пакет на УКВ может передать его на КВ, где пакет может быть передан уже на сотни километров. Тем самым пакет «долетит» до другого города. И если бы существовала сеть, которая покрывала все нужные территории с помощью DIGI и соединяла бы их между собой, то в Интернете отпала бы необходимость. Но у такого решения есть финансовые и технические ограничения. Поэтому есть еще один класс станций — гейты, которые подключены к сети Интернет — IGATE. Именно через них пакеты из радио эфира попадают в мировую сеть APRS.
Как работают APRS серверы?
Мировые серверы APRS соединены между собой и обмениваются сообщениями, которые каждый из них принимает. Клиенты этих серверов это конечные станции, которые подключаются к мировой сети APRS напрямую для обмена сообщениями, либо станции IGATE, которые отправляют пакеты из эфира в мировую сеть. Другие станции, к какому бы серверу они не были подключены, получат это сообщение. Сообщений в мировой сети очень много, поэтому серверы поддерживают систему фильтрации по определенным параметрам.
Сеть APRS — сеть реального времени!
Пакет от станции отправляется в радио эфир, как в пустоту, без гарантий доставки. Но если пакет принят, он будет сразу обработан/ретранслирован/отправлен дальше, либо в Интернет. Принятый пакет сразу же будет отображен на карте мира, если у вас открыто соответствующее ПО. В свойствах объекта можно просмотреть на сколько устарели данные от объекта. Не смотря на отсутствие гарантии доставки, есть механизм подтверждения приема текстового сообщения (мы посылаем сообщение N раз, пока не получим подтверждение приема от адресата).
Список используемых терминов и сокращений
- КВ — короткие волны
- УКВ — ультра короткие волны
- Internet APRS Server — сервера в сети интернет, через которые возможен обмен сообщениями, прием и передача пакетов APRS, на них происходит накопление данных. Как правило все мировые APRS сервера объединены между собой и сообщение, полученное от IGATE на один из серверов, попадает на все остальные сервера.
- CALL — позывной радиостанции
- Digipeater (DIGI) — ретранслятор пакетов
- GPS — устройство, позволяющее определить свои точные координаты
- GATE — мост для передачи APRS пакетов на другие диапазоны
- IGATE — мост для передачи APRS пакетов на Internet APRS Server
- SID — номер от 0 до 15, добавляемый к позывному станции (например UA3MQJ-4). Используется для идентификации нескольких станций под одним позывным. Так же по SID в стандарте APRS можно определить тип и назначение станции (подвижная станция, GATE и т. д.). Если SID не указан, то считается, что он равен нулю.
- Трансивер — приемопередатчик. Как правило, в конструкциях используются общие части схемы для приема и передачи сигнала.
- TNC — контроллер для управления работой модема и передатчика, подключается к компьютеру KISS TNC — TNC поддерживающий режим работы KISS
- Модем — устройство для модуляции/демодуляции сигнала по определенному протоколу (например Packet)
- Пакет APRS — пакет информации, соответствующий протоколу APRS (маяк, сообщение и т. д.), вне зависимости от транспортного протокола его передачи.
- Пакет AX.25 — пакет информации, соответствующий протоколу пакетной связи AX.25
- Транспорт — протокол и среда, используемая для передачи пакетов APRS (например пакет AX.25 может быть передан по радиоканалу или по сети tcp/ip или в текстовом виде серверу Internet APRS)
Примеры устройств и решений для работы с APRS
1 Стационарный ПК с подключением к Интернет, без радио, без GPS
Оборудование:
- Стационарный компьютер.
- Подключение к сети Интернет (GPRS/ADSL/etc).
Программное обеспечение:
- Клиент APRS — UI-View
Возможности, которые мы получаем:
- Просмотр карт и станций на картах.
- Просмотр параметров станций (для подвижных, например, скорость; для погодных станций — параметры погоды, и т.д.).
- Прием и отправка текстовых сообщений.
- Отправка маяка с информацией о своей станции с фиксированными координатами.
Комментарий: пожалуй, это самый простой вариант, который может быть.
1.1 Портативный ПК с подключением к Интернет, без радио, c GPS
Оборудование:
- (М) Портативный компьютер.
- (+) Подключен GPS приемник.
Комментарий: в такой конфигурации ваши координаты смогут автоматически меняться во времени и другие участники сети APRS смогут увидеть ваши передвижения.
1.2 Портативный ПК без подключения к Интернет, с трансивером, c GPS
Оборудование:
- (М) Портативный компьютер.
- (+) Подключен GPS приемник.
- (+) Подключен трансивер.
Комментарий: в такой конфигурации ваши координаты смогут автоматически меняться во времени и информация об этом будет передаваться в радио эфир. Если ваши пакеты будут приняты по радио другими участники сети APRS, то они смогут увидеть эту информацию. Если пакеты будут приняты станцией, подключенной к мировой сети APRS (IGATE), то информацию смогут увидеть все.
1.3 Стационарный ПК с подключением к Интернет, с трансивером
Оборудование:
- (+) Подключен трансивер.
Комментарий: в такой конфигурации станция может принимать, отправлять и обрабатывать пакеты как из мировой сети APRS, так и из радио эфира, в пределах своей зоны радиовидимости. Такая станция может работать, как IGATE (отправлять принятые пакеты из радио эфира в мировую сеть APRS).
1.4 Стационарный ПК без подключения к Интернет, с трансивером
Оборудование:
- (+) Подключен трансивер.
- (-) Отсутствует Интернет.
Комментарий: в такой конфигурации станция может принимать, отправлять и обрабатывать пакеты из радио эфира, в пределах своей зоны радиовидимости. Такая станция может работать, как DIGI (ретранслировать пакеты, принятые из радио эфира). Если в пределах радиовидимости этой станции находится IGATE, то ее пакеты могут попасть в мировую сеть APRS (к примеру, можно воспользоваться сервисом отправки текстового сообщения на EMAIL в сети Интернет, находясь в каком-нибудь глубоком лесу или в море).
1.4 Стационарный ПК с подключением к Интернет, с приемником
Оборудование:
- (+) Подключен приемник.
Комментарий: в такой конфигурации станция может работать, как IGATE, выполняя эту важную функцию. Если постараться, то можно обойтись даже не любительским приемником, а USB донглом с SDR технологией и правильно соединить между собой все программы.
Ремарка по способам подключения трансивера к станции APRS
Как правило, трансиверы предназначены для передачи голоса человека. Цифровой сигнал передается в такой же полосе частот, что и речь (как в модемах в телефонии). Чтобы передавать и принимать модулированный звуковыми частотами цифровой сигнал, трансивер может иметь отдельный линейный вход и выход (они не вносят изменений в сигнал).
Но сигнал должен как-то модулироваться и демодулироваться. Применительно к пакетной связи для работы на КВ используется AFSK 300 бод. Это частотная модуляция: одна частота — это «1», вторая частота — это «0». Изначально для работы применялся модем. На прием он отличал 0 от 1 с помощью фильтров, а на передачу переключалось два генератора частоты. Полученный поток из нолей и единиц преобразовывался в пакеты с помощью специальных устройств — TNC (пакетных контроллеров). Таким образом, схема подключения выглядела так:
RS232 RX,TX(TTL) RX,TX(Audio)
ПК <-------> TNC <----------> Модем <-------> Трансивер <------> Антенна (и эфир)
Со временем, отдельные части этой цепочки стали совмещаться в одном устройстве. Например, есть трансиверы со встроенным модемом; есть TNC со встроенным модемом; я думаю, существуют даже готовые блоки, TNC с трансивером. Очень популярным считается решение на базе программы MixW. В этом случае TNC и модем эмулируются программой MixW, а трансивер подключается к звуковой плате компьютера. Со стороны APRS ПО эта программа выступает, как KISS TNCи взаимодействие с ним происходит через COM порт. Кстати, два COM порта и нуль-модемный провод не требуется. В комплекте утилит MixW присутствует виртуальный драйвер нуль-модема, в котором можно задавать пары соединенных виртуальных портов. Программа APRS будет считать, что взаимодействует через аппаратный COM порт с аппаратным TNC. В целом, программа MixW очень развита, имеется даже драйвер для сетевой платы, которая будет передавать данные с помощью пакетной радиосвязи(проверялось на Windows). Можно было соединить два компьютера через звуковые платы и попинговаться. Но рассчитано все, конечно, на радиосвязь.
Существуют трансиверы специально созданные для работы в сети APRS, которые самостоятельно выполняют определенный функционал.
Примеры устройств и решений для работы с APRS (вторая серия)
2 Смартфон
Оборудование:
- Смартфон.
Программное обеспечение:
- Клиент APRS — APRSdroid
Комментарий: в такой конфигурации станция всегда в кармане, а на карте можно отображаться, как человек (а не авто).
2.1 Смартфон + трансивер
На самом деле я не знаю подробностей, но фотография говорит сама за себя.
3 APRS трекер
Да да, это именно то, что продается под названием «спутниковая сигнализация». Трекер — автоматическое устройство, которое либо просто записывает координаты и время, либо плюс к этому может передавать маяки в эфир. Взаимодействие с пользователем в процессе работы не предполагается. Трекеры ставят в машины, запускают на воздушных шарах.
www.byonics.com/tinytrak
4 Роутер, подключенный к интернет
Если целью стоит просто помечать на карте мира свою станцию по фиксированным координатам, то круглосуточно гонять ради этого персональный компьютер не очень удобно. Во-первых, не каждый компьютер работает круглосуточно; во-вторых можно забыть запустить программу; в-третьих программа всегда будет болтаться в трее; в-четвертых после каждой переустановки windows надо все заново настраивать. Да и в целом, гонять ПК ради отправки одного пакета — слишком «жирно». Для таких целей лучше подойдет простое устройство, работающее 24/7, с малым потреблением энергии. Роутер — самый подходящий вариант.
На роутере с установленной прошивкой OpenWRT, можно запустить клиент APRX и вы всегда будете на карте. Я такое делал на своем роутере TP-Link TL-MR3020.
5 КПК с Windows Mobile
Существует клиент для КПК — APRS/CE.
Как попасть в сеть APRS?
Любой радиолюбитель с позывным может подключиться к радиолюбительской сети APRS и использовать эту сеть в радиолюбительских целях. Если же вы не радиолюбитель и не хотите им становиться, либо вы хотите использовать технологию для построения своей сети, системы и в своих личных, либо коммерческих целях, то вам нужно будет подкорректировать некоторые моменты.
Как поднять свой APRS сервер для своей системы? Можно ли использовать радио эфир, если нет радиолюбительского позывного? Какие можно использовать трансиверы и как к ним подключаться? Все это, а так же множество других технических вопросов (например форматы сообщений, дальность на радиочастотах, виды модуляций) — это уже много для одной статьи, да и к тому же я тоже устал :) Если тема будет интересна, мы с вами ее продолжим.
А пока, всем наилучшие пожелания de UA3MQJ 73!
Список использованных источников
1. http://aprs.qrz.ru/ — Сайт APRS России.
2. https://ru.wikipedia.org/wiki/APRS — информация на википедии
3. https://code.google.com/p/qaprs/ — мой экспериментальный проект QAPRS (Qt4) для стационарного ПК.
4. https://code.google.com/p/japrs/ — мой экспериментальный проект jAPRS (JAVA ME) для мобильного телефона без GPS.
5. http://www.aprs.org/doc/APRS101.PDF — PDF файл — описание стандарта APRS.
6. http://xastir.org/
7. http://forum.qrz.ru/27-aprs.html — APRS ветка на форумах QRZ.RU
8. APRS ветка на форумах CQHAM.RU
9. UI-View — клиент APRS для ПК
10. Описание протокола AX.25 (PDF)
11. http://www.qslnet.de/member/rz3tw/ap_st/ap_st.htm — APRS — что это такое?
12. http://www.mixw.net/index_rus.php — сайт программы для работы цифровыми видами связи MixW.
13. APRSdroid — APRS for Android
14. www.byonics.com/tinytrak
15. Клиент для Windows mobile
16. http://hamcmw.qrz.ru/pr/index.html — Радиолюбительская пакетная связь (Packet Radio) и APRS
Важно: технология APRS дается в статье в ознакомительных целях. Она разработана радиолюбителями, для идентификации станций используются радиолюбительские позывные, мировая сеть APRS — это радиолюбительские серверы, а радио частоты, по которым осуществляется связь, используются на основании выданных разрешений. Вам запрещено использовать радиолюбительские серверы и полосы радиочастот, если вы не радиолюбитель. Однако, сама технология и формат сообщений может быть использована в ваших проектах, с использованием ваших серверов. Можно даже использовать радиосвязь, если вы, купили частоту, либо используете полосы частот, мощности и виды модуляции, которые разрешены ГКРЧ к использованию без регистрации.