内部基于GNU的usrp N210的ADS_B接收模块安装说明

  1. 安装步骤
    1. 基本的环境要求

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

图 1 环境要求

    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

    1. 安装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安装

    1. 配置连接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

  1. 测试

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/
打开查看的

gr-air-modes 是一款专用于处理 Mode S 信号的软件定义无线电接收系统,能够接收并解析来自航空器应答器的数据,其中包含飞机自动广播的 ADS-B 监视信息。Mode S 作为现代商用航空领域广泛采用的应答器通信规范,在飞机与地面二次监视雷达之间,或飞机彼此通过空中防撞系统(TCAS)进行双向通信时发挥作用。该协议是在早期 A/C 模式应答器技术基础上发展而来的增强版本,自上世纪四十年代起逐步演进形成。 在 Mode S 协议框架下,每架航空器会发送包含唯一身份标识(即 ICAO 识别码)及实时气压高度的数据,以协助空中交通管理系统实施飞行间隔保障。本接收系统工作于 1090 MHz 频段,专门捕获下行链路信号,不涉及对 1030 MHz 上行询问信号的接收或解析处理。 自动相关监视广播(ADS-B)作为 Mode S 协议中的一项扩展功能,依托于扩展断续振荡(Squitter)机制实现信息主动播发。尽管存在 VDL 模式 2 与 UAT 等其他实现方式,但目前商用航空领域仍以 Mode S 作为 ADS-B 数据传输的主要技术途径。该协议具备以下运行特征:首先,其运行过程完全自动化,无需飞行员介入操作;其次,所广播的飞行状态数据高度依赖机载设备,如气压高度计、全球定位系统及其他航电仪表提供的实时参数。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值