我目前正在研究 Z-Wave 协议。使用我的 HackRF One 和scapy-radio,我尝试嗅探两台设备之间的通信。
但是设备可以以不同的速度传输:
- 9,6 kbps
- 40 kbps
- 100 kbps
由于我只能以 40 kbps 解码通信,我想我的图表无法管理其他速度。
关于 Z-Wave 通信的一些信息:
- 频率(欧盟):868.4 MHz
- 调制方式:GFSK
还有我的 GRC 图:
所以我的问题是:如何修改图形以解码和嗅探 9,6 和 100 kbps 信号?
我目前正在研究 Z-Wave 协议。使用我的 HackRF One 和scapy-radio,我尝试嗅探两台设备之间的通信。
但是设备可以以不同的速度传输:
由于我只能以 40 kbps 解码通信,我想我的图表无法管理其他速度。
关于 Z-Wave 通信的一些信息:
还有我的 GRC 图:
所以我的问题是:如何修改图形以解码和嗅探 9,6 和 100 kbps 信号?
作为一个简单的解决方法,我建议从 HackRF 获取输入流并将其连接到 3 个不同的解码器,每个解码器都有所需的参数。然后每个Packet sink
区块都会在同一个区块发布消息Socket PDU
。
我对 Z-Wave 不熟悉,但如果 3 种不同的数据速率共享相同的频谱带宽,那么你就没有更多的工作了,你就完成了。但如果他们这样做了,我相信这对你的情况是正确的,你需要一些额外的步骤。
首先,您必须以 Z-Wave 所需的最大采样率对时域信号进行采样。例如,如果对于 3 种不同的数据速率,频谱带宽为 4、2 和 1 MHz,则您必须以 4e6 个样本/秒进行采样。然后为每个不同的流执行 SRC(源速率转换),也称为重新采样。因此,对于第二个速率,您可能希望将 4e6 样本/秒的输入流重新采样到 2e6 样本/秒。然后在相应的解码过程中连接重新采样的流
+---------------+
|Rest blocks 0 |
+---------------------------------> |
| | |
| +---------------+
|
+------------+ +--------------+ +---------------+
| | | | |Rest blocks 1 |
| Source +----------> Resampler 1+-------------> |
| | | | | |
+------------+ +--------------+ +---------------+
|
| +--------------+ +---------------+
| | | |Rest blocks 2 |
+-----> Resampler 2+--------------> |
| | | |
+--------------+ +---------------+
GNU Radio 已经附带了一些重采样器,您可以开始使用该Rational Resampler
块。