基于GNURadio的USRP开发教程(2):深入认识USRP设备

目录

同志!

前言

一. 软件无线电概述

1. SDR系统分类

2. SDR系统外设

3. SDR系统原理

(1)发射机

(2)接收机

二. USRP2954R/2922/N210/x310设备介绍

1. 面板介绍

(1)USRP 2954R

(2)USRP 2922

2. 性能参数

(1)VERT2450 Antenna

(2)USRP-2954R

(3)USRP-2922

3. 硬件连接

(1)USRP-2954R

(2)USRP-2922

4. 开发方式

5. 注意事项(官网)

6. 常见故障解决

(1) “假砖”:USRP网络指示灯不亮

参考文献

同志!

        从新手的角度快速入门USRP,我采用的是面向对象的思想来学习,试图用较短的时间完成重要部分知识的构建,从而在短时间内可以实现一条基于USRP的完整链路。秉承着先完成再完善的原则,文中若有错误/更好的实现办法,欢迎同志们留言讨论!

        既然是认识设备,我采用的方式是由表及里,从“眼睛看到的”入手,目的很简单,搞清楚以下几个问题:

(0)它是个什么东西?

(1)它表面的端口都是干什么用的?

(2)它有什么重要的性能指标?

(3)它怎么用/怎么让我上手?

(4)有哪些相关的开发平台我可以使用?

(5)有什么特别重要的注意事项?防止操作不当玩坏了。

前言

       本系列包括环境配置(Ubuntu系统安装、UHD驱动配置、GNURadio安装)、软件无线电设备介绍、基本开发案列、进阶开发四个方面。  本篇将深入认识USRP设备,为后续开发做硬件准备。关于该部分内容主要参考NI官网提供的相关手册,其中参考链接1为《USRP-2950/2952/2953/2954/2955 Getting Started Guide》,也是本节的主要参考依据,参考链接2为《USRP-2920/2921/2922 Getting Started Guide》。跳转:

基于GNURadio的USRP开发教程(1):环境配置No.1/2-CSDN博客

基于GNURadio的USRP开发教程(1):环境配置No.2/2-CSDN博客

一. 软件无线电概述

        根据参考链接3中对软件无线电的详细介绍,我们删繁就简、简要总结入门仅需的知识储备。

1. SDR系统分类

FPGA-Based SDR系统

实时处理能力强,但是开发难度大,开发成本也高

DSP-Based SDR系统

实时性比FPGA略差,而且同样的开发难度大,开发成本也高

GPP-Based SDR系统(General Purpose Processor)

可以简单的把GPP理解为电脑,较低的开发门槛,较低的开发成本,开发周期也较短、便于调试等。GPP-Based SDR系统是目前最为通用的一种SDR系统实现形式

2. SDR系统外设

上述设备对学生党来说都太贵了,毕竟动不动就几千上万的,经济有限的入门同志可以选择RTLSDR进行开发。

3. SDR系统原理

(1)发射机

SDR程序:是我们用软件来实现的通信模块,鉴于SDR系统对实时性要求较高,所以我们一般使用C或C++语言来编写,主要功能是处理系统的基带数据。

UHD:USRP设备的驱动模块

系统库、系统调用接口、内核:主要涉及操作系统方面的知识

USB 3.0:电脑通过USB 3.0把数据传输给USRP。

发送控制模块:用来控制整个USRP的发送行为,例如什么时候发送等。

数字上变频模块(DUC):把电脑产生的基带数据上变频到中频.

DAC:数模转换.

Filter:数模转化之后需要过一个低通滤波器使信号变的更加平滑。

晶振:中频模拟域数据与晶振产生的信号相乘把中频信号调制到设定的射频频点上。

(2)接收机

低噪放:低噪放就是低噪声的放大器。

模拟域:信号经过低噪放后与USRP晶振产生的信号相乘把信号下变频到中频,同样地再经过一个低通滤波器把信号变得平滑。

ADC:模数转换。ADC主要由两个参数,采样精度和采样率。采样精度表示采样后的信号用多少bit来表示,例如USRP B200的ADC精度为12 bits,即采样后的每一个数据用12bits 来表示。采样率就是系统的采样速率,USRP B200的采样速率为61.44MS/s。

为什么要经过两次下变频:射频信号的载波频率已经能都达到2.6GHz,甚至5GHz,根本无法做出载波频率两倍的采样速率的ADC(工艺不够)。第一次变频是在模拟域通过晶振产生的信号与射频信号相乘把信号下变频到中频,这一次变频主要是为了后面做AD采样。

为什么不直接把信号一次变频到基带:这样的接收机叫做零中频接收机。如果载波频率高了,零中频的接收机设计会非常复杂。(USRP应该属于超外差/外差接收机)。

二. USRP2954R/2922/N210/x310设备介绍

        NI和Ettus之间的渊源同志们自己了解,概括讲:USRP 2954R RIO设备的母版就是X310,USRP 2922设备的母版就是N210;NI公司相当于把母版和子板组装好并经过测试后再出售,而Ettus系列则是要什么板子你自己决定,可以单独购买。

1. 面板介绍

(1)USRP 2954R
  • 前面板

