Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

GPS модуль GMM-U1 от GlobalTop. — Меандр — занимательная электроника
Site icon Меандр — занимательная электроника

GPS модуль GMM-U1 от GlobalTop.

Сейчас область применения спутниковой навигационной системы GPS достаточно широка. Но применять GPS можно не только для навигации, но и для других целей. Например, если использовать GPS модуль в связке с GSM модулем, можно сделать GPS трекер, который будет по запросу выдавать свои координаты. Он применяется в автомобильных противоугонных системах, системах слежения за грузами и т. д. Также со спутников можно получить точное время, дату, курс, скорость и другие данные. В этой статье я расскажу о GPS модуле GMM-U1.

Как видно, модуль достаточно компактный, но, несмотря на это, очень легко запаивается, так как шаг его выводов 1,2 мм.

Вот основные возможности данного модуля:

  • 66 каналов для поиска/сопровождения спутников.
  • Частота L1 (1575 МГц).
  • Высокая чувствительность -165 дБм, имеет встроенный LNA(Low Noise Amplifier – Малошумящий усилитель), который позволяет использовать модуль как с активными, так и с пассивными антеннами.
  • Интерфейсы UART(со скоростью от 4800 до 115200) и USB.
  • Поддержка AGPS(Технология, позволяющая значительно уменьшить время холодного старта).
  • Поддержка  DGPS(Технология, позволяющая увеличить точность GPS)
  • Точность позиционирования <3 м.
  • Частота обновления данных до 10 Гц.
  • Напряжение питания 3,2…5 В.

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

Обратите внимание на то, что к выводу VBACKUP подключена резервная батарейка на 3 Вольта. Она нужна для ускорения холодного старта модуля и поддержания хода встроенных часов реального времени. Но батарейку к этому выводу нужно подключить обязательно! Без неё модуль не будет работать. Напряжение на VBACKUP может быть от 2 до 4,3 Вольт, поэтому, если напряжение питание модуля 5 Вольт, не следует соединять ножку VBACKUP с VCC.

Конденсаторы С1, С2, С3 используются для фильтрации напряжения питания. Дроссель L1 устанавливать не обязательно, но желательно. Его индуктивность может быть в пределах 100 – 600 мкГн.

Резистор R3 нужно установить обязательно, это подтяжка RESET. Без этого резистора модуль может начать самопроизвольно сбрасываться.

Резисторы R1, R2, R4 устанавливать совсем не обязательно, но я их установил, так как это рекомендуют в даташите.

Также отмечу, что нельзя устанавливать антенну совсем близко к модулю, иначе приёма не будет.

 

Вывод RTCM используется для подключения внешнего DGPS приёмника.

Прижав вывод RESET к земле на некоторое время можно сбросить модуль.

Если на выводе Enable высокий уровень, модуль запущен. Если прижать этот пин к земле, модуль переходит в спящий режим с потреблением в 10 uA.

Вывод 3D_FIX – индикатор фиксации положения. Когда координаты определить невозможно(спутники не найдены), на этом выводе прямоугольный импульс с частотой 1 Гц, а после определения координат на этом выводе устанавливается низкий уровень. Можно подключить к нему светодиод и следить за состоянием модуля.

На выводе 1PPS после фиксации положения 1 раз в секунду появляется кратковременный импульс(100 мс). К этому выводу тоже можно подключить светодиод. Он будет мигать после того, как спутники будут найдены.

 

На основе этой схемы я сделал небольшую отладочную платку для этого модуля:

Кроме того, что нарисовано на схеме, я добавил селектор питания с защитным диодом для того, чтобы можно было выбрать источник питания: USB или внешние 5 вольт. Диод защищает модуль от переполюсовки питания. Все нужные выводы модуля выведены на разъём. Ещё один 3-х контактный разъём добавлен для подключения DGPS приёмника. Чертёж платы в формате Sprint-Layout лежит в архиве, который находится в конце статьи.

Антенны. 

Поговорим немного о подключении антенны к модулю. Итак, существует два типа антенн – пассивная и активная. Активная антенна кроме самой антенны содержит в себе усилитель сигнала(LNA), а в пассивной антенне усилителя нет. В местах с низким уровнем сигнала рекомендуется использовать активную антенну, но она в разы дороже пассивной. Я для своих целей использую пассивную антенну. Вот такую:

Активные антенны выглядят так:

Для того, чтобы запитать активную антенну, нужно подать на неё питание по сигнальному кабелю. К сожалению, GMM-U1 самостоятельно питание на антенну не подаёт, поэтому необходимо подключать питание к антенне, используя следующую схему:

Для подключения антенны к плате я изготовил такой кабель:

Здесь около 1 метра кабеля с волновым сопротивлением 50 Ом, к одному концу которого припаяна пассивная антенна, а к другому – SMA разъём.

