Начало работы с РИТМ SDR USRP
В данной статье рассматривается практический пример интеграции РИТМ SDR USRP со средой разработки Engee через библиотеку ritm_sdr_core.jl, представляющую собой программный интерфейс для управления высокопроизводительной программно-аппаратной платформой РИТМ SDR USRP. Данная платформа основана на связке СнК Xilinx Zynq UltraScale+ и радиочастотного трансивера ADRV9009. Она поддерживает работу в широком диапазоне радиочастот (от 75 МГц до 6 ГГц) с мгновенной шириной полосы частот до 450 МГц, что делает её идеальным инструментом для разработки и тестирования современных беспроводных систем.
Статья последовательно охватывает ключевые аспекты работы:
- Настройка сетевого соединения с РИТМ SDR USRP.
- Механизм сетевого взаимодействия через библиотеку Engee.Интеграции.
- Комплексное тестирование работоспособности основных функций.
Всё взаимодействие с устройством происходит через сетевой интерфейс. Архитектура соединения и обмена данными между ключевыми компонентами — веб-средой Engee, утилитой Engee.Интеграции на ПК и самой РИТМ SDR USRP — показана на схеме ниже. Как видно из схемы, в данном случае ritm_sdr_core.jl является программной «прослойкой», позволяющей через TCP/IP взаимодействовать с РИТМ SDR USRP, которая, в свою очередь, подключена к компьютеру с предустановленным приложением Engee.Интеграции.
.png)
Настройка соединения
Взаимодействие с РИТМ SDR USRP реализовано через библиотеку Engee.Интеграции, предоставляющую функции для работы с сетевыми соединениями. Для пользователей доступны два варианта запуска Engee.Интеграции. В статье рассматривается его применение в ОС Windows:
- Графический интерфейс – запуск приложения через исполняемый файл
engee-device-manager.exe.
.png)
2. Командная строка – запуск из терминала с флагом -d для получения детальной информации о соединении: ./engee-device-manager.exe -d.
При использовании командной строки необходимо предварительно открыть терминал в папке с программой или перейти в неё. Режим с флагом -d обеспечивает расширенное логирование, что полезно для отладки соединения. Для запуска следует пользоваться оболочкой командной строки UNIX-подобной среды, например, Git Bash.
.png)
Для успешного подключения клиента к РИТМ SDR USRP необходимо предварительно настроить физическое соединение между ПК и устройством. Это выполняется в несколько шагов:
- Физическое подключение: используйте Ethernet-кабель для соединения сетевого порта ПК с портом PS ETH на отладочной плате.
- Настройка сети на ПК: вручную настройте сетевой интерфейс ПК, к которому подключена плата, указав следующие параметры:
- IP-адрес: 192.168.2.1;
- маска подсети: 255.255.255.0;
- основной шлюз: не требуется (можно оставить пустым).
- Адрес РИТМ 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.
include("ritm_sdr_core.jl")
Инициализация соединения с сервером SDR по адресу 192.168.2.70, после чего выполняется запрос версии серверного ПО.
@log_on
client = RITMClient("192.168.2.70")
!connect(client) && (@logmsg "Ошибка подключения"; return);
@logmsg "Версия сервера: $(get_version(client))"
Тестирование РЧ-коммутации: циклическое управление переключателями FDD(частотное разделение приёма и передачи)/TDD(временное разделение приёма и передачи), это соответственно SW1 и SW2.
rf_switch_set_tx_fddtdd_sw1(client, true)
rf_switch_set_tx_fddtdd_sw2(client, true)
rf_switch_set_tx_fddtdd_sw1(client, false)
rf_switch_set_tx_fddtdd_sw2(client, false)
Проверка каналов обратной связи (ORX): контроль состояния системы прямого доступа в память для обратного канала (DMA ORX), приём данных в ОЗУ РИТМ SDR USRP
result = is_ORX_DMA_transfer_end(client)
receive_file_ORX_to_RAM(client, 1, 100)
Конфигурация основных параметров: установка частоты 2400 МГц, выбор тракта TX1-передатчик или RX1-приёмник, настройка ослабления передатчика.
set_frequency(client, 2400.0)
set_transceiver(client, 1, 1)
set_tx_attenuation(client, "TX1", 5.0)
Работа с IP-ядром: запись тестового значения в регистр.
set_ip_core(client, "0x80080114", "0x1")
Калибровка ORX1 и настройка АРУ
manual_calibrate_orx(client, "ORX1")
agc_set_mode(client, 0)
Мониторинг температур:
- RPU (Real-Time Processing Unit) - датчик температуры на процессоре реального времени R5
- TRX (Transmitter-receiver) - датчик температуры на трансивере
- PL (Programmable Logic) - датчик температуры на FPGA
temps = get_temperatures(client)
for (dev, temp) in temps
println("$dev: $(temp)°C")
end
Остановка передачи, закрытие соединения.
stop_transmission(client)
disconnect(client)
close_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.
Таким образом, представленный материал служит готовым пошаговым руководством, позволяющим инженеру быстро развернуть среду разработки, установить устойчивое соединение с устройством и приступить к работе с ним.