Документация Engee
Notebook

Начало работы с РИТМ SDR USRP

В данной статье рассматривается практический пример интеграции РИТМ SDR USRP со средой разработки Engee, через Engee.Интеграции представляющую собой программный интерфейс для управления высокопроизводительной программно-аппаратной платформой РИТМ SDR USRP. Данная платформа основана на связке СнК Xilinx Zynq UltraScale+ и радиочастотного трансивера ADRV9009. Она поддерживает работу в широком диапазоне радиочастот (от 75 МГц до 6 ГГц) с мгновенной шириной полосы частот до 450 МГц, что делает её идеальным инструментом для разработки и тестирования современных беспроводных систем.

Статья последовательно охватывает ключевые аспекты работы:

  1. Настройка сетевого соединения с РИТМ SDR USRP.
  2. Механизм сетевого взаимодействия через библиотеку Engee.Интеграции.
  3. Комплексное тестирование работоспособности основных функций.

Всё взаимодействие с устройством происходит через сетевой интерфейс. Архитектура соединения и обмена данными между ключевыми компонентами — веб-средой Engee, утилитой Engee.Интеграции на ПК и самой РИТМ SDR USRP — показана на схеме ниже. Как видно из схемы, в данном случае Targets.RITM_SDR_API является программной «прослойкой», позволяющей через TCP/IP взаимодействовать с РИТМ SDR USRP, которая, в свою очередь, подключена к компьютеру с предустановленным приложением Engee.Интеграции.

image.png

Настройка соединения

Взаимодействие с РИТМ SDR USRP реализовано через библиотеку Engee.Интеграции, предоставляющую функции для работы с сетевыми соединениями. Для пользователей доступны два варианта запуска Engee.Интеграции. В статье рассматривается его применение в ОС Windows:

  1. Графический интерфейс – запуск приложения через исполняемый файл engee-device-manager.exe.

Подключение.png
2. Командная строка – запуск из терминала с флагом -d для получения детальной информации о соединении: ./engee-device-manager.exe -d.

При использовании командной строки необходимо предварительно открыть терминал в папке с программой или перейти в неё. Режим с флагом -d обеспечивает расширенное логирование, что полезно для отладки соединения. Для запуска следует пользоваться оболочкой командной строки UNIX-подобной среды, например, Git Bash.

image.png

Для успешного подключения клиента к РИТМ SDR USRP необходимо предварительно настроить физическое соединение между ПК и устройством. Это выполняется в несколько шагов:

  1. Физическое подключение: используйте Ethernet-кабель для соединения сетевого порта ПК с портом PS ETH на отладочной плате.
image.png
  1. Настройка сети на ПК: вручную настройте сетевой интерфейс ПК, к которому подключена плата, указав следующие параметры:
    • IP-адрес: 192.168.2.1;
    • маска подсети: 255.255.255.0;
    • основной шлюз: не требуется (можно оставить пустым).
0170dabe-ea9f-4ebe-ae48-188963a8ddc6.png
  1. Адрес РИТМ SDR USRP: по умолчанию SDR-сервер на РИТМ SDR USRP ожидает подключений по IP-адресу 192.168.2.70 и порту 12345. Эти значения заданы как константы по умолчанию в клиенте.

Разбор основных функций  библиотеки под взаимодействие с РИТМ SDR USRP

Этот тест  нацелен на демонстрацию работы библиотеки под поддержку РИТМ SDR USRP и использует следующий набор функций: rf_switch_set_tx_fddtdd_sw1/2, is_ORX_DMA_transfer_end, receive_file_ORX_to_RAM, set_frequency, set_transceiver, set_tx_attenuation, set_ip_core, manual_calibrate_orx, agc_set_mode, get_temperatures, stop_transmission, disconnect.

In [ ]:
engee.package.install("Engee-Device-Manager") 
engee.package.start("Engee-Device-Manager") 
using Main.EngeeDeviceManager.Targets.RITM_SDR_API 
import Main.EngeeDeviceManager.Targets.RITM_SDR_API

Инициализация соединения с сервером SDR по адресу 192.168.2.70, после чего выполняется запрос версии серверного ПО.