注意:面板中的“JTAG”口可不要小瞧,它是当设备变成“假砖”时用来拯救设备的大哥,见第六节:常见故障解决。

仅当将NI-USRP API 与默认API Image一起使用时,才会出现下表中描述的 LED指示。使用LabVIEW FPGA时,您可以自定义LED指示。

  • 后面板

注意_1:"1G/10G ETH"是电口,如果要连网线则需要购买光电转换模块,如下图所示:

注意_2:"REF OUT/IN"和“PSS TRIG OUT/IN”是用来实现多台USRP设备振荡器时钟和时序同步的,非常重要,下一篇我会介绍。

(2)USRP 2922
  • 前面板(无后面板)

注意_3:“MIMO EXPANSION”也是实现多设备时钟/时序同步的。

2. 性能参数

(1)VERT2450 Antenna

        双频段2.4至2.48 GHz和4.9至5.9 GHz全向垂直天线,增益为3dBi。图片源自官网。

(2)USRP-2954R

        该部分主要参考链接4:《USRP-2954 Specifications》。以下只列举了产品参数文档中发射机和接收机的相关参数。

(3)USRP-2922

        该部分主要参考链接5:《USRP-2922 Specifications》。以下只列举了产品参数文档中发射机和接收机的相关参数。

3. 硬件连接

(1)USRP-2954R
  • 连接方式1(不推荐):

安装前确保USRP RIO设备和计算机已关机!

(1)根据需要将天线或电缆连接至USRP RIO设备的前面板端口。

(2)使用MXI Express接口套件将USRP RIO设备连接到计算机。

        (a)确定要使用的MXI Express接口套件。

  •  如果使用的是桌面连接套件或PXI机箱连接套件,请按照该套件中包含的设置MXI™ Express ×4系统文档的硬件安装部分中的安装说明进行操作。
  • 如果使用笔记本电脑连接套件,请同时触摸USRP的ExpressCard-8360和USRP RIO设备的金属外壳。

        (b)如果使用笔记本电脑连接套件,请同时触摸USRP的ExpressCard-8360和USRP RIO设备的金属外壳。

(3)使用随附的连接线将MXI设备连接到USRP RIO设备上。如果使用的是笔记本电脑,请参阅下图。

(4)将电源插入插座,按PWR按钮。

(5)打开计算机电源。Windows将自动识别USRP RIO设备。

(6)注:如果使用的是笔记本进行连接,可能会出现没有下图中“3. ExpressCard Slot”的情况,这是由于ExpressCard Slot常出现于旧式笔记本中,若要实现上图所示的连接,需要购买相应的转接模块。

  • 连接方式2(推荐):

        使用套件连接到USRP RIO设备上的PCIe x4端口上,可以实现高速的数据传输。若只针对USRP做相对简单的测试等,在编程量不大的情况下还可以采用网线进行连接。

        如上图所示,在设备的后面板上存在两个以太网口(SPF+),可支持的速率分别为1G ETH和10G ETH,但要使用该端口需要借助光电转换模块,将电信号转换为光信号,再使用网线将电脑主机和USRP设备进行连接。

        需要注意的是,为达到该输入端口所标称的传输速率,如要使用10G ETH端口,那么所使用的SPF+光电转换模块和网线,其性能指标都必须到达万兆级别。

注意:电脑的网口通常都是千兆口,所以如果你决定用普通电脑开发,即便你使用的是万兆网线和万兆的光电模块,最后过电脑网口也会降成千兆,省点钱直接用千兆口。

(2)USRP-2922

4. 开发方式

        目前针对USRP的开发平台主要有三个(排除某些科研单位自研开发平台):

(1)基于LabView:NI自己家的,有盗版软件,图形化开发,上手方便。

(2)基于Matlab:需要安装USRP工具箱。

(3)基于GNU Radio:开源!地地道道!正儿八经!功能强大!

        前两种开发方式可以满足基本的开发任务,但是军工类慎用,估计没有正版许可证,用盗版的话需要考虑最后的结果如何呈现、是否侵权等问题。

5. 注意事项(官网)

以下注意事项为参考链接1的翻译版,并按照重要等级重新进行排序。

1. 切勿触摸连接器的裸露引脚。

