用于管理RITM SDR USRP硬件平台的支持包
这篇文章包含了在 AnyMath 图书馆 目标。RITM_SDR_API 专为节奏SDRfootnote硬件平台的远程控制:[SDR(软件定义的无线电)*是一个软件定义的无线电。]USRPfootnote:[*USRP(通用软件无线电外设)-通用SDR平台。]并通过以太网网络进行数据交换。 给出了对运行时环境的要求、连接过程、应用程序编程接口(API)的描述和主要IP核的寄存器映射。 注:[*IP核*是FPGA/SNC内的硬件功能模块,可通过地址空间访问。].
使用目的及条件
图书馆 目标。RITM_SDR_API 它旨在控制基于Xilinx Zynq UltraScale+片上系统和ADRV9009RF收发器的RITM SDR USRP硬件平台。 通过与RITM SDR USRP控制模块的网络交互进行管理。
SDR USRP RITM在75MHz–6GHz范围内提供操作,瞬时频段高达450MHz。 图书馆 目标。RITM_SDR_API 它用于无线通信和雷达系统的开发,调试和测试。
一般资料
图书馆 目标。RITM_SDR_API 实现一组强类型Julia语言方法和宏,用于执行以下操作:
建立和终止与RITM SDR USRP控制模块的TCP连接; *设置射频和路径参数(频率,衰减,TX/Rxfoot)模式:[*TX/RX-传输/接收通道。]); *执行IP核心重置和管理程序; *I/Q样本和服务数据的发送和接收。
与节奏SDR USRP的相互作用是通过 Engee设备管理器。 组件交互的示意图如图所示。

