NMEA
- протокол обмена приёмников GPS по COM порту.
NMEA («National Marine Electronics Association») — полное название «NMEA 0183» —
текстовый протокол связи морского (как правило, навигационного) оборудования
между собой. Стал особенно популярен в связи с распространением
GPS приёмников, использующих этот стандарт. (В
настоящее время внедряется стандарт «NMEA 2000»).
Если приёмник имеет последовательный интерфейс RS-232
(согласованный по напряжениям и скорости передачи (обычно 9600, 8, N, 1) со
стандартным), то „общаться“ с таким приёмником можно, подключив его, например, к
IBM PC-совместимому компьютеру и пользуясь какой-либой терминальной программой,
например, «HyperTerminal»'ом для Микрософтовской ОС Windows.
Общий вид строк в NMEA 0183
- символ «$».
- 5-буквенный идентификатор сообщения.
- список данных (буквы и цифры), разделённых запятыми.
Если какие-либо данные отсутствуют внутри строки, запятые всё равно
ставятся (например «,,»). Некоторые поля в конце строки могут
отсутствовать вовсе.
- символ «*».
- 2-значное 16-ричное число — контрольная
XOR-сумма всех байт в строке между «$» и «*».
- <CR><LF> (конец строки).
Полный набор NMEA-сообщений и команд достаточно велик, однако часто используют
единственное сообщение: «pекомендуемый минимум навигационных данных RMC». Если
приёмник GPS не настроен иначе, то, как правило,
RMC-строки посылаются автоматически с интервалом в 1секунду.
RMC-строка
$GPRMC,hhmmss.ss,A,LLLL.LL,a,yyyyy.yy,a,v.v,b.b,ddmmyy,x.x,d,m*hh<CR><LF>
(пробелов и переносов внутри строки нет).
Значение полей:
- «GP» — приём сигналов GPS (в некоторых системах «GL»
зарезервировано для ГЛОНАСС)
- «RMC» — «minimum recommended data»
- «hhmmss.ss» — время фиксации местоположения,
UTC . Длина дробной части секунд варьируется.
Лидирующие нули не опускаются.
- «A» — статус: «A» — данные достоверны, «V» —
недостоверны.
- «LLLL.LL» — широта. 2 цифры градусов, 2 цифры минут,
точка и дробная часть минут переменной длины. Лидирующие нули не опускаются.
- «a» — «N» для северной или «S» для южной широты.
- «yyyyy.yy» — долгота. 3 цифры градусов, 2 цифры минут,
точка и дробная часть минут переменной длины. Лидирующие нули не опускаются.
- «a» — «E» для восточной или «W» для западной долготы.
- «v.v» — горизонтальная составляющая скорости в узлах.
Число с плавающей точкой. Целая и дробная части переменной длины.
- «b.b» — истинный курс в градусах. Число с плавающей
точкой. Целая и дробная части переменной длины.
- «ddmmyy» — дата: день месяца, месяц, последние 2 цифры
года (ведущие нули обязательны).
- «x.x» —магнитное склонение в градусах (часто
отсутствует). Число с плавающей точкой. Целая и дробная части переменной
длины.
- «d» — направление магнитного склонения: для получения
магнитного курса магнитное склонение необходимо «E» — вычесть, «W» — прибавить
к истинному курсу (часто отсутствует).
- «m» — индикатор режима: «A» — автономный, «D» —
дифференциальный, «E» —аппроксимация, «N» — недостоверные данные (часто
отсутствует).
- «hh» — контрольная сумма.
Пример RMC-строки
GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,,*3B
- 12 часов 55 минут 4,049 секунд UTC
- A — достоверно
- широта 55° 42,2389', северная
- долгота 37° 41,6063', восточная (где-то в Москве)
- скорость 0,06 узлов
- истинный курс 25,82 градуса
- 20 сентября (20)06 года
- магнитное склонение не указано
- направление магнитного склонения вообще отсутствует
- индикатор режима отсутствует
- контрольная сумма 0x3B
Материал из Википедии — свободной энциклопедии.