——如何开发USRP,NI和Ettus的USRP设备都可以使用GNU Radio进行开发吗?
说句实话,这是我第一次接触USRP设备,并尝试在Ubuntu上安装比较麻烦的软件,整个过程花了两天多,重装了三次虚拟机,保留了很多的虚拟机快照,经历了非常多次的错误,最终完成了软件和各种依赖的正确安装,在这个过程中遇到了不少问题,也通过自己搜集资料以及思考,学习到了不少知识,现在把这些踩过的坑和学习到的知识做一个总结,同时也希望通过这种方式,为其他像我一样的初学者提供一些参考。由于整个安装过程涉及到的问题和知识比较分散,所以我打算分成几个部分来分别讲解。
1.如何开发USRP,两种开发方式比较
首先,为了从零开始的同学简要介绍一下,我们为什么要装这些软件,以及这些软件具体起到了哪些作用。GNU Radio是一个开源的软件无线电开发平台,可以通过图形化界面或C++、Python等文本语言快速开发软件无线电应用
我的出发点是基于USRP设备开发一些通信相关的算法。在进行开发的过程中,主要有两种开发方式,第一种是“NI-USRP”+“Labview”;第二种是“UHD”+“GNU Radio”,前者多用于windows,而后者则用于Linux,我们可以根据自己的情况进行选择。值得注意的是,这两种开发方式中的“NI-USRP”和“UHD”都是用于保证底层驱动与开发环境之间的通信,与固件的更新,可以理解为开发过程的前提条件。这两种开发方式的关系如下图所示。

需要知道的是,USRP设备需要固件(firmware image)和FPGA镜像(FPGA image)且版本一致才能正常工作,此二者与上位机使用何种环境:Windows还是Linux无关 ,即:同一套固件和镜像不需要更换可在Windows LabVIEW及Linux GNU Radio下使用。
2.NI与Ettus USRP设备
一般来说,大家用的最多的USRP设备无非两个品牌:Ettus和NI,Ettus公司是National Instrument的子公司,其实这两个品牌的USRP设备在硬件上有着很大的相似性和兼容性,NI的USRP设备就是使用Ettus的SDR板子+射频子板封装而成的,这就意味着,使用了相同SDR板的USRP设备之间可以使用相同的固件和FPGA镜像。以我手上的NI USRP-2932为例,经过咨询供应商,这款USRP设备与Ettus的N210使用了相同的SDR板,并在此基础上增加了SBX子板和GPSDO。
遇到的第一个问题就是,NI的USRP设备与Ettus的USRP设备之间能够相互替换吗,在开发过程中存在什么差异吗?经过请教师兄,在各个论坛寻找答案,最终得到了解答。在NI的支持中,找到了这样一个帖子
这个帖子告诉我们,Ettus的USRP设备和NI的USRP设备确实是可以相互替换的,只需要下载并烧写不同的固件和FPGA映像即可,下面给出两个厂商各自的固件文件的下载链接:
Ettus:https://files.ettus.com/binaries/cache/
Ettus的固件下载可以使用UHD中的uhd_images_downloader工具进行批量下载,也可以根据实际需求在上述连接中直接下载。Ettus的固件下载可能会遇到连接失败的问题,这时可以通过科学上网的方法来下载所需文件。

NI:https://www.ni.com/zh-cn/support/downloads/drivers/download.ni-usrp.html#369626
在下载并安装了NI-USRP后,软件会自动把固件和FPGA映像文件下载下来:

在拿到了固件和FPGA映像文件之后,我们可以根据自己的开发环境,选择相应的文件烧写方式,可以使用NI-USRP中的NI-USRP Configuration Utility工具进行烧写,也可以使用UHD中的“uhd_image_loader”进行烧写。
3.NI的USRP设备能用GNU Radio进行开发吗
我之所以会提出这样的问题,是因为在网上查阅各种资料的过程中,发现关于GNU Radio的开发教程基本都是使用了Ettus的USRP设备,使用NI的USRP设备并不在多数,我在NI的论坛中找到了与我有着同样困惑的初学者,帖子的链接如下:
建议初学者仔细看一下这个帖子中提到的各种问题,基本都是在刚刚接触USRP开发的过程中会遇到的概念性问题。总的来说,这个帖子告诉我们,我们可以使用GNU Radio对NI的USRP设备进行开发,我们只需要在Ettus的官网下载UHD版本的固件以及FPGA映像文件(UHD只提供Ettus设备的固件和FPGA映像文件,但是我们可以通过Ettus设备与NI设备之间的兼容性使得UHD支持NI的USRP设备),并成功烧写至设备中。
我在上述的链接中下载了Ettus N210的固件和FPGA映像文件,并使用NI-USRP Configuration Utility工具将其烧写到我手头的NI USRP-2932设备中,最终在UHD的示例程序中被识别为了Ettus的N210设备,这说明,具体选购哪一种品牌的USRP设备对于开发过程影响并不大,我们需要做的就是根据我们的需求维护设备的固件与FPGA映像。


本文介绍了如何使用USRP设备进行开发,包括两种主要开发方式——“NI-USRP”+“Labview”和“UHD”+“GNURadio”。作者分享了在Ubuntu上安装和配置软件的复杂经历,并探讨了Ettus和NI USRP设备的兼容性。文章指出,这两种设备可以相互替换,只需匹配正确的固件和FPGA镜像。同时,确认了NI的USRP设备也能用GNURadio进行开发。文章提供了固件下载链接,并分享了设备固件烧写的方法。
&spm=1001.2101.3001.5002&articleId=112297313&d=1&t=3&u=d956b68363314241a79f99ae1fc533b8)
828

被折叠的 条评论
为什么被折叠?



