如果您计划开发一个无线应用程序,并且需要选择一款软件无线电(SDR),您可能会面临一些疑问,例如:
我从何处入手?
哪一款通用软件无线电外设(USRP)适合我?
我应该使用哪种软件开发工具?
本技术白皮书介绍了各种USRP型号之间的主要差异,可以帮助您选择合适的无线电。
软件无线电简介
软件无线电是一种无线设备,通常用于无线研究的原型验证和部署应用程序。SDR通常用于通信、新一代雷达、电子战(EW)、空口(OTA)测试和5G研究等领域。大部分SDR具有通用的硬件架构,其中包括不同性能的通用处理器(GPP)、FPGA以及RF前端。
图1.SDR的标准硬件架构
针对主机应用程序代码开发,工程师使用以下常见工具:
软件开发工具和操作系统可以帮助确定哪一款无线电最适合您的应用程序。
许多应用程序需要使用FPGA设备进行信号处理硬件加速。多款USRP具备这项功能,它们均提供了众多FPGA开发选项,稍后将更详细地介绍这一点。
图2概述了USRP上可用的软件和FPGA开发的通用工具流程。
图2:SDR的软件和FPGA选项
NI和Ettus Research USRP产品是一系列软件无线电,旨在满足广泛的无线原型验证和部署需求。让我们来了解各种硬件和软件的注意事项,以帮助您选择合适的无线电。
硬件选项
在为您的应用程序挑选合适的USRP设备时,最好先问自己一些与信号参数、大小、重量、功率、成本(SWaP-C)、性能和环境应用要求相关的问题。问题1:我需要多大的中心频率和带宽?
这个问题很容易回答,但下一个问题就复杂多了:我打算如何将信号数据移至设备上,或将其移出设备?
为此,我们需要关注数据接口的重要性。例如,USRP-290x型号通过USB连接到主机,并且受到该接口的最大持续带宽的限制;而NI Ettus USRP X410配备两个双路100 GbE接口,可传输更多的数据。
想要了解有关USRP接口带宽注意事项的更多内容,请查阅Ettus Research知识库上USRP带宽和采样率。
大多数USRP设备的最高频率可达6 GHz,部分设备更高;但是NI Ettus USRP X410可在7 GHz频带内运行。在低频端,部分无线电的频率可低至75 MHz,有些甚至可低至直流频率,具体情况取决于使用的模拟芯片组。查看图15可了解每个型号的细分情况。
图3: 基于RFSOC打造的Ettus USRP X410是一款高频率带宽SDR,中心频率最高可达7.2 GHz。
价格和性能的权衡
在选择USRP设备时需要权衡利弊,特别是要权衡价格和性能。 如果您需要高性价比的无线电,并且没有高级FPGA或高带宽方面的需求,那么NI USRP 290x或Ettus Research B200mini都是不错的选择。如果您需要最高的带宽,高达7.2 GHz的频率,NI Ettus USRP X410可能是最合适的选择。 介于这两款例举的型号之间还有很多选择。 下面的图15介绍了所有型号的细分情况。
图4:低SWaP-C的USRP B200和USRP B200mini SDR
独立的或已连接主机的SDR选项
USRP被视为是一种计算机外设,可将软件与电磁频谱相连。自第一个USRP问世以后,应用一直在发展,许多应用需要板载嵌入式处理器。如果您应用中的SDR分布在集中式控制系统之外或单独部署,则您可能需要此独立配置。如果独立配置是必要的,则您需要决定Xilinx Zynq多处理器片上系统(MPSOC)或射频片上系统(RFSOC)是否足够,或者您是否需要强大的板载Intel X86处理器。图1介绍了各种型号及其板载处理器的细分情况,可参考USRP规格文档了解更多信息。
表1:搭载板载处理器的可独立式USRP型号
图5: 内置Intel Core i7的USRP 2974独立式SDR
有加固需求的严苛环境
尽管许多USRP用于实验室,但一些应用需要在户外或更严苛的环境下操作。如果您的应用需要在更高的操作温度下运行,或者无法依靠气冷系统,您可以考虑为应用使用Ettus Research品牌的嵌入式系列。此外,在Ettus Research品牌下,可以选择配置USRP B205mini来适应更高的温度范围,并使用工业级铝制外壳组件,以实现低SWaP运行。 另外,如果您需要面临极端环境的挑战,我们愿意为您引荐我们经验丰富的加固产品合作伙伴;请与我们联系以探讨这些选项。
图6: 嵌入式系列USRP E320
多通道同步
许多应用需要具有不同同步级别的多输入多输出(MIMO)配置。一些MIMO系统只需要共享时钟来用于ADC和DAC;而其他系统则需要每个通道被锁定到一个通用时钟和本地振荡器以实现全相位相干运行。
常见的MIMO应用适用于使用空间多路复用的通信。因为这只需要时钟同步,大多数USRP有一个外部的10 MHz参考时钟就足够了。 有一款这样的系统是由布里斯托大学和隆德大学合作打造的,他们使用基于SDR的大规模MIMO系统打破了无线频谱效率的世界纪录。 在此应用中使用的大规模MIMO原型验证系统是由使用板载FPGA的NI USRP软件无线电设备组成的。
图7:采用内置LO配电接口的USRP N320和N321
当需要全相位相干运行时,您有两种可以考虑的选择。如果您需要最多四个通道的仅接收操作,具有两个TwinRx子板的Ettus Research USRP X310可以设置为共享LO并以相位相干的方式运行。如果需要超过四个通道,则可以考虑一下图7中所示的Ettus Research USRP N320和N321。USRP N321配备了内置LO分布硬件,允许最高128 x 128相位相干运行:图8显示了一个32 x 32配置示例。
图8:USRP N320和N321多通道相位相干系统
分布式多无线电同步
在一些应用中,无线电需要同步,但它们并不位于一处。在这些情况下,全相位相干运行是一项挑战;但是有了GPS驯服的振荡器(GPSDO),可以通过基于GPS的同步获取频率和相位稳定性。许多USRP型号出厂配备GPSDO。要了解更多信息,可查阅“利用NI USRP-293x软件无线电实现全局同步和时钟驯服。”
图9:采用板载GPS驯服的振荡器的USRP X310
内嵌信号处理和FPGA注意事项
有些应用的处理要求最适合板载FPGA。这些应用通常有宽信号带宽或低/确定性延时需求。在这种情况下,挑选能够对FPGA进行编程的无线电很重要。许多USB和更低成本的USRP型号,如USRP B200mini或N210,都是用更小的FPGA设备构建的,因此没有空间添加用户代码。许多更高端的无线电配备了Kintex 7类设备,一直到基于Xilinx Zynq Ultrascale+ RFSOC的最先进的NI Ettus USRP X410。基于Xilinx Zynq构建的设备包含了更多内核数,例如板载SD-FEC、多臂处理器以及内置ADC和DAC。
表2: 启用FPGA的USRP的比较
图10:跨NI FPGA产品的FPGA资源的比较
软件选项
可编程性是SDR的主要特征,它能让人利用无线电外设,并将其变为一个先进的无线系统。USRP是市面上最开放和最通用的SDR,可帮助工程师使用各种软件开发工具基于主机和FPGA构建系统。
主机编程注意事项
如上面图2所示,有多种选项可以为基于SDR的系统的主机编程。
使用安装了NI-USRP驱动程序的LabVIEW进行编程
LabVIEW是图形化的数据流编程环境,非常适合用于设计和实现通信算法。在最基本的层级上,LabVIEW使用NI-USRP驱动程序来指定USRP硬件配置和收发正确格式化的基带I/Q数据,为主机端信号处理做好准备。
如果LabVIEW是您首选的开发环境,值得注意的是,尽管它确实提供一些基于Linux的操作系统支持,但它主要是一个基于Microsoft Windows的工具。此外,一些Ettus Research品牌的USRP型号和配置可能不受支持;可以参见下面的图15。
图11: 具有NI-USRP驱动程序API的LabVIEW屏幕的结构框图
使用开源工作流编程:USRP硬件驱动程序(UHD)和GNU Radio
许多SDR用户更喜欢使用基于C/C++和Python构建的基于文本的开源工具流来为USRP硬件编程。所有NI和Ettus Research USRP型号均支持USRP硬件驱动程序(UHD),可轻松集成到开源社区开发的工具中,如GNU Radio。
GNU Radio是专为SDR开发人员打造的开源工具。虽然USRP不是GNU Radio支持的唯一无线电,但它是最受欢迎且经过测试的。要了解更多关于GNU Radio的信息,请访问gnuradio.org,要查看所有现有社区共享的GNU Radio的IP,请访问cgran.org。
图12:GNU Radio配套流程图
使用MATLAB编程
如果MATLAB是您首选的编程工具,则MathWorks Communications Toolbox™可支持多个USRP型号。支持的型号包括B200、B200mini、X300、N200和N300系列。另外,工程师可以使用MATLAB脚本节点将MATLAB代码直接嵌入LabVIEW中。
FPGA编程注意事项
许多USRP都配备了大型FPGA,有足够的空闲容量,允许用户嵌入特定于其应用程序的内联信号处理。如硬件部分所述,一些USRP配备了Xilinx Zynq SOC设备,一些则配备了传统的FPGA架构,如Kintex 7。可以通过两种方法访问USRP上的FPGA:LabVIEW FPGA和片上射频网络(RFNoC)框架。
与许多FPGA开发板或COTS FPGA板不同,USRP基于通用FPGA框架构建,提供更高级的抽象能力。这消除了从基本FPGA板支持包构建基于FPGA的系统时遇到的一些复杂性。
LabVIEW FPGA
LabVIEW FPGA是LabVIEW的附加扩展模块,支持在NI USRP RIO设备上为FPGA进行图形化编程。 虽然必须熟悉FPGA的概念,如定点数学和时钟逻辑,但LabVIEW不仅可将硬件和数据接口抽象化,还可简化寄存器配置和数据移动。LabVIEW FPGA的优势是能够使用统一开发工具链同时为主机和FPGA编程。
是否有想要利用的旧版IP?LabVIEW FPGA可以通过组件级IP(CLIP)节点导入外部VHDL或Verilog,允许导入非LabVIEW IP。此外,LabVIEW允许Xilinx Vivado项目导出,供专家用户直接在Vivado工具内使用。
如果LabVIEW FPGA是您选择用于主机编程的工具,请注意,它仅限于在基于Windows的操作系统中使用。 许多Ettus Research设备在LabVIEW或LabVIEW FPGA下不受支持,例如USRP N300和USRP E300系列。请查看下方的图15了解完整列表。
图13:简单的LabVIEW FPGA结构框图
片上射频网络(RFNoC)框架
对于开源USRP用户而言,首选的FPGA编程方法是使用RFNoC框架。 LabVIEW FPGA等RFNoC是一种数据接口兼命令抽象框架,可简化将IP添加到USRP中的流程,而无需从头重新构建整个FPGA板支持包。顾名思义,数据作为压缩报头网络包从无线电流经FPGA。RFNoC框架的核心是一个交叉开关矩阵接口,让用户只需将新IP导入交叉开关矩阵,即可将数据路由到其他IP块或让数据传入传出主机。网络交叉开关矩阵设计降低了将数据和命令传入传出主机的复杂性。
如果您偏爱使用Vivado和RFNoC来为USRP的FPGA编程,请考虑为您的应用使用USRP X300、USRP E300、USRP N300以及NI Ettus USRP X410系列。
图14: 与GNU Radio集成的RFNoC概念结构框图
图15:NI和Ettus Research USRP型号矩阵
结论
SDR是强大的无线研究、设计、原型验证和开发工具。由于存在许多选项,为应用挑选合适的无线电需要考虑很多因素。然而,只要仔细评估本技术白皮书中列出的各种软件和硬件因素,您一定能使用市场上最流行的开放式SDR。
文章来源:NI官网