Особенности протокола NMEA2000 и его использование
NMEA (National Marine Electronics Association) 2000 — это стандарт передачи данных оборудования навигации, связи и других информационных сетей.
В большинстве случаев NMEA2000 используется в морском деле. В основе этого протокола лежит протокол передачи данных CAN (Controller Area Network), использующийся, в основном, в судовой автоматике.
Национальная Ассоциация Морской Электроники (англ. National Marine Electronics Association — NMEA) разработала специальный протокол для обеспечения совместимости морского навигационного оборудования от разных производителей.
С момента создания протокол NMEA претерпел несколько модификаций, связанных с добавлением новых полей и сообщений. Текущей версией, которую поддерживают большинство приемников, является версия 2.3, хотя уже опубликовано описание новой версии 3.0.
Сообщения NMEA
NMEA 2000 описывает не только данные, полученные с GPS-приемников, но и измерения сонаров, морских радаров, электронных компасов, барометров и других навигационных устройств, использующихся на морских судах. Интерфейс обмена данными большинства портативных GPS-приемников реализован в соответствии с NMEA-спецификацией. Большинство навигационных программ, которые обеспечивают отображение данных в реальном времени, поддерживают и «понимают» NMEA протокол. Эти данные содержат полные навигационные измерения GPS-приемника — позицию, скорость и время.
Полная спецификация NMEA сообщений отсутствует в свободном доступе и ее нельзя официально скачать в электронном виде. Отдельные ее разделы, общее описание NMEA протокола и наиболее популярных сообщений можно найти в Интернете.
Исходящие сообщения NMEA
Все NMEA сообщения состоят из последовательного набора данных, разделенных запятыми. Каждое отдельное сообщение не зависит от других и является полностью «завершенным». NMEA cообщение включает:
- заголовок,
- набор данных, представленных ASCII символами,
- поле «чексуммы» для проверки достоверности переданной информации.
Заголовок
Как правило, заголовок состоит из пяти символов. Первые два символа определяют тип сообщения, а оставшиеся три — его название. Например, заголовок GPS NMEA сообщений начинается с «GP». Сообщения, которые не описаны в спецификации NMEA, но реализованы в GPS-приемниках в соответствии с общими правилами, имеют префикс «Р», дополненный тремя символами, уникальными для каждой компании. Например, NMEA сообщенияGarmin имеют префикс «PGRM», Magellan — «PMGN».
Данные
Каждое NMEA сообщение начинается с «$», заканчивается «\n» (перевод строки) и не может быть длиннее 80 символов. Все данные содержатся в одной строке и отделены друг от друга запятыми. Информация представлена в виде ASCII текста и не требует специального декодирования. Если данные не умещаются в выделенные 80 символов, то они «разбиваются» на несколько сообщений. Такой формат позволяет не ограничивать точность и количество символов в отдельных полях данных. Например, дробная часть значения координат может быть представлена тремя или четырьмя знаками после запятой, но это никак не должно повлиять на работу программного обеспечения, которые выделяет нужные данные из сообщения по номеру поля.
Поле "чексуммы"
В конце каждого NMEA сообщения содержится поле «чексуммы», отделенное от данных символом «*». При необходимости оно может использоваться для проверки целостности и достоверности каждого принятого сообщения.
Входящие сообщения NMEA
Протокол NMEA 2000 поддерживает не только исходящие, но и входящие сообщения, с помощью которых, например, можно обновить или добавить путевые точки маршрута. Эти сообщения должны быть сформированы в строгом соответствии с форматом NMEA, в противном случае, они будут проигнорированы GPS-приемником.
Список сообщений
NMEA протокол описывает большой список различных сообщений, из которых можно выделить два десятка, активно использующихся в навигационной аппаратуре. В связи с большой популярностью и простой представления данных, NMEA протокол нашел применение не только в морской аппаратуре, но и в геодезических, бытовых и авиационных GPS-приемниках.
AAM – Прибытие в путевую точку ALM – Данные альманаха АPA – Данные автопилота «А» APB – Данные автопилота «В» BOD – Азимут на пункт назначения DTM – Используемый датум GGA – Информация о фиксированном решении GLL – Данные широты и долготы GSA – Общая информация о спутниках GSV – Детальная информация о спутниках MSK – Передача управлению базовому приемнику MSS – Статус базового приемника |
RMA – Рекомендованный набор данных системы «Loran» RMB – Рекомендованный набор навигационных GPS данных RMC – Рекомендованный минимальный набор GPS данных RTE – Маршрутная информация VTG – Вектор движения и скорости WCV – Данные скорости вблизи путевой точки WPL – Данные путевой точки XTC – Ошибка отклонения от трека XTE – Измеренная ошибка отклонения от трека ZTG – UTC время и оставшееся время до прибытия в точку назначения ZDA – Дата и время |
Некоторые из NMEA сообщений могут содержать одинаковые поля данных, либо полностью содержать данные других, меньших по размеру, NMEA сообщений.
Содержание NMEA сообщений
1. GGA – информация о фиксированном решении.
Самое популярное и наиболее используемое NMEA сообщение с информацией о текущем фиксированном решении – горизонтальные координаты, значение высоты, количество используемых спутников и тип решения.
* Типы решений:
0 – нет решения, 1 – StandAlone, 2 – DGPS, |
3 – PPS, 4 – фиксированный RTK, 5 – не фиксированный RTK, |
6 – использование данных инерциальных систем, 7 – ручной режим, 8 – режим симуляции |
2. GSA – общая информация о спутниках
Это NMEA сообщение содержит список спутников, используемых в подсчете позиции и значения геометрических факторов DOPs, определяющих точность подсчете позиции. Параметры DOP определяются геометрическим расположением спутников на небе. Чем лучше «распределены» на небе спутники, тем меньше DOP и тем лучше точность позиции. Минимальное значение PDOP (= 1) соответствует ситуации, когда один спутник находится строго над пользователем, а другие 3 равномерно распределены вокруг на уровне горизонта. Значение PDOP вычисляется, как квадратный корень из суммы квадратов HDOP и VDOP.
3. GSV – Детальная информация о спутниках
Это NMEA сообщение содержит детальную информацию для всех отслеживаемых навигатором GPS спутников. Исходя из ограничения в 80 символов в составе одного NMEA сообщения могут передаваться данные только для 4-х спутников. Соответственно для 12 спутников требуется 3 сообщения GSV. Поле SNR (Signal to Noise Ration) содержит значения уровней, принимаемых со спутников, навигационных сигналов. Теоретически его значение может варьироваться от 0 до 99 и измеряется в dB. Фактически уровень сигнала лежит в диапазоне 25 …35 dB. Здесь стоит отметить, что данный параметр не является абсолютным и не подходит для сравнения чувствительности приемников разных моделей и производителей. В GPS навигаторах могут использоваться различные алгоритмы вычисления уровня принимаемого сигнала, что приводит к разным результатам при равной степени чувствительности приемников. Для каждого видимого GPS спутника передается набор информации, включающий уровень сигнала, угол возвышения и азимут спутника. Количество этих «наборов» определяется общем количеством видимых спутников, значение которого передается в отдельном поле.
4. RMC – рекомендованный минимальный набор GPS данных
Это NMEA сообщение содержит весь наборы, так называемых «PVT» данных. «PVT» - общепринятое сокращение от «position, velocity, time» (позиция, скорость, время).
5. GLL – данные широты и долготы
NMEA сообщение со значением координат широты и долготы, и времени когда было вычислено это решение.
6. ВOD – Азимут на пункт назначения
Это NMEA сообщение указывает азимут на точку назначения в режиме навигации.
7. RMB – рекомендованный набор навигационных GPS данных
NMEA сообщение содержит рекомендованный минимальный набор данных для навигации «по маршруту» или «на точку» в режиме «Goto».
8. RTE – Маршрутная информация
NMEA сообщение RTE выводит список путевых точек активного маршрута. Есть два типа сообщений RTE. В первом случае, отображаются все точки маршрута. Во втором, только список оставшихся точек, которые еще предстоит посетить при движении по маршруту. Учитывая, что в NMEA протоколе есть ограничение, по которому длина сообщение не должна превышать 80 символов, сообщение RTE может состоять из нескольких строк.