作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121092297


目录

第1章 USRP UHD概述

1.1 官网主页

1.2 概述

1.3 USRP硬件型号的区别

第2章 USRP Hardware Driver (UHD)的网络架构

2.1 概述

2.2 Host 基带BB + Host UHD驱动 + USRP RF整体的网络架构

2.3 Host 基带BB

2.4 Host UHD驱动

2.5 USRP RF

2.6 多USRP组网方案

第3章 Host UHD驱动程序的特性

3.1 开源性

3.2 发布周期

3.3 代码可移植性

3.4 编译UHD代码外部的依赖文件

第4章 Host UHD驱动程序的IQ数据处理相关的配置

4.1 IQ数据的传输

4.2 射频频率微调

4.3 采用率Sample Rate

4.4 IQ数据的纠正

第5 其他

5.1 GPIO的功能

5.2 射频前端的扩展

5.3 USRP与BB开源软件的关系

第6章 其他资源



第1章 USRP UHD概述

1.1 官网主页

UHD - Ettus Knowledge Basehttps://kb.ettus.com/UHD

1.2 概述

Ettus Research USRP™ 系列软件定义无线电 (SDR) 是多功能设备,允许用户在通用硬件平台上以各种频率和设置发送和接收许多不同的自定义波形。

商业、学术和军事客户采用灵活且可重复使用的 USRP 硬件进行研究、无线探索和现场部署。

1.3 USRP硬件型号的区别

USRP 有多种外形和配置。USRP 的主要类别是:

  • 总线 (B) 系列 – 通过 USB 连接连接到主机
  • Network(N) 系列 – 通过以太网连接到主机
  • 高性能 (X) 系列 – 连接可以是以太网或 x4 PCI-Express 连接
  • 嵌入式 (E) 系列 – 旨在独立运行(无需主机)。

第2章 USRP Hardware Driver (UHD)的网络架构

2.1 概述

USRP 硬件驱动程序 (UHD) 是在通用处理器 (GPP) 上运行的用户空间库,可与所有 USRP 设备系列进行通信并对其进行控制。

UHD 通过提供灵活的功能丰富的 SDR API,帮助商业、学术、军事、业余爱好者和其他 SDR 用户进行无线协议的快速原型设计或部署。

B、N 和 X 系列 USRP 从主机发送和接收样本,如图 1 所示。

由于我们的嵌入式E系列(包括N系列)的USRP 包含一个内部 通用CPU,您可以在不需要主机的情况下运行这些无线电(独立模式) .

Host PC:充当的是基带板BB的功能(包括带支持L1加速卡硬件或其他基带板硬件平台)

除了E系列,USRP充当的是RF (RRU)的功能。

USRP 是收发器,这意味着它们既可以发送也可以接收 RF 信号。

UHD 提供必要的控制,用于将用户波形样本传输到 USRP RF硬件和从 USRP RF硬件传输以及控制USRP RF硬件无线电的各种参数(例如采样率、中心频率、增益等)。

2.2 Host 基带BB + Host UHD驱动 + USRP RF整体的网络架构

2.3 Host 基带BB

这部分代码不是有软件无线电组织提供,就不在USRP的代码范围内,其他的基带开源组织提供。

支持的基带开源组织有:

Third Party

  • GNU Radio
  • LabVIEW
  • Matlab/Simulink
  • OpenBTS
  • Eurecom OpenAirInterface (OAI)
  • srsLTE/srsUE
  • Gqrx
  • Fosphor
  • 自定义信号处理应用程序

2.4 Host UHD驱动

UHD实现带有基带软件的主机Host与USRP硬件的通信,通信的手段和协议栈,取决于USRP与Host PC之间的连接方式:

  • 总线 (B) 系列 – 通过 USB 连接连接到主机 =》 USB驱动
  • Network(N) 系列 – 通过以太网连接到主机 =》  以太网驱动
  • 高性能 (X) 系列 – 连接可以是以太网或 x4 PCI-Express 连接 =》PCIe驱动

UHD是一个通用的软件,能够支持上述所有方式。

UHD X86 CPU驱动程序是用 C/C++ 编写的

2.5 USRP RF

  • USRP FPGA(现场可编程门阵列)开发的代码是用 Verilog 编写。
  • USRP  ARM firmware程序是用 C/C++ 编写的。

上述两个程序,可以Host下载到USRP硬件中,也可以通过仿真器预先烧录。

2.6 多USRP组网方案

UHD 将 USRP 系统上的通道数量全部视为一个复合设备,从而简化了扩展 USRP 系统上的通道数量,参见下图 9:使用4个2T2R组成一个8T8R的小区。

备注:

在 X300/X310 的情况下,在这种多 USRP 配置中使用 USRP 时,用户可以使用外部时钟源(具有 10 MHz 时钟参考和 PPS 信号)来同步所有设备。