2. 如果将信号发生器直接连接或用电缆连接到设备,或者将多个USRP RIO设备连接在一起,则必须将30 dB衰减器连接到每个接收USRP RIO设备的RF输入(RX1RX2

3. 同步多个USRP RIO设备需要CDA-2990附件

4. 为确保指定的EMC性能,连接到以太网和GPS天线端口的I/O电缆外,所有I/O电缆的长度不得超过3 m (10 ft)

5. 为防止静电放电 (ESD) 损坏设备,请使用接地带或握住接地物体(例如计算机机箱)将自己接地。

6. 如果要对FPGA进行编程,则必须使用PCIe x4连接器。不能使用1G/10G ETH连接器对FPGA进行编程。

7. 为确保指定的EMC性能,只能使用屏蔽电缆和附件操作本产品。

8. 本产品未获批准或许可使用天线进行无线传输。因此,使用天线操作本产品可能会违反当地法律。 在使用天线操作本产品之前,请确保遵守所有当地法律。

9. 为确保指定的EMC性能,只能使用屏蔽电缆和附件操作本产品。

10. 如果设备出现任何损坏,请勿安装。

11. 必须安装LabVIEW调制工具包才能正确运行NI-USRP调制工具包示例VI。

12. 请勿以本文档中未指定的方式操作USRP RIO。产品误用可能会导致危险。 如果产品以任何方式损坏,您可能会损害产品内置的安全保护。 如果产品损坏,请将其返回NI进行维修。

13. 仅在USRP RIO通电时应用外部信号。在设备断电时施加外部信号可能会造成损坏。

14. 您不能将USRP RIO IDL与NI-USRP API一起使用。

15. NI示例查找器不包括NI-USRP示例。

6. 常见故障解决

(1) “假砖”:USRP网络指示灯不亮

        当连接好硬件设备之后可能会出现USRP面板上的ETH口/网口指示灯不亮,说明设备此时并没有被主机检测到。

        首先检查主机的以太网配置是否和USRP的默认IP(192.168.10.2)在同一网段;

        如果是USRP 2954R,请确认购买的光电转换模块是否适配(我当时使用时买了中科、慧谷、万兆通,只有中科好使),不适配的光电模块插上后网口依然不亮。

        如果不是该原因造成可能是由于在使用Windows系统下使用NI-USRP Configuration Utility进行FPGA镜像文件更新时出现了断电/卡机的情况,按照参考链接6和7即可拯救“假砖”。

注:建议使用虚拟机,如果使用现有的Linux系统下安装Vivado,请注意系统内存是否足够。

参考文献

1. 《USRP-2950/2952/2953/2954/2955 Getting Started Guide》

2. 《USRP-2920/2921/2922 Getting Started Guide》

3.   软件无线电 SDR技术原理深入解析 USRP收发原理 - 知乎 (zhihu.com)

4.   USRP-2954 Specifications

5.   USRP-2922 Specifications

6.   USRP_X310_Device_Recovery手册-CSDN博客

7.   USRP X310变砖恢复/救砖/设备恢复教程

### 回答1: GNU Radio是一个开源的软件无线电平台,可以用于设计和实现各种无线通信系统。USRP(Universal Software Radio Peripheral)则是GNU Radio的硬件平台,是一系列开源的软件定义无线电设备。 对于GNu Radio和USRP的入门教程,以下是一些建议。 首先,你可以了解GNU Radio的基本概念和工作原理。可以通过阅读官方文档、教程、书籍等来获取这些基础知识。 其次,你可以学习如何使用GNU Radio进行无线通信系统的设计和仿真。可以通过参考一些案例研究和示例代码,了解如何使用GNU Radio进行信号处理、调制解调、多址技术等。 然后,你可以开始学习如何使用USRP设备。首先了解USRP硬件结构和特性,然后学习如何配置和连接USRP设备。可以通过官方文档和教程来学习如何使用USRP设备进行无线信号的接收和发射。 最后,你可以尝试使用GNU Radio和USRP来实现一些简单的无线通信系统。可以尝试使用GNu Radio和USRP进行无线数据传输、频谱分析、调频广播接收等实验。 总的来说,学习GNU Radio和USRP需要一定的无线通信信号处理的基础知识,同时也需要一些实践经验。通过阅读官方文档、教程等,同时结合实际操作和实验,你将能够逐渐掌握GNU Radio和USRP的使用。 ### 回答2GNURadioUSRP是软件定义无线电开发的两个重要工具。GNURadio是一个开源的软件开发工具包,用于搭建软件定义无线电系统。而USRP(Universal Software Radio Peripheral)是一款通用的软件无线电外设,可以用于接收和发送无线电信号。 要学习GNURadioUSRP,首先需要了解软件定义无线电的基本原理和概念。可以通过阅读有关软件定义无线电的入门资料,了解它是如何工作的,以及它的应用领域和优势。 其次,可以通过学习GNURadio的使用方法来入门。可以查阅GNURadio的官方文档或教程,学习如何安装和配置GNURadio,以及如何使用它来搭建无线电系统。可以尝试一些基本的示例项目,如接收和解调FM广播信号。 接下来,可以学习USRP的使用方法。可以查阅USRP的官方文档或教程,学习如何连接和配置USRP设备。可以尝试使用USRP接收和发送无线电信号,如接收和解码数字电视信号。 在学习过程中,可以逐步深入了解GNURadioUSRP的高级功能和应用。可以学习如何使用GNURadioUSRP进行信号处理和调试,如频谱分析和信号录制。可以学习如何使用GNURadioUSRP进行通信系统的仿真和测试。 另外,可以加入相关的软件定义无线电社区或论坛,其他开发者交流和分享经验。这样可以获取更多关于GNURadioUSRP的学习资源和实践经验。 总结来说,学习GNURadioUSRP需要一定的理论基础和实践经验。通过学习官方文档和教程,参社区交流,不断实践和探索,可以逐步掌握GNURadioUSRP的使用方法和技巧,从而深入了解和应用软件定义无线电技术。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bazooka_hxp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值