Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备

USRP的开发软件安装

  • USRP开发平台介绍
  • Ubuntu系统下安装流程
    • Ubuntu系统依赖的安装
    • 安装UHD

USRP开发平台介绍

  USRP可以适用于Windows和Linux两种平台,同时支持的软件也很多,如GnuRadio、Matlab、LabView,不过其基本的控制驱动是由UHD提供的,所以这个UHD是比较关键的。当然开始的时候试过用Matlab,也调通了,但是Matlab的兼容性太差了,单台设备可以正常工作,多台设备的时候,即两台或以上的设备使用时,Matlab就会一直出错,同时Matlab仅仅只能将USRP简单当做接收信号的设备使用,发挥不出它本身可以简单的和FPGA结合,就可以实现更加舒服的处理结果了,这也得益于第三代USRP中强大的FPGA实现,后面具体写到这个情况的时候,我在讲讲这个很NB的RFNoC(片上射频网络)。所以建议直接上手GnuRadio,搭建与USRP的连接,当然这个过程会遇见许多问题,所以下来将介绍如何完整的搭建。

Ubuntu系统下安装流程

Ubuntu系统依赖的安装

  这里具体的Ubuntu系统怎么安装就不在叙述,网上教程很多,楼主安装的是Ubuntu18.04,这里想说两点,装完系统后,先按照自带的源更新一下,即两条命令:

sudo apt update 
sudo apt upgrade

然后安装依赖:

sudo apt-get -y install git swig cmake doxygen build-essential libboost-all-dev libtool libusb-1.0-0 libusb-1.0-0-dev libudev-dev libncurses5-dev libfftw3-bin libfftw3-dev libfftw3-doc libcppunit-1.14-0 libcppunit-dev libcppunit-doc ncurses-bin cpufrequtils python-numpy python-numpy-doc python-numpy-dbg python-scipy python-docutils qt4-bin-dbg qt4-default qt4-doc libqt4-dev libqt4-dev-bin python-qt4 python-qt4-dbg python-qt4-dev python-qt4-doc python-qt4-doc libqwt6abi1 libfftw3-bin libfftw3-dev libfftw3-doc ncurses-bin libncurses5 libncurses5-dev libncurses5-dbg libfontconfig1-dev libxrender-dev libpulse-dev swig g++ automake autoconf libtool python-dev libfftw3-dev libcppunit-dev libboost-all-dev libusb-dev libusb-1.0-0-dev fort77 libsdl1.2-dev python-wxgtk3.0 git libqt4-dev python-numpy ccache python-opengl libgsl-dev python-cheetah python-mako python-lxml doxygen qt4-default qt4-dev-tools libusb-1.0-0-dev libqwtplot3d-qt5-dev pyqt4-dev-tools python-qwt5-qt4 cmake git wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq3-dev libzmq5 python-requests python-sphinx libcomedi-dev python-zmq libqwt-dev libqwt6abi1 python-six libgps-dev libgps23 gpsd gpsd-clients python-gps python-setuptools python-dev python-pip build-essential python3-pyqt5 

这里面的依赖包括了原有的,也包含了后期开发过程所需要的依赖包,当然可能不能完全装完,这时候你可以进行换源,将Ubuntu的源到阿里源,这部分也可以轻松在网上找到,注意系统版本一致就好了,更换后,重复上面的步骤,就可以把所有依赖安装完毕了!

安装UHD

&esmp;&esmp;下来就比较重要了,首先要装UHD,注意这里的UHD版本很重要,这个版本决定了USRP内的FPGA镜像版本,如果不一致,就会提示你不能连接,具体的错误基本就是image not compatiable,所以我们需要下载一致的镜像版本,其实不伦uhd还是GnuRadio都是放在GitHub上的源码,我们需要在Linux上通过Git命令去下载,然而,这样的结果可能你需要很久才能下载,中途还会中断等等,当然如果能用Ubuntu,这样通过命令行的形式下载,通过命令行的安装过程,我会将文档给出。博主用的是RFNoC版本,对应的Uhd分支是rfnoc-devel,之后就可以在Windows下载了,把这个分支的内容下载下来,这里特别注意,fpga-src是这个分支的子分支,不会随着一起下载,一定要进入这个分支,进行下载,才能完整的下载uhd源码,具体过程:Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备_第1张图片
Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备_第2张图片
  以上恭喜大家已经完成了我刚开始安装花了很长时间才解决的问题,如果有和博主用同样的版本,我也可以给大家私发,下载完成后,解压把对应的目录保存好,然后用优盘复制到Ubuntu系统下,文件夹名称就是uhd就好了,下来的步骤就是:

cd host
sudo mkdir build
cd build
sudo cmake ../
sudo make 
sudo make test
sudo make install 
sudo ldconfig

下来你就可以验证你的uhd版本了

uhd_usrp_probe –version

version
当然如果你的uhd版本和你的USRP的FPGA镜像相一致,那么此时使用uhd_find_devices,发现你的设备,如果出现不兼容的情况,就要更新USRP的镜像,当然,这里下载镜像的话可以进入/usr/local/bin目录下,使用命令:

uhd_images_downloader -t x310

下载镜像,一定要用-t加上自己用的USRP型号,避免下载其它多余的镜像,因为中途一旦中断,所有下载的都将被撤销,而且 这个速度也想但漫长,不过因为我们已经下载了fpga-src这个源码文件,所以我们可以自己通过Xilinx下的Vivado软件来自己生成镜像,因为我们后面要用到USRP的FPGA资源,所以这个软件也会用到,当然下篇文章,我就会讲如何生成这个镜像,其实对这个原始镜像也是可以找到它的代码库,这个可以去files.ettus.com一步一步找到镜像的位置,这个的版本一定要是红色圈中的那个才可以,然后在Windows下载并拷入到Ubuntu系统下。
Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备_第3张图片

  为了对设备进行试验,我们使用原始的镜像为例进行烧写,首先通过网线与电脑连接,默认情况下0端口的ip地址是192.168.10.2,是一个千兆的,而1端口是一个万兆光口,ip地址是192.168.40.2。网口ip只是连接的一个认证,我们也可以进行擦除修改,后面再具体介绍,因为买的时候会自带一个光口转电口的SPF模块,所以将其插入0端口。将网线与电脑连接,并设置电脑的ip为192.168.10.1,这样就保证设备与电脑在同一个局域网,我们可以用ping 192.168.10.2来测试与设备的联通情况,我用的是1端口的光口所以我的ip是192.168.40.2,便用这个为例给出图
Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备_第4张图片
连通后,我们就可以用网线烧写下载的镜像了。首先要进入到我们下载的路径当中,这样就不用填写特别复杂的路径信息了,然后用下面的指令将镜像通过网线烧写到USRP当中,等待完成的提示,重新上电,就OK啦!

uhd_image_loader --args="type=x300,addr=192.168.40.2" --fpga-path="./usrp_x310_fpga_RFNOC_HG.bit"

  重启过后,再利用:

uhd_usrp_probe
或者
uhd_find_device

就可以获取到正确的USRP相关信息。
Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备_第5张图片
Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备_第6张图片
简单来看,可以获得的信息有USRP的地址,FPGA镜像的版本为HG,这个版本意味着0端网口是千兆的,1端网口为万兆的,而XG版本意味着两个额昂口均为万兆口。而通过usrp_probe指令可以得到我们这个设备的所有信息,包括射频板的相关情况,后面我们在细究。
 &esmp;至此uhd就会被完整的装成功了,相关的资源,我也会上传,欢迎下载!

你可能感兴趣的:(数字通信,电脑硬件,fpga,嵌入式)