Ettus和NI的usrp均可以支持labview和gnuradio平台,烧写不同的firmware和FPGA images即可。本文讲述的是如何烧写固件,使得usrp支持gnuradio软件平台。
本文不讲述如何安装gnuradio及UHD,讲述的是那些因固件原因仅仅能运行labview软件而不能运行gnuradio的usrp如何修改固件使得USRP支持gnuradio。烧写不同的固件即可以使得usrp支持labview/gnuradio。即您想使用哪种平台需要首先烧写哪种平台的固件。
说明一下,从NI公司买来的usrp一般默认是支持labview的,如产品NI-USRP-2920;从ettus公司或者国内代购嘉兆或者海曼等等,一般默认支持gnuradio。可以修改固件,使得其支持不同的平台。
正文如下:
1.从可以使用gnuradio的平台烧写成可以使用labview的平台
NI提供了NI-USRP Configuration Utility,可以从NI官网下载,在windows平台下即可以使用,比较简单,不再描述。下载下来软件修改固件就可以。
2.从可以使用labview的平台烧写成可以使用gnuradio的平台
gnuradio一般是在linux环境下使用的,因此下文介绍操作均在linux平台下进行,且设想事先装好gnuradio及uhd。
以Ettus公司的USRP N210为例,
1)首先我们知道需要修改firmware及fpga images.安装好之后,找到它们,
在/usr/local/share/uhd/imges/usrp_n210_fw.bin
及/usr/local/share/uhd/images/usrp_n210_r4_fpga.bin
2)uhd下有命令可以使得我们修改固件,
cd /usr/local/lib/uhd/utils/
在此目录下,ls
b2xx_fx3_utils uhd-usrp.rules usrp_burn_db_eeprom usrp_n2xx_simple_net_burner
fx2_init_eeprom usrp2_card_burner_gui.py usrp_burn_mb_eeprom usrp_x3xx_fpga_burner
query_gpsdo_sensors usrp2_card_burner.py usrp_n2xx_net_burner_gui.py
uhd_images_downloader.py usrp2_recovery.py usrp_n2xx_net_burner.py
3)我们使用usrp_n2xx_simple_net_burner来进行修改,
运行命令:
./usrp_n2xx_simple_net_burner --addr="192.168.10.3" --fw /usr/local/share/uhd/images/usrp_n210_fw.bin --fpga /usr/local/share/uhd/images/usrp_n210_r4_fpga.bin
(注:ip 地址以具体仪器为准,根目录下使用uhd_find_devices查看;另外,仪器的版本也不一定一样,我的是usrp n210 r4;原则就是寻找适合自己仪器的即可,都在/usr/local/share/uhd/imges/目录下了,自己寻找对应的即可)
运行命令,终端显示:
linux; GNU C++ version 4.6.3; Boost_104800; UHD_003.007.001-84-gd99ce4ef
Searching for USRP N2XX with IP address 192.168.10.3.
Found n210_r4.
Searching for specified images.
Will burn the following images:
* Firmware: /usr/local/share/uhd/images/usrp_n210_fw.bin
* FPGA: /usr/local/share/uhd/images/usrp_n210_r4_fpga.bin
Querying n210_r4 for flash information.
* Flash size: 4194304
* Sector size: 65536
Erasing FPGA image.
* Successfully erased 1572864 bytes at 1572864.
Writing FPGA image (100%).
* Successfully wrote 1311560 bytes.
Verifying FPGA image (100%).
* Successful.
Erasing firmware image.
* Successfully erased 31744 bytes at 3145728.
Writing firmware image (100%).
* Successfully wrote 16383 bytes.
Verifying firmware image (100%).
* Successful.
Image burning successful. Reset USRP (Y/n)? y
Resetting USRP.
成功。
终端下 运行 uhd_fft -a "addr=192.168.10.3"试试看可否正常运行了。