利用PLUTO以及USRP实现遥控钥匙(固定码)信号嗅探

利用PLUTO以及USRP实现遥控钥匙(固定码)信号嗅探

一:为什么是固定码?

对于遥控的控制模块相应的码有三类:固定码,学习码,以及滚动码。固定码是指接收模块与遥控信号发射模块一一对应,其他遥控控制不了,具有稳定的优点,但缺点容易重码被复制(某拼某宝有很多种)。学习码是指使用前需要与遥控器按键模块对准接受模块进行对码匹配,具有重码率和保密性较好。滚动码是指利用较长的编码方式来编码,可以认为是固定码的升级换代,比起固定码与学习码更加安全。那么这次实验中我利用常见的门铃钥匙(433M)如图1跟电动车遥控钥匙(315M)如图2作为信号的发射模块当然它们属于固定码类的遥控钥匙。

图(1)实验室门铃

图(2)电动车遥控钥匙微信图片_20220426143601

二:简述原理

二进制振幅键控调制(2ASK)又可以叫做开关键控(OOK:on-off keying)表示幅度键控调制的最简单的形式,它将数字信号表示成载波的存在与不存在,即一个载波在某一特定时间段内存在代表着二进制数A,而同一时间段内不存在代表着二进制数0。

三:利用Gnuradio与Pluto实现信号的接收

根据上图流图利用pluto sdr source 来接收遥控钥匙发射的射频信号(其中涉及到:射频频率、采样率、以及射频功率放大参数(这里我基本择关闭,因为短距离低频信号要求并不高)等等)然后可以在时域和频域上进行观察信号接收的情况,最终保存在test文件(当然你也可以给出文件后缀cfile)中保存。

四: 重放及观察重放信号

根据以上流图我们利用pluto来进行信号的重放工作,然后利用USRP来观察信号在空中重放的情况,那么其中Mutiply Const乘法器也就(字面意思上来讲就是乘以一个常数)用来放大输出时的幅度,从而达到AD输出最大。那么我们观察下图所示没加Mutiply Const时振幅幅度变化效果不明显或接近零。

我们打开Inspectrum来粗略的说明一下以上问题:

根据第四步中所提,我们可以在Inspectrum工具包中打开我们需要重放的信号,在调节其功率水平的阈值时明显观察到其中间的垂线与我们接收的信号颜色变化近似同步,也就相当于我们接收的信号功率水平近似于这个缺陷的信号功率水平。

USRP接收图是为了观察我们在射频信号重放过程中观察其空气中传播的情况,当然我们为了获得较为明显的振幅变化(较强的输出),结果如下图所示:

在实际的信号接收与重放的过程中我们最好的情况下选择最为理想的信号的接收文件进行重放,而不进行每一次实验的一个接收与重放(我自己实验的缺点),因为每次实验的进行环境各不一样,所以其影响我们尽量降到最低为好。

五:分析接收信号

  • 利用Inspectrum解码信号

    首先想利用Inspectrum工具来进行之前接收的信号,导入需要分析的信号,通过Inspectrum左侧兰对信号做一些调整比如波形图的大小、颜色的深浅等等然后进行如下操作步骤:

1.设置信号的采样率为2M,当然也可以在终端利用 sudo inspectrum -r 2e6 test命令来完成导入( test为自己要分析的文件名)

2.滑动水平滑块,找到接收信号的区域。

3.在原始信号上右键选择add derived plot - - add sample plot。

4:此时原始信号上会出现两条水平线,用鼠标拖动,调节中心频率的位置和宽度,对于调节的程度看自己信号的情况。

5.在次原始信号上右键选择add derived plot - - add amplitude plot。

6.在amplitude plot采样图上右键添加阈值选择add derived plot - - add threshold plot。

7.勾选“enable cursors”,对波形进行划分,以“一个内码/符号”信号的宽度为标准然后对symbols值递增直至囊括一帧的信号的波形区域,当然也直接在symbols里给一个合适的然后拖动边框直至囊括一帧信号,注意跳过前导的高低电平下图所示的start1与start0。数据通常是脉宽编码的,一对高低电平的组合代表一个bit:高电平较宽的代表1,低电平较宽的代表0。

在终端得出的数据如下图:

得到这一帧信号的编码格式为“21位内码+4位数据码”。

  • 利用Gnuradio自定义模块与Python脚本验证其解码的正确性

    在了解经过Gnuradio及SDR硬件处理的信号是被调制到AM上,因此首先需要恢复到原始的信号,鉴于对OOK信号本身并不麻烦的条件下利用complex to mag^2模块以及利用threshold模块控制阈值大小(其中low:n代表信号阈值小于n输出为0反之亦然)来恢复信号可视化成一个平方波。然后利用如图3-20所示作为GRC流图其中涉及自定义模块(名为ook to bin sink),完成对OOK信号的初始信号、平方波下的信号以及最终信号在频域、瀑布图、时域、以及星座图等。

我们在Gnuradio终端(自己瞎起的名)得到了基带频率及一些其他信息。

然后我们在通过以下流图得到解码数据以此验证Inspectrum中解码的正确性。

终端得出的解码数据为如下:

当然我们也可以利用解码数据进行重放信号工作,鉴于网上教程多,这里不做描述。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值