Особенности программирования микроконтроллера GPS-модуля A9G | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №50 (445) декабрь 2022 г.

Дата публикации: 12.12.2022

Статья просмотрена: 225 раз

Библиографическое описание:

Малих, А. А. Особенности программирования микроконтроллера GPS-модуля A9G / А. А. Малих. — Текст : непосредственный // Молодой ученый. — 2022. — № 50 (445). — С. 9-12. — URL: https://moluch.ru/archive/445/97605/ (дата обращения: 16.11.2024).



В статье автор рассматривает особенности программирования модуля Ai-Thinker A9G для работы в качестве GPS датчика для автономных навигационных систем.

Ключевые слова: программирование, GPS-модуль, Ai-Thinker A9G.

Микроконтроллер в чипе модуля A9G программируется на языке C с использованием собственных специализированных библиотек. Микроконтроллер может выполнять множество параллельных процессов, что позволяет выполнять множество задач параллельно. Специальной среды для разработки программ для микроконтроллера нет. Код программы пишется в любом редакторе кода С, а затем компилируется в HEX файл при помощи SDK (Software Development Kit). HEX файл образовывается согласно параметрам, прописанным в конфиге Makefile, относящемся к данной программе. HEX файл прошивается на микроконтроллер с помощью специального инструмента через интерфейс UART, через порты HST_RX и HST_TX [1].

Перед использованием GPS датчика необходимо инициализировать компоненты, ответственные за работу с GPS. Из-за особенностей конструкции модуля до инициализации GPS необходимо дождаться завершения инициализации GPRS, иначе возможны сбои в питании GPS модуля. При включении модуль автоматически начинает инициализацию GPRS и при ее завершении подает на обработчик событий событие, свидетельствующее о завершении инициализации.

Данные о местоположении записываются в структуру GPS_Info_t описываемую одной из библиотек. Структура включает в себя переменные с плавающей запятой rmc.latitude.value и rmc.longitude.value. Переменные хранят в себе значения широты.

После инициализации и открытия канала GPS и проверки его работы начинается считывание местоположения используя команду Gps_GetInfo(). Короткий пример кода представлен на рисунке (Рисунок 1)

Использование GPS датчика

Рис. 1. Использование GPS датчика

Выходной формат данных с датчика неприменим, так как не соответствует ни одному распространенному стандарту передачи данных GPS,и не удобен для считывания пользователем. Есть необходимость перевода данных в стандартный формат долготы и широты (Рисунок 2).

Перевод данных GPS в стандартный формат

Рис. 2. Перевод данных GPS в стандартный формат

В то же время для передачи данных между устройствами получил широкое распространение формат данных NMEA 0183 (National Marine Electronics Association). Сообщение формата NMEA включает в себя множество данных и контрольную сумму, исключающую возможность ошибки при передаче данных. Сообщение NMEA имеет следующую структуру (Таблица 1) [2]:

Таблица 1

Структура сообщения NMEA

Начало сообщения

Адресная строка

Поля данных

Контрольная сумма

Символ конца строки

$

CNRMC или GNGGA и др.

[данные], [данные],

…,

[данные]

Контрольная сумма, сформированная по данным из 3х средних ячеек

Стандарт NMEA включает множество видов сообщений, из которых был выбран вид GNRMC. Сообщение --RMC (Recommended Minimum Specific GNSS Data) имеет вид:

$--RMC,hhmmss.sss,x,llll.lll,a,yyyyy.yyy,a,x.x,u.u,xxxxxx,,,v*hh , где:

hhmmss.ss — время снятия показаний (от 000000.00 до 235959.999);

x — статус (V — Ошибка датчика, A — Данные валидны);

llll.lll — широта в формате ddmm.mmm (с ведущими нулями);

A — индикатор направления отчета (N — North (Север), S — South (Юг));

yyyyy.yy — долгота в формате dddmm.mmm (с ведущими нулями);

A — индикатор направления отчета (E — East (Восток), W– West (Запад));

x.x — скорость над поверхностью земли в узлах;

u.u — курс над поверхностью земли в градусах;

xxxxxx — дата снятия показаний;

A — индикатор режима (N — не валидные данные, A — автономный режим, D — дифференциальный режим, E — оценочный режим);

hh — контрольная сумма в виде шестнадцатеричного числа.

Для получения информации о времени с помощью средств GPRS используется следующий набор команд (Рисунок 3):

Набор команд для работы со временем

Рис. 3. Набор команд для работы со временем

