【使用usrp + universal radio hacker分析2.4G无线信号】

相关工具安装

需要使用usrp b210 、universal radio hacker、nrf24l01无线模块、stm32开发板。

usrp b210配置

需要安装uhd

universal radio hacker安装

sudo python3 -m pip --upgrade pip
sudo python3 -m pip install urh
如果遇到numpy报错,更新一下nmpy。
sudo python3 -m pip --upgrade numpy
sudo urh
ps:命令如果加sudo就全加,如果不加sudo就全都不加。

stm32开发板设置

nrf24l01地址设置:地址为 0x34,0x43,0x10,0x10,0x01
在这里插入图片描述
波特率和通信信道设置,其中波特率为2M,通信信道为40,即中心频率为2.44Ghz,带宽为2Mhz。
在这里插入图片描述

使用gnuradio进行抓包

根据带通采样定律,采样率要设置为4M。中心频率设置为2440M,带宽设置为2M进行采样。
在这里插入图片描述
使用单片机进行数据的发送,将usrp放在旁边进行抓包,将数据包保存成raw格式。
在这里插入图片描述
信号持续的时间非常短,很难在屏幕上看到。
在这里插入图片描述

信号分析

使用urh打开刚刚保存的文件,其中幅值比较高的,就是nrf24l01的信号
在这里插入图片描述
放大后。
在这里插入图片描述
接着调整urh的参数,对信号进行解调。
在这里插入图片描述
最下面的框里会出现解调过的bit流。
在这里插入图片描述

协议分析

nrf24l01使用的是Enhanced Short Burst协议
发送的数据格式为:
前导码(1 byte)(01010101或者10101010)
地址(3-5 byte)(刚刚单片机代码中设置的0x34,0x43,0x10,0x10,0x01)
包控制字节(9 bit)
数据(32byte)
crc校验(2 byte)
Enhanced Short Burst协议内容很多,就不详细讲了,有兴趣可以查看官方资料。
根据这个协议,我们尝试对解读一下urh解调的数据。
首先找到前导码,然后按照8字节对数据进行切片。
分析数据如下:

同步载波:(这部分应该是载波同步用的,博主对信号同步不是很了解,往指正。)
11111111111111100110000000000000000000000000000000000000000000000000000000000000000000000000000
前导码:
01010101
地址:0x01,0x10,0x10,0x43,0x34
00000001 00010000 00010000 01000011 00110100
包控制字节:
110011010
数据:
01110000 01110001 01110010 01110011 01110100 01110101 01110110 01110111 01111000 01111001 01111010 01111011 01111100 01111101 01111110 00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000
CRC校验
01000011 00111100

00
使用二进制转字符串工具可以验证解调的是否正确。
在这里插入图片描述
接收端回复格式为:
1111111111110011000100000000000000000000000000000000000000000000000000000011000100000000010
前导码:
01010101
地址:
00000001 00010000 00010000 01000011 00110100
包控制字节
110011100
CRC校验字节
11010010 11100111

0

ps:只有发送端数据正确的情况呀,接收端才会回复,因此有回复的发送信息一定是正确的,没有回复的一定是错误的。但是回复信息可能是对的,也可能是错误,因为接收端没有去验证回复信息是否格式正确。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值