Модуль позиционирования на базе u-blox NEO-7M
Решил немного пропиарить свой проектик, ну и заодно рассказать о прекрасном GPS модуле от швейцарской компании u-blox.Итак, ответ на вопрос, который возник после прочтения заголовка у людей, которые не знакомы с u-blox:
Почему u-blox?
Ответ: Наличие GLONASS на борту Хорошая доступная документация Наличие собственного сервиса AGPS Помимо этого есть еще поддержка, с которой мне даже успешно удалось пообщаться.Немного о модуле: Размеры: 12.2×16.0×2.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, USBUART и 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 индуктивности 27uH, которую рекомендует производитель (впрочем сделанная своими руками работает не плохо).
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-ая ревизия. Автор собирается имлементировать новые возможности протокола.