- 安装步骤
- 基本的环境要求
由于设备较为老旧,且网络上长期缺乏相关代码的更新,因此usrp N210整体环境仍停留在 Python 2 时代。为了兼容性考虑,建议选用 Ubuntu 16 版本,避免因新版本系统默认使用 Python 3 而导致兼容性问题。本文选用的操作系统版本为 Ubuntu 16.04.7。

图 1 环境要求
-
- 安装依赖项
在构建 UHD 和 GNU Radio 之前,需要确保首先安装了所有依赖项。在 Ubuntu 16.04 系统上,运行:
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.13-0v5 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-core 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 libqwt5-qt4-dev libqwtplot3d-qt4-dev pyqt4-dev-tools python-qwt5-qt4 cmake git-core wget libxi-dev gtk2-engines-pixbuf r-base-dev python-tk liborc-0.4-0 liborc-0.4-dev libasound2-dev python-gtk2 libzmq-dev libzmq1 python-requests python-sphinx libcomedi-dev python-zmq python-setuptools

相关参考见网页链接:
在 Linux 上构建和安装 USRP 开源工具链(UHD 和 GNU 无线电) - Ettus 知識庫 --- Building and Installing the USRP Open-Source Toolchain (UHD and GNU Radio) on Linux - Ettus Knowledge Base
-
- 安装UHD和GNU radio
UHD(USRP Hardware Driver)是 Ettus Research 提供的驱动程序框架,用于支持其旗下的 USRP(通用软件无线电周边)系列设备。UHD 提供了统一的接口,用户可以通过它在不同平台和软件环境中控制 USRP 硬件。它不仅支持基本的数据收发,还包括设备配置、时钟同步、频率控制等多种功能,是 GNU Radio 等软件无线电平台与 USRP 硬件之间通信的基础。
安装UHD命令:
sudo apt-get install libuhd-dev uhd-host
安装GNU,在Ubuntu16.4上所能下载GNU的最新版本为3.7,安装命令为:
sudo apt-get install gnuradio

图 2 GNU安装
-
- 配置连接USRP N210
主机网络设置:USRP 网络接口系列初始 IP 地址为 192.168.10.2。需要把 PC 机的 IP 设置为与 USRP 在同一网络。
将USRP N210的网线接入电脑的网络端口,在Ubuntu16中点击桌面右上角的有线连接-编辑连接选项:

新建一个有线连接,切换到ipv4设置,将automatic自动改为manual手动,并设置ipv4地址,见下图,并保存配置。

点击建立Ubuntu和usrp的有线连接,然后回到terminal,输入以下命令:
uhd_find_devices
下图则是成功连接的结果

1.5 安装ADS-B接收机(gr-air-modes)
由于时间久远,gr-air-modes已经不再更新,Ubuntu16以后不在支持PyQt4,而gr-air-modes后续版本依赖GNU 3.8,Ubuntu16.4下载最新GNU为3.7,所以我们要下载指定版本,进入以下网址:
Tags · bistromath/gr-air-modes
下载gr-air-modes3.7,或者直接使用本文提供的安装包,下载后,选择该文件夹进行解压。进入解压后的目录,建立一个新文件夹,命名为build。
进入build,打开终端,依次输入以下命令:
cmake ../
make
sudo make install
sudo ldconfig
注意,若编译失败,可删除build下所有文件,重复进行操作。
以上就是安装全过程。
参考网页链接:Implementation of an ADS-B/Mode-S Receiver in GNU Radio - Ettus Knowledge Base
- 测试
2.1 模块使用测试
本文安装gr-air-modes目录为home文件夹下。
进入gr-air-modes
在build文件夹下打开terminal输入以下命令
sudo modes_rx --rate 10e6 --threshold 0.0 --gain 25 --antenna "TX/RX" --freq 1090e6
或者简写为sudo modes_rx -r 10e6 -T 0.0 -g 25 -A "TX/RX" -f 1090e6
注意一定要加天线选项 ,否则可能接收不到ADS_B消息
TX/RX:RF1
RX2:RF2
可以看到,设备是可以正常接收ADS_B消息并解码的。
其他参数功能使用命令查看。
sudo modes_rx –help
Usage: modes_rx: [options]
Options:
-h, --help show this help message and exit
-l LOCATION, --location=LOCATION
GPS coordinates of receiving station in format
xx.xxxxx,xx.xxxxx
-a REMOTE, --remote=REMOTE
specify additional servers from which to take data in
format tcp://x.x.x.x:y,tcp://....
-n, --no-print disable printing decoded packets to stdout
-K KML, --kml=KML filename for Google Earth KML output
-P, --sbs1 open an SBS-1-compatible server on port 30003
-m MULTIPLAYER, --multiplayer=MULTIPLAYER
FlightGear server to send aircraft data, in format
host:port
Receiver setup options:
-s SOURCE, --source=SOURCE
Choose source: uhd, osmocom, <filename>, or <ip:port>
[default=uhd]
-t PORT, --tcp=PORT
Open a TCP server on this port to publish reports
-R SUBDEV, --subdev=SUBDEV
select USRP Rx side A or B
-A ANTENNA, --antenna=ANTENNA
select which antenna to use on daughterboard
-D ARGS, --args=ARGS
arguments to pass to radio constructor
-f FREQ, --freq=FREQ
set receive frequency in Hz [default=1090000000.0]
-g dB, --gain=dB set RF gain
-r RATE, --rate=RATE
set sample rate [default=4000000.0]
-T THRESHOLD, --threshold=THRESHOLD
set pulse detection threshold above noise in dB
[default=7.0]
-p, --pmf Use pulse matched filtering [default=False]
-d, --dcblock Use a DC blocking filter (best for HackRF Jawbreaker)
[default=False]

此外还可以使用GUI界面进行设置:
操作为输入以下命令
sudo modes_gui
在配置相关参数后,点击start,就可以捕获相关ADS-B消息

保存的kml文件是可以在https://earth.google.com/
打开查看的




4964

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