执行条件
图书馆工作 目标。RITM_SDR_API 需要:
*SDR USRP接入以太网;
*可用性 Engee设备管理器在控制计算机侧(当根据接受的体系结构使用时)。
默认网络设置:
*IP地址:SDR USRP — 192.168.2.70;
*TCP端口 — 12345.
快速启动
-
安装或连接Engee子系统。集成如图所示 文章.
engee.package.install("Engee-Device-Manager")连结至连接:engee.com/prod/user/demo1234-user 安装客户端程序: https://dl.kpm-ritm.ru/repo/Host-Device-Manager-v1.57-Windows.zip -适用于窗户 https://dl.kpm-ritm.ru/repo/Host-Device-Manager-v1.57-Linux.zip -适用于Linux 例如,运行: engee.package.getdemos("Engee-Device-Manager") 要运行服务器程序,请运行: engee.package.start("Engee-Device-Manager") 支持包 'Engee-Device-Manager 版本“v1.57”已成功更新.engee.package.start("Engee-Device-Manager")"engee.com/prod/user/demo1234-user" -
使用命令:
using Main.EngeeDeviceManager.Targets.RITM_SDR_API import Main.EngeeDeviceManager.Targets.RITM_SDR_API client = RITM_SDR_API.RITMClient("192.168.2.70") if !RITM_SDR_API.connect(client) println("连接错误") return end println("服务器版本:$(RITM_SDR_API.get_version(客户端))") RITM_SDR_API.disconnect(client)预期输出到控制台的示例:
连接到192.168.2.70:12345 服务器版本:v5.1.5 连接已关闭
有关详细信息,请参阅文章 节奏SDR USRP入门
应用程序编程接口(API)
本节介绍库的宏和函数。 对于每个项目,都会指出名称,原型(如果在源文本中可用)和用途。
日志记录组
| 姓名 | 原型 | 委任事宜 |
|---|---|---|
|
|
一个宏 «安静» 日志记录而不输出到控制台。 仅在以下情况下记录数据 |
|
|
测井系统的主开关。 设置全局变量 |
|
|
组合输出的主宏。 将表达式转换为字符串,将其清除,将其打印到控制台,如果日志记录处于活动状态,则将其写入带有时间戳的日志文件。 例子: |
|
|
在没有换行符的情况下向控制台打印消息。 它用于交互式进度条或在一行中显示部分结果。 |
|
|
日志会话正确结束。 添加最终条目,创建日志文件的清理版本,并重置全局变量。 |
服务功能
| 姓名 | 原型 | 委任事宜 |
|---|---|---|
|
|
主库对象的构造函数。 创建具有以下字段的结构:控制模块的IP地址、TCP连接描述符和采样率(默认情况下)。 |
|
|
清除来自控制模块的控制和不可打印字符的字符串响应。 |
|
|
清除网络套接字的输入缓冲区。 |
|
|
根据建立的协议从控制模块接收二进制数据。 |
|
|
使用已建立的协议向控制模块发送二进制数据。 |
|
|
用于向控制模块发送命令的关键低级功能。 发送命令,等待处理,读取和分析响应。 |
|
|
安全断开。 |
|
|
与控制模块建立TCP连接。 端口是固定的 — |
管理基本参数
| 姓名 | 原型 | 委任事宜 |
|---|---|---|
|
|
请求系统的校准状态。 |
|
|
当前频率的请求。 |
|
|
接收机衰减的表格值的请求。 |
|
|
测量接收器输入端的功率。 |
|
|
收发器的当前状态的请求。 |
|
|
发射机衰减的请求。 |
|
|
设置发射机和接收机的载波频率。 检查范围,发送命令 |
|
|
通用参数设置。 |
|
|
设置接收器衰减的表格值。 |
|
|
使用位掩码配置发射器和接收器通道。 |
|
|
设置发射机的衰减。 |
|
|
以Hz为单位的替代频率设置。 |
|
|
停止传输。 |
高级控制和复位功能
| 姓名 | 委任事宜 |
|---|---|
|
读取功能模块(IP核)的寄存器。 |
|
FIFOfootnote Target reset:[*FIFO*是先入先出队列。]在DFE系统中。 |
|
复位辅助噪声发生器单元。 |
|
重置DMA控制器注意:[DMA(直接内存访问)-直接内存访问控制器。]接收和发送。 |
|
重置接收和发送DMA控制器。 |
|
全面的FIFO缓冲器复位。 |
|
写入功能模块(IP核)的寄存器。 |
射频开关
| 姓名 | 原型 | 委任事宜 |
|---|---|---|
|
|
反馈通道的手动校准。 |
|
|
硬件平台上的射频切换控制。 |
|
|
硬件平台上的射频切换控制。 |
|
|
硬件平台上进行射频切换控制。 |
|
|
硬件平台上进行射频切换控制。 |
|
|
硬件平台上进行射频切换控制。 |
|
|
硬件平台上进行射频切换控制。 |
|
|
启用/禁用MIMO模式的发射机数据的重复。 |
数据接收和传输管理
| 姓名 | 委任事宜 |
|---|---|
|
通道衰减管理ORXfootnote:[ORX(观测接收器)-反馈通道。]. |
|
检查主接收(RX)和反馈信道(ORX)的DMA传输的完成。 |
|
检查主接收(RX)和反馈信道(ORX)的DMA传输的完成。 |
|
格式化接收到的数据 |
|
准备用于传输的复杂数据:组件的缩放和交织。 |
|
从反馈通道(ORX)接收数据到RAM中. |
|
启动从接收器接收数据到RAM。 |
|
接收通道的直接开关。 |
|
将数据从RAM传输到发送器的命令。 |
|
ORX信道衰减管理。 |
网络和数据交换
与产品的控制模块的连接是通过TCP协议建立的。 端口号是固定的(12345). 功能 连接() 必须在执行任何控制和数据交换命令之前调用它。 断开连接由函数执行 断开() (或 关闭(),如果使用同义词)。
发送控制命令是通过低级函数实现的 _send_command(),其传送字符串命令并分析响应。 二进制数据阵列的发送和接收由函数执行 _put_data() 和 _get_数据() 据建立的交换协议。
SDR寄存器
该表显示了通过该机制可用的IP核的寄存器映射。 set_ip_core()/get_ip_core(). 地址以十六进制格式给出。 数据类型是根据FPGA项目中使用的名称给出的.
| IP核/地址(十六进制)/寄存器名称/数据类型/描述 | DUCexfootnote:[*DUC/DDC(数字上/下转换器)*是一个上/下数字转换器。] | 0x30108 |
IPCore_Reset |
布尔值 |
|---|---|---|---|---|
核心复位:写 |
杜克斯 |
|
|
|
核心的唯一时间戳(格式 |
杜克斯 |
|
|
|
用于设置插值系数的数据寄存器。 |
杜克斯 |
|
|
|
打开/关闭内插器。 |
杜克斯 |
|
|
|
通过AXI异步内核复位。 |
杜克斯 |
|
|
|
全局核心激活。 |
杜克斯 |
|
|
|
信道增益因子0(校正)。 |
杜克斯 |
|
|
|
启用通道0增益。 |
杜克斯 |
|
|
|
通道1增益(校正)。 |
杜克斯 |
|
|
|
启用通道1增益。 |
杜克斯 |
|
|
|
启用NCOfootnote:[*NCO(数控振荡器)*是一个数控发生器。]频道0。 |
杜克斯 |
|
|
|
NCO通道相位增量0( |
杜克斯 |
|
|
|
NCO通道的相位偏移为0( |
杜克斯 |
|
|
|
复位通道0的NCO相位驱动。 |
杜克斯 |
|
|
|
通道1的NCO相位增量( |
杜克斯 |
|
|
|
通道1的nco相位偏移( |
杜克斯 |
|
|
|
复位通道1的NCO相位驱动。 |
杜克斯 |
|
|
|
启用NCO通道1。 |
杜克斯 |
|
|
|
启用DDSfootnote:[*DDS(直接数字合成)*是一个数字合成器。]频道0。 |
杜克斯 |
|
|
|
启用DDS通道1。 |
DDCex |
|
|
|
核心复位:写 |
DDCex |
|
|
|
核心的唯一时间戳(格式 |
DDCex |
|
|
|
用于设置抽取系数的数据寄存器。 |
DDCex |
|
|
|
开/关抽取器。 |
DDCex |
|
|
|
通过AXIfootnote异步核心复位:[AXI-AMBA AXI总线接口。]. |
DDCex |
|
|
|
信道增益因子0(校正)。 |
DDCex |
|
|
|
通道1增益(校正)。 |
DDCex |
|
|
|
启用通道0增益。 |
DDCex |
|
|
|
启用通道1增益。 |
DDCex |
|
|
|
道的NCO相位的增量为0。 |
DDCex |
|
|
|
NCO通道的相位偏移为0。 |
DDCex |
|
|
|
复位通道0的NCO相位驱动。 |
DDCex |
|
|
|
道1的NCO相位的增量。 |
DDCex |
|
|
|
道1的NCO相位偏移。 |
DDCex |
|
|
|
复位通道1的NCO相位驱动。 |
DDCex |
|
|
|
使能公共输出的NCO。 |
DDCex |
|
|
|
启用NCO通道1。 |
DDCex |
|
|
|
启用DDS通道0。 |
DDCex |
|
|
|
启用DDS通道1。 |
DDCex |
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
DDCex |
|
|
|
|
AGCexfootnote:[AGC(自动增益控制)-自动增益控制。] |
|
|
|
|
核心复位:写 |
AGCex |
|
|
|
启用内核(当位0相等时默认启用 |
AGCex |
|
|
|
核心的唯一时间戳(格式 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输入端口的数据寄存器 |
AGCex |
|
|
|
输出端口的数据寄存器 |
AGCex |
|
|
|
输出端口的数据寄存器 |
AGCex |
|
|
|
输出端口的数据寄存器 |
AGCex |
|
|
|
输出端口的数据寄存器 |
AGCex |
|
|
|