Для формирования строки NMEA используется функция snprintf() для составления выражений. Часть кода представлена ниже (Рисунок 4).

Составление выражения NMEA

Рис. 4. Составление выражения NMEA

При составлении выражения формата NMEA необходимо находить контрольную сумму. Контрольная сумма генерируется применением операции XOR побитно, записи всех символов в формате ASCII. Контрольная сумма представляется в виде двух шестнадцатеричных символов. Принимающее устройство также рассчитывает контрольную сумму и, в случае несовпадения с принятой от передатчика, сообщает об ошибке [22]. Часть программного кода, реализующая составление контрольной суммы представлена ниже (Рисунок 5).

Генерация контрольной суммы

Рис. 5. Генерация контрольной суммы

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

Литература:

  1. A9G GPRS/GSM+GPS/BDS Module [Электронный ресурс]: Datasheet / Ai-Thinker — Электронные данные. — Режим доступа: https://www.makerfabs.com/desfile/files/a9g_product_specification.pdf (дата обращения 11.12.2022)
  2. SiRF Tecnology Inc. NMEA Reference Manual. — San Jose, 2005.
Основные термины (генерируются автоматически): GPS, NMEA, контрольная сумма, GPRS, HEX, RMC, данные, ASCII, CNRMC, GNGGA.


Ключевые слова

программирование, GPS-модуль, Ai-Thinker A9G

Похожие статьи

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

Целью данной работы является изучение возможности одновременного применения двух модулей гироскопов-акселерометров с микроконтроллером Atmega328 или ATmega 32u4 для регистрации данных.

Система управления активно управляемой газомагнитной опорой

В данной статье рассмотрена программная реализации системы управления активно управляемой газомагнитной опорой с использованием встраиваемого контроллера SBRIO-9636 под управлением Labview.

Использование микроконтроллеров широкого применения для разработки устройств аудиообработки

В статье рассматривается вопрос, о возможности использования микроконтроллеров (далее MCU) широкого применения, построенных на базе ядер Arm ®Cortex ® M, в сфере цифровой обработки сигнала (далее DSP). На примере устройства, обработки аналогово звуко...

Особенности работы с приемопередатчиком NRF24L01+

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

Разработка блока управления для стиральной машины

В данной работе разрабатывается один из вариантов блока управления стиральной машиной. Основой для этого блока послужит микроконтроллер 8051 фирмы Intel.

Генератор сигналов произвольной формы на микроконтроллере AVR

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

Генетический алгоритм для автоматической настройки ПИД-регулятора

В статье рассматривается способ автоматической настройки ПИД-регулятора, поддерживающий изменение объекта управления, и его моделирование с помощью встроенных приложений вMATLAB.

Отечественная BIM-система Renga как современная трехмерная программа для проектирования зданий и сооружений

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

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

В данной работе рассматриваются платы Altera на базе ПЛИС.

Разработка автономного робота на базе Arduino Uno для создания изображений

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

Похожие статьи

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

Целью данной работы является изучение возможности одновременного применения двух модулей гироскопов-акселерометров с микроконтроллером Atmega328 или ATmega 32u4 для регистрации данных.

Система управления активно управляемой газомагнитной опорой

В данной статье рассмотрена программная реализации системы управления активно управляемой газомагнитной опорой с использованием встраиваемого контроллера SBRIO-9636 под управлением Labview.

Использование микроконтроллеров широкого применения для разработки устройств аудиообработки

В статье рассматривается вопрос, о возможности использования микроконтроллеров (далее MCU) широкого применения, построенных на базе ядер Arm ®Cortex ® M, в сфере цифровой обработки сигнала (далее DSP). На примере устройства, обработки аналогово звуко...

Особенности работы с приемопередатчиком NRF24L01+

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

Разработка блока управления для стиральной машины

В данной работе разрабатывается один из вариантов блока управления стиральной машиной. Основой для этого блока послужит микроконтроллер 8051 фирмы Intel.

Генератор сигналов произвольной формы на микроконтроллере AVR

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

Генетический алгоритм для автоматической настройки ПИД-регулятора

В статье рассматривается способ автоматической настройки ПИД-регулятора, поддерживающий изменение объекта управления, и его моделирование с помощью встроенных приложений вMATLAB.

Отечественная BIM-система Renga как современная трехмерная программа для проектирования зданий и сооружений

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

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

В данной работе рассматриваются платы Altera на базе ПЛИС.

Разработка автономного робота на базе Arduino Uno для создания изображений

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

Задать вопрос