- PVSM.RU - https://www.pvsm.ru -

Модуль позиционирования на базе u-blox NEO-7M

Модуль позиционирования на базе u blox NEO 7M
Решил немного пропиарить свой проектик, ну и заодно рассказать о прекрасном GPS модуле от швейцарской компании u-blox [1].

Итак, ответ на вопрос, который возник после прочтения заголовка у людей, которые не знакомы с u-blox:

Почему u-blox?

Ответ:

  • Наличие GLONASS на борту
  • Хорошая доступная документация
  • Наличие собственного сервиса AGPS

Помимо этого есть еще поддержка, с которой мне даже успешно удалось пообщаться.

Немного о модуле:

Размеры: 12.2x16.0x2.4мм.
Конечно модуль великоват для мобильного телефона, но достаточно мал для автомобильного решения, или, например, квадрокоптера, а также комфортен для ручного монтажа на плату.
Спецификация GPS ресивера: 56-ти канальное ядро 7-го поколения от u-blox.
Поддерживаемые системы позиционирования: GPS L1 C/A, GLONASS L1 FDMA, QZSS L1 C/A, SBAS: WAAS, EGNOS, MSAS, Galileo E1B/C.
Galileo пока не запущен, но ввиду того, что есть возможность обновления прошивок, после полноценного запуска системы, я надеюсь будет, возможность ее использования.
Частота обновления данных: до 10 Гц.
Частоту можно менять програмно во процессе работы с модулем. По умолчанию 1Гц.
Точность:

  • GPS — до 2.5м
  • GLONASS — до 4м

Поддержка активных и пассивных антенн
Ничего необычного, просто факт. Правда именно у 7M нет возможности программно выключать питание активной антенны, поэтому если вы хотите энергосбережение нужно сделать одну из предложенных в документации схем аппаратного выключения извне.
Интерфейсы: UART, SPI, I2C, USB
UART и I2C работают одновременно, а вот SPI нужно железно муксить при помощи вывода D_SEL. Соответственно вы можете сделать управляемое переключение, например подключив GPIO к выводу D_SEL. Признаюсь честно я не проверял SPI, по скольку для моих целей UART намного удобнее. Да и в переключении протокола обмена «на лету» я не вижу великого смысла.
Цена: ~15$ у китайцев.

Вот так выглядит сам модуль:
Модуль позиционирования на базе u blox NEO 7M

Краткое содержание предыдущих 270 серий, или с чего все началось

В начале года я приобрел автомобиль, а в автомобиле без мультимедиа системы в нынешние времена вообще никак. Само собою вы можете сказать «Купи за 300$ у китайцев и не лезь!» Но я же инженер и мне интересно сделать что-то самому, разобраться в технологиях. Опыт разработки автомобильных мультимедиа систем у меня уже имеется, правда не с 0, тем интереснее было попробовать. Впрочем, это другая история, о ней поведаю в следующий раз. Теперь о главном — ниодна мультимедия система не обходится без навигации. Отсюда вывод — нужно иметь GPS модуль, карту, маршрутизацию, блэкджек и поэтесс.

PCB или как это было в первый раз

Как оказалось при ближайшем рассмотрении, PCB дизайн не так уж и сложен, как кажется на первый взгляд. Все чем приходится пользоваться сопровождается обильным количеством документации с типовыми схемами и пояснениями. Справедливости ради, я не смотрел на документацию других вендоров, потому что после изучения предложенной u-blox, был удовлетворен более чем.

В результате моих изысканий получился, на мой неискушенный взгляд, вполне себе нормальный PCB дизайн. Схемы можно скачать отсюда [2]. Там же располагаются готовые к печати .pdf файлы, для дальнейшего использования в ЛУТ'е.

Я готов выслушать критику, потому что серьезно радиотехникой никогда не занимался — отсюда возможны ошибки, даже грубые. Все схемы я делал в Eagle Cad Soft. Инструмент для меня оказался очень удобным, "+" ко всему огромное количество готовых библиотек с широким выбором различных элементов, которые делает сообщество.

