Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Недавно два совершенно разных мира сошлись в нашей лаборатории: мир недорогих радио-трансиверов и мир дорогущих систем записи широкополосных радио-сигналов.
Сначала к нам обратились наши хорошие друзья, чтобы сделать софт для записи сигнала полосой 500 МГц. Мы, конечно, не смогли отказать. Ведь нужно было сделать это на плате компании "Инструментальные Системы", которых я знаю давно. На заре инженерной деятельности мне пришлось работать с их железом и софтом.
А потом пришел дорогой товарищ mikkab из Шоу Дронов и попросил сделать систему позиционирования для дронов без GPS. Нужно, говорит, запускать шоу в помещениях. Да и на улице в наше время запускать в небо несколько миллионов денег на ненадежной GPS не очень хочется. Помехи и спуффинг спутниковой навигации процветают.
Для позиционирования без спутников с точностью лучше десяти сантиметров в зоне до километра я не нашел ничего, кроме технологии UWB. Уже давно на рынке есть компания DecaWave, которая выпускает микросхему DW1000 и модули на ее базе. Микросхема — СШП-трансивер стандарта IEEE 802.14.5-2011. К слову, штука уникальная, с двойным или даже тройным дном. Я надеюсь, мы сможем освоить ее глубины в следующие несколько лет и написать об этом. Раньше точно не успеть.
Но речь сегодня не о позиционировании, об этом в следующих сериях.
Сегодня мы делаем запись сигнала DW1000. А полоса этого сигнала ни много, ни мало, а 1000 или 500 МГц, что устанавливается номером канала. "Совершенно случайно" на соседнем столе стоял компьютер с платой FMC126P от "Инструментальных Систем" с FMC-мезанином AD9208-3000EBZ от Analog Devices.
Здесь следует отметить "для прокурора", что АЦП AD9208 является сегодня санкционной техникой. Легально купить его в Россию нельзя, хоть иногда и очень хочется. Но данный конкретный модуль был куплен очень давно, когда санкций еще не было. Он чист, как душа младенца. Надеюсь, это признание будет подшито к делу и зачтется подсудимому.
Не будем сейчас вдаваться в подробности разработки софта для записи потока отсчетов в память компьютера. Пока, к сожалению, мы не можем опубликовать исходный код приложения для Linux. Но надеемся добиться разрешения на это для следующего раза. Стоит только отметить, что это было непросто, даже с учетом предоставленных программных наработок Инструментальных Систем. Сам АЦП и система его тактирования и вывода отсчетов по технологиии JESD204B довольно сложны для понимания, так еще и в модуле от AD оказались необходимы аппаратные патчи. Сигнал REFCLK системе ввода нужен обязательно, а он на модуле заходит не на те ноги разъема FMС и, соответственно, не попадает на нужные ноги ПЛИС. Пришлось наложить патч, который можно увидеть на фото ниже — два красных провода. Были, конечно, сомнения в том, что это будет работать. Частота тактового сигнала высокая — 770 МГц, а патч ужасен. Но система справилась.
Вся кухня выглядит так.
Здесь можно заметить компьютер с хорошей системой ввода-вывода, плату FMC126P, мезанин AD9208-3000EBZ. Из генераторов: генератор 3000 МГц для тактирования АЦП, генератор 770 МГц для REFCLK. Кабели с разъемами SMA соединяют генераторы и подают входной сигнал.
Сырая скорость данных с выхода АЦП, если не мелочиться, составляет 12 ГБайт/с с двух каналов. По измерениям и по декларации производителя платы FMC126P максимальная скорость ввода составляется 5 ГБайт/с. Поэтому в АЦП мы использовали только один канал и пропускали его через встроенный в AD9208 DDC (Digital Down Converter) с децимацией на четыре. Таким образом, поток данных составил 3 ГБайт/с (частота дискретизации 750 МГц, 16 разрядный комплексный сигнал).
Проверка того, что система успевает записывать отсчеты очень простая: нужно просто контролировать залипающие биты статуса FIFO ПЛИС. Если за ночь не было ни одного события FIFO Overflow, то бит не будет взведен. И мы радостно констатируем, что потерь отсчетов не было. Предварительно мы, конечно, проверяем, что фиксация битов статуса работает. Форму сигнала также просматриваем из файла, чтобы убедиться, что качество снятия сигнала АЦП соответствует документации.
Но какой же сигнал будет достоин такой системы ввода? Конечно UWB с соседнего стола!
К счастью, для системы позиционирования дронов мы выбрали частоту канала 4 ГГц. Это соответствует каналам 4 и 2 в терминологии DW1000 (Figure 13 даташита). Мы сделали встроенную в плату антенну на эту частоту, или, лучше сказать, на этот диапазон. Согласовать ее в такой широкой полосе было непросто. Но штука получилась эротичная! Некоторые говорят, что похожа на символ… с ушками.
Сигнал 4 ГГц с полосой 500 МГц попадает в третью полосу Найквиста и имеет достаточные защитные интервалы, чтобы избежать наложения спектра. Поэтому мы просто подали сигнал DW1000 на вход АЦП AD9208 напрямую.
Мы получили два файла: один с частотой PRF равной 64 МГц, другой — 16 МГц. Скорость передачи была установлена минимальная для DW1000 — 110 кбит/с.
Это первый файл, это второй. Осторожно, файлы огромные!
В первом файле мы видим пакеты, длительностью около 750 отсчетов или 1000 наносекунд.
Во втором файле пакеты в четыре раза короче.
И это вполне соответствует стандарту IEEE 802.14.5-2011 в части физического уровня UWB:
Модуляция внутри пакета похожа на фазовую, что тоже соответствует указанной в стандарте BPSK. Сам стандарт вы сможете найти в Интернете, ищите "IEEE 802.14.5-2011".
Если немного расширить временное окно наблюдения, то видны и неравномерности следования пакетов, что соответствует описанию гибридной модуляции IEEE 802.14.5-2011 UWB — позиционно-фазовой (BPM-BPSK).
Вообще, я нахожу чип DW1000 и модуляцию этого UWB PHY бомбической, что бы это ни значило, штукой, на уровне военной JTIDS. Это мое новое увлечение. Продолжение следует!
С одной стороны, будем копать DW1000, с другой, будем разбираться со стандартом IEEE 802.14.5.