Недавно я прочитал статью, в которой автор пророчит нам веселое, но светлое будущее. Кроме всего прочего, он говорит дословно следующее: «Если мы ничего не можем поделать с тем, что государство следит за нами, мы должны иметь право следить за ним». Замечательный тезис! Даешь гонку радио-вооружений! В правовых вопросах мне предложить нечего, а вот в плане техники можно внести свою малую толику. Дело, конечно, не только в радио. Есть много других информационных и технических средств, которыми надо обладать для такой слежки. Я сосредоточусь на радио-технических, так как это мне ближе по профессии. Вы, возможно, уже читали про демонов и про робингудов. Продолжая работу в этом направлении, хочу рассказать о новой плате SDR-приемника. Она построена на всем известных однокристальном трансивере AD9363(4) и USB3-контроллере CYUSB3014.  Кто-нибудь обязательно захочет забросать меня камнями за изобретение велосипедов. Если дочитаете до конца, то — милости просим. Цель разработки платы — создать приемник со следующими свойствами: Первые три пункта стали возможными благодаря способности CYUSB принимать данные от сложных источников. Таким образом, мы можем избавиться от FPGA на выходном интерфейсе микросхемы трансивера. AD9364 с режиме Dual Port Full Duplex выдает данные, клок и сигнал FRAME, по которому синхронизируются квадратурные составляющие выходного цифрового сигнала.  Временные диаграммы:  К счастью, интерфейс GPIFII микросхемы CYUSB3014 при определенной настройке может опираться на сигнал типа FRAME для синхронизации квадратурных составляющих. Надо лишь завести его в схему GPIFII и заставить ее ждать первого фронта FRAME и потом уже не обращать на него внимания. В диаграмме состояний GPIFII это выглядит так:  Передающий тракт трансивера выключаем, нам нужен только приемник. Его и нельзя завести напрямую в CYUSB, так как в контроллере есть баг, который проявляется только при работе на передачу и который можно исправить только с помощью FPGA. Схема вот такая, очень простая:  Четвертый пункт, широкий диапазон частот, обеспечивает сам трансивер. И мы ему не мешаем — не ставим там никакого трансформатора. Чудно, но таким образом мы получаем возможность подключить симметричную антенну прямо ко входу приемника. Всегда можно, пожертвовав характеристиками, поставить в одно плечо 50 Ом и подключить обычную антенну.  Большая полоса приема обеспечивается интерфейсом USB3. Контроллер CYUSB3014 достигает скорости передачи данных 400 МБайт/с, что соответствует 100 МГц полосы 16-ти разрядного квадратурного сигнала. Это даже больше, чем может выдать приемник. Разъемы внешней опоры и синхронизации сделаны сбоку, на переднем крае не поместились. Разъем внешней синхронизации понадобится для местоопределения помех, за которыми надо следить.  Ну и поддержка GNURadio обеспечивается руками и головой программиста. Ну и немножко задницей, конечно. Софт смотрите здесь и здесь. По первой ссылке C++ библиотека, работающая с платой через libusb и дающая интерфейс для управления настройками AD9364 и ввода отсчетов. Библиотека реализует загрузку firmware, передачу команд в регистры AD9364 и получение отсчетов сигнала. По второй ссылке форк GR-OSMOSDR, который упрощает включение новых плат в GNURadio. Здесь был добавлен блок Source для новой платы. В результате получаются некоторые картинки спектра: 
 Теперь можно воткнуть плату в планшет и вот так красиво мониторить эфир.  P.S. На основе схемотехники этой платы сейчас разработан SDR-модуль для Jetson TX2. В следующий раз напишу про него.  радио-инженер