运行环境
环境 | 详情 |
---|---|
系统 | Ubuntu14.04 |
gnuradio | GNU Radio Companion 3.7.5 |
uhd | UHD_003.010.002.000-3-g122bfae1 |
USRP product | B210 |
USRP ip | 192.168.10.1 |
PC ip | 192.168.10.5 |
Boost | 105400 |
GNU C++ | 4.8.4 |
Python | Python 2.7.6 |
本步骤是基于GNUradio以及相关驱动uhd已经搭建好的基础上,进行USRP板子与PC机的连通。当环境搭建完毕之后,运行:
sudo uhd_find_devices
会出现这样的错误:
*rootradio@ubuntu:~$ uhd_find_devices
linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.002.000-3-g122bfae1
UHD Error:
USB open failed: insufficient permissions.
See the application notes for your device.
No UHD Devices Found*
是由于板子和电脑还没有进行连通,所以首先我们要先修改PC机的地址,使之和USRP处于同一网段内。配置的时候只需要配套的一根USB线即可。
1.配置PC机网络
由于USRP的地址在出厂时已定,我是用的板子地址为 192.168.10.1
(1)在linux虚拟机中点击右上角 Edit connection
(2)选中相应网卡,点击 Edit
(3)选择 IPv4 Settings ,在method处选择 manual 手动配置IP
(4)将IP地址填为 192.168.10.0~255 ,子网掩码 255.255.255.0
2.测试连接
更改完地址之后,测试是否可以连通USRP板,接收到数据表示已连通
$ ping 192.168.10.1
3.测试USRP驱动
连通之后还需要USRP的驱动UHD是不是匹配的,如果不匹配的话需要按照教程把和PC配对的固件烧录到USRP中。
运行:
sudo uhd_usrp_probe
会出现以下界面:
*linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.002.000-3-g122bfae1
– Loading firmware image: /usr/local/share/uhd/images/usrp_b200_fw.hex…
Error: LookupError: KeyError: No devices found for —–>
Empty Device Address*
然后在运行查找设备的命令我们就可以看到该USRP的型号等信息了
rootradio@ubuntu:~$ sudo uhd_find_devices
linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.002.000-3-g122bfae1
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
type: b200
name: 2000501894056
serial: 30AA038
product: B210
rootradio@ubuntu:~$ sudo uhd_usrp_probe
linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.002.000-3-g122bfae1
-- Detected Device: B210
-- Loading FPGA image: /usr/local/share/uhd/images/usrp_b210_fpga.bin... done
-- Operating over USB 2.
-- Detecting internal GPSDO.... No GPSDO found
-- Initialize CODEC control...
-- Initialize Radio control...
-- Performing register loopback test... pass
-- Performing register loopback test... pass
-- Performing CODEC loopback test... pass
-- Performing CODEC loopback test... pass
-- Setting master clock rate selection to 'automatic'.
-- Asking for clock rate 16.000000 MHz...
-- Actually got clock rate 16.000000 MHz.
-- Performing timer loopback test... pass
-- Performing timer loopback test... pass
_____________________________________________________
/
| Device: B-Series Device
| _____________________________________________________
| /
| | Mboard: B210
| | revision: 4
| | product: 2
| | serial: 30AA038
| | name: 2000501894056
| | FW Version: 8.0
| | FPGA Version: 14.0
| |
| | Time sources: none, internal, external, gpsdo
| | Clock sources: internal, external, gpsdo
| | Sensors: ref_locked
| | _____________________________________________________
| | /
| | | RX DSP: 0
| | |
| | | Freq range: -8.000 to 8.000 MHz
| | _____________________________________________________
| | /
| | | RX DSP: 1
| | |
| | | Freq range: -8.000 to 8.000 MHz
| | _____________________________________________________
| | /
| | | RX Dboard: A
| | | _____________________________________________________
| | | /
| | | | RX Frontend: A
| | | | Name: FE-RX2
| | | | Antennas: TX/RX, RX2
| | | | Sensors: temp, rssi, lo_locked
| | | | Freq range: 50.000 to 6000.000 MHz
| | | | Gain range PGA: 0.0 to 76.0 step 1.0 dB
| | | | Bandwidth range: 200000.0 to 56000000.0 step 0.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | RX Frontend: B
| | | | Name: FE-RX1
| | | | Antennas: TX/RX, RX2
| | | | Sensors: temp, rssi, lo_locked
| | | | Freq range: 50.000 to 6000.000 MHz
| | | | Gain range PGA: 0.0 to 76.0 step 1.0 dB
| | | | Bandwidth range: 200000.0 to 56000000.0 step 0.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | RX Codec: A
| | | | Name: B210 RX dual ADC
| | | | Gain Elements: None
| | _____________________________________________________
| | /
| | | TX DSP: 0
| | |
| | | Freq range: -8.000 to 8.000 MHz
| | _____________________________________________________
| | /
| | | TX DSP: 1
| | |
| | | Freq range: -8.000 to 8.000 MHz
| | _____________________________________________________
| | /
| | | TX Dboard: A
| | | _____________________________________________________
| | | /
| | | | TX Frontend: A
| | | | Name: FE-TX2
| | | | Antennas: TX/RX
| | | | Sensors: temp, lo_locked
| | | | Freq range: 50.000 to 6000.000 MHz
| | | | Gain range PGA: 0.0 to 89.8 step 0.2 dB
| | | | Bandwidth range: 200000.0 to 56000000.0 step 0.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | TX Frontend: B
| | | | Name: FE-TX1
| | | | Antennas: TX/RX
| | | | Sensors: temp, lo_locked
| | | | Freq range: 50.000 to 6000.000 MHz
| | | | Gain range PGA: 0.0 to 89.8 step 0.2 dB
| | | | Bandwidth range: 200000.0 to 56000000.0 step 0.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | TX Codec: A
| | | | Name: B210 TX dual DAC
| | | | Gain Elements: None
4.测试子板工作情况
检查usrp接收功能,运行:
sudo uhd_fft
如果出现以下界面,说明uhd和usrp安装成功了
在这里 3.025GHz出现了峰值,可以说在3.025GHz的频段下有很强的信号
5.可能出现的问题
运行:
sudo uhd_usrp_probe
出现以下错误:
*linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.002.000-3-g122bfae1
Error: LookupError: KeyError: No devices found for —–>
Empty Device Address*
运行:
sudo uhd_find_devices
出现以下错误:
*linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.002.000-3-g122bfae1
No UHD Devices Found*
解决方法:
这应该是FPGA没有烧写成功的问题,这时候将 USRP 的 USB 连接线从计算机上拔出来,再马上插回去, 重新运行 uhd_usrp_probe这时可以正常烧写固件和 FPGA 镜像了。
参考
1.Ubuntu14.04下GNU Radio的安装以及USRP N210配置
2.USRP配置与测试
3.使用ubuntu1404搭建GnuRadio环境
4.手把手教你搭建USRP在Linux GNU Radio下的开发环境