LimeSDR-USB之GPS欺骗

原文出处:https://blog.csdn.net/qq_41956518/article/details/82189404

多谢CSDN原作者NVA SPC的整理分享和许可转载!!!

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

欺骗部分 
这部分的代码来自于gps-sdr-sim,后期我将自己制作一个只针对于LimeSDR-USB的分支供大家学习参考。话不多说,我们开始吧!

#这是安装LimeSuite组件,Soapy API和LimeSDR的所有驱动的程序,没有安装过的朋友先安装

sudo add-apt-repository -y ppa:myriadrf/drivers 

sudo apt-get update 

sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images 

sudo apt-get install soapysdr soapysdr-module-lms7

安装好后,开始下一步的操作

git clone https://github.com/osqzss/gps-sdr-sim

cd gps-sdr-sim

#接下来对你下载好的文件进行gcc编译

gcc gpssim.c -lm -O3 -o gps-sdr-sim

到这前期准备工作就好了,下面我们来看编译好的文件中的各类指令

Usage: gps-sdr-sim [options]    #  
Options:  
  -e <gps_nav>     RINEX navigation file for GPS ephemerides (required)  
  -u <user_motion> User motion file (dynamic mode)  
  -g <nmea_gga>    NMEA GGA stream (dynamic mode)  
  -c <location>    ECEF X,Y,Z in meters (static mode) e.g. 3967283.15,1022538.18,4872414.48  
  -l <location>    Lat,Lon,Hgt (static mode) e.g. 30.286502,120.032669,100  
  -t <date,time>   Scenario start time YYYY/MM/DD,hh:mm:ss  
  -T <date,time>   Overwrite TOC and TOE to scenario start time  
  -d <duration>    Duration [sec] (dynamic mode max: 300 static mode max: 86400)  
  -o <output>      I/Q sampling data file (default: gpssim.bin ; use - for stdout)  
  -s <frequency>   Sampling frequency [Hz] (default: 2600000)  
  -b <iq_bits>     I/Q data format [1/8/16] (default: 16)  
  -i               Disable ionospheric delay for spacecraft scenario  
  -v               Show details about simulated channels  
#这是中文的对照
用法:gps-sdr-sim [选项]
选项:
   -e <gps_nav>用于GPS星历表的RINEX导航文件(必填)
   -u <user_motion>用户动作文件(动态模式)
   -g <nmea_gga> NMEA GGA流(动态模式)
   -c <位置> ECEF X,Y,Z,以米为单位(静态模式),例如3967283.15,1022538.18,4872414.48
   -l <位置> Lat,Lon,Hgt(静态模式),例如30.286502,120.032669,100
   -t <日期,时间>场景开始时间YYYY / MM / DD,hh:mm:ss
   -T <日期,时间>将TOC和TOE覆盖到方案开始时间
   -d <欺骗时间>持续时间[秒](动态模式最大值:300静态模式最大值:86400)
   -o <输出> I / Q采样数据文件(默认值:gpssim.bin;使用 - 用于stdout)
   -s <频率>采样频率[Hz](默认值:2600000)
   -b <iq_bits> I / Q数据格式[1/8/16](默认值:16)
   -i禁用航天器场景的电离层延迟
   -v显示有关模拟频道的详细信息

使用以上指令时,可以生成动态与静态的文件,例如

gps-sdr-sim -e brdc3540.14n -u circle.csv               #静态模式
gps-sdr-sim -e brdc3540.14n -g triumphv3.txt            #静态模式
gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 #动态模式

在指令前一定要加./,例如

./ gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 #生成北纬30,东经120,高度100m的星历

等待这个完成后,你会发现文件中多了一个gpssim.bin的文件,将它重命名为circle.1b.1M.bin

下一步,也是至关重要的一步,我前面尝试时会报错,报错的类型是无法找到文件或目录经过探索,发现这个指令中的limeplayer可执行程序未生成,所以执行以下步骤

cd player
gcc -O2 -Wall -o limeplayer limeplayer.c -lLimeSuite

执行完后会发现文件夹中多了一个limeplayer的可执行程序 
接着执行最后一条指令,开始欺骗,记得加./

./limeplayer -s 1000000 -b 1 -d 2047 -g 0.1 < ../circle.1b.1M.bin

此时,终端上应该显示LimeSDR的信息,并出现一系列数据流,开始发送信息。

但是目前,还没有成功欺骗,估计可能跟发射的增益有关,后续继续研究,未完待续。

猜你喜欢

转载自blog.csdn.net/OpenSourceSDR/article/details/82190580
GPS
今日推荐