第3章 Host UHD驱动程序的特性

3.1 开源性

大多数 UHD 代码库是开源的,包括在主机上执行的代码,以及针对 USRP 硬件(FPGA 和微控制器固件)的代码。作为双重许可软件,UHD 可在开源 GNU 公共许可证版本 3 (GPLv3) 以及仅由 Ettus Research 提供的替代性、限制性较小的许可证下使用

3.2 发布周期

由于UHD的开源特性,整个开发过程也是开放的,可以通过我们的Git版本控制系统跟踪UHD的开发。用户可以选择是否喜欢最新的开发代码(功能最丰富但有时可能不稳定),或者是经过更彻底测试的不包含最新开发的代码。修订版本(例如 UHD 3.9.2 版)大约每两个月发布一次,并且通常只包含与先前版本相比的错误修正(例如,UHD 3.9.2 具有与 3.9.1 相同的功能集,但更稳定)。这些错误修复版本是在 maint 分支完成的,这是所有错误修复开发发生的地方。

新功能开发是在主分支上完成的。这个分支不应该被认为是稳定的,即使我们使用持续集成系统来监控它的状态。但是,主分支上的 API 或依赖项要求可能会发生变化。

在功能开发周期结束时,master 分支被冻结,并且只有错误修正被接受到 master 分支中。一旦 master 分支被认为是稳定的,maint 分支就会重置为主分支,并且从之前的 master 分支生成一个新的版本。这由主要版本号跳转指示(例如,从 3.8.3 到 3.9.0 时)。主要版本每年发布 1-2 次,通常伴随新产品发布。

除了 main 和 master 分支之外,有时会发布新功能分支(临时)以深入了解即将推出的功能,并更早地访问新开发。

3.3 代码可移植性

UHD 软件 API 支持所有 USRP SDR 产品的应用程序开发。

使用通用软件接口至关重要,可实现代码可移植性,并允许应用程序在开发需求扩展或新系统可用时无缝过渡到其他 USRP SDR 系统。因此,它允许您保留和重用遗留代码,从而显着减少开发工作。

UHD 可以安装在 Linux、Windows 或 Mac 上。

3.4 编译UHD代码外部的依赖文件

(1)Python

兼容 Python 2.7 及更高版本(支持 Python 3)。注意构建(build)UHD时需要Python,并且 UHD 附带的一些实用程序是用 Python 编写的。

注意:运行UHD和应用程序的可执行程序时,并不需要它。

(2)Linux

这取决于您使用的发行版,但大多数(如果不是全部)依赖项应该在您的包管理器的包存储库中可用。有关更多信息,请参阅Linux 构建说明 (后续单独说明,如何在Linux下Build UHD)

(3)Mac OS X

安装 Xcode 应用程序以获取构建工具(GCC 和 Make)。使用 MacPorts 获取 Boost 和 Mako 依赖项。其他依赖项可以作为 DMG 安装程序从 Web 下载或通过 MacPorts 安装。有关更多信息,请参阅UHD OS X 构建说明。

(4)Windows

可以通过可安装的 EXE 文件获取依赖项。通常,可以在项目的网站上找到 Windows 安装程序。某些项目不托管 Windows 安装程序,如果是这种情况,请遵循 Windows 安装程序的辅助下载 URL(如下)。有关详细信息,请参阅Windws 构建说明

(5)Git

  • Required to check out the repository (not necessary if building from tarballs).
  • On Windows, install Cygwin with Git support to checkout the repository or install msysGit from http://code.google.com/p/msysgit/downloads/list.

(6)Build Dependencies

UHD Version GCC Clang MS Visual C++ CMake Boost LibUSB Mako Doxygen Python Xilinx Vivado
3.9.X >= 4.4 >= 3.3 >= 2012 (11.0) >= 2.8 >= 1.46 >= 1.0 >= 0.5.0 >= 1.8 (recommended) >= 2.7 == 2014.4
3.10.X >= 4.8 >= 3.3 >= 2012 (11.0) >= 2.8 >= 1.53 >= 1.0 >= 0.5.0 >= 1.8 (recommended) >= 2.7 == 2015.4

Other compilers (or lower versions) may work, but are unsupported.

Note on MSVC: The free Visual Studio Express Edition for Desktop works.

Note on Boost: Older versions of UHD may not work with newer versions of Boost, as the Boost API sometimes changes, and we can't retroactively fix older UHD versions. For example, UHD 3.8.X (and older) won't work with Boost 1.60.

第4章 Host UHD驱动程序的IQ数据处理相关的配置

4.1 IQ数据的传输

UHD使用以太网、USB 和 PCI-Express 等标准接口方法处理传输 I 和 Q 样本数据(有关 I 和 Q 样本的信息,请参见此处)的控制。

