Пост-призер новогоднего NUCо-конкурса Intel.
Возникла необходимость создания портативного приемопередатчика, предназначенного для цифровой обработки и формирования ВЧ сигналов в реальном времени, для обучения практикантов основам анализа спектра и цифровой обработке сигналов.
Вот как мы решили эту задачу.
Одни из основных требований, предъявляемые к приемопередатчику:
- программное обеспечение для работы с приемопередатчиком (пользовательский интерфейс) должен работать под управлением ОС Windows;
- удаленное управление по сети (следует из первого пункта);
- портативность (возможность взять устройство домой).
За основу был взят SDR-трансивер USRP B200 от Ettus Research. По своим радиочастотным параметрам он нам полностью подошел, и, что самое главное, он у нас был и не один.
Однако, с его применением возникли несколько неприятных проблем:
- Софт, который работает с этим трансивером под Windows, либо платный, либо неудобный, либо его невозможно доработать под собственные нужды.
- Софт, который нас полностью устраивает (конкретно, GNU Radio) АДЕКВАТНО работает только под LINUX.
- Сам трансивер имеет интерфейс управления USB 3.0, что лишает возможности удаленного управления. Конечно, можно приобрести и сетевую версию трансивера, но приемники-то уже есть.
Итак, поразмыслив немного, было принято решение использовать мини-ПК с установленной Ubuntu и GNU Radio, на котором будет осуществляться непосредственно обработка данных с трансивера. Пользовательский интерфейс будет работать под Windows с удаленным управлением и получением обработанных данных по сети.
Требования к мини-ПК:
- наличие USB 3.0 для связи с трансивером;
- сеть 1 Гб/с, на случай если возникнет необходимость передавать сырые данные с трансивера;
- габаритные размеры.
Одноплатники на базе ARM отбросили сразу, не в каждом магазине их можно найти (необходимо заказывать), да и не хотелось связываться с ARM, т.к. уже имелись наработки с х86.
Подумав, выбрали Intel NUC NUC6CAYH (цена на момент покупки ~ 10 т.р). Докупив 4 Gb RAM, SSD на 60 Gb, мы получили полноценный ПК.
Чтобы не бояться убить приёмник решено сразу разместить всё в корпусе. Под рукой оказался кейс Explorer 2712. Да еще и ударопрочный!
Сборка макетного образца:
Intel NUC NUC6CAYH пришлось освободить от корпуса для удобства монтажа на несущую пластину, и чтобы занимал меньше места.
Кабельные сборки с SMA на N-типа, а также разъем питания, светодиод, кнопку и разъем RJ-45, выходящие наружу, пришлось докупать. Монтажная пластина выполнена методом лазерной резки. Блок питания, идущий в комплекте с Intel NUC пришлось немного доработать, чтобы разместить внутри кейса.
И вот что получилось:
Спектр решаемых задач полученного приемопередатчика достаточно большой.
При работе по VNC доступно:
- GNU Radio (для разработки потоковых графов);
- gr-fosphor (RTSA-spectrum);
- gqrx (SDR-receiver);
- При работе по SSH доступно удаленное управление:
- YateBTS;
- GNU Radio (для запуска скомпилированных скриптов);
- наборами утилит для захвата сырых данных с приемника.
Заключение
На фото представлен макетный образец, разработанный еще в 2018 году. На данный момент успешно функционирует уже несколько таких приемопередатчиков (Фото остальных, к сожалению, нет). В будущем планируется разработка приемопередатчика с автономным питанием от АКБ, что не грозит большими проблемами, т.к. заявленная расчетная мощность Intel NUC NUC6CAYH составляет всего 10 Вт при напряжении питания 12-19 В.
Разработчики: Дмитрий Сергеев aka dimserg92 и Александр Шкарлатов aka CrazyAlex25.
a_freeman
Ребят, чет совсем не густо: несколько фотографий и идея "мы скрутили NUC с SDR transceiver" на статью это очень мало.
Что можно с этим сделать? Какие то клёвые проекты вроде реалтайм передачи HD видео по воздуху можно запустить на этом? Какие продукты вообще бывают, которые на такое способны? В общем "недожег или пережег это нарушение режима отжига" ©
CrazyAlex25 Автор
В первую очередь проект был создан для обучения основ цифровой обработки сигналов. Сам SDR способен на многое (как пример gr-fosphor (RTSA-spectrum)- реалтайм анализатор, yateBTS == fakeBTS). На что фантазии хватит в GNU Radio.
a_freeman
Вот об этом и надо писать :) yateBTS, как поднять свою GSM сеть, как сделать p2p распределенную сеть без базовой станции вообще, помехоустойчивость и шифрование, вот это все!
CrazyAlex25 Автор
Статья про другое: как не дорого и быстро организовать тренажер для людей далеких от linux и всевозможных настроек софта. SDR позволяет сформировать любой сигнал, который можно исследовать на анализаторе. В GNURadio можно играться с параметрами сигнала и наглядно смотреть на что всё это влияет. Да даже просто записать сигнал автомобильного брелка и потом его воспроизвести уже вызывает интерес у людей. А учиться на AM\FM модуляции это скучно.
С помощью gr-fosphor можно увидеть WiFi и LTE, увидеть на сколько коротки посылки. Не каждый анализатор спектра успеет зафиксировать это.
А статей на тему "как поднять свою базовую станцию" и на хабре хватает, я ничего нового не расскажу.
DarkMike
А где в статье про этот софт? Про компоновку железа в корпусе увидел, а что с софтом так и не понял.
Да, и логику нам нужна винда поэтому автоматически нужно управление по сети совсем не понял. Не могли бы пояснить? Мне казалось логичным в случае винды иметь встроенный монитор.
CrazyAlex25 Автор
Изначально монитор планировался. Но от него решили отказаться (монитор с сенсорным управлением дюймов на 7-10 стоит дорого). Так же рассматривался вариант с планшетом. В корпус всё это не влезает и изначально автономность не нужна.
Поэтому эту роль выполняет NUC. На нём установлена Ubuntu 18.04 + набор софта (uhd-host, gnuradio, python, vnc-server, и тд...). Пользователи подключаются с виндовой машины к NUC по VNC (GUI) или ssh (CLI) и беспроблемно работают с ПО.
Почему на самой винде не получилось: основным костяком системы является GNURadio. Есть сборки под винду. Но у нас периодически отваливался приемник, и поэтому приходилось убивать процесс через диспетчер. yateBTS существует только под linux (как впрочем и другие проекты по реализации BTS).
dimserg92
Да, с тем, что мы не добавили описание используемого софта, действительно косяк. Спектр применения достаточно обширный получился, но относится это не к NUC-у, а конкретно к SDR железу, потому и «недожгли».
Необходимость винды основана на достаточно банальных причинах: Многие пользователи просто впадают в ступор при виде linux-а.
По поводу управления по сети: Проект создавался в том числе для обучения практикантов построению GSM сетей. Отсюда и управление по сети, для удаленного изменения конфигураций одной или нескольких территориально разнесенных базовых станций (Смены параметров MCC, MNC, ARFCN и т.д.).
ua3ilr
«Многие пользователи просто впадают в ступор при виде linux-а»
Сейчас полно линуксов с гуем, идентичным разным поколениям винды.