jjzjj

USRP系列(二):USRP作用、组件及产品系列介绍

UncleWa 2023-07-11 原文

USRP系列(二):USRP作用、组件及产品系列介绍

USRP系列(一):软件定义无线电(SDR)
USRP系列(三):NI 与Ettus Research的USRP区别
USRP系列(四):USRP RIO 和 Stand-alone USRP

本文是该系列文章中的第二篇,主要对USRP的作用、组件以及系列产品进行介绍。

2.1 USRP的作用

从本质上讲,USRP充当了一个无线电通讯系统的数字基带和中频部分。USRP背后的基本设计理念是在主机 CPU 上使用诸如 GNURadio完成所有波形相关方面的处理,比如调制和解调 。所有诸如数字上下变频、抽样和内插等高速通用操作都在 FPGA 上。

大多数 USRP 通过高速链路连接到主机,基于主机的软件使用该链路来控制 USRP 硬件并发送/接收数据。某些 USRP 型号还将主机的一般功能与嵌入式处理器集成在一起,允许 USRP 设备以独立方式运行(stand-alone)。

2.2 USRP的组件及对应功能

USRP由 USRP母板、连同各种子板以及相应的天线组成。

一个典型的 USRP 产品系列包括两部分:一个带有高速信号处理的 FPGA 母板,和一个或者多个覆盖不同频率范围的可调换的子板。 它们共同实现把比特流数据从天线传到主机电脑(即接收),或者从主机电脑传送到天线(即发送)。

具体来说:
母版包括以下功能:时钟同步及生成、FPGA、ADCs、DACs、host processor interface 、及功率调节(power regulation)。这是信号基带处理所需的基本组件。

FPGA:
In stock configuration the FPGA performs several DSP operations, which ultimately provide translation from real signals in the analog domain to lower-rate, complex, baseband signals in the digital domain. In most use-cases, these complex samples are transferred to/from applications running on a host processor, which perform DSP operations. The code for the FPGA is open-source and can be modified to allow high-speed, low-latency operations to occur in the FPGA.

子板(又称为模块化前端):用于模拟操作,如上、下变频转换、滤波等,这种模块化允许 USRP 为在 DC 和 6 GHz 之间运行的应用提供服务。

2.3 USRP产品系列:以数字命名的和以字母命名的

USRP产品系列分为以数字命名的和以字母命名的(这两种型号可以对应),分别对应于NI和Ettus Research下的产品名称。

  • 从NI方来看,从USRP-292x, 293x再到294x和295x,以及2974。产品系列逐渐扩展,在不断更新完善;
  • 相比于NI,Ettus Research的命名更有规则,产品分为个系列:主要有B系列,E系列,N系列和X系列,基本上系列字母越靠后价格越贵。

下面依次介绍B系列,E系列,N系列和X系列USRP产品及其对应的NI USRP型号。

  1. B系列(Bus series):主打小型化,目前有USRP B200/B210、USRP mini系列等,其中mini系列更是只有一张名片大小。而且B系列都采用USB3.0接口与GPP通信,直接采用USB供电,使用非常便捷。USRP B系列的产品大部分单价都在7000-8000块之间。

  2. E系列(Embedded series):E系列采用了嵌入式处理器,不需要连接到外部PC进行操作。E系列是为需要stand-alone operation的应用程序设计的。

  3. N系列(Networked series):N系列,即Network series,指USRP与GPP采用的是Ethernet接口。N系列包含N200和N210两个系列。N系列的USRP都需要外接一个子板,而且都只支持1TX&1RX。此外,N系列还需要外接电源。N210与N200的差别也主要在FPGA芯片上。

  4. X系列是Ettus面向5G而设计开发的产品,也是USRP4个系列里面最贵的。单个X系列的USRP价格在$4000-$5000之间,大约是国内一辆QQ轿车的价格。其单个channel的带宽高达160MHz。X系列最多可以接两个子板(Daughterboard),即最多可以支持2TX&2RX。此外,X系列支持PCIE接口,ExpressCard接口,以及1Gbit和10Gbit Ethernet接口,为USRP与GPP之间提供了高速接口。

2.4 怎么挑选USRP?

主要从参数、编程方式、价格、便携性等方面考虑。参考官网:Which USRP Is Right for You?

参考文献:1. https://blog.csdn.net/jxwxg/article/details/55106977
2. USRP Wiki
3. NI 官网

(水平有限,烦请指正,禁止转载,敬请谅解)

有关USRP系列(二):USRP作用、组件及产品系列介绍的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  3. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  4. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  5. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  6. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  7. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  8. ruby-on-rails - "assigns"在 Ruby on Rails 中有什么作用? - 2

    我目前正在尝试学习RubyonRails和测试框架RSpec。assigns在此RSpec测试中做什么?describe"GETindex"doit"assignsallmymodelas@mymodel"domymodel=Factory(:mymodel)get:indexassigns(:mymodels).shouldeq([mymodel])endend 最佳答案 assigns只是检查您在Controller中设置的实例变量的值。这里检查@mymodels。 关于ruby-o

  9. ruby - 字符串文字前面的 * 在 ruby​​ 中有什么作用? - 2

    这段代码似乎创建了一个范围从a到z的数组,但我不明白*的作用。有人可以解释一下吗?[*"a".."z"] 最佳答案 它叫做splatoperator.SplattinganLvalueAmaximumofonelvaluemaybesplattedinwhichcaseitisassignedanArrayconsistingoftheremainingrvaluesthatlackcorrespondinglvalues.Iftherightmostlvalueissplattedthenitconsumesallrvaluesw

  10. ruby - 为什么这个 eval 在 Ruby 中不起作用 - 2

    你能解释一下吗?我想评估来自两个不同来源的值和计算。一个消息来源为我提供了以下信息(以编程方式):'a=2'第二个来源给了我这个表达式来评估:'a+3'这个有效:a=2eval'a+3'这也有效:eval'a=2;a+3'但我真正需要的是这个,但它不起作用:eval'a=2'eval'a+3'我想了解其中的区别,以及如何使最后一个选项起作用。感谢您的帮助。 最佳答案 您可以创建一个Binding,并将相同的绑定(bind)与每个eval相关联调用:1.9.3p194:008>b=binding=>#1.9.3p194:009>eva

随机推荐