NMEA («National 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 при спаривании устройств, т.е. аппаратно не существует, но в итоге с приемником можно работать точно также.
5-буквенный идентификатор сообщения. Первые две буквы — идентификатор источника сообщения, следующие три буквы — идентификатор формата сообщения, согласно протоколу NMEA 0183 определённой версии.
список данных (буквы, цифры и точки), разделённых запятыми. Если какие-либо данные отсутствуют внутри строки, запятые всё равно ставятся (например «,,»). Некоторые поля в конце строки могут отсутствовать вовсе.
символ «*».
2-значное 16-ричное число — контрольная XOR-сумма всех байт в строке между «$» и «*».
Полный набор NMEA-сообщений и команд достаточно велик. Как правило, NMEA-сообщения посылаются с интервалом в 1 секунду при скорости обмена данными 4800 бод.
Иногда производители приёмников спутниковой навигации и др. устройств с выходом NMEA добавляют собственную информацию, т.е. проприетарные предложения, которые несут дополнительную информацию о работе устройства.
Проверка контрольной суммы предложения почти всегда может быть настроена в приемнике информации.
«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).