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

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

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

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

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

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

Схема взаимодействия компонентов_ веб-среда Engee, Engee Device Manager на ПК и РИТМ SDR USRP

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

Взаимодействие с РИТМ 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 [ ]:
include("ritm_sdr_core.jl")
✓ Библиотека клиента RITM SDR USRP готова

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

In [ ]:
@log_on
client = RITMClient("192.168.2.70")
!connect(client) && (@logmsg "Ошибка подключения"; return);
Логирование включено
✓ Подключено к 192.168.2.70:12345
In [ ]:
@logmsg "Версия сервера: $(get_version(client))"
Версия сервера: v5.1.5

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

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

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

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

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

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

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

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

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

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

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

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

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

In [ ]:
stop_transmission(client)
Out[0]:
true
In [ ]:
disconnect(client)
✓ Соединение закрыто
In [ ]:
close_log();
Лог-файл закрыт: logs/log_2026-02-27_13-48-07.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.

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