什么是 USRP
通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发,被研究实验室、大学和业余爱好者广泛使用。
大多数 USRP 通过以太网线连接到主机,基于主机的软件使用该链路来控制 USRP 硬件并传输/接收数据。一些 USRP 型号还将主机的一般功能与嵌入式处理器集成在一起,允许 USRP 设备以独立方式运行。
USRP 系列专为易操作性而设计,并且许多产品都是开源硬件。部分 USRP 型号的电路板、原理图、元器件的BOM表都是可以免费下载的;
所有USRP产品均由开源UHD驱动程序控制,该驱动程序是免费的而且是开源软件。USRP 通常与GNU Radio软件套件一起使用来创建复杂的软件定义无线电系统。
官网链接:
Ettus Research
National Instruments
软件无线电是RF收发仪,支持先进无线应用的快速原型验证和部署。SDR可用于无线通信、部署信号智能系统或作为多通道测试台的构建块。
USRP支持的开发工具链:
- LabVIEW
- MATLAB
- Simulink
- GNU Radio
- Python
- C & Cpp
USRP 可以用来做什么
- 通信教学,大家学的调制解调,可以真实的收发信号。北邮、东南大学等高校的通信原理实验课都是用USRP上。
- 通信科研,你研究新的通信方式,可以用它来实现。如果你研究一种新的编码方式,完全可以在真实的环境下进行测试。
- 搭建2G基站,使用 OpenBTS这个开源软件,在Linux进行搭建。
- 搭建4G、5G基站,使用 Eurecom OpenAirInterface (OAI),在Linux进行搭建。
- 搭建GPS模拟器,使用 GNSS 软件,可以方便的模拟不同的卫星信号,可以轻易的欺骗掉手机的GPS定位信息,非常的有用。
- 接收航天信号,使用ADS-B,可以看到本地的飞机轨迹和位置。
- 私人电台,和你的朋友互相玩儿。
- WiFi 模拟,可以模拟一个真实的WiFi来使用。
- 人体姿态识别,可以用无线电信号来识别你的手势、走路的姿势、说话的嘴型、检测房间有没有人。
USRP 型号列表
提供软件定义的RF架构,可实现自定义信号处理,进而快速设计、原型化和部署无线系统。
USRP软件无线电设备是一种可重配置的RF设备,将基于主机的处理器、FPGA和RF前端集为一体。USRP软件无线电设备提供从具有固定FPGA功能的低成本选项到具有大型开放式FPGA和宽瞬时带宽的高端无线电等各种选项。这些设备可用于多输入多输出(MIMO)和LTE / WiFi测试台、信号情报和雷达系统等应用。
价格是无税的价格,有需求,可以问我们进行采购,具体的设备参数和价格都可以在下表进行查询。
型号 | Part number | 价格 | RF频率范围 | RF收发仪瞬时带宽 | FPGA | 输入通道数量 | 输出通道数量 | 总线连接器 | GPSDO |
---|---|---|---|---|---|---|---|---|---|
Ettus USRP X410 | 787272-01 | CNY 215550.0 | 1 MHz 至 7.2 GHz | 400 MHz | Zynq US+ RFSoC (ZU28DR) | 4 | 4 | 以太网 PCI Express | 是 |
Ettus USRP X440 | 788670-01 | CNY 189000.0 | 30 MHz 至 4 GHz | 1.6 GHz | Zynq US+ RFSoC (ZU28DR) | 8 | 8 | 以太网 | — |
USRP-2900 | 784039-01 | CNY 13850.0 | 70 MHz 至 6 GHz | 56 MHz | — | 1 | 1 | USB 2.0 USB 3.0 | 否 |
USRP-2901 | 784040-01 | CNY 20275.0 | 70 MHz 至 6 GHz | 56 MHz | — | 2 | 2 | USB 2.0 USB 3.0 | 否 |
USRP-2920 | 781906-01 | CNY 44460.0 | 50 MHz 至 2.2 GHz | 20 MHz | — | 1 | 1 | 以太网 | 否 |
USRP-2921 | 781907-01 | CNY 41510.0 | 2.4 GHz 至 2.5 GHz 4.9 GHz 至 5.9 GHz | 20 MHz | — | 1 | 1 | 以太网 | 否 |
USRP-2922 | 781909-01 | CNY 44460.0 | 400 MHz 至 4.4 GHz | 20 MHz | — | 1 | 1 | 以太网 | 否 |
USRP-2930 | 781910-01 | CNY 62470.0 | 50 MHz 至 2.2 GHz | 20 MHz | — | 1 | 1 | 以太网 | 是 |
USRP-2932 | 781911-01 | CNY 59505.0 | 400 MHz 至 4.4 GHz | 20 MHz | — | 1 | 1 | 以太网 | 是 |
USRP-2940 | 783923-01 | CNY 105960.0 | 50 MHz 至 2.2 GHz | 120 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2940 | 783146-01 | CNY — | 50 MHz 至 2.2 GHz | 40 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2942 | 783147-01 | CNY 99815.0 | 400 MHz 至 4.4 GHz | 40 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2942 | 783924-01 | CNY 105960.0 | 400 MHz 至 4.4 GHz | 120 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2943 | 783148-01 | CNY 99815.0 | 1.2 GHz 至 6 GHz | 40 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2943 | 783925-01 | CNY 105960.0 | 1.2 GHz 至 6 GHz | 120 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2944 | 783149-01 | CNY 111830.0 | 10 MHz 至 6 GHz | 160 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 否 |
USRP-2945 | 785263-01 | CNY 154315.0 | 10 MHz 至 6 GHz | 80 MHz | Kintex-7 410T | 4 | 0 | MXIe 以太网 | 否 |
USRP-2950 | 783150-01 | CNY 118065.0 | 50 MHz 至 2.2 GHz | 40 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2950 | 783926-01 | CNY 126235.0 | 50 MHz 至 2.2 GHz | 120 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2952 | 783151-01 | CNY 118065.0 | 400 MHz 至 4.4 GHz | 40 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2952 | 783927-01 | CNY 126235.0 | 400 MHz 至 4.4 GHz | 120 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2953 | 783152-01 | CNY 120425.0 | 1.2 GHz 至 6 GHz | 40 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2953 | 783928-01 | CNY 126235.0 | 1.2 GHz 至 6 GHz | 120 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2954 | 783153-01 | CNY 126915.0 | 10 MHz 至 6 GHz | 160 MHz | Kintex-7 410T | 2 | 2 | MXIe 以太网 | 是 |
USRP-2955 | 785264-01 | CNY 171560.0 | 10 MHz 至 6 GHz | 80 MHz | Kintex-7 410T | 4 | 0 | MXIe 以太网 | 是 |
USRP软件无线电独立式设备
使用板载FPGA和处理器为收发器提供确定性控制,以对高性能无线通信系统进行快速原型验证。
USRP软件无线电独立设备包括板载处理器、FPGA和RF前端。该设备可以使用LabVIEW通信系统设计套件或开源软件工作流进行编程,具体编程方法取决于所选择的操作系统。您可以使用NI Linux Real-Time、Linux Fedora或Linux Ubuntu实时操作系统配置该设备。USRP软件无线电独立设备适用于对一系列高级研究应用进行原型验证,其中包括独立的LTE或802.11设备仿真;介质访问控制(MAC)算法的开发;多输入多输出(MIMO);异构网络;LTE中继;射频压缩采样;频谱感测;认知无线电;波束形成和测向。注册商标Linux®的使用获得了Linus Torvalds专属授权商LMI的再授权,Linus Torvalds拥有Linux®注册商标在全球范围内的所有权。
价格是无税的价格,有需求,可以问我们进行采购,具体的设备参数和价格都可以在下表进行查询。
型号 | Part number | 价格 | Description |
---|---|---|---|
USRP-2974 | 785606-01 | CNY 169495.0 | USRP 2974高性能嵌入式SDR,10 MHz-6 GHz,160 MHz带宽 |
固件 UHD
USRP 硬件驱动程序 (UHD) 是一个用户空间库,运行在通用处理器 (GPP) 上,并与所有 USRP 设备系列进行通信并进行控制。B、N 和 X 系列 USRP 从主机发送和接收样本,如图 1 所示。由于我们的嵌入式系列 USRP 具有内部 GPP,因此您无需主机即可运行这些无线电(独立模式) 。
USRP 是收发器,这意味着它们既可以发送也可以接收 RF 信号。UHD 提供了必要的控制,用于将用户波形样本传输到 USRP 硬件以及从 USRP 硬件传输用户波形样本,以及控制无线电的各种参数(例如采样率、中心频率、增益等)。
UHD GPP 驱动程序和固件代码采用 C/C++ 编写,而为 FPGA(现场可编程门阵列)开发的代码则采用 Verilog 编写。有一个 C/C++ API 可以与其他软件框架连接,例如 GNU Radio,或者用户可以直接在 UHD C/C++ API 之上简单地构建自定义信号处理应用程序。图 2 说明了这个概念:
由于UHD的开源特性,整个开发过程也是开放的,可以通过我们的Git版本控制系统来跟踪UHD的开发情况。用户可以选择是否喜欢最新的开发代码(功能最丰富但有时不稳定),或者更全面地测试但不包含最新开发的代码。版本化版本(例如,UHD 版本 3.9.2)大约每两个月发布一次,并且通常仅包含与先前版本相比的错误修复(例如,UHD 3.9.2 具有与 3.9.1 相同的功能集,但更稳定)。这些错误修复版本是在 maint 分支上完成的,这是所有错误修复开发发生的地方。
新功能的开发是在主分支上完成的。即使我们使用持续集成系统来监控其状态,该分支也不应该被认为是稳定的。但是,主分支上的 API 或依赖项要求可能会发生变化。
在功能开发周期结束时,主分支被冻结,并且只有错误修复才会被接受到主分支中。一旦 master 分支被认为是稳定的,maint 分支将重置为 master,并且从之前的 master 分支生成新版本的版本。这通过主版本号跳跃来指示(例如,从 3.8.3 到 3.9.0)。主要版本每年发布 1-2 次,通常伴随新产品发布。
除了 maint 和 master 分支之外,有时还会(临时)发布新功能分支,以深入了解即将推出的功能,并尽早访问新开发。
UHD 软件 API 支持所有 USRP SDR 产品上的应用程序开发。使用通用软件接口至关重要,可以实现代码可移植性,并在开发需求扩展或新系统可用时允许应用程序无缝过渡到其他 USRP SDR 系统。因此,它允许您保留和重用遗留代码,从而显着减少开发工作。UHD 可以安装在 Linux、Windows 或 Mac 上。可以在此处找到这些平台的安装包以及从源代码构建的说明。
Python
兼容Python 2.7及以上版本(支持Python 3)。注意 构建需要 Python,并且 UHD 附带的一些实用程序是用 Python 编写的。一般来说,运行 UHD 应用程序不需要它。
Linux笔记
这取决于您使用的发行版,但大多数(如果不是全部)依赖项应该在您的包管理器的包存储库中可用。有关详细信息, 请参阅Linux 构建说明。
Mac OS X 注释
安装 Xcode 应用程序以获取构建工具(GCC 和 Make)。使用 MacPorts 获取 Boost 和 Mako 依赖项。其他依赖项可以作为 DMG 安装程序从 Web 下载或通过 MacPorts 安装。有关更多信息, 请参阅UHD OS X 构建说明。
Windows 笔记
可以通过可安装的 EXE 文件获取依赖项。通常,Windows 安装程序可以在项目的网站上找到。某些项目不托管 Windows 安装程序,如果是这种情况,请按照 Windows 安装程序的辅助下载 URL(如下)进行操作。有关详细信息, 请参阅Windws 构建说明。
git
需要检查存储库(如果从 tarball 构建则不需要)。
在 Windows 上,安装支持 Git 的 Cygwin 以签出存储库或从http://code.google.com/p/msysgit/downloads/list安装 msysGit 。
构建依赖关系
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 |
UHD 通过使用以太网、USB 和 PCI-Express 等标准接口方法来处理传输 I 和 Q 样本的控制(有关 I 和 Q 样本的信息,请参阅此处)。样本可以以连续流的形式发送,如图 4a 所示,也可以以突发的形式发送,如图 4b 所示。此外,用户还可以使用内置的突发和定时命令来指定何时接收或传输样本。
USRP RF 前端可能支持无法满足所有或许多用户要求的特定频率步长。因此,UHD 在 FPGA 中包含数字上变频 (DUC) 和数字下变频 (DDC) DSP 模块,用于微调 RF 频率(请参阅此处)。这允许用户:
具有亚赫兹射频频率步长
缓解直接转换(零中频)硬件上存在的直流问题(请参阅此处)。
在可用带宽内快速调整
不同的 SDR 配置、波形和应用需要不同的采样率。例如,用户可能希望监控 100 MHz 的瞬时 RF 带宽,但他们的主机 PC 可能只能分析 20 MHz 的实时带宽。对于这种情况和其他情况,UHD 允许用户设置各种采样率以满足他们的自定义应用程序。在 FPGA 内,UHD 包括抽取和插值模块,以便执行这些采样率转换。
所有直接变频(零中频)射频架构所固有的就是 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 损伤;这些块在图 1 中显示为 IQC 块。用户可以根据经验测量自定义这些模块的参数,或者允许 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 频率的不平衡
多个 USRP
UHD 将 USRP 系统上的所有通道视为一个复合设备,从而简化了通道数量的扩展,请参见下图 9。对于 X300/X310,当在此多 USRP 配置中使用 USRP 时,用户可以使用外部时钟源(具有 10 MHz 时钟参考和 PPS 信号)来同步所有设备。
例如,在 8 通道接收系统中,GNU Radio Companion 中的“USRP Source”块将如下图 10 所示
通用输入输出 (GPIO) 引脚可以通过 UHD 手动控制,也可以从 UHD 设置为在发生 TX 或 RX 等事件时自动触发。在何处或如何使用此自动触发的示例:当用户将射频放大器连接到 USRP 的 TX 或 RX 端口时,只有当 USRP 正在发射时才能打开放大器。您可以在此处了解有关 E3x0/X3x0 上的辅助 GPIO 的更多信息。
虽然 USRP 主要是硬件功能,但它可以与第三方的不同 RF 前端连接。通过使用 BasicRX 和 BasicTX 子板,用户可以向第 3 方前端发送或接收基带或 IF(中频)模拟信号。