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

PS-TCP

Для работы с РИТМ SDR USRP был разработан программный интерфейс, работающий поверх стека протоколов TCP, что дает возможность удаленного управления устройством и передачи потоковых данных по стандартным сетевым каналам без потери пакетов. Интерфейс представляет собой клиент-серверную архитектуру.

  • Серверная часть развернута в среде Embedded Linux непосредственно на аппаратной платформе. Вычислительная нагрузка распределяется между четырьмя ядрами процессора Cortex-A53, что позволяет параллельно обрабатывать входящие команды и управлять потоками IQ-данных в реальном времени. Более подробная информация приведена в разделе Серверная часть

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

Серверная часть

Серверное программное обеспечение PS-TCP функционирует в среде встроенной ОС Linux платформы РИТМ SDR USRP в качестве фонового процесса (демона). Ключевыми задачами сервиса являются обработка широковещательных запросов для обнаружения устройства, управление входящими сессиями и исполнение управляющих команд, а также обеспечение высокоскоростного обмена потоками IQ-отсчетов.

Идентификация устройства через широковещательные запросы

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

  • Тип (модель) устройства;

  • Текущий IP-адрес сетевого интерфейса;

  • Уникальный серийный номер.

Ответ направляется непосредственно на IP-адрес инициатора запроса. Данный механизм позволяет клиенту обнаруживать доступные устройства и определять все активные сетевые интерфейсы (например, Ethernet и Wi-Fi), через которые возможно установление управления. При наличии нескольких активных интерфейсов клиент получает независимый ответ от каждого из них.

Управление входящими соединениями

Взаимодействие между узлами базируется на транспортном протоколе TCP, что гарантирует доставку пакетов и сохранение их последовательности. Процесс установления сессии инициируется клиентом через вызов метода createConnection. Архитектура серверной части PS-TCP спроектирована по многопоточной модели: для каждого нового входящего соединения порождается отдельный поток исполнения, что обеспечивает параллельную обработку запросов от нескольких клиентов или процессов.

Архитектура сервера поддерживает неограниченное количество одновременных управляющих соединений. Однако прямой доступ к DMA для работы с потоками IQ-данных ограничен: в каждый момент времени возможна только одна активная сессия на прием и одна — на передачу. Допускается одновременная работа одного клиента на прием и одного на передачу.

Прием и диспетчеризация управляющих команд

Управление функциональными узлами SDR осуществляется посредством специализированного набора команд. Для упрощения разработки прикладного ПО реализован уровень абстракции в виде API, позволяющий пользователю оперировать высокоуровневыми функциями вместо прямой инкапсуляции сетевых команд. После установления TCP-соединения сервер переходит в режим ожидания. При поступлении транзакции сервер производит синтаксический разбор, исполняет соответствующую операцию на аппаратном уровне и возвращает статус подтверждения или код ошибки выполнения.

Трансляция потоков IQ-отсчетов

Обеспечение непрерывного приема и передачи IQ-отсчетов является приоритетной задачей системы. В архитектуре РИТМ SDR USRP обмен данными между процессорной системой (PS) и аппаратной логикой трансивера реализован через механизмы прямого доступа к памяти (DMA). Это позволяет минимизировать нагрузку на центральный процессор и обеспечить требуемую пропускную способность для передачи сигналов в режиме реального времени.