样本可以以连续流的形式发送,如图 4a 所示,

也可以以突发形式发送,如图 4b 所示。

此外,用户可以使用内置的突发定时命令指定何时接收或发送样本数据。

4.2 射频频率微调

USRP RF 前端可能支持特定频率步长,所有但不能满足用户的或许多要求。因此,UHD 在 FPGA 中包含数字上变频 (DUC) 和数字下变频 (DDC) DSP 模块,用于微调 RF 频率(请参阅此处)。这允许用户:

  • 具有 sub-Hz RF 频率步长
  • 缓解直接转换(零中频)硬件上存在的 DC 问题(请参阅此处)。
  • 在可用带宽内快速调谐

如下图所示:

4.3 采用率Sample Rate

不同的 SDR 配置、波形和应用,需要不同的采样率。

例如,用户可能希望监控 100 MHz 的瞬时 RF 带宽,但他们的主机 PC 可能只能分析 20 MHz 的实时带宽。

对于这种情况和其他情况,UHD 允许用户设置各种采样率以满足他们的自定义应用程序。

在 FPGA 中,UHD 包括抽取和插值模块,以执行这些采样率转换。

4.4 IQ数据的纠正

所有直接变频(零中频)RF 架构的固有特性是 IQ 不平衡的影响。在此处找到的名为“正交损害对 802.11ac EVM 的影响”的视频演示了此属性。在此处查找其他信息。总之,使用直接转换架构的设备上的任何给定信号都有两条 TX 路径和两条 RX 路径。

一条路径是同相或“I”,另一条路径是正交“Q”,也称为实数和虚数。

由于组件、温度和其他因素的差异,I 和 Q 信号路径会受到不同条件的影响,因此会改变初始捕获时存在的原始信号。当 I 或 Q 的相位或幅度改变时,结果显示为原始信号中实际上不存在的信号。例如,请注意在 GNU Radio Companion 中创建的这个 GNU Radio Flowgraph 中的以下 IQ 损伤模拟。

通过使用“HW Impairments”模块,您可以模拟 I 和 Q 信号路径中断时发生的情况。在图 8a 中没有添加损伤。但是,当 I 路径的幅度略有增加时,您会得到如图 8b 所示的伪影。

可以减轻数字域中的一些不良影响。UHD 包含 FPGA 内的功能块以补偿 IQ 损伤;这些块作为 IQC 块出现在图 1 中。用户可以根据经验测量自定义这些块的参数,或者允许 UHD 执行自动分析并根据内置的 IQ 校正算法提供参数。有关更多信息,请参阅UHD 手册中的以下功能:

  • uhd_cal_rx_iq_balance: - 最小化 RX IQ 不平衡与 LO 频率
  • uhd_cal_tx_dc_offset: - 最小化 TX DC 偏移与 LO 频率
  • uhd_cal_tx_iq_balance: - 最小化 TX IQ 不平衡与 LO 频率

第5 其他

5.1 GPIO的功能

通用输入输出 (GPIO) 引脚可以通过 UHD 手动控制,也可以从 UHD 设置为在发生 TX 或 RX 等事件时自动触发。在何处或如何使用此自动触发的示例:当用户将 RF 放大器连接到 USRP 的 TX 或 RX 端口时,只有在 USRP 正在传输时才能开启放大器。您可以在此处找到有关 E3x0/X3x0 上的辅助 GPIO 的更多信息。

备注:GPIO的硬件位于USRP RF硬件上,UHD对GPIO的功能进行配置。

5.2 射频前端的扩展

USRP 可以与来自 3rd 方的不同 RF 前端接口。

通过使用 BasicRX 和 BasicTX 子板,用户可以向第 3 方的射频前端硬件发送或接收基带或 IF(中频)模拟信号。

5.3 USRP与BB开源软件的关系

除了将 USRP 系列 (UHD) 集成到 GNU Radio 的 gr-uhd 模块的开发之外,Ettus Research 还经常为 GNU Radio 项目做出贡献。尽管 USRP 无线电通常与 GNU Radio 软件框架相关联,但许多 USRP 应用程序(例如OpenBTS)在没有 GNU Radio 的情况下运行。有关 GNU Radio 的更多信息,请参见此处

第6章 其他资源

Github:https : //github.com/EttusResearch/uhd

手册:https : //files.ettus.com/manual/index.html


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121092297

