Pull to refresh

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

Reading time4 min
Views64K

Решил немного пропиарить свой проектик, ну и заодно рассказать о прекрасном GPS модуле от швейцарской компании u-blox.

Итак, ответ на вопрос, который возник после прочтения заголовка у людей, которые не знакомы с 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$ у китайцев.

Вот так выглядит сам модуль:



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


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

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


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

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

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

Ниже приведены скриношоты схематики и PCB:



Элементная база, которую я использовал вполне доступна в России. За исключением RF индуктивности 27nH, которую рекомендует производитель(впрочем сделанная своими руками работает не плохо).



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

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

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



Верхняя сторона печатной платы:



P.S. Да, снимал на калькуклятор. Да, колхоз. Да, много припоя.

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

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

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

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

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


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

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

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

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

Заключение


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

Источники:
Общая информация о модулях u-blox 7-го поколения;
Спецификация 14-ой ревизии протокола UBX.*.

*На момент написания статьи последней является 15-ая ревизия. Автор собирается имлементировать новые возможности протокола.

UPD: добавил DIY
Tags:
Hubs:
Total votes 24: ↑24 and ↓0+24
Comments33

Articles