Описание NMEA протокола. Реализация в приемниках Garmin и GlobalSat. Эмулятор данных с GNSS приемника по протоколу NMEA Nmea описание протокола

  • Речные портативные УКВ радиостанции
  • Прочие станции УКВ
  • Приемники Navtex
  • РЛО / SART
  • Стационарные станции УКВ
    • Морские станции
    • Речные станции
    • Прочие
  • Морское радиооборудование – оборудование, предназначенное для охраны человеческой жизни на море, обеспечения безопасности мореплавания, управления работой флота и передачи общественной и частной корреспонденции. Для эффективного использования радиооборудования на судах необходимо знать его принципы построения, технические характеристики и особенности эксплуатации. В зависимости от района плавания к морскому радиооборудованию выдвигаются различные требования.

    А1 – в зоне действия береговых УКВ-радиотелефонных станций с использованием ЦИВ.
    А2 – в зоне действия ПВ-радиотелефонных станций с использованием ЦИВ, исключая район А1.
    А3 – в зоне действия спутников ИНМАРСАТ, исключая районы А1 и А2.
    А4 – за пределами районов А1, А2, А3.
    Таким образом, радиооборудование на судне состоит из трех комплексов: аппаратура УКВ-диапазона, аппаратура ПВ/КВ-диапазона и судовая земная станция (СЗС) системы ИНМАРСАТ. Вне зависимости от районов плавания на каждом судне должны быть установлены: УКВ-радиоустановка, РЛО (радиолокационный маяк-ответчик), приемник НАВТЕКС, АРБ (аварийный радиобуй), портативные аварийные УКВ-радиостанции.

    Радиооборудование на судне должно удовлетворять требованиям ГМССБ, указанным в правилах РМРС (Российского Морского Регистра Судоходства) и РРР (Российского Речного Регистра). На каждом судне должен быть размещен запасной источник питания, с помощью которого радиооборудование могло бы обеспечивать связь при бедствии в случае поломки или повреждения главного и аварийного источников энергии. При переходе от одного источника питания к другому, должна срабатывать световая и звуковая сигнализации. Для работы и ремонта оборудования предоставляется техническое обслуживание, которое выполняет следующие процедуры: доставка до места установки, хранение (при необходимости) и установка. Все эти этапы должны выполняться в соответствии с инструкциями в технической документации.

    Качество радиооборудования представляет собой совокупность показателей, определяющих его соответствие современным требованиям науки и техники. К показателям качества прибора относят надежность, эксплуатационные характеристики, экономичность, безопасность, дизайн и т.д. Многие показатели имеют числовое значение и, по существу, определяют эффективность применения любого оборудования на судне.

    На судах водоизмещением свыше 500 р.т. должно быть не менее трех УКВ переносных станций и двух радиолокационных ответчиков. На судах водоизмещением от 300 до 500 р.т. - две станции и 1 РЛО. Также рекомендуется оборудовать суда аппаратурой для приема факсимиле.

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

  • НАВИГАЦИЯ
    • Компасы гироскопические
    • Компасы магнитные
    • Картплоттеры
    • Лаги
    • Метеодатчики
    • Приемники ГНСС GPS/GLONASS
    • Радиолокационные станции
    • Репитеры
    • СКДВП (BNWAS)
    • Регистраторы данных рейса РДР/У-РДР
    • Автоматическая идентификационная система (АИС)
    • Системы приема внешних звуковых сигналов
    • Сонары
    • Спутниковый компас
    • Эхолоты
    • Авторулевые
    • Электронная картография
  • СПУТНИКОВАЯ СВЯЗЬ
    • FleetBroadband
    • Inmarsat LRIT, SSAS (ОСДР, ССОО)
    • Iridium (Иридиум)
    • Спутниковое телевидение
    • Терминалы BGAN
    • Терминалы VSAT

    Спутниковая связь на море в настоящее время является важным средством сообщения с берегом. Спутники различных операторов создают большое покрытие земной поверхности, что обеспечивает связь из любой точки земного шара.

    На судах, поднадзорных классификационным сообществам, используется как обязательное к установке спутниковое оборудование, так и как дополнительное. На небольших судах, катерах, яхтах, спутниковое оборудование используется по усмотрению владельцев и в основном для выхода в интернет.

    Типы оборудования:

    Терминалы Inmarsat LRIT, SSAS (ОСДР, ССОО) – это морское спутниковое оборудование, обязательное для установки на пассажирские, коммерческие и грузовые суда с районами плавания А2, А3, А4.
    - Судовая Система Охранного Оповещения - позволяет отправлять скрытый сигнал тревоги в случае нападения на судно. ОСДР или LRIT - это система опознавания судов и слежения за ними на дальнем расстоянии.
    - Терминалы FleetBroadband – это оборудование морской системы спутниковой связи, дающие широкополосный выход в интернет, обеспечивающие спутниковую телефонную связь, передачу SMS сообщений.
    - VSAT – оборудование, обеспечивающее высокоскоростную передачу данных через спутниковый интернет, что позволяет организовывать даже видеоконференции на борту.

    Так же для этих целей используются терминалы BGAN, отличающиеся от оборудования FBB и VSAT компактностью, мобильностью и скоростью связи.
    Из узкоспециализированного спутникового морского оборудования на судах используются: станция спутниковой связи, антенна приема TV сигнала и, для дальних районов плавания и телефоны, работающие через спутниковые системы связи таких операторов, как Iridium, Inmarsat и Thuraya.

  • АВТОМАТИКА
    • Кренометры
    • Системы автоматики NAVIS
    • Системы автоматики Praxis
    • Системы автоматики МРС
    • Системы контроля расхода топлива
    • Датчики
    • Системы автоматики АБС
    • Системы автоматики Валком

    1. Обслуживание, сервис и ремонт судовой электроавтоматики:
    - автоматика систем дистанционного управления главных двигателей;
    - автоматика судовых электростанций;
    - ремонт и настройка систем ГЭУ;
    - ремонт, наладка и проверка автоматики и аварийно-предупредительной сигнализации главных двигателей (Wartsila, MAN, MAK, SKL);
    - ремонт, наладка и проверка автоматики и аварийно-предупредительной сигнализации вспомогательных и аварийных дизель-генераторов (Volvo Penta, Scania, Deutz, CAT).

    2. Обслуживание, сервис и ремонт электрооборудования общесудовых систем:
    - ремонт, наладка рулевых устройств и автоматики авторулевых;
    - ремонт, наладка, комплексная проверка систем пожарной сигнализации;
    - автоматика котельного оборудования;
    - автоматика систем топливоподготовки;
    - автоматика систем водоподготовки;
    - автоматика систем очистки сточных вод.

    3. Обслуживание, сервис и ремонт электрооборудования палубных механизмов.

    4. Разработка и согласование проектной документации при модернизации и переоборудовании судовых систем автоматики.

    5. Капитальный, средний и текущий ремонт электродвигателей и генераторов любой мощности. Ремонт и настройка системы возбуждения генераторов, настройка параллельной работы генераторов.

  • ДОПОЛНИТЕЛЬНО
    • Гарнитуры и трубки
    • Гидростаты
    • Запасные части для КВУ
    • ЗИП для гирокомпасов
    • ЗИП для тифонов
    • Магнетроны
    • Преобразователи и распределители
    • Системы безбатарейной связи
    • Системы пожарной безопасности
    • Судовые дисплеи и ПК
    • Судовые тифоны
    • Элементы питания (АКБ)
    • Блоки Питания
    • Дополнительные блоки
  • Возникла у меня необходимость тестировать приложение, использующее данные GNSS по протоколу NMEA. Связано было с тем, что работал над проектом программы навигации самолета, тестировать в воздухе дорого естественно, на земле ездить на машине с GNSS приемником не особо удобно, вот и хотелось сидя за столом иметь на виртуальном параллельном порту данные протокола NMEA с якобы перемещающегося оборудования. Сначала искал разный софт думал, найду что то подходящее, но большинство платное и управление эмуляции данных не совсем удобное, хотя и эмулируют практически все параметры стандарта NMEA. Но мне надо было что-то простенькое эмулирующее координаты, скорость, в принципе не более того и требовалось достаточно удобное и логичное управление. Вот и пришлось написать приложение подобного рода на C#.

    Fly_nmea


    NMEA («National Marine Electronics Association») - полное название «NMEA 0183» - текстовый протокол связи морского (как правило, навигационного) оборудования между собой.
    Данные передаются в виде предложений. Формат предложений следующий:
    $AAAAA[, <данные> ]*hh , где:
    $ - символ начала предложения (код 24h);
    AAAAA - Пяти-символьный адрес (имя) предложения;
    [, <данные> ] - список полей данных разделенных запятыми (код 2Сh);
    * - признак контрольной суммы (код 2Ah);
    hh - контрольная сумма.

    Пример предложения:
    GGA – Данные определения места по GPS
    Время место и данные относящиеся к обсервации.
    $GPGGA,hhmmss.sss,llll.ll,a,yyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxx*hh

    Мне требовалось эмулировать четыре строки:

    • GLL – Координаты места
    • GSV – Видимые спутники
    • RMC – Рекомендуемый минимальный набор данных по GPS и ГЛОНАСС
    • GSA – Фактор ухудшения точности, используемые для навигации спутники
    Эмуляция организована в следующем порядке:
    • мы задаем начальные координаты в системе WGS-84
    • далее переходим в плоскую проекцию, например Меркатора(для преобразования координат использовал готовую библиотеку на C# )
    • зная плоские координаты x, y, h реализуем физику движения самолета по изменяемым параметрам через графический интерфейс, таких как: крен, тангаж, скорость
    • конвертируем плоские координаты в координаты B, L, H системы WGS-84
    • формируем пакет сообщений стандарта NMEA из требуемых четырех строк
    • отправляем их на виртуальный параллельный порт
    Fly_nmea + Android Sensor
    Для более удобного тестирования я еще наладил прием данных с Android сенсоров (углы наклона). Android по UDP отсылает две строки типа:
    • «Angle:\t236.04152\t-1.0\t-3.0»
    • «Acc:\t-0.46309182\t-0.14982383\t-10.56939»
    На приложении эмуляции я их принимаю и исходя из углов наклона меняю параметры:
    • Тангаж
    В приложении эмуляции можно переключится с управления через интерфейс программы на Android Sensor.
    Подключение Fly_nmea
    Для эмуляции COM портов пригодится еще Virtual Serial Ports Emulator, потребуется настроить связь двух виртуальных COM портов например: COM1 <-> COM6, и программа Fly_nmea будет отсылать данные на COM6, а на COM1 программа использующая NMEA протокол будет их забирать.

    Заключение

    В целом я больше потратил времени на поиск подобного софта, и не найдя что меня бы полностью удовлетворило быстрее написал его сам. По мимо проекта над которым я работал, так же удалось вполне удачно подключить эмулятор к программам, понимающим NMEA протокол таким как: 2Gis и SAS planet.



    FlyNMEA и android sensor(проект по передаче данных с сенсоров по UDP)

    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-приемников реализован в соответствии с NMEA-спецификацией. Большинство навигационных программ, которые обеспечивают отображение данных в реальном времени, поддерживают и «понимают» NMEA протокол. Эти данные содержат полные навигационные измерения GPS-приемника - позицию, скорость и время.

    Полная спецификация NMEA сообщений отсутствует в свободном доступе и ее нельзя официально скачать в электронном виде. Отдельные ее разделы, общее описание NMEA протокола и наиболее популярных сообщений можно найти в Интернете. Официально приобрести NMEA документацию можно на сайте //www.nmea.org/.

    Исходящие сообщения NMEA

    Все NMEA сообщения состоят из последовательного набора данных, разделенных запятыми. Каждое отдельное сообщение не зависит от других и является полностью «завершенным». NMEA cообщение включает:

    • заголовок,
    • набор данных, представленных ASCII символами,
    • поле «чексуммы» для проверки достоверности переданной информации.

    Заголовок

    Как правило, заголовок состоит из пяти символов. Первые два символа определяют тип сообщения, а оставшиеся три - его название. Например, заголовок GPS NMEA сообщений начинается с «GP». Сообщения, которые не описаны в спецификации NMEA, но реализованы в GPS-приемниках в соответствии с общими правилами, имеют префикс «Р», дополненный тремя символами, уникальными для каждой компании. Например, NMEA сообщения имеют префикс «PGRM», Magellan - «PMGN».

    Данные

    Каждое NMEA сообщение начинается с «$», заканчивается «\n» (перевод строки) и не может быть длиннее 80 символов. Все данные содержатся в одной строке и отделены друг от друга запятыми. Информация представлена в виде ASCII текста и не требует специального декодирования. Если данные не умещаются в выделенные 80 символов, то они «разбиваются» на несколько сообщений. Такой формат позволяет не ограничивать точность и количество символов в отдельных полях данных. Например, дробная часть значения координат может быть представлена тремя или четырьмя знаками после запятой, но это никак не должно повлиять на работу программного обеспечения, которые выделяет нужные данные из сообщения по номеру поля.

    Поле "чексуммы"

    В конце каждого NMEA сообщения содержится поле «чексуммы», отделенное от данных символом «*». При необходимости оно может использоваться для проверки целостности и достоверности каждого принятого сообщения.

    Входящие сообщения NMEA

    Протокол NMEA 2000 поддерживает не только исходящие, но и входящие сообщения, с помощью которых, например, можно обновить или добавить путевые точки маршрута. Эти сообщения должны быть сформированы в строгом соответствии с форматом NMEA, в противном случае, они будут проигнорированы .

    Список сообщений

    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 сообщений.

    1. GGA – информация о фиксированном решении.

    Самое популярное и наиболее используемое NMEA сообщение с информацией о текущем фиксированном решении – горизонтальные координаты, значение высоты, количество используемых спутников и тип решения.

    $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,*47 где:

    GGA – NMEA Заголовок

    123519 – UTC время 12:35:19

    4807.038, N – Широта, 48 градусов 7.038 минуты северной широты

    01131.000, Е – Долгота, 11 градусов 31.000 минуты восточной долготы

    1 – тип решения*, StandAlone решение

    08 – количество используемых спутников

    0.9 – геометрический фактор, HDOP

    545.4, М – высота над уровнем моря в метрах

    46.9, М – высота геоида над эллипсоидом WGS 84

    [пустое поле] – время прошедшее с момента получения последней DGPS поправки. Заполняется при активизации DGPS режима

    [пустое поле] – идентификационный номер базовой станции. Заполняется при активизации DGPS режима.

    * Типы решений:

    2. GSA – общая информация о спутниках

    Это NMEA сообщение содержит список спутников, используемых в подсчете позиции и значения геометрических факторов DOPs, определяющих точность подсчете позиции. Параметры DOP определяются геометрическим расположением спутников на небе. Чем лучше «распределены» на небе спутники, тем меньше DOP и тем лучше точность позиции. Минимальное значение PDOP (= 1) соответствует ситуации, когда один спутник находится строго над пользователем, а другие 3 равномерно распределены вокруг на уровне горизонта. Значение PDOP вычисляется, как квадратный корень из суммы квадратов HDOP и VDOP.

    $GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39 где:

    GSA – NMEA заголовок

    А – тип выбора между 2D и 3D решениями, Автоматический (A-auto, M-manual)

    3 – тип решения, 3D решение (1 – нет решения, 2 – 2D решение, 3 – 3D решение)

    04,05… – PRN коды используемых в подсчете позиции спутников (12 полей)

    2.5 – пространственный геометрический фактор, PDOP

    1.3 – горизонтальный геометрический фактор, HDOP

    2.1 – вертикальный геометрический фактор, VDOP

    3. GSV – Детальная информация о спутниках

    Это NMEA сообщение содержит детальную информацию для всех отслеживаемых навигатором GPS спутников. Исходя из ограничения в 80 символов в составе одного NMEA сообщения могут передаваться данные только для 4-х спутников. Соответственно для 12 спутников требуется 3 сообщения GSV. Поле SNR (Signal to Noise Ration) содержит значения уровней, принимаемых со спутников, навигационных сигналов. Теоретически его значение может варьироваться от 0 до 99 и измеряется в dB. Фактически уровень сигнала лежит в диапазоне 25 …35 dB. Здесь стоит отметить, что данный параметр не является абсолютным и не подходит для сравнения чувствительности приемников разных моделей и производителей. В GPS навигаторах могут использоваться различные алгоритмы вычисления уровня принимаемого сигнала, что приводит к разным результатам при равной степени чувствительности приемников. Для каждого видимого GPS спутника передается набор информации, включающий уровень сигнала, угол возвышения и азимут спутника. Количество этих «наборов» определяется общем количеством видимых спутников, значение которого передается в отдельном поле.

    $GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75 где:

    GSV – NMEA заголовок

    2 – количество сообщений GSV в пакете

    1 – номер сообщения в пакете (от 1 до 3)

    08 – количество видимых спутников

    01 – номер спутника

    40 – угол возвышения, в градусах

    083 – азимут в градусах

    46 – SNR, уровень сигнала

    Это NMEA сообщение содержит весь наборы, так называемых «PVT» данных. «PVT» - общепринятое сокращение от «position, velocity, time» (позиция, скорость, время).

    $GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A где:

    RMC – NMEA заголовок 123419 – UTC время, 12:34:59

    А – статус (А- активный, V- игнорировать)

    Ты наверное сейчас занят решением проблемы взлома очередного мега-супер-гипер сервака, но знаешь ли ты, что такое GPS и как с ним обращаться?! Если нет, то тебе сюда! В этой статье я расскажу тебе о том, как работают GPS приемники, как получить с них информацию, а так же как самому написать простенькую программу для работы с GPS-модулем.

    GPS (Global Positioning System, Система Глобального Позиционирования) была введена в действие США в 1994 году. Состоит она из 24 спутников и наземных приемных комплексов, коим может являться и твой GPS-навигатор или GPS-модуль (в дальнейшем навигатор). Для точного определения координат твой навигатор должен видеть минимум 4 спутника. В недалеком прошлом точность определения координат вне территории США (а точнее для потребителей не из США) была искусственно снижена, но не так давно это ограничение было убрано и теперь ты можешь определять свое местоположение даже в тайге с точностью до нескольких метров.

    На пальцах все это работает так: твой навигатор получает информацию с каждого из видимых спутников, которые являются для него как бы маяками. Внутри навигатора находится микропроцессор с зашитой в него программой, которая на основе полученных данных и высчитывает твое местоположение.

    В настоящее время в продаже имеется огромное количество GPS-навигаторов и GPS-модулей для КПК и ноутбуков. GPS-навигатор это GPS-приемник с экраном, на котором отображается информация о твоем местоположении, а GPS-модуль – это GPS-приемник, который подключается к компьютеру и передает всю навигационную информацию программе, которая с ним работает. Все они в принципе отличаются только форм-фактором и принципиальных различий в работе не имеют. Но нас с тобой больше интересует каким же все таки образом он общается с компьютером и как вытащить из него информацию. Сейчас все расскажу и покажу.

    Какого бы форм-фактора (COM, USB, BlueTooth и т.п.) не был GPS-модуль, он будет логически связан с компьютером через COM-порт, т.е. при подключении создается соединение по последовательному порту. Навигационная информация в большинстве случаев передается по протоколу NMEA. Это самый распространенный протокол передачи для GPS-модулей. Хотя есть и другие протоколы, но мы их рассматривать не будем.

    Ну а теперь самое время узнать как же сделать софтину для работы со всем этим хозяйством. Скажу сразу, что мне не очень хочется сейчас объяснять как тыкать в кнопки в том же
    VB, статья носит больше ознакомительный характер. Для тех кто в танке я объясню подобно процесс создания программы в следующих статьях.
    Я освещу лишь наиболее важные моменты и я думаю у тебя все получится. Скажу сразу, что ваять прогу можно в любых языках программирования, лишь бы была возможность работы с последовательным портом и со строками.
    Первое с чего нужно начать это с открытия COM-порта. Почти все приемники по умолчанию имеют установки: скорость 9600 бит/с, 8/N/1. Как только ты откроешь порт тебе сразу с интервалом в секунду будет приходить навигационная информация примерно такого вида:

    $GPGGA,143345.264, 0936.23,N,06354.15,E, 0,06,0.0,230.6,M,0.0,M,0.0,0345*76
    $GPRMC,143345.26, A,0936.23,N,06354.15, E,0.0,0.0,230306,0.0,E,A*45
    $GPGSA,A,3,03, 04,05,07,11,12,0.0,0.0,0.0*Е2
    $GPGSV,1,1,06,05,67,120,20*34

    Теперь приступим к разбору:

    Данные передаются в виде предложений. Формат предложений следующий:

    $AAAAA[, <данные> ]*hh, где

    $ — символ начала предложения (код 24h);
    AAAAA — пятисимвольный адрес (имя) предложения;
    [, <данные> ] — список полей данных разделенных запятыми (код 2Сh);
    * — признак контрольной суммы (код 2Ah);
    hh — контрольная сумма;
    , — конечный ограничитель (коды 0Dh и 0Ah).

    Типы полей данных.

    Тип поля Обозначение Определение

    Специальный формат полей

    Статус A Поле одного символа. А= да, данные
    достоверны, предупредительного сигнала
    нет. V= нет, данные не достоверны, есть
    сигнал предупреждения.
    Широта llll.ll
    градусы-минуты доли минуты. 2 знака

    число знаков долей минуты. Если первый
    знак градусов или минут отсутствует, то
    его заменяют нулем с тем, чтобы




    большое разрешение.
    Долгота yyyyy.yy Поле постоянной/переменной длины:
    градусы-минуты и доли минуты. 3 знака
    градусов, 2 знака минут и переменное
    число знаков долей минуты. Если первые
    знаки или первый знак минут отсутствует,
    то их заменяют нулем для того, чтобы
    сохранить постоянное число знаков.
    Децимальная точка и последующие знаки
    долей минут являются дополнительными и
    могут не использоваться, если не нужно
    большое разрешение.
    Время hhmmss.ss Поле постоянной/переменной длины: часы/минуты/секунды
    и доли секунды. 2 знака часов, 2 знака
    минут, 2 знака секунд и переменное число
    знаков долей секунд. В качестве первого
    знака часов, минут, секунд может быть
    поставлен ноль, для сохранения
    постоянного числа знаков. Если не
    требуется высокая точность, то
    децимальная точка и доли секунд могут
    быть опущены.
    Определенные поля Некоторые поля специально
    предназначаются для размещения заранее
    определенных постоянных величин, чаще
    всего буквенных обозначений. Признаком
    таких полей является наличие одного или
    нескольких знаков.

    Поля цифровых величин

    Информационные поля

    Примечания:

    1. Пробелы могут быть использованы только в полях текстов изменяемой длины.

    2. Отрицательный знак “-” (код 2Dh) является первым знаком поля, если в нем приводятся отрицательные величины. При использовании отрицательного знака в полях фиксированной длины их длина увеличивается на единицу. При положительных величинах знак опускается.

    GGA – Данные определения места по GPS

    Время место и данные относящиеся к обсервации.

    $GPGGA,hhmmss.sss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh

    1. hhmmss.sss – время навигационных определений;
    2. llll.ll,a – широта, N/S;
    3. yyyyy.yy,a – долгота, E/W;
    4. x – показатель качества обсервации: 0 = нет данных, 1 = обсервация получена, 2 = обсервация в дифференциальном режиме;
    5. xx – число используемых спутников;
    6. x.x – величина горизонтального геометрического фактора (HDOP);
    7. x.x,M – высота антенны над уровнем моря (геоидом), м;
    8. x.x,M – превышение геоида над эллипсоидом WGS84, м;
    9. x.x – устаревание дифференциальных поправок, то есть время в секундах с момента получения последней дифференциальной поправки, нулевое поле используется в случае выключения дифференциального режима;
    10. xxxx – идентификатор дифференциальной станции 0ё1023.

    Время, дата, координаты и курс счисляемые аппаратурой.

    $GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxxxx,x.x,a,a*hh

    Полями данного предложения являются:

    1. hhmmss.ss – время;
    2. A – статус (A/V);
    3. llll.ll,a – широта, N/S;
    4. yyyyy.yy,a – долгота, E/W;
    5. x.x – скорость в узлах;
    6. x.x – курс в градусах;
    7. xxxxxx – дата: dd/mm/yy (день/месяц/год);
    8. x.x,a – магнитное склонение в градусах, E/W;
    9. a – индикатор режима: A = автономная обсервация, D = дифференциальный режим, N = данные недостоверны.

    GSA – Фактор ухудшения точности, используемые для навигации спутники

    $GPGSA,a,x,xx, … ,xx,x.x,x.x,x.x*hh

    Полями данного предложения являются:
    1. a – режим управления количеством определяемых координат: М = ручное, указан режим, А = автоматическое переключение;
    2. x – режим работы: 1 = обсервация невозможна, 2 = определяются две координаты, 3 = определяются три координаты;
    3. xx…xx – номера спутников используемых для решения навигационной задачи, количество полей равно количеству каналов приемника, для GPS используются номера 1ё32, для WAAS 33ё64, для ГЛОНАСС 65ё96;
    4. x.x – общий геометрический фактор ухудшения точности (PDOP);
    5. x.x – горизонтальный геометрический фактор ухудшения точности (HDOP);
    x.x – вертикальный геометрический фактор ухудшения точности (VDOP).

    GSV – Видимые спутники

    Число спутников в зоне радиовидимости, номер спутника, угол возвышения, азимут и отношение сигнал/шум. Одно предложение может содержать информацию об 1 до 4 спутников, дополнительные данные о спутниках передаются в следующих предложениях. Номер предложения указывается в первых двух полях данных. Для спутниковых систем зарезервированы следующие номера: для GPS 1-32, для WAAS 33-64, для ГЛОНАСС 65-96.

    $GPGSV,x,x,xx,xx,xx,xxx,xx, … ,xx,xx,xxx,xx*hh

    Полями данного предложения являются:
    1. x – общее число сообщений;
    2. x – номер сообщения;
    3. xx – общее число спутников в зоне радиовидимости;
    4. xx – номер спутника;
    5. xx – угол возвышения спутника, градусы 00-90;
    6. xxx – азимут истинный, градусы 000-360;
    7. xx – отношение сигнал/шум 00-99 дБ, если спутник не сопровождается не передается.

    Примечание: поля 4, 5, 7 повторяются для 2, 3 и 4 спутников.

    Ну вот теперь, имея описание протокола NMEA и драйвер прямые_руки.sys можешь приступать к построчному разбору пакетов и созданию мега программулины)))).

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

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

    • символ «$» или «!» (hex 24 или hex 21)
    • 5-буквенный идентификатор сообщения. Первые две буквы - идентификатор источника сообщения, следующие три буквы - идентификатор формата сообщения, согласно протоколу NMEA 0183 определённой версии.
    • список данных (буквы, цифры и точки), разделённых запятыми. Если какие-либо данные отсутствуют внутри строки, запятые всё равно ставятся (например «,»). Некоторые поля в конце строки могут отсутствовать вовсе.
    • символ «*».
    • восьмибитная XOR -сумма всех символов (включая «,» и «^») в строке между «$» и «*» приведенная к двум ASCII-символам в верхнем регистре для 16-ричного представления байта (0–9, A–F).
    • (hex 0D, hex 0A).

    Максимальная длина сообщения ограничена 82 символами (NMEA 0183 rev 3.0)

    Стандарт описывает более 250 идентификаторов NMEA-последовательностей. Стандарт определяет скорости обмена данными в 4800 бод. (Для скоростей в 38400 бод и выше есть расширенный стандарт NMEA-0183-HS).

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

    RMC-строка (частный пример)

    $GPRMC,hhmmss.sss,A,GGMM.MM,P,gggmm.mm,J,v.v, b.b, ddmmyy, x.x, n,m*hh

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

    • «GP» - идентификатор источника; в приведенном примере это GPS, «GL» - ГЛОНАСС , «GA» - Галилео , «GN» - ГЛОНАСС+GPS и т. п.
    • «RMC» - «Recommended Minimum sentence C»
    • «hhmmss.sss» - время фиксации местоположения по Всемирному координированному времени UTC : «hh» - часы, «mm» - минуты, «ss.sss» - секунды. Длина дробной части секунд варьируется. Лидирующие нули не опускаются.
    • «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» - контрольная сумма.
    • - байт равен 0x0D.
    • - байт равен 0x0A.

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

    Пример 1

    $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 узлов


    gastroguru © 2017