Ниже приведены скриношоты схематики и PCB:
Модуль позиционирования на базе u blox NEO 7M
Элементная база, которую я использовал вполне доступна в России. За исключением RF индуктивности 27uH, которую рекомендует производитель(впрочем сделанная своими руками работает не плохо).

Модуль позиционирования на базе u blox NEO 7M
PCB возможно не удовлетворяет некоторым требованиям предъявляемым к таким схемам, по этому поводу снова буду не против получить отзывы.

Снимать процесс изготовления печатной платы и пайки элементов у меня не было никакого желания, поэтому могу предложить только конечный
вариант, если кому-то интересно по аббревиатуре ЛУТ находится огромное количество замечательных видео на youtube.

После травления и пайки получилась вот такая вот платка:

Модуль позиционирования на базе u blox NEO 7M
Верхняя сторона печатной платы
Модуль позиционирования на базе u blox NEO 7M
P.S. Да, снимал на калькуклятор. Да, колхоз. Да, много припоя.

На нижней стороне платы имеется 5 выводов:

  • 2 вывода UART помеченые как «Rx» «Tx»
  • 2 вывода I2C помеченые как «SDA» «SCL»
  • 1 контакт для сигнальной «земли»

Также есть SMA — female разъем для подключения активной/пассивной антенны.

На верхней строне есть одинокий пин 3.3В. Он не был запланирован и не был разведен на PCB изначально, отсюда получился висящий в воздухе конденсатор.
Отмечу еще, что это вторая ревизия платы, и где-то в недрах гита скрывается первая, без питания LNA. Ну и, как мог заметить внимательный читатель, текущая плата немного не соответствует схематике и PCB.

Пару слов о антенне — я использую активную антенну, заказанную у всех тех же китайцев за ~8$. Была попытка сделать свою собственную, но теоретической базы, наравне с элементной, пока не хватает чтобы сделать активную антенну приемлемого качества.

К чему я все это написал

Теперь поведу себя немного несдержанно и перейду к самопиарной части. Помимо чудо-платы, которая надо сказать была не самой трудоемкой частью процесса, я написал тонну-другую кода (а если быть точным комментариев к нему).

У u-blox есть свой собственный бинарый протокол, который наравне с NMEA умеет отдавать данные о местоположении, и многое другое. В общем-то не долго думая я сделал С-библиотечку [3] для UBX протокола*.

Написание doxygen комментариев отняло уйму времени, но всеже я осилил [4].

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

Заключение

В заключении хочу добавить: все о чем написано выше успешно работает в связке с PC и Cubieboard. Естественно, не все
оттестировано, но у меня пока не хватает рук к сожалению.
Основной недостаток этого модуля заключается в том, что GPS и GLONASS не могут работать одновременно. Приходится програмно переключаться между ними. Скорее всего та же учесть ждет Galileo.

Источники:
Общая информация о модулях u-blox 7-го поколения [5]
Спецификация 14-ой ревизии протокола UBX.* [6]
*На момент написания статьи последней является 15-ая ревизия. Автор собирается имлементировать новые возможности протокола.

Автор: semlanik

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/gps/67907

Ссылки в тексте:

[1] u-blox: http://www.u-blox.com

[2] отсюда: https://git.semlanik.org/semlanik/openautomotive/tree/master/schematic

[3] С-библиотечку: https://git.semlanik.org/semlanik/ubxproto

[4] осилил: http://semlanik.org/ubxproto/index.html

[5] Общая информация о модулях u-blox 7-го поколения: http://www.u-blox.com/images/downloads/Product_Docs/NEO-7_ProductSummary_%28GPS.G7-HW-11003%29.pdf

[6] Спецификация 14-ой ревизии протокола UBX.*: http://www.u-blox.com/images/downloads/Product_Docs/u-blox7-V14_ReceiverDescriptionProtocolSpec_Public_%28GPS.G7-SW-12001%29.pdf

[7] Источник: http://habrahabr.ru/post/233925/