使用msiSdr结合SopaySDR接收低频段数据


前言

前不久接到一个小任务,在成本非常有限的情况下,实时接收低频段(这里要求的是20k-500MHz)的数据。最先想到的自然是买个软件无线电的小玩意去完成这个任务。

一、开发环境与设备

本次项目在ubuntu16.04环境下,使用msiSDR设备开发。
msiSDR是在某宝上买的,成本在260-300不等。从介绍中可以得知该模块理论上是支持10kHz到2GHz的数据接收。并且带宽可以达到10MHz,完全满足了我的需求。

二、软件准备

1.寻找API

拿到这款msiSDR后开始着手开发。从找到的资料可以得知这款msiSDR是基于msi2500,那么理论上也是和sdrplay的api兼容的。一番寻找后在github找到了sdrplay公司的SoapySDR项目,实际上后面的测试也验证了确实是和sdrplay的api兼容的。

那么怎么使用sdrplay公司给的api并进行开发呢?

2.SoapySDR的使用

该项目的github仓库地址是https://github.com/pothosware/SoapySDR 。实际上在Documentation里面对项目所需的依赖以及安装都讲的比较清楚了,但由于是初次使用,还是遇到了不少问题。这里稍微记录一下我是怎么成功用起来的。
首先要明确的是,如果只是需要在gnuradio中使用msiSDR,那么只需要安装gr-soapy 或者gr-osmosdr即可,安装完之后就能在grc中找到对应的模块了,亲测可行,这个比较简单不再赘述。

由于本次我需要对采集到的数据进行FFT处理,为了之后的开发选择使用API驱动。

通过实现教程BuildGuide中的步骤后,成功安装上了SoapySDR,这里简单贴个代码,注意这里是ubuntu环境

git clone https://github.com/pothosware/SoapySDR.git
cd SoapySDR

mkdir build
cd build
cmake ..
make -j4
sudo make install
sudo ldconfig #needed on debian systems
SoapySDRUtil --info

如果安装成功,最后一步SoapySDRUtil --info 可以显示出目前连接的SDR相关设备信息。

然后问题就出现了,当时并没有成功找到设备,显示的是无设备依赖。经过一番资料的查找,找到了一个比较好的解决方法。
参考SoapySDRPlay 项目https://github.com/pothosware/SoapySDRPlay ,里面有提到
Get SDR Play driver binaries ‘API/HW driver v2.x’ (not v3.x) from - http://sdrplay.com/downloads
然后才是安装 SoapySDR 。

依葫芦画瓢,在官方下载到API驱动并且安装好后,继续安装SoapySDRPlay ,这时候终于可以显示正确的设备信息了。

之后找到了一个C语言的API开发实例进行了测试,结果是达到预期的。

总结

总的来说,要想达到预期结果,需要以下几个步骤

1.安装 SDR Play driver (我的是ARM64环境)

 sudo chmod 777 SDRplay_RSP_API-ARM64-2.13.1.run
 sudo ./SDRplay_RSP_API-ARM64-2.13.1.run

2.安装SoapySDR (仓库 https://github.com/pothosware/SoapySDR)
进入SoapySDR目录–>

 mkdir build
 cd build
 cmake ..
 make -j4
 sudo make install
 sudo ldconfig 
 SoapySDRUtil --info

4.安装Soapy SDR Play
进入SoapySDRPlay目录–>

 mkdir build
 cd build
 cmake ..
 make
 sudo make install

5.验证设备能否找到MSI-SDR 设备
终端输入

 SoapySDRUtil --probe="driver=sdrplay"

如果找不到设备,报错Error probing device: no sdrplay device found
尝试修改 /etc/modprobe.d/blacklist.conf

sudo gedit /etc/modprobe.d/blacklist.conf 

该文档末尾添加

blacklist sdr_msi3101
blacklist msi001
blacklist msi2500

简单写到这,期间遇到的问题还是不少的,如果大家在这个过程中有遇到问题可以在评论区贴出一起探讨。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页