Сегодня зарождающиеся отрасли воздушных и наземных беспилотных средств требуют надежного высокоточного позиционирования. Приложения на мобильных устройствах также требуют более высокой точности позиционирования. Эти средства должны быть малогабаритными, малопотребляющими и дешевыми. До сегодняшнего момента существовал разрыв между этими новыми требованиями и характеристиками продуктов и ценами. Гиганты навигационной отрасли не хотели или не могли предложить продукты с требуемыми свойствами.
Сейчас ситуация начинает стремительно меняться.
Грубо говоря, высокоточным называется позиционирование с точностью до сантиметров. Эта задача может решаться в локальной зоне, то есть, с опорой на некоторые базовые станции, а может без опоры, то есть в глобальном масштабе. Каждая из этих задач может решаться в реальном времени или по записи, то есть в отложенном режиме. Основная проблема, которую преодолевают на пути к точности, физическая — нестабильность задержки электромагнитной волны в ионосфере. Для компенсации ионосферной погрешности, которая доходит до двух метров, используют либо одновременный прием сигнала спутника на разных частотах, либо поправки с базовых станций при приеме на одной частоте. Основное преимущество двухчастотного приемника в отсутствии необходимости сети базовых станций. Естественно возможно смешение технологий, то есть, например, двухчастотная система с использованием поправок с базовой станции, где двухчастотность используется для ускорения сходимости навигационного решения и для увеличения его надежности при изменении доступности сигналов спутников.
Аппаратная часть высокоточных приемников, в том числе многочастотных и многосистемных, отрабатывалась десятилетиями и ее себестоимость невелика. Большие килобаксы, которые сегодня стоят двухчастотные приемники от лидеров рынка, в основном получаются за отработанный софт.
Несмотря на то, что основная сложность высокоточного оборудования лежит в программной плоскости, все началось с аппаратного упрощения. Минская компания НТЛаб разработала и запустила в серийное производство микросхему NT1065 — многосистемное многочастотное радиоприемное устройство. Грубо говоря, эта штука превращает сигналы с одной или нескольких антенн, количеством до четырех, в цифровые отсчеты. Она перекрывает все существующие и запланированные частотные диапазоны спутниковых навигационных систем. Эти системы и частоты подробно перечислены здесь.
Вариант частотного плана NT1065
После вводной части о примерах новых средств для высокоточного позиционирования, я расскажу об опыте проектирования устройства на NT1065.
Как водится, сначала в эту авантюру полезли начинающие компании. Я не знаю, кто точно был первым из этих двух, назову в порядке, в котором заметил их анонсы. Первая — Swift Navigation, компания начинающая, но уже изрядно подрощенная. Она занимается RTK-решениями ( RTK — это высокоточная система позиционирования в реальном времени с использованием базовых станций), начинала на Кикстартере с open-source одночастотным устройством RTK. Сегодня они предлагают устройство Piksi Multi, которое работает в диапазонах L1 и L2 и обеспечивает сантиметровую точность всего за 595 долларов. За сумму менее 2000 долларов можно взять два комплекта с RTK-антеннами и системой связи для передачи поправок. Я думаю, это очень беспокоит гигантов рынка.
Вторая компания — Tersus GNSS. Платы приемников на вид не отличаются от плат Swift Navigation, просматривается тот же FPGA Zync. Также есть наборы с антеннами и системой связи. Здесь больше красочных описаний новых возможностей, которые предоставляет оборудование для беспилотных тракторов и коптеров. У них есть вариант приемника с двумя антеннами для построения угломерных высокоточных приемников. Такие приемники точно вычисляют истинный курс транспортного средства, что не всегда нужно, но вычислить его другими средствами очень непросто.
Таким образом эти две компании потихоньку отъедают кусок пирога гигантов отрасли, а те пока почивают на лаврах. Обе фирмы не раскрывают радио-микросхему, примененную в технике и сделавшую возможным такое быстрое вхождение на рынки гигантов, но по габаритам устройств можно понять, что это именно NT1065.
Спустя несколько месяцев до гигантов отрасли дошло, что, если они уже и разрабатывают что-то революционное, то настало время это все анонсировать, иначе все просто станут считать, что они выбыли в неизвестном направлении и перестанут заглядывать на их сайт.
Компания Trimble анонсировала изделие Catalyst. Они сразу ухватили суть революционного процесса — возможностей получать прибыли на железе будет все меньше. Поэтому они сделали точность позиционирования службой, сервисом. Пользователю достаточно будет купить за 350 долларов железяку и платить месячную плату за точность тогда, когда это нужно. От метровой точности за 40 баксов с месяц до сантиметровой за 350. При этом их железяка уже содержит антенну и подключается прямо к мобильному устройству по USB. Якобы железяка только передает оцифрованный сигнал, а смартфон или планшет выполняет программный приемник (SDR — software defined receiver). Непонятно, как они это делают, большой комп затыкается от навигационного SDR. Они пишут про некие особенные мобильные устройства, на которых должен работать их софт. Один знаток средств вычислений на GPU сказал, что это может быть OpenCL на мобильных устройствах (я не нашел много информации, если кто-то знает, прошу поделиться). Но это уже настоящая революция! Они хоть и не первые, но шансов получить первенство у них с такой штукой гораздо больше, чем у первых двух.
У Trimble наверняка есть свои решения для радиоприемной микросхемы, но вполне возможно, что им было выгоднее тоже поставить NT1065. Хотя есть посчитать деньги, то получится, что сделать такой РПУ на рассыпухе будет дешевле. Но лень — двигатель прогресса. Все стояло на месте, пока не появился чип, который очень просто запрячь в телегу.
Приступим к изготовлению главного оружия революции. Основных ингредиентов два — спирт и вода NT1065 и USB3 контроллер CYUSB3014. С последним многие сталкивались на всяких SDR-платах и если делали любой высокоскоростной ввод в компьютер. Штука не очень проста для начинающего, но если разобраться, то можно подключать к компьютеру любые источники скоростного потока. О ней, при надобности, читатель может поискать в сети. Основная для этой затеи вещь — интерфейс GPIFII этого контроллера, который позволяет без дополнительных компонентов подключать источники высокоскоростного потока.
Рассмотрим, что же это за зверь — NT1065? Какие горизонты раскрывает для себя разработчик, имея такую штуку? Насколько проста она в освоении?
В целом, это вот такая штука:
Четыре канала приема с отдельными входами и два гетеродина, которыми можно гибко записать смесители каналов. Вывести сигналы можно в цифровом и в аналоговом виде. Таким образом, можно реализовывать как настройку каждого канала на свой сигнал (с некоторыми ограничениями), так и синхронный прием одного сигнала на разнесенные антенны или антенную решетку.
Теперь пройдемся по деталям. На первый взгляд, странно сделан подвод питания — только одну ногу микросхемы. Но при разводке эта странность превратилась в тыкву преимущество. Хотя в даташите эти парни рекомендуют четыре слоя, я легко уложился в два! С любой мало-мальски ногастой буржуйской микросхемой такое у меня не получалось.
Далее, они в даташите рекомендуют разделять земли каждого канала, чтобы переходные затухания были больше. Я даже почти убился и сделал такой вариант, но значительного увеличения развязки каналов не увидел. То ли измерял не так, то ли сделал неправильно. В общем, лучшее враг хорошего.
Итак, питание от 2.8 до 3.3 Вольт, ток всего-то 100 мА максимум. Правда надо выбирать источник питания с малыми шумами. DCDC здесь не подойдет. Опорный генератор тоже нужен малошумящий, с хорошей стабильностью частоты и температурно-компенсированный. Стандартные настройки поддерживают номиналы 10 МГц и 24.84 МГц. Чтобы использовать другой номинал частоты опорника, надо обратиться к разработчикам.
Выходной интерфейс тоже очень простой — такты и данные. Разрядов АЦП в каждом канале всего два, знак и магнитуда, что ввело меня на короткое время в состояние чванства (я на последней работе привык к 16-ти разрядам), но этого оказалось вполне достаточно. Зато частота дискретизации — до 100 МГц. Заводим такты на тактовый вход интерфейса GPIFII контроллера CYUSB3014, а данные на вход данных. Надо еще завести SPI для управления и аккуратно, под руководством даташита, сделать разводку и согласование импедансов на входе РПУ и наган готов.
У НТЛаба на сайте есть полная схема подобной платы.
С софтом еще проще, принять поток от Cypress FX3 на любой ОС очень просто: и под виндоуз, и под линукс можно использовать libusb. Под виндоуз также можно использовать родной драйвер от Cypress — никакой разницы.
На данный момент у меня есть набор софта (выложен на GitHub, ищите по слову NT1065).
Основной инструмент — это пара программ. Одна из них умеет надежно регистрировать на диск непрерывный сигнал с чипа, а вторая подходит для диагностики и демонстраций.
Есть возможность посмотреть спектр входного сигнала (можно подать сигнал с генератора, у кого есть).
После подключения антенны простыми методами можно обнаружить сигналы спутников.
Причем не только GPS, а также ГЛОНАСС на частоте L1. И даже ГЛОНАСС на частоте L2! В отличие от американцев, наши передают открытый код стандартной точности и на L2 тоже.
Чтобы прямо из программы можно было выбирать GPS/GLONASS L1/L2 и видеть корреляцию — это я на днях встрою, там дел на полчаса (сейчас ручками код правлю для каждого случая).
Сейчас идет работа над Android-версией.
Теперь ваши возможности покорить мир ограничены только вашей способностью придумать и реализовать революционное устройство для спутниковой навигации!
P.S.
Эта статья является продолжением предыдущей в том смысле, что здесь рассмотрены средства, которые будут применяться для борьбы с помехами навигационным приемникам, о чем скоро надеюсь написать на Хабре.
Что мне лично остается неясным: как же это Trimble делает навигационный SDR на мобильнике? Я сначала посчитал это невероятным, но потом мне прислали табличку, где указана производительность современных вычислителей мобильных устройств. Поэтому я хочу расспросить народ об OpenCL-подобных технологиях для мобильных устройств. Есть кто-то, кто пользовался ими? Теоретическую производительность в попугаях я нашел, а нет ли где тестов мобильных GPU в таких задачах как, например, FFT?
Прошу прощения, предыдущий абзац про Trimble и OpenCL может быть непонятен, потому что текст про Trimble выше под спойлером, как возможно скучный. Если кому стало интересно, прочитайте вверху.
Ну и плакат довольно агрессивен и не точно соответствует указанному в заголовке периоду истории России. Чего же не сделаешь для красного словца?
Автор: itsar