Light-industry-up.ru

Экосистема промышленности

NMEA

31-07-2023

Перейти к: навигация, поиск

NMEANational Marine Electronics Association») — полное название «NMEA 0183» — текстовый протокол связи морского (как правило, навигационного) оборудования(или оборудования, используемого в поездах) между собой. Стал особенно популярен в связи с распространением GPS приёмников, использующих этот стандарт. (В настоящее время внедряется стандарт NMEA 2000)

Если приёмник имеет последовательный интерфейс RS-232 (COM-порт) (согласованный по напряжениям и скорости передачи (обычно 4800, 8, N, 1) со стандартным), то «общаться» с таким приёмником можно, подключив его, например, к IBM PC-совместимому компьютеру и пользуясь какой-либо терминальной программой, например, PuTTY (а в простейшем случае программой «Hyper Terminal», входящей в состав ОС Windows до Windows XP; или «minicom» в ОС Linux).

Примечание: если GPS-приемник имеет иной интерфейс, например, Bluetooth, то, наверняка, он подключается к компьютеру через виртуальный COM-порт, который создается в операционной системе драйверами Bluetooth при спаривании устройств, т.е. аппаратно не существует, но в итоге с приемником можно работать точно также.

Общий вид строк в NMEA 0183

  • символ «$».
  • 5-буквенный идентификатор сообщения. Первые две буквы — идентификатор источника сообщения, следующие три буквы — идентификатор формата сообщения, согласно протоколу NMEA 0183 определённой версии.
  • список данных (буквы, цифры и точки), разделённых запятыми. Если какие-либо данные отсутствуют внутри строки, запятые всё равно ставятся (например «,,»). Некоторые поля в конце строки могут отсутствовать вовсе.
  • символ «*».
  • 2-значное 16-ричное число — контрольная XOR-сумма всех байт в строке между «$» и «*».
  • <CR><LF> (конец строки).

Полный набор NMEA-сообщений и команд достаточно велик. Как правило, NMEA-сообщения посылаются с интервалом в 1 секунду при скорости обмена данными 4800 бод.

Иногда производители приёмников спутниковой навигации и др. устройств с выходом NMEA добавляют собственную информацию, т.е. проприетарные предложения, которые несут дополнительную информацию о работе устройства.

Проверка контрольной суммы предложения почти всегда может быть настроена в приемнике информации.

RMC-строка

$GPRMC,hhmmss.ss,A,GGMM.MM,P,gggmm.mm,J,v.v,b.b,ddmmyy,x.x,n,m*hh<CR><LF>

(пробелов и переносов внутри строки нет).

Значение полей:

  • «GP» — приём сигналов GPS (в некоторых системах «GN» зарезервировано для ГЛОНАСС)
  • «RMC» — «Recommended Minimum sentence C»
  • «hhmmss.ss» — время фиксации местоположения по Всемирному координированному времени UTC: «hh» — часы, «mm» — минуты, «ss.ss» — секунды. Длина дробной части секунд варьируется. Лидирующие нули не опускаются.
  • «A» — статус: «A» — данные достоверны, «V» — недостоверны.
  • «GGMM.MM» — широта. 2 цифры градусов(«GG»), 2 цифры целых минут, точка и дробная часть минут переменной длины. Лидирующие нули не опускаются.
  • «P» — «N» для северной или «S» для южной широты.
  • «gggmm.mm» — долгота. 3 цифры градусов(«ggg»), 2 цифры целых минут, точка и дробная часть минут переменной длины. Лидирующие нули не опускаются.
  • «J» — «E» для восточной или «W» для западной долготы.
  • «v.v» — горизонтальная составляющая скорости относительно земли в узлах. Число с плавающей точкой. Целая и дробная части переменной длины.
  • «b.b» — путевой угол (направление скорости) в градусах. Число с плавающей точкой. Целая и дробная части переменной длины. Значение равное 0 соответствует движению на север, 90 — восток, 180 — юг, 270 — запад.
  • «ddmmyy» — дата: день месяца, месяц, последние 2 цифры года (ведущие нули обязательны).
  • «x.x» — магнитное склонение в градусах (часто отсутствует), рассчитанное по некоторой модели. Число с плавающей точкой. Целая и дробная части переменной длины.
  • «n» — направление магнитного склонения: для получения магнитного курса магнитное склонение необходимо «E» — вычесть, «W» — прибавить к истинному курсу.
  • «m» — индикатор режима: «A» — автономный, «D» — дифференциальный, «E» — аппроксимация, «N» — недостоверные данные (часто отсутствует, данное поле включая запятую отсутствует в старых версиях NMEA).
  • «hh» — контрольная сумма.
  • <CR> — байт равен 0x0D.
  • <LF> — байт равен 0x0A.

Примеры RMC-строки

$GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,,,*17

  • 12 часов 55 минут 4,049 секунд UTC
  • «A» — достоверно
  • широта 55° 42,2389', северная
  • долгота 37° 41,6063', восточная (в Москве)
  • скорость 0,06 узлов
  • направление движения 25,82 градуса
  • 20 сентября (20)06 года
  • магнитное склонение не указано
  • направление магнитного склонения не указано
  • индикатор режима отсутствует
  • контрольная сумма 0x17

$GPRMC,,V,,,,,,,080907,9.6,E,N*31

  • «V» — недостоверно
  • 8 сентября (20)07 года
  • магнитное склонение восточное, 9,6°
  • «N» — недостоверные данные
  • контрольная сумма 0x31

Все остальные поля отсутствуют (фактически, нет сигнала от спутников).

Пример приёмника

Карманный коммерческий приёмник Garmin eTrex поддерживает обмен следующими строками:

  • NMEA 0183 версия 3.0:
    • GPGGA — данные о последнем определении местоположения
    • GPGLL — координаты, широта/долгота
    • GPGSADOP (GPS) и активные спутники
    • GPGSV — наблюдаемые спутники
    • GPWPL — параметры заданной точки
    • GPBODазимут одной точки относительно другой
    • GPRMB — pекомендуемый минимум навигационных данных для достижения заданной точки
    • GPRMC — pекомендуемый минимум навигационных данных (см. выше)
    • GPRTE — маршруты
    • HCHDG — данные от компаса
  • Собственные строки фирмы Garmin[1]:
    • PGRME — оценка ошибки измерений
    • PGRMM — картографические данные
    • PGRMZ — высота
    • PSLIB — контроль приёма маяков

Примечания

  1. http://www8.garmin.com/support/pdf/NMEA_0183.pdf  (англ.)

Ссылки

  • Протокол NMEA 0183 (англ.), pdf, 60 КБайт
  • Неофициальное описание NMEA. (англ.)
  • National Marine Electronics Association. Официальный первоисточник стандарта (платный). (англ.)
  • Список протоколов NMEA (нем.) (англ.)
  • LGPL C библиотека для разбора и генерации NMEA протокола
  • библиотека, входящая в стандартную библиотеку языка tcl для работы с NMEA
  • Библиотека с полной поддержкой протокола NMEA 0183 2.0 (C#, Java)

NMEA.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06