Что такое протокол NMEA-0183. Как он используется в GNSS-приемниках. Какие типы сообщений входят в стандарт NMEA-0183. Как декодировать данные из NMEA-сообщений. Какие преимущества дает использование NMEA-0183.
Что такое протокол NMEA-0183 и для чего он используется
NMEA-0183 (National Marine Electronics Association) — это стандартизированный протокол для передачи навигационных данных между различными электронными устройствами. Он широко применяется в GNSS-приемниках и другом навигационном оборудовании.
Основные особенности протокола NMEA-0183:
- Текстовый формат данных в кодировке ASCII
- Структурированные сообщения фиксированного формата
- Передача координат, скорости, курса, времени и другой навигационной информации
- Поддержка разных спутниковых систем — GPS, ГЛОНАСС, Galileo, BeiDou
- Возможность расширения для новых типов данных
Протокол NMEA-0183 позволяет унифицировать передачу данных между навигационными устройствами разных производителей. Это обеспечивает их совместимость и упрощает интеграцию.
Структура сообщений NMEA-0183
Каждое NMEA-сообщение имеет следующую структуру:
- Начинается с символа «$»
- Далее идет двухбуквенный идентификатор источника данных (например, GP для GPS)
- Трехбуквенный идентификатор типа сообщения (например, GGA, RMC)
- Поля данных, разделенные запятыми
- Контрольная сумма после символа «*»
- Завершается символами возврата каретки и перевода строки
Пример сообщения NMEA-0183:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Такая структура позволяет легко разбирать и интерпретировать данные из NMEA-сообщений.
Основные типы сообщений NMEA-0183
Протокол NMEA-0183 включает множество типов сообщений для передачи различных навигационных данных. Наиболее распространенные из них:
- GGA — данные о местоположении (координаты, высота, точность)
- RMC — рекомендуемый минимальный набор данных (координаты, скорость, курс, дата)
- VTG — вектор движения и скорость относительно земли
- GSA — активные спутники и значения DOP
- GSV — информация о видимых спутниках
- ZDA — дата и время
Каждый тип сообщения содержит специфический набор полей с различными навигационными параметрами. Рассмотрим некоторые из них подробнее.
Сообщение GGA — данные о местоположении
Сообщение GGA (Global Positioning System Fix Data) содержит основную информацию о текущем местоположении. Рассмотрим его формат:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Поля данных в сообщении GGA:
- Время UTC: 12:35:19
- Широта: 48°07.038′ N
- Долгота: 11°31.000′ E
- Тип решения: 1 (0 — нет решения, 1 — автономное, 2 — дифференциальное)
- Количество используемых спутников: 8
- Геометрический фактор ухудшения точности (HDOP): 0.9
- Высота над уровнем моря: 545.4 м
- Высота геоида над эллипсоидом WGS84: 46.9 м
Сообщение GGA позволяет получить основные данные о местоположении приемника GNSS.
Сообщение RMC — рекомендуемый минимальный набор данных
Сообщение RMC (Recommended Minimum Specific GNSS Data) содержит минимальный набор навигационных данных. Его формат:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
Поля данных в сообщении RMC:
- Время UTC: 12:35:19
- Статус: A (действительные данные)
- Широта: 48°07.038′ N
- Долгота: 11°31.000′ E
- Скорость над землей в узлах: 22.4
- Истинный курс: 84.4°
- Дата: 23 марта 1994 года
- Магнитное склонение: 3.1° W
RMC содержит основные навигационные параметры в компактном виде, что делает его удобным для использования.
Сообщение GSV — информация о видимых спутниках
Сообщение GSV (GNSS Satellites in View) предоставляет данные о видимых спутниках. Его формат:
$GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74 $GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74 $GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D
Поля данных в сообщении GSV:
- Общее количество сообщений: 3
- Номер текущего сообщения: 1-3
- Общее количество видимых спутников: 11
- Для каждого спутника:
- Номер спутника
- Угол возвышения
- Азимут
- Отношение сигнал/шум
GSV позволяет получить подробную информацию о всех видимых спутниках GNSS.
Преимущества использования протокола NMEA-0183
Использование стандарта NMEA-0183 в навигационном оборудовании дает ряд преимуществ:
- Унификация формата данных между устройствами разных производителей
- Простота интеграции GNSS-приемников с другим оборудованием
- Возможность использования стандартных библиотек для разбора данных
- Поддержка всех современных спутниковых навигационных систем
- Расширяемость для новых типов данных
- Человекочитаемый текстовый формат
Эти преимущества сделали NMEA-0183 de facto стандартом для передачи навигационных данных в морской электронике и GNSS-оборудовании.
Особенности декодирования NMEA-сообщений
При разборе данных из NMEA-сообщений необходимо учитывать некоторые особенности:
- Координаты передаются в формате градусы и десятичные доли минут
- Скорость обычно указывается в узлах (морских милях в час)
- Высота и геоидальное разделение — в метрах
- Курс и азимут — в градусах
- Время UTC передается в формате HHMMSS.SS
- Дата — в формате DDMMYY
Для корректной интерпретации данных необходимо выполнять преобразование единиц измерения и форматов при необходимости.
Расширения протокола NMEA-0183
Стандарт NMEA-0183 допускает использование проприетарных расширений для передачи дополнительных данных. Они имеют специальный префикс «P» и позволяют производителям добавлять свои типы сообщений.
Примеры проприетарных сообщений:
- PASHR — данные о пространственной ориентации
- PTNL — дополнительная информация о точности
- PUBX — расширенные данные u-blox
При использовании таких расширений необходимо обращаться к документации конкретного производителя оборудования.
Стандарт представления навигационных данных NMEA-0183
Все ГНСС-приемники и навигационные системы Ориент Системс поддерживают формат сообщений NMEA-0183 (National Marine Electronics Association). Сегодня мы расскажем, что это значит и для чего необходимо.
По сути, NMEA-0183 — это общий стандарт представления навигационных данных в текстовом формате (ASCII). Этот протокол используется для передачи ГНСС-данных приемника (статус навигационного решения, координаты, курс, количество доступных спутников и пр.) на внешние устройства, не способные расшифровать навигационное сообщение конкретного производителя приемника. Это могут быть такие устройства как эхолот, буровой станок, контроллер СХ-техники и др.
Естественно, для этого сначала нужно настроить приемник на выдачу сообщений NMEA-0183.
Такую настройку приемника/платы можно производить с помощью текстовых команд либо через интерфейс ПО, если таковое предусмотрено.
Для лучшей визуализации рассмотрим, как пример, полевое ПО Survey Master. В нем есть возможность выводить сообщения NMEA-0183 с уже подключенного оборудования SinoGNSS на порт COM1 или по Bluetooth. Так можно связать Т300, скажем, с эхолотом.
Основными параметрами для настройки выдачи NMEA-сообщений являются:
· Порт, на который выдаются данные и его скорость
· Тип сообщения NMEA-0183 (GPGGA, GPRMC и др.)
· Частота выдачи этого сообщения
Если удобного интерфейса настройки NMEA нет, то подойдет любое ПО, способное подключиться к ГНСС-приемнику/плате и отправить на него команду. В своей работе мы используем ПО Hercules. По сути, в текстовой команде необходимо отобразить то же самое, что и при выборе в окне выше.
Например, введем команду:
LOG COM1 GPGGA ONTIME 1
— Log – команда записи настройки в приемник
— ComX – порт, на который мы прописываем команду
— GPGGA – тип сообщения NMEA-0183
— Ontime 1 – частота выдачи этого сообщения. В данном случае – 1с
Если необходимо выводить на порт сразу несколько сообщений, то для каждого необходимо прописать и отправить соответствующую команду отдельно.
Данная команда хорошо передает общий смысл настройки выдачи сообщений NMEA-0183, но подходит только для оборудования SinoGNSS. Для оборудования другого производителя содержание команды может отличаться! Обязательно запросите у Вашей службы поддержки список команд для Вашего оборудования.
Итак, какие сообщения нам нужны? В зависимости от внешнего устройства, к которому Вы хотите подключить ГНСС-приемник, требуются различные навигационные данные, следовательно, и различные сообщения.
Каждое сообщение NMEA-0183 состоит из 2х частей:
1. Префикс+название
2. Содержание
Префикс:
· GP – только GPS — GPGGA
· GL – только ГЛОНАСС — GLGGA
· BD – только BeiDou — BDGGA
· GA – только GALILEO GAGGA
· GN – мультисистемное решение – GNGGA
Название:
· GGA — информация о местоположении
· GLL — географические координаты
· GSA — спутники, участвующие в решении
· GST — оценка ошибок позиционирования
· GSV — информация о всех наблюдаемых спутниках
· HDT — курс
· RMC — местоположение, путевая скорость и пр.
· VTG — скорость и курс относительно земли
· ZDA — дата и время UTC
После настройки приемника на выдачу NMEA-сообщений, мы начинаем получать их на внешнем устройстве с заданной дискретностью:
Как видно выше, каждый тип сообщения NMEA-0183 содержит определенный набор данных. Сейчас в широком обращении находится версия NMEA от 2000 года, в которой нет описания новых навигационных систем (BeiDou, GALILEO). Поэтому возможны различные трактовки номеров навигационных спутников у разных производителей. Дадим наиболее распространённый вариант.
Итак, о чем нам необходимо помнить при использовании этого стандарта сообщений?
В RMC-сообщении отображается путевой азимут, а не истинный. Т.е. не используется полный функционал 2х антенных систем (для этого используется протокол GPHDT или GPTRA).
Не стандартизировано сообщение GPGSA с отслеживаемыми спутниками (только для GPS/ГЛОНАСС)
Сигнал/Шум только по 1й частоте
Время в сообщениях формата NMEA в UTC, а не в GPS. Не забудьте использовать значение Leap Second (на 2020 год 18 секунд) для перевода
Формат координат в сообщениях NMEA в градусах, минутах и десятичных долях минут. Не путайте с градусами, минутами, секундами или десятичными долями градусов
Вывод?
NMEA-0183 отличный вариант, если нам нужно получить навигационную информацию от оборудования разных производителей. В остальных случаях лучше все-таки использовать совместимые с оборудованием сообщения конкретного производителя. Тогда мы точно можем быть уверены в получении полного комплекта данных без потерь или неправильной дешифровки.
Вам понравилась статья?
Описание протокола NMEA 0183 — Описания, примеры, подключение к Arduino
NMEA 0183 (от «National Marine Electronics Association») — стандарт определяющий текстовый протокол связи навигационного оборудования. Стал особенно популярен в связи с распространением GPS-приёмников, использующих этот стандарт для передачи данных по шине UART.
Сообщения NMEA передаваемые GPS-модулем могут состоять из одной или нескольких строк.
Состав строк:
- Каждая строка начинается символом ‘$’.
- Далее следуют два символа источника данных и три символа идентификатора строки.
- После идентификатора следуют данные состоящие из параметров, разделённые запятыми.
- Завершают строку символ ‘*’, два символа контрольной суммы и символы «\r\n».
Источник данных:
Источник данных представлен двумя символами которые следуют за символом ‘$’.
- GP — информация получена от спутников GPS (США).
- GL — информация получена от спутников Глонасс (Россия).
- GA — информация получена от спутников Galileo (Европа).
- BD — информация получена от спутников Beidou (Китай).
- GQ — информация получена от спутников QZSS (Япония).
- GN — информация получена от спутников разных навигационных систем.
Идентификатор строки:
Идентификатор строки представлен тремя символами следующими за источником данных.
- GGA — Данные о последнем зафиксированном местоположении.
- GLL — Географические координаты.
- GSA — Информация об активных спутниках (участвующих в позиционировании).
- GSV — Информация о всех наблюдаемых спутниках.
- RMC — Рекомендуемый минимум навигационных данных.
- VTG — Скорость и курс относительно земли.
- ZDA — Дата и время.
- GST — Статистика ошибок позиционирования.
- TXT — Текстовое сообщение.
Данные:
Данные состоят из параметров, разделённых запятыми. Тип и состав параметров зависит от идентификатора строки. Ниже рассмотрены параметры строк с разными идентификаторами.
Контрольная сумма:
Контрольная сумма представлена двумя символами следующими за символом ‘*’.
Контрольная сумма представляет из себя шестнадцатиричное представление результата операции XOR с байтами всех символов строки расположенных между ‘$’ и ‘*’, не включительно.
Состав сообщений:
Сообщения состоят из одной и более строк. Количество строк и их состав зависят от настроек GPS модуля.
При пользовании библиотекой iarduino_GPS_ATGM336, состав сообщений можно настроить функцией composition(), указав ей идентификаторы тех строк, которые требуется включить в состав сообщения отправляемого Trema GPS модулем ATGM336H.
Пример сообщений NMEA 0183:
Пример сообщения NMEA 0183 версии 4.1:
$GNGGA,102030.000,5546.95900,N,03740.69200,E,1,08,2.0,142.0,M,0.0,M,,* $GNGLL,5546.95900,N,03740.69200,E,102030.000,A,A* $GNGSA,A,3,10,16,18,20,26,27,,,,,,,4.8,2.0,4.3,1* $GNGSA,A,3,19, , , , , ,,,,,,,4.8,2.0,4.3,4* $GNGSA,A,3,82, , , , , ,,,,,,,4. 8,2.0,4.3,2* $GPGSV,3,1,12,07,08,343,,08,07,304,,10,28,195,42,13,20,054,,0* $GPGSV,3,2,12,15,27,087,,16,47,262,39,18,66,082,23,20,58,174,23,0* $GPGSV,3,3,12,21,75,089,23,26,33,222,31,27,38,298,40,29,15,127,,0* $BDGSV,1,1,01,19,29,174,28,0* $GLGSV,3,1,09,74,08,001,34,66,55,096,,82,69,318,21,73,25,326,,0* $GLGSV,3,2,09,80,20,258,,65,18,025,,83,21,292,,81,51,092,,0* $GLGSV,3,3,09,67,26,161,,0* $GNRMC,102030.000,A,5546.95900,N,03740.69200,E,0.12,49.75,200220,,,A,V* $GNVTG,49.75,T,,M,0.12,N,0.22,K,A* $GNZDA,102030.000,20,02,2020,00,00* $GPTXT,01,01,01,ANTENNA OK* $GNDHV,102030.000,0.03,0.000,0.000,0.000,0.00,,,,,M* $GNGST,102030.000,6.9,,,,5.6,9.2,10.1* $GPTXT,01,01,02,MS=7,7,061A8200,33,0,00000000,20,2,00028000*
Отличия сообщений версий 2.0 и 4.0 от 4.1 рассмотрены в описаниях параметров строк.
GGA:
Строка с идентификатором GGA содержит данные о последнем местоположении.
Пример строки GGA:
$GNGGA,102030.000,5546.95900,N,03740.69200,E,1,08,2.7,142.0,M,0. 1 2 3 4 5 6 7 8 9 0 1 234
Назначение параметров строки GGA:
- 1 — Время UTC в формате «ЧЧММСС.ССС». В примере «102030.000» = 10ч., 20м., 30.000 сек.
- 2 — Широта в формате «ГГММ.МММММ». В примере «5546.95900» = 55°46.959′ = 55.78265°.
- 3 — Направление широты: ‘N’-север / ‘S’-юг. В примере ‘N’ — север.
- 4 — Долгота в формате «ГГГММ.МММММ». В примере «03740.69200» = 37°40.692′ = 37.6782°.
- 5 — Направление долготы: ‘E’-восток / ‘W’-запад. В примере ‘E’ — восток.
- 6 — Способ вычисления координат. В примере ‘1’ — автономно.
- ‘0’ — недоступно.
- ‘1’ — автономно.
- ‘2’ — дифференциально.
- ‘3’ — PPS.
- ‘4’ — фиксированный RTK.
- ‘5’ — не фиксированный RTK.
- ‘6’ — экстраполяция.
- ‘7’ — фиксированные координаты.
- ‘8’ — режим симуляции.
- 7 — Количество активных спутников, от «00» до «12». В примере «08».
- 8 — Горизонтальный геометрический фактор ухудшения точности (HDOP). 1 2 3 4 5 6 7
Назначение параметров строки GLL:
- 1 — Широта в формате «ГГММ.МММММ». В примере «5546.95900» = 55°46.959′ = 55.78265°.
- 2 — Направление широты: ‘N’-север / ‘S’-юг. В примере ‘N’-север.
- 3 — Долгота в формате «ГГГММ.МММММ». В примере «03740.69200» = 37°40.692′ = 37.6782°.
- 4 — Направление долготы: ‘E’-восток / ‘W’-запад. В примере ‘E’-восток.
- 5 — Время UTC в формате «ЧЧММСС.ССС». В примере «102030.000» = 10ч., 20м., 30.000 сек.
- 6 — Достоверность полученных координат. В примере ‘A’ — данные достоверны.
- ‘A’ — данные достоверны.
- ‘V’ — ошибочные данные.
- 7 — Способ вычисления координат. В примере ‘A’ — автономный.
- ‘A’ — автономный.
- ‘D’ — дифференциальный.
- ‘E’ — аппроксимация.
- ‘M’ — фиксированные данные.
- ‘N’ — недостоверные данные.
Примечание: В сообщениях NMEA 0183 версии 2.2 строка содержит только 6 параметров. 1 2 3 4 5 6 7 8 901234 5 6 7 8
Назначение параметров строки GSA:
- 1 — Режим выбора формата 2D/3D: ‘A’-автоматический / ‘M’-ручной. В примере ‘A’ — автоматич.
- 2 — Режим выбранного формата ‘1’-нет решения / ‘2’-2D / ‘3’-3D. В примере ‘3’ — 3D.
- 3-14 — ID активного спутника. В примере указаны ID 6 спутников: «10», «16», «18», «20», «26», «27».
- 15 — Пространственный геометрический фактор ухудшения точности (PDOP). В примере «4.8».
- 16 — Горизонтальный геометрический фактор ухудшения точности (HDOP). В примере «2.0».
- 17 — Вертикальный геометрический фактор ухудшения точности (VDOP). В примере «4.3».
- 18 — Номер навигационной системы (1-GPS, 2-Glonass, 3-Galileo, 4-Beidu). В примере ‘1’.
Примечание: В одном сообщении NMEA 0183 отправляется сразу несколько строк GSA, по одной для каждой спутниковой навигационной системы используемой модулем.
В сообщениях NMEA 0183 версии 2.2 и 4.0 строка содержит только 17 параметров, а источник данных (два первых символа после ‘$’) указывает на конкретную спутниковую навигационную систему «GP», «GL», «GA», «BD», или «GQ», в отличии от версии 4. 1 2 3 4 5 6 7 4 5 6 7 8
Назначение параметров строки GSV:
- 1 — Количество выводимых сообщений GSV для данной навигационной системы. В примере ‘3’.
- 2 — Номер сообщения GSV для данной навигационной системы. В 1 примере ‘1’, во втором ‘3’.
- 3 — Количество наблюдаемых спутников указанной навигационной системы. В примере «09».
- 4,5,6,7 — Данные о спутнике. В одной строке может быть от 0 до 4 блоков данных.
Каждый блок данных состоит из 4 параметров: - ID спутника (от 1 до 255). ID не может быть равен ‘0’.
- Угол возвышения спутника относительно модуля, в градусах («00»-горизонт / «90»-зенит).
- Азимут положения спутника относительно модуля, в градусах («000» — «360»).
- Уровень сигнала SNR (отношение сигнал/шум) в дБ («00» — «99»),
- 8 — Дополнительный параметр, присутствует в версии 4.1 и выше, значение всегда равно ‘0’.
Примечание: В одном сообщении NMEA 0183 отправляется сразу несколько строк GSA, от одной до нескольких строк для каждой спутниковой навигационной системы используемой модулем. 1 2 3 4 5 6 7 8 9 01 2 3
Назначение параметров строки RMC:
- 1 — Время UTC в формате «ЧЧММСС.ССС». В примере «102030.000» = 10ч., 20м., 30.000 сек.
- 2 — Достоверность полученных координат. В примере ‘A’ — данные достоверны.
- ‘A’ — данные достоверны.
- ‘V’ — ошибочные данные.
- 3 — Широта в формате «ГГММ.МММММ». В примере «5546.95900» = 55°46.959′ = 55.78265°.
- 4 — Направление широты: ‘N’-север / ‘S’-юг. В примере ‘N’-север.
- 5 — Долгота в формате «ГГГММ.МММММ». В примере «03740.69200» = 37°40.692′ = 37.6782°.
- 6 — Направление долготы: ‘E’-восток / ‘W’-запад. В примере ‘E’-восток.
- 7 — Скорость в узлах. В примере «0.12» = 0.222 км/ч.
- 8 — Курс на истинный полюс в градусах. В примере «49.75» = 49.75°.
- 9 — Дата в формате «ДДММГГ». В примере «200220» = 20.02.20г.
- 10 — Магнитное склонение в градусах. Отсутствует в примере.
- 11 — Направление магнитного склонения: ‘E’-вычесть / ‘W’-прибавить. 1 23 4 5 6 7 8 9
Назначение параметров строки VTG:
- 1 — Курс на истинный полюс в градусах. В примере «49.75» = 49.75°.
- 2 — Флаг достоверности курса: ‘T’-True / ‘F’-False. В примере ‘T’-True.
- 3 — Магнитное склонение в градусах. Отсутствует в примере.
- 4 — ‘M’-Магнитный.
- 5,6 — Скорость, единицы измерения скорости. В примере «0.12,N» = 0.12 узлов.
- 7,8 — Скорость, единицы измерения скорости. В примере «0.12,K» = 0.22 км/ч.
- 9 — Способ вычисления скорости и курса (отсутствует в верс. 2.2). В примере ‘A’ — автономный.
- ‘A’ — автономный.
- ‘D’ — дифференциальный.
- ‘E’ — аппроксимация.
- ‘M’ — фиксированные данные.
- ‘N’ — недостоверные данные.
Примечание: В сообщениях NMEA 0183 версии 2.2 строка содержит только 8 параметров.
ZDA:
Строка с идентификатором ZDA содержит дату и время.
Пример строки ZDA:
$GNZDA,102030.000,20,02,2020,00,00*FF/r/n ^ ^ ^ ^ ^ ^ 1 2 3 4 5 6
Назначение параметров строки ZDA:
- 1 — Время UTC в формате «ЧЧММСС. 1 2 3 4
Назначение параметров строки TXT:
- 1 — Количество строк с текстом данного текстового сообщения. В примере «01» = 1 строка.
- 2 — Номер строки с текстом данного текстового сообщения. В примере «01» = 1 строка.
- 3 — Идентификатор типа сообщения. В примере «01» — Предупреждение.
- «00» — ошибка.
- «01» — предупреждение.
- «02» — уведомление.
- «07» — пользовательское.
- 4 — Текстовое сообщение. В примере «ANTENNA OK».
Примечание: Текстовое сообщение может содержать пробелы и запятые.
Ссылки:
- Trema GPS-модуль ATGM336H.
- Wiki — Работа с GPS модулем.
- Wiki — Парсер протокола NMEA.
- Библиотека iarduino_GPS_ATGM336 для настройки GPS-модуля.
- Библиотека iatduino_GPS_NMEA для чтения сообщений NMEA 0183.
- Wiki — Установка библиотек в Arduino IDE.
Решение для объединения датчиков обеспечивает два различных выходных потока для положения, ориентации, скорости и многих других состояний решения и качества решения.
По умолчанию можно настроить оборудование для записи в файл и/или передачи решения по протоколу TCP на настраиваемый порт (стандартный порт: 6001). Для потоковой передачи решения через WLAN или Ethernet вам необходимо дополнительно к определенному номеру порта IP-адрес вашего модуля MSRTK, который по умолчанию равен 9.0004 192.168.42.1 (если вы подключены к WLAN-AP «ANavS_MSRTK_AP» ).Платформа объединения датчиков ANavS предоставляет два разных протокола для вывода решения: стандартизированный формат NMEA и собственный двоичный протокол. Далее описывается стандартизированный формат NMEA.
Этот протокол основан на международном стандарте морской навигации и радиосвязи, оборудования и систем и цифровых интерфейсов (IEC 61161-1) [1]. Этот стандарт принял стандарты де-факто для взаимодействия с морскими электронными устройствами, известные как NMEA 0183.
Данные передаются предложениями переменной длины с заданной структурой предложений.Структура предложения
* Поле адреса
* Поля данных
* Поле контрольной суммы
* Поле окончания
* Все предложения содержат только символы ASCII
* Максимальная длина предложения 82 символа
* Все поля разделены разделителямиПоле адреса
Поле адреса начинается с «$», за которым следует идентификатор говорящего и идентификатор предложения. Используемые идентификаторы говорящего:
* GP только для решений GPS
* GL только для решений GLONASS
* GA только для решений GALILEO
* GN для решений с несколькими GNSSИспользуемые идентификаторы предложений: относительно земли и путевой скорости
* GSA — DOP GNSS и активные спутники
* GSV — спутники GNSS в поле зрения
* RMC — рекомендуемый минимум специальных данных GNSS
* ZDA — время и дата
* PASHR — данные об отношенииПоля данных
Поля данных всегда должны быть разделены знаком «,». Они могут содержать буквенные, числовые и буквенно-цифровые значения, закодированные в символах ASCII. Длина поля данных может быть постоянной, переменной или может содержать фиксированную и переменную части. Это отличается для каждого предложения.Поле контрольной суммы
Поле контрольной суммы начинается с «*», за которым следует контрольная сумма предложения.
Контрольная сумма создается с помощью побитового исключающего ИЛИ всех полей, включая разделители «», между символами «$» и «*», но не включая их.
Затем шестнадцатеричное значение контрольной суммы преобразуется в два символа ASCII.Завершающее поле
Завершающая последовательность содержит два символа ASCIIи без какого-либо разделителя. Нумерация спутников
– GPS: 1-32
– ГЛОНАСС: 33-96
– GALILEO: 301-336*
*в настоящее время нет стандартного способа нумерации спутников Galileo. Таким образом, нумерация такая же, как [2]GGA – Данные о местоположении системы глобального позиционирования (GPS)
TALKER ID ХХ Можно использовать все идентификаторы говорящих ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ ГГА UTC позиции чммсс. сс Фиксированная длина
2 цифры после точкиШирота llll.lllllll Фиксированная длина
4 цифры до и 7 после точкиПолушарие широты Н/С N, если значение широты положительное Долгота lllll.lllllll Фиксированная длина
5 цифр до и 7 после точкиПолушарие долготы Э/З E, если значение долготы положительное Индикатор качества GPS х 0: фиксация GNSS недоступна
1: фиксация GNSS действительна
4: фиксированные неоднозначности RTK
5: Неоднозначность плавающего режима RTKКоличество спутников, используемых для позиционирования ХХ Фиксированная длина
01 для одиночных цифрHDOP ХХ.Х Переменная/фиксированная длина
1 цифра после точки, переменная доВысота геоида высота (-)Х. ХХ Переменная/фиксированная длина
2 цифры после точки, переменная доЕдиница высоты М Геоидальное разделение (-)Х.ХХ Переменная/фиксированная длина
2 цифры после точки, переменная доБлок геоидальной сепарации М Возраст дифференциальных данных Пустое поле Идентификатор дифференциальной опорной станции Пустое поле Пример:
$GNGGA,185833,80,4808,7402397,N,01133.9325039,E,5,15,1.1,470.50,M,45.65,M,*75VTG – Курс относительно земли и скорость относительно земли
ID 9008 ХХ Можно использовать все идентификаторы говорящих ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ ВТГ Курс относительно земли Х. ХХ Переменная/фиксированная длина
2 цифры после точки, переменная до
Значения от 0 до 359,99Градусов Т Истинный курс Курс относительно земли Х.ХХ Переменная/фиксированная длина
2 цифры после точки, переменная до
Значения от 0 до 359,99Градусов М Магнитный курс Скорость относительно земли Х.ХХ Переменная/фиксированная длина
2 цифры после точки, переменная доБлок Н узлов Скорость относительно земли Х.ХХ Переменная/фиксированная длина
2 цифры после точки, переменная доБлок К км/ч Индикатор режима х А: Автономный режим Предложение VTG пусто ( $GNVTG,T,M,N,K,A*3D ) до тех пор, пока базовая линия положения не станет действительной. Курс относительно земли равен курсу.
Пример:
$GNVTG,112,99,T,109,99,M,0.15,N,0.08,K,A*3BGSA – GNSS DOP и активные спутники
TALKER ID ХХ Можно использовать все идентификаторы говорящих* ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ ГСА РЕЖИМ х 1: Исправление GNSS недоступно
3: 3DРЕЖИМ ХХ М: принудительно работать в 3D Идентификационный номер ХХ Фиксированная длина: 01 для одной цифры
До 12 спутников на созвездие
Пустое поле, если не используется для позиционирования
GPS: ID — PRN (1-32)
GLONASS: ID — номер слота + 64
GALILEO: PRN + 300ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ХХ ПДОП ХХ. ХХ Фиксированная длина
2 цифры до и после точкиHDOP ВДОП *если GN используется для идентификатора говорящего, необходимо создать отдельное предложение для каждого созвездия GNSS, начиная с идентификатора говорящего для нескольких GNSS.
Пример:
$GNGSA,2,M,06,12,15,17,19,24,25,32,1,34,0,96,0,93*1D
$GNGSA,2,M,70,71,79,80,81,82,88,1.34,0.96,0.93*3AGSV – спутники ГНСС в поле зрения
5 ID ХХ GN нельзя использовать* ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ ГСВ Общее количество сообщений х 1-9 Номер сообщения х 1-9 Общее количество спутников в поле зрения ХХ Фиксированная длина: 01 для одной цифры Идентификационный номер спутника ХХ Фиксированная длина: 01 для одной цифры
Пустое поле, если оно не используется для позиционирования
GPS: ID — PRN (1-32)
GLONASS: ID — номер слота + 64
GALILEO: PRN + 300Высота ХХ Фиксированная длина: 00 для угла места 0°
Значения от 0 до 90
Пусто, если не используетсяАзимут ХХХ Фиксированная длина: 000 для азимута 0°
Значения от 000 до 360
Пусто, если не используетсяСНР ХХ Фиксированная длина: 05 для 5 дБ/Гц
Значения от 0 до 99
Пусто, если не используется*если используется несколько GNSS, для каждого созвездия должно быть создано отдельное предложение GSV, начиная с идентификатора говорящего для конкретного созвездия.
Этот блок повторяется всего 4 раза на предложение. Если число больше кратного 4, каждый раз начинается новое предложение. Блоки остаются пустыми, если количество видимых спутников меньше кратного 4.
Пример:
$GPGSV,6,1,10,02,3,6,133,2,26,10,06,11,7,100,7,39,10,10,9,6,281,5,35,10,12,63.1,256,5,46 *58
$GPGSV,6,2,10,15,26,5,186,0,43,10,17,30,5,48,7,42,10,19,43,9,65,3,46,10,24,86,5,103,6,46* 5E
$GPGSV,6,3,10,25,21,6,250,8,43,10,32,21,7,316.0,41,*5E
$GLGSV,6,4,09, 69,7,0,215,9,30,09,70,30,8,267,4,44,09,71,23,0,324,4,46,09,73,13,0,286,8,33*72
$GLGSV,6,5,09,79 ,47.8,70.6,43,09,80,54.9,314.5,38,09,81,48.6,86.8,43,09,82,28.4,150.8,46*49
$GLGSV,6,6,09,88, 21.3,28.0,40,*4ERMC – Рекомендуемый минимум специальных данных GNSS
TALKER ID ХХ Можно использовать все идентификаторы говорящих ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ РМЦ Время UTC чммсс. сс Фиксированная длина Статус х А: данные действительны Широта llll.lllll11 Фиксированная длина
4 цифры до и 7 после точкиПолушарие широты Н/С N, если значение широты положительное Долгота lllll.lllllll Фиксированная длина
5 цифр до и 7 после точкиПолушарие долготы Э/З E, если значение долготы положительное Скорость относительно земли Х.ХХ Переменная/фиксированная длина
2 цифры после точки, переменная доКурс относительно земли Х.ХХ Переменная/фиксированная длина
2 цифры после точки, переменная до
Значения от 0 до 359,99Дата ддммгг Магнитное склонение Х. ХХ Переменная/фиксированная длина:
2 цифры после точки, переменная доE/W E, если изменение положительное Индикатор режима A: Автономный
D: ДифференциальныйПример:
Z
$GNRMC,185823.40,A,4808.7402374,N,01133.9324760,E,0.00,112.64,130117,3.00,E,A*14ГОЛОСОВОЙ ID ХХ Можно использовать все идентификаторы говорящих ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ ЗДА Время UTC чммсс.сс Фиксированная длина День ХХ Фиксированная длина
от 01 до 31Месяц ХХ Фиксированная длина
от 01 до 12Год ХХХХ Часы локальной зоны Пустое поле Минуты местной зоны Пустое поле Пример:
$GNZDA,185823. 40,13,01,2017,*7EPASHR – Данные об отношении
ИДЕНТИФИКАТОР TALKER Нет говорящего ID ИДЕНТИФИКАТОР ПРЕДЛОЖЕНИЯ ПАШР Время UTC чммсс.сс Фиксированная длина Рубрика* ХХХ.ХХ Фиксированное значение: 000.00 для 0°
3 цифры перед точкой, 2 послеТ Истинный курс Угол поворота* (-)ХХХ.ХХ Фиксированное значение: 000,00 для 0°
3 цифры перед точкой, 2 послеУгол наклона* (-)ХХХ.ХХ Подъем Пустое поле Стандартное отклонение рулона* ХХ.ХХХ Фиксированное значение
2 цифры перед точкой 3 послеСтандартное отклонение шага* ХХ. ХХХ Стандартное отклонение курса* ХХ.ХХХ Флаг качества х 0: Нет положения
1: Плавающее положение RTK
2: Фиксированное положение RTK* углы ориентации и соответствующие значения отклонения заполняются только для определенной настройки (3D, 2D)
Пример:
$PASHR,1.56,107.09,T,-0,16,0,067,0,056,2*34Ссылки
[1] IEC 61162-1 ред. 2
http://read.pudn.com/downloads151/ebook/657722/IEC%2061162-1%20ed.2%20(2000).pdfNMEA — документация Aceinna OpenRTK Developer Manual
$GNGGA
Формат: $GNGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>, <8>,<9>,М,<10>,М,< 11>,<12>*xx
Например: $GNGGA,072446.00,3130.5226316,N,12024.0937010,E,4,27,0.5,31.924,M,0.000,M,2.0,*44 Объяснение поля: - <0> $GNGGA
- <1> Время UTC, формат ччммсс. сссс
- <2> Широта, формат ддмм.мммммммм
- <3> Широта полушария, северная или южная (северная широта или южная широта)
- <4> Долгота, формат дддмм.мммммм
- <5> Долгота полушария, E или W (восточная долгота или западная долгота)
- <6> Состояние позиционирования GNSS: 0 не определено, 1 позиционирование по одной точке, 2 дифференциальное фиксированное решение GPS, 4 фиксированное решение, 5 решение с плавающей запятой
- <7> Количество используемых спутников
- <8> Коэффициент точности уровня HDOP
- <9> Высота
- <10> Высота земного эллипсоида относительно геоида
- <11> Дифференциальное время
- <12> Табличка дифференциальной опорной базовой станции
- * Маркер конца заявления
- xx XOR проверить значение всех байтов, начиная с $ до *
-
-
$GNRMC
Формат: $GNRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>, <10>,<11>,< 12>*xx
Например: $GNRMC,072446. 00,A,3130.5226316,N,12024.0937010,E,0.01,0.00,040620,0.0,E,D*3D Объяснение поля: - <0> $GNRMC
- <1> Время UTC, формат ччммсс.сссс
- <2> Состояние позиционирования, A=эффективное позиционирование, V=недействительное позиционирование
- <3> Широта, формат ддмм.мммммммм
- <4> Широта полушария, северная или южная (северная широта или южная широта)
- <5> Долгота, формат дддмм.мммммм
- <6> Долгота полушария, E или W (восточная долгота или западная долгота)
- <7> Скорость относительно земли
- <8> Направление земли (в качестве исходной точки взять истинный север)
- <9> Дата UTC, формат ддммгг (день, месяц, год)
- <10> Магнитное склонение (000,0~180,0 градусов)
- <11> Направление магнитного склонения, E (восток) или W (запад)
- <12> Индикация режима (A=автономное позиционирование, D=дифференциальное, E=оценка, N=неверные данные)
- * Маркер конца заявления
- XX XOR проверить значение всех байтов, начиная с $ до *
-
-
$GNGSA
формат: $GNGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>,<7> *xx
Например: $GNGSA,A,3,03,06,09,17,19,23,28,3.