Engee documentation

PS-TCP

To work with RITM SDR USRP, a software interface has been developed that works on top of the TCP protocol stack, which makes it possible to remotely control the device and transmit streaming data over standard network channels without packet loss. The interface is a client-server architecture.

  • The server part is deployed in the Embedded Linux environment directly on the hardware platform. The computing load is distributed between the four cores of the Cortex-A53 processor, which allows you to process incoming commands in parallel and manage IQ data streams in real time. For more information, see Server side

  • The client part is presented in the form of a specialized library for Engee. This solution provides seamless integration of SDR hardware with digital signal processing tools, allowing you to control SDR parameters and analyze data directly in the workspace. Engee. For more information, see Support package for managing the RITM SDR USRP hardware platform

Server side

The PS-TCP server software functions in the environment of the embedded Linux OS platform RITM SDR USRP as a background process (daemon). The key tasks of the service are processing broadcast requests for device detection, managing incoming sessions and executing control commands, as well as providing high-speed exchange of IQ-sample streams.

Device identification via broadcast requests

For automated search of RITM SDR USRP nodes, a mechanism for processing broadcast UDP requests has been implemented in the network infrastructure. The service monitors the dedicated UDP port in listening mode. When receiving a message of the correct format, the server generates a response packet containing identification data:

  • Device type (model);

  • The current IP address of the network interface;

  • Unique serial number.

The response is sent directly to the IP address of the initiator of the request. This mechanism allows the client to detect available devices and determine all active network interfaces (for example, Ethernet and Wi-Fi) through which control can be established. If there are several active interfaces, the client receives an independent response from each of them.

Managing incoming connections

The interaction between the nodes is based on the TCP transport protocol, which guarantees the delivery of packets and the preservation of their sequence. The process of establishing a session is initiated by the client through a method call createConnection. The architecture of the PS-TCP server side is designed according to a multithreaded model: for each new incoming connection, a separate execution stream is generated, which ensures parallel processing of requests from several clients or processes.

The server architecture supports an unlimited number of simultaneous control connections. However, direct access to DMA for working with IQ data streams is limited: only one active session for reception and one for transmission is possible at any given time. Simultaneous operation of one client for reception and one for transmission is allowed.

Receiving and dispatching control commands

SDR functional nodes are managed through a specialized set of commands. To simplify the development of application software, an abstraction level has been implemented in the form of an API that allows the user to operate with high-level functions instead of directly encapsulating network commands. After establishing a TCP connection, the server goes into standby mode. When a transaction is received, the server parses it, executes the corresponding operation at the hardware level, and returns the confirmation status or execution error code.

Broadcasting of IQ-count streams

Ensuring continuous reception and transmission of IQ-readings is a priority task of the system. In the RITM SDR USRP architecture, data exchange between the processor system (PS) and the hardware logic of the transceiver is implemented through direct memory access (DMA) mechanisms. This allows you to minimize the load on the central processor and provide the required bandwidth for real-time signal transmission.