Всё, модуль запаян, к нему подключена антенна. Подключим модуль по USB(или по UART через переходник) к компьютеру. После этого модуль должен опознаться как “GPS Receiver” и необходимо будет установить драйвер(можно скачать в конце статьи). Далее нужно в диспетчере устройств посмотреть, какой номер COM порта присвоился нашему GPS модулю:

Теперь можно запустить программу Mini GPS Tool и дождаться, когда модуль найдёт спутники:

Для устойчивого приёма данных я положил антенну на подоконник. Первый поиск спутников у меня занял примерно 20 минут, а после спутники обнаруживались не более чем за 10 секунд.

Для ускорения холодного старта можно использовать технологию AGPS. Для этого нужно загрузить специальный файл EPO в GPS модуль. Я для этого использовал программу AGPS Tool 1.07. Итак, запустим программу, настроим скорость и нажмем Scan. Через некоторое время программа обнаружит модуль (если конечно он подключен 🙂 ) и выдаст версию файла EPO:

Если она выделена красным, значить срок её действия истёк и нужно загрузить новую. Для этого жмём Download и, после того, как файл будет скачан, начнётся обновление баз AGPS. Во время этого отключать модуль от компа крайне не желательно. После завершения обновления появится вот такое сообщение:

Всё, теперь холодный старт будет происходить гораздо быстрее.

Для того, чтобы проверить достоверность данных, которые выдаёт нам модуль, я подключил его к программе Google Планета Земля. Для того, чтобы это сделать, нужно:

1)Установить программу, если она у Вас не установлена.

2)Открыв программу, нажать Инструменты-> GPS-> В реальном времени. Появится вот такое окошко:

Здесь нужно выбрать интервал опроса. Я поставил 1 секунду. И после этого нажимаем Пуск. Далее программа сама определит, к какому порту подключен модуль и на какой скорости он работает.

3) Выходим в главное окно программы и видим, что в левой колонке, в пункте Временные метки появился пункт RealTime GPS. Заходим в него, делаем двойной клик по Position и на карте появляется текущее местоположение:

Теперь поговорим о том, ка можно подключить модуль к микроконтроллеру. Сделать это можно посредством интерфейса UART. Так вот, сразу после включения, модуль начинает отсылать по UART строки с данными(протокол NMEA0183). Ниже приведу расшифровки этих строк.

Каждая строка начинается с символов $GP, далее идёт название строки, данные, а после всех данных стоит *, после которой идёт контрольная сумма. Данные разделяются между собой запятыми. Всего таких строчек 7. Также, посредством специальных команд их можно подключать или отключать. Об этом расскажу позже.

Итак, все строки по порядку.

 

1. $GPGGA,064951.000,2307.1256,N,12016.4438,E,1,8,0.95,39.9,M,17.8,M,,*65

  • GGA – название строки. Строка GGA содержит в себе время по UTC, позицию и данные о достоверности координат.
  • 064951.000 – время по UTC. 06:49:51.000
  •   2307.1256 – широта.
  • N – указывает, северная широта или южная. N – северная, S – южная.
  •  12016.4438 – долгота.
  • E – указывает, западная или восточная долгота. E – восточная, W – западная.
  •  1 —  указатель, говорящий о том, зафиксирована ли позиция. 0 – позиция неизвестна, 1 – позиция зафиксирована, 2 – позиция зафиксирована и используются данные DGPS.
  • 8 – количество используемых спутников. От 0 до 14
  • 0.95 – горизонтальная точность в метрах(HDOP).
  • 39.9 – высота над уровнем моря.
  • M – единицы измерения высоты. Метры.
  • 17.8 – геоидальное различие.
  • M – метры.
  • Время, прошедшее после последнего обновления данных DGPS. Отсутствует.
  • 65 – Контрольная сумма.

 

2. $GPGSA,A,3,29,21,26,15,18,09,06,10,,,,,2.32,0.95,2.11*00

  •  GSA – содержит информацию о точности определения координат и активных спутниках.
  • A – режим переключения между 2D/3D фиксацией. A – автоматический, M – Ручной.
  • 3 – режим фиксации. 1 – фиксация недоступна, 2 – 2D, 3 – 3D.
  • 29 – номер спутника, сигнал которого модуль принимает по 1 каналу.
  • то-же самое для второго канала
  • то-же самое для 12-го канала.
  • 2.32 – точность определения местоположения в метрах(PDOP)
  • 0.95 – горизонтальная точность в метрах (HDOP)
  • 2.11 – вертикальная точность в метрах(VDOP)
  • 00 – Контрольная сумма.

 