[OpenAirInterface实战-19] :OAI 软件无线电USRP UHD硬件驱动程序的使用与网络架构相关推荐

  1. Python实战1-9例:变量、运算、字符串等综合训练

    笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章欢迎转载,转载请注明出处.如果喜欢请点赞+关注,感谢支持! <Python实战系列> ...

  2. SLAM导航机器人零基础实战系列:(二)ROS入门——2.ROS系统整体架构

    SLAM导航机器人零基础实战系列:(二)ROS入门--2.ROS系统整体架构 摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机 ...

  3. 《大富翁手机游戏开发实战--基于Cocos2d-x 3.2引擎》现已登陆各大网络销售平台发售

    <大富翁手机游戏开发实战--基于Cocos2d-x 3.2引擎>现已登陆各大网络销售平台发售! 部分网售地址: 当当:http://product.dangdang.com/2378178 ...

  4. [.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店...

    原文:[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店 一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Bytear ...

  5. 计算机硬件更新快,频繁更新电脑硬件驱动程序到底好不好?真相在此

    原标题:频繁更新电脑硬件驱动程序到底好不好?真相在此 有不少人认为硬件驱动越新越好,所以不断更新自己的显卡.主板.声卡.网卡--等一系列驱动程序,认为新版本的驱动有利于系统保持最新和第一时间修复系统问 ...

  6. ORAN专题系列-9:5G O-RAN 分体式小基站Option7-8硬件白盒化的参考架构

    概述: Option7-8的分离式部署, O-DU7-8的硬件白盒化, O-RU7-8的硬件白盒化 在一体式小基站的白盒化硬件的参考架构中,探讨了一体式和分体式的分类方法,以及5G一体式小基站硬件白盒 ...

  7. ORAN专题系列-7:5G O-RAN 分体式小基站Option7硬件白盒化的参考架构

    摘要: Option7的分离式部署, O-DU7的硬件白盒化, O-RU7的硬件白盒化 在一体式小基站的白盒化硬件的参考架构中,探讨了一体式和分体式的分类方法,以及5G一体式小基站硬件白盒化的参考架构 ...

  8. ORAN专题系列-8:5G O-RAN 分体式小基站Option8硬件白盒化的参考架构

    概述: Option8的分离式部署, O-DU8的硬件白盒化, O-RU8的硬件白盒化 在一体式小基站的白盒化硬件的参考架构中,探讨了一体式和分体式的分类方法,以及5G一体式小基站硬件白盒化的参考架构 ...

  9. [4G5G专题-19]:架构-核心网的演变以及基于服务的5G核心网网络架构

    目录 1. 2G GSM核心网架构 2  3G UMTS核心网架构 3 4G LTE核心网架构 4 5G NR 核心网架构 1. 2G GSM核心网架构 2G组网非常简单,只提供语音业务和短消息业务. ...

  10. 光速宽带连接服务器无响应,【硬件向】解决登录“网络连接中断”的方法

    [硬件向]解决登录"网络连接中断"的方法 800万勇士大家好,感谢大家在百忙之中来看瓜小邪(山东1区)攻略,实在是太给面子了. 这次带来的攻略不是游戏内的,而是关于硬件的--记录我 ...

最新文章

  1. android中仿qq最新版抽屉,Android实现3种侧滑效果(仿qq侧滑、抽屉侧滑、普通侧滑)...
  2. mysql sqlserver对比_很用心的写了 9 道 MySQL 面试题
  3. 【PC工具】大神开源项目-配色调色工具Colorpicker颜色选择器
  4. sqldeveloper 连接oracle时 ora-12505 错误
  5. Java IO框架总揽--ObjectInputStream ObjectOutputStream源码解读
  6. 方法分享:有序集合分段
  7. mybatis 中 foreach collection的三种用法
  8. java动态加载jar文件并执行方法
  9. 如何在TypeScript中使用JS类库
  10. java课程之团队开发冲刺1.8
  11. Ibatis XML 配置文件注释引起错误及解决方案
  12. 设计模式(二)设计模式的本质
  13. Java操作Excel中HSSFCell.CELL_TYPE_STRING、BOOLEAN、NUMERIC无定义解决方法
  14. pg加密扩展的安装_为编译安装的PG安装扩展
  15. Oracle EBS SLA取值
  16. Eclipse创建并运行Java程序输出Hello World
  17. Autocad 字体
  18. 舌尖上的中国各地特色小吃,怀念家乡的味道!
  19. 当我们在聊「开源大数据调度系统Taier」的数据开发功能时,到底在讨论什么?
  20. 华为mate40计算机,华为Mate40 Pro+电脑,工作事半功倍就差这一步

热门文章

  1. windows10 快速切换网络适配器
  2. cpu排行计算机专业,最新计算机处理器排名_cpu性能排名梯形图高清大图
  3. DSP28377 I2C开发笔记
  4. DSP 基础学习 1:搭建环境与CCS6创建工程模板
  5. 非常有意思的Flowlet
  6. Regular Expression简介
  7. Linux用SSH密匙登录
  8. ipa文件生成扫码安装二维码的方法
  9. python获取代理服务器地址
  10. ansys 英文路径 安装失败