In [ ]:
RITM_SDR_API.@log_on
client = RITM_SDR_API.RITMClient("192.168.2.70")
!RITM_SDR_API.connect(client) && (RITM_SDR_API.@logmsg "Ошибка подключения"; return);
Логирование включено
✓ Подключено к 192.168.2.70:12345
Автоматически создан лог-файл: logs/log_2026-05-25_10-55-28.log
In [ ]:
RITM_SDR_API.@logmsg "Версия сервера: $(RITM_SDR_API.get_version(client))";
Версия сервера: v5.1.5

Тестирование РЧ-коммутации: циклическое управление переключателями FDD(частотное разделение приёма и передачи)/TDD(временное разделение приёма и передачи), это соответственно SW1 и SW2.

In [ ]:
RITM_SDR_API.rf_switch_set_tx_fddtdd_sw1(client, true)
RITM_SDR_API.rf_switch_set_tx_fddtdd_sw2(client, true)
Out[0]:
true
In [ ]:
RITM_SDR_API.rf_switch_set_tx_fddtdd_sw1(client, false)
RITM_SDR_API.rf_switch_set_tx_fddtdd_sw2(client, false)
Out[0]:
true

Проверка каналов обратной связи (ORX): контроль состояния системы прямого доступа в память для обратного канала (DMA ORX), приём данных в ОЗУ РИТМ SDR USRP

In [ ]:
result = RITM_SDR_API.is_ORX_DMA_transfer_end(client)
Out[0]:
true
In [ ]:
RITM_SDR_API.receive_file_ORX_to_RAM(client, 1, 100)
Out[0]:
true

Конфигурация основных параметров: установка частоты 2400 МГц, выбор тракта TX1-передатчик или RX1-приёмник, настройка ослабления передатчика.

In [ ]:
RITM_SDR_API.set_frequency(client, 2400.0)
Out[0]:
true
In [ ]:
RITM_SDR_API.set_transceiver(client, 1, 1)
Out[0]:
true
In [ ]:
RITM_SDR_API.set_tx_attenuation(client, "TX1", 5.0)
Out[0]:
true

Работа с IP-ядром: запись тестового значения в регистр.

In [ ]:
RITM_SDR_API.set_ip_core(client, "0x80080114", "0x1")
Out[0]:
true

Калибровка ORX1 и настройка АРУ

In [ ]:
RITM_SDR_API.manual_calibrate_orx(client, "ORX1")
Out[0]:
true
In [ ]:
RITM_SDR_API.agc_set_mode(client, 0)
Out[0]:
true

Мониторинг температур:

  • RPU (Real-Time Processing Unit) - датчик температуры на процессоре реального времени R5
  • TRX (Transmitter-receiver) - датчик температуры на трансивере
  • PL (Programmable Logic) - датчик температуры на FPGA
In [ ]:
temps = RITM_SDR_API.get_temperatures(client)
for (dev, temp) in temps
    println("$dev: $(temp)°C")
end
RPU: 40.499125°C
TRX: 67.0°C
PL: 41.481371°C

Остановка передачи, закрытие соединения.

In [ ]:
RITM_SDR_API.stop_transmission(client)
Out[0]:
true
In [ ]:
RITM_SDR_API.disconnect(client);
✓ Соединение закрыто
In [ ]:
RITM_SDR_API.close_log();
Лог-файл закрыт: logs/log_2026-05-25_10-55-28.log

Вывод

В данной статье был представлен пример интеграции РИТМ SDR USRP со средой разработки Engee. В ходе работы были последовательно рассмотрены все ключевые этапы: от физического подключения устройства к ПК и настройки сетевого интерфейса до конфигурации соединения через Engee.Интеграции.

Конечным результатом стало успешное выполнение всех базовых функций, что на практике подтвердило корректность подключения, стабильность сетевого взаимодействия и готовность клиентской библиотеки к полноценному управлению аппаратной платформой РИТМ SDR USRP. В частности, была продемонстрирована работа таких функций, как: rf_switch_set_tx_fddtdd_sw1/2, is_ORX_DMA_transfer_end, receive_file_ORX_to_RAM, set_frequency, set_transceiver, set_tx_attenuation, set_ip_core, manual_calibrate_orx, agc_set_mode, get_temperatures, stop_transmission, disconnect.

Таким образом, представленный материал служит готовым пошаговым руководством, позволяющим инженеру быстро развернуть среду разработки, установить устойчивое соединение с устройством и приступить к работе с ним.