GNU Radio поселили внутрь подводного модема на Zynq
Акустический фронтенд подводного модема формирует поток IQ в логике FPGA. Рядом, в том же Zynq-7020, ARM Cortex-A9 получает эти отсчёты и передаёт их прямо в GNU Radio под PetaLinux. Получается странно приятная конструкция: привычный граф приёмника и передатчика живёт внутри прибора, который обычно воспринимают как жёстко прошитый FPGA-модем.
Поток отсчётов остаётся внутри прибора
Подводная связь особенно болезненно сталкивает две скорости разработки. Физический тракт должен без пропусков принимать и выдавать отсчёты, выдерживать тактирование и интерфейсы фронтенда. Модуляцию, синхронизацию, фильтры и алгоритмы приёма хочется постоянно менять, сравнивать и собирать заново. Если каждый такой эксперимент превращается в переделку HDL или в передачу сырых данных по Ethernet на внешний компьютер, стенд быстро обрастает кабелями и отдельным DSP-приложением.
Авторы работы из Florida Atlantic University описывают другой путь. Программируемая логика Zynq обслуживает акустический фронтенд и выдаёт поток через AXI4-Stream. Блок AXI DMA переносит данные в память системы, где их забирают собственные блоки GNU Radio Source и Sink. Управляющие регистры вынесены в AXI4-Lite: из flowgraph доступны смещение NCO, полоса, частота дискретизации и усиление приёмника.
GRC превращается в панель настройки модема
Здесь важен сам маршрут данных. Ethernet и USB могут остаться интерфейсами наблюдения, настройки или выдачи результата, но не обязаны тащить непрерывный поток IQ к настольному ПК и обратно. В описанной авторами схеме ноутбук нужен, чтобы собрать или загрузить граф, а обработка во время работы выполняется в самом модеме.
Такое разделение хорошо ложится на устройство SoC FPGA. Логика PL делает работу, чувствительную к ритму выборок: принимает данные от фронтенда, обслуживает потоковый интерфейс и DMA. ARM в PS запускает Linux и GNU Radio, где удобно быстро менять структуру тракта. Появляется шанс проверять новую синхронизацию, эквалайзер или формат кадра без новой прошивки всей FPGA-части.
Красивый шаблон, которому ещё нужны измерения
GNU Radio Companion в этой архитектуре ближе к панели перекоммутации DSP внутри прибора, чем к программе на подключённом компьютере. Это переносимый приём и для измерительных систем: АЦП или ЦАП соединяются с FPGA-фронтендом, FPGA отдаёт непрерывные данные DMA, а встроенный Linux разбирает их графом обработки. Наружу уходят уже решения, спектры, пакеты или сжатые результаты.
Авторы заявляют демонстрацию обмена модулированными данными между двумя такими модемами, где передающий и приёмный тракты собраны в GNU Radio. Официальная карточка доклада подтверждает Zynq-7020, PetaLinux, AXI DMA, AXI4-Stream и AXI4-Lite, однако пока не содержит слайдов, статьи, схемы или репозитория. Поэтому неизвестны частота дискретизации, устойчивый поток IQ, загрузка ARM, задержка DMA и параметры самой акустической линии.
История ценна уже тем, что GNU Radio удалось встроить в тракт специализированного прибора без отдельного host-PC в пути отсчётов. Но у этой идеи есть инженерная граница: Cortex-A9 и планировщик Linux не заменят FPGA там, где нужны жёсткие сроки обработки каждого сэмпла. Насколько далеко авторы отодвинули эту границу, покажут только измерения переполнений, задержек и загрузки процессора. Пока подтверждена архитектура; её производительность остаётся открытым вопросом.