3.$GPGSV,3,1,09,29,36,029,42,21,46,314,43,26,44,020,43,15,21,321,39*7D

  • GSV – содержит информацию о видимых и используемых спутниках, их положении, качестве сигнала.
  • 3 – количество сообщений. Вся инфа не влезает в одно сообщение, поэтому приходят три сообщения.
  • 1 – номер сообщения. От 1 до 9.
  •  09 – количество видимых спутников.
  • 29 – номер спутника
  • 36 – высота спутника в градусах.
  • 029 – азимут истинный(спутника относительно антенны) в градусах.
  • 42 – отношение сигнал/шум(0-99). Если 0 – спутник не используется.
  • То-же самое для остальных спутников…
  • 7D – Контрольная сумма.

 

4.$GPRMC,064951.000,A,2307.1256,N,12016.4438,E,0.03,165.48,260406,3.05,W,A*2C

  • RMC – самое важное сообщение. Содержит информацию о местоположении, времени, дате, скорости.
  •  064951.000 – время по UTC. 06:49:51.000
  • A – достоверность данных. A – данные достоверны, V- данные не достоверны.
  • 2307.1256 – широта.
  • N – указывает, северная широта или южная. N – северная, S – южная.
  • 12016.4438 – долгота.
  • E – указывает, западная или восточная долгота. E – восточная, W – западная.
  • 0.03 – скорость относительно Земли(узлов в час).
  • 165.48  — курс(путевой угол).
  •   260406 – дата. 24.04.06.
  • 3,05,W – магнитное склонение. Отсутствует.
  • A – режим работы модуля. A – автономный, D – с использованием DGPS.
  • 2C –   Контрольная сумма.

 

5.$GPVTG,165.48,T,,M,0.03,N,0.06,K,A*37

  • VTG – информация о курсе и скорости относительно Земли.
  • 165.48 – курс(путевой угол).
  • T – данные достоверны.
  • M – точно не знаю что это за параметр, но в модуле GMM-U1 он недоступен.
  • 0.03,N – скорость(узлов в час).
  • 0,06,K – скорость(Км/Ч)
  • A – режим работы модуля. A – автономный, D – с использованием DGPS.
  • 37 —  Контрольная сумма.

 

6.$GPGLL, 2307.1256,N,12016.4438,E,182134.000,A,A*57

  • GLL – информация о местоположении, времени определения координат.
  • 2307.1256 – широта.
  • N – указывает, северная широта или южная. N – северная, S – южная.
  • 12016.4438 – долгота.
  • E – указывает, западная или восточная долгота. E – восточная, W – западная.
  •   182134.000 – время по UTC на момент определения координат.    18:21:34.000.
  • A – достоверные данные.
  • 57 – Контрольная сумма.

 

7. $GPZDA,182855.000,08,09,2011,,*56

  • ZDA – информация о времени по UTC, дате и локальном часовом поясе.
  • 182855.000 – время по UTC.   18:28:55.000.
  • 08,09,2011 – дата.  08/09/2011.
  • Локальный часовой пояс(смещение относительно UTC). В этом модуле почему-то отсутствует :(.
  • 56 —  Контрольная сумма.

 

Настройка модуля.

Для настройки модуля существуют специальные команды. Вот, например, команда горячего рестарта:

  • $PMTK101*32 

Рассмотрим подробно то, как формируются команды. Сначала идут символы $PMTK, после них идёт трёхзначный код команды(от 000 до 999), далее через запятую идут атрибуты команды(если есть), а потом контрольная сумма. После контрольной суммы нужно отправить ещё два байта: 0x0D и 0x0A. Без них команда не будет исполнена!

Контрольную сумму необходимо рассчитывать самостоятельно. Для того, чтобы получить контрольную сумму нужно провести побитовую операцию Исключающее ИЛИ(команда EOR в ассемблере) всех символов команды между знаками $ и *.

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

  • $PMTK251,4800*14 – 4800
  • $PMTK251,9600*17 – 9600
  • $PMTK251,14400*29 – 14400
  • $PMTK251,19200*22 – 19200
  • $PMTK251,38400*27 – 38400
  • $PMTK251,57600*2C – 57600
  • $PMTK251,115200*1F – 115200

Полный список команд можно найти в файле Commands.pdf, который лежит в архиве.

И на последок, расскажу о том, как перевести координаты, полученные по UART от модуля в формат, пригодный для ввода в Яндекс.Карты/Google Maps. Итак,  2307.1256,N  означает 23 градуса и 071256 минут. Необходимо вычислить 071256 минут/60. Далее (1187,6/10000)+23 = N23.11876. То-же самое делаем с долготой и получаем:

N23.11876

E12.27406 

Для Яндекс Карт нужно ввести в строку поиска сначала широту, а потом, после пробела, долготу, для Google Maps наоборот.

Файлы к статье: 

1)   Архив с драйвером, программой, платой, документацией.

2)  Программа AGPS Tool

 

radioelektr.ru

Exit mobile version