EFR32MG_Sniffer制作及使用说明1
需积分: 0 159 浏览量
更新于2022-08-03
1
收藏 434KB PDF 举报
### EFR32MG_Sniffer 制作与使用详解
#### 一、Sniffer 制作
在本文档中,我们将重点介绍如何基于Silicon Labs的EFR32MG芯片制作一个ZigBee协议分析器(Sniffer)。此Sniffer可用于捕获ZigBee网络的数据包,帮助开发人员进行无线通信协议的调试与分析。
##### 1.1 烧写 Firmware 文件
**A. 命令行方式**
使用Simplicity Commander软件可以通过命令行完成Firmware文件的烧写工作。具体步骤如下:
1. 打开DOS命令行窗口。
2. 使用以下命令擦除目标设备上的所有内容:
```
"D:\SiliconLabs\SimplicityStudio\v4\Simplicity Commander\commander" device masserase
```
3. 使用以下命令将sniffer_efr32.hex文件烧写到目标设备上:
```
"D:\SiliconLabs\SimplicityStudio\v4\Simplicity Commander\commander" flash sniffer_efr32.hex
```
**B. 使用Simplicity Commander的Flash Program功能**
另一种方法是通过Simplicity Commander软件的图形界面来完成烧写任务:
1. 打开Simplicity Commander软件。
2. 选择“Tools”菜单下的“Flash Program”选项。
3. 在弹出的界面中,选择要烧写的hex文件(即sniffer_efr32.hex)。
4. 按照提示完成剩余的配置并开始烧写过程。
##### 1.2 Sniffer Firmware制作
Sniffer的Firmware可以通过Silabs官方提供的Flex SDK来制作。具体步骤如下:
1. 访问Silabs社区提供的教程链接:https://www.silabs.com/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2017/11/09/turning_any_efr32in-cbAD
2. 下载并安装Flex SDK。
3. 遵循文档中的指示,配置开发环境,并编译生成sniffer_efr32.hex文件。
#### 二、抓包
Sniffer制作完成后,可以使用它来捕获ZigBee网络中的数据包。主要步骤如下:
1. 打开Simplicity Studio中的Network Analyzer工具。
2. 连接已烧写好Sniffer Firmware的设备。
3. 开始抓取数据包。
#### 三、常用串口命令
在使用Sniffer的过程中,可能需要通过EVB板的串口发送控制命令来调整抓包行为。以下是一些常用的串口命令:
1. **更改抓包的通道**:使用`setChannel <Channel No>`命令来指定抓包时使用的通道。例如,若要抓取第11通道的数据包,则命令应为`setChannel 11`。
2. **停止抓包命令**:`rx 0`用于停止当前正在进行的抓包操作。
3. **开始抓包命令**:`rx 1`用于开始或恢复抓包操作。
#### 四、代码示例
为了方便使用,可以将上述初始化Sniffer的命令写入代码中,如app_main.c文件。下面是修改后的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// ... 其他代码 ...
int main(void)
{
// Initialize autoack data
RAIL_WriteAutoAckFifo(railHandle, ackData, ackDataLen);
#if 1
char paraInfo0[][32] = {"rx", "0"};
char paraInfo1[][32] = {"config2p4GHz802154"};
char paraInfo2[][32] = {"enable802154", "rx", "100", "192", "864"};
char paraInfo3[][32] = {"setPromiscuousMode", "1"};
char paraInfo4[][32] = {"setChannel", "11"};
char paraInfo5[][32] = {"rx", "1"};
char *para0[2] = {paraInfo0[0], paraInfo0[1]};
char *para1[1] = {paraInfo1[0]};
char *para2[5] = {paraInfo2[0], paraInfo2[1], paraInfo2[2], paraInfo2[3], paraInfo2[4]};
char *para3[2] = {paraInfo3[0], paraInfo3[1]};
char *para4[2] = {paraInfo4[0], paraInfo4[1]};
char *para5[2] = {paraInfo5[0], paraInfo5[1]};
rx(2, para0);
config2p4Ghz802154(1, para1);
ieee802154Enable(5, para2);
ieee802154SetPromiscuousMode(2, para3);
setChannel(2, para4);
rx(2, para5);
#endif
// Start in receive mode
receiveModeEnabled = true;
while (1)
{
// ... 主循环处理逻辑 ...
}
}
```
通过以上详细介绍,我们不仅了解了EFR32MG Sniffer的制作过程,还学习了如何使用Sniffer进行ZigBee网络数据包的捕获,并掌握了一些基本的串口命令,有助于更好地管理和控制Sniffer的工作状态。

LauraKuang
- 粉丝: 23
最新资源
- 基于PLC的电梯控制系统研究与方案设计书.doc
- 《网络安全》复习题.doc
- 互联网的企业信息交易平台的研究与研究与设计开发.doc
- 银行计算机网络风险的分析与对策.docx
- VB酒店服务管理完整.doc
- 科学大数据的发展态势及建议.docx
- 云计算时代网络安全现状与防御措施探讨.docx
- 在地铁5G网络建设过程中的规划需求分析.docx
- 区块链分布式记账应用会计记账领域探究.docx
- 《数据库课程设计方案》任务.doc
- 网络餐饮服务实施方案.doc
- 软件测试方案.docx
- 单片机技术课程研究设计报告(篮球计时计分器).doc
- 智慧城市建设PPP模式实践研究.docx
- 大数据技术在特高压变电站运维中的运用.docx
- 软件工程期末复习题(含标准答案).doc