自制ZigBee协议分析仪
关键词 ZigBee Sniffer 协议 分析仪 自制 CC2530 CC2531
在开发ZigBee / Bluetooth的过程,难免会要用到Sniffer工具,Packet Sniffer是SmartRF Studio的组件,也可以单独安装,下载地址是:http://www.ti.com/tool/packet-sniffer
它的主要作用是监听空中数据包,并以按照协议格式分解出来,非常便于人的阅读和网络数据传输过程中问题的查找。是非常重要的一个工具。这是一个免费的工具,功能还比较常规,只能找描一个信道,其他 ZigBee 半导体厂商也有相应的工具。如果想更最专业的,可以了解 Perytons, Luxoft等公司的产品。
TI Packet Sniffer支持多种硬件搭配使用,预算有即而且想自己动手作一个Sniffer也是可行的,两种方案,基于不同的硬件。
|
方案一 |
CC2531 USB Dongle |
使用时最方便 |
|
方案二 |
CC2530 Module + SMART RF EB/CC DEBUGGGER |
使用时要占用SMART RF EB/ CC DEBUGGER |
由于在Sniffer运行时,CC253x模块都是需要运行特定的程序的,所以还要下载安装另一个软件 SmartRF Flash Programmer, 安装好两个软件之后,可以开始下面的步骤。无论哪种方案,都需要一个下载工具 SMARTRF EB/ CC DEBUGGER。
方案一
首先可以到淘宝买一个CC2531 USB Dongle硬件,带下载接口的,这一点很重要,这个硬件设计是公开的,也可以自已做。前提是会RF Layout。
1 将下载工具与Dongle连接起来,将USB插入电脑,设Dongle自己能供电
2 打开 Flash Programmer, 复位下载工具
3 下载CC2531的固件,它的位置是 X:\Program Files (x86)\Texas Instruments\SmartRF Tools\Packet Sniffer\bin\general\firmware,X 是Sniffer软件的安装盘。文件名为sniffer_fw_cc2531.hex
4 断开下载工具,重新插上Dongle,安装Dongle的驱动,驱动目录 X:\Program Files (x86)\Texas Instruments\SmartRF Tools\Drivers\Cebal\win_64bit_x64
5 安装好驱动以后,在电脑的设备管理器中查看,有CC2531 USB Dongle 为成功
方案二
硬件上要有一个CC2530模块,一个下载工具,这里要注意TI 原装的CCDEBUGGER不会给目标板供电,因此要给模块电源,国内仿TI设计的大部分都是电源供电的。
1 将下载工具与CC2530模块连接, 供电(若有必要)
2 打开 Flash Programmer, 复位下载工具
3 下载CC2530的固件,它的位置是 X:\Program Files (x86)\Texas Instruments\SmartRF Tools\Packet Sniffer\bin\general\firmware,X 是Sniffer软件的安装盘。文件名为sniffer_fw_cc2530.hex
4 连接下载工具的 CS,SCK, MO, MI到CC2530模块的P14,P15,P16,P17。一共9个脚,若模块自行供电,则VCC可以不连接。
下载工具与 CC2530全部连接的对应如下
|
CC2530 |
下载工具 |
下载工具 |
CC2530 |
|
GND |
GND |
VCC |
VCC |
|
P22 |
DC |
DD |
P21 |
|
P14 |
CSn |
SCK |
P15 |
|
RESET |
RES |
MO |
P16 |
|
- |
NC |
MI |
P17 |
另外,SmartRF EB 05的外扩Debug接口并不具备SPI连接功能,所以如果想用这个原厂的板来做协议分析仪,则可参照如下的信号连接, Pn表示接口的位置,#n表示编号
|
CC2530 |
SmartRF EB原板 |
SmartRF EB原板 |
CC2530 |
|
GND |
P2 #1 |
P2 #2 |
VCC |
|
P22 |
P1 #20 |
P1#22 |
P21 |
|
P14 |
P1 #24 |
P1# 30 |
P15 |
|
RESET |
P10 #30 |
P1 #28 |
P16 |
|
- |
- |
P1 #26 |
P17 |

自制ZigBee协议分析仪的更多相关文章
- 手把手教你如何通过CC2531抓取Zigbee包,并解析加密Zigbee包
前言 好久不见啊,大伙假期过得咋样? 最近我在研究 Zigbee ,使用了EFR32(购买链接)的开发板,之前也研究过一点,水了几篇文章,但是没有深了解和使用.最近 arduino 玩腻了,我开始回过 ...
- 【转】zigbee终端无法重连的问题解决
zigbee终端无法重连的问题解决 1.zigbee重连的原因 (1)zigbee由于各种原因的干扰导致信号太差而掉线. (2)协调器重启. 2.zigbee终端重连的处理 (1)zigbee掉线后会 ...
- 【转】ZigBee终端入网方式深入分析
前述 继之前对终端Direct Join的分析,发现很多东西还很模糊,存在很多问题.终于找到时间继续深入挖下去,这次应该比较完整地搞清了终端的入网机制,并纠正之前的几个认识偏差. 由于Z-Stack网 ...
- 【转译】加入ZigBee联盟,共画物联网的未来
Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...
- [Unity3D]自制UnityForAndroid二维码扫描插件
一周左右终于将二维码生成和扫描功能给实现了,终于能舒缓一口气了,从一开始的疑惑为啥不同的扫码客户端为啥扫出来的效果不同?通用的扫描器扫出来就是一个下载APK,自制的扫描器扫出来是想要的有效信息,然后分 ...
- .NET中使用APlayer组件自制播放器
目录 说明 APlayer介绍 APlayer具备功能 APlayer使用 自制播放器Demo 未完成工作 源码下载 说明 由于需求原因,需要在项目中(桌面程序)集成一个在线播放视频的功能.大概要具备 ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- 【转】ZigBee是如何组网的?
组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点(路由器或终端)加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网. 一.网络初始化: ...
- 关于zigbee 网络拓扑节点数量的一点说明
理论上,一个zigbee网络可以存在65535个节点,即一个协调器下挂这么多个节点(ZR & ZE),但是实际应用中几乎是不可能达到的,达到100~200已经是很不错了,达到300几乎也是凤毛 ...
随机推荐
- 强推一款开源集成开发环境——Geany
本人是一个标标准准的程序员,集成开发环境在电脑上大概看一下有:Code Blocks(C/C++),VS(C#,C/C++),eclipse(Java),Hbuild和web storm(前端),py ...
- 程序员的自我救赎---11.1:RPC接口使用规范
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- 自建MySQL5.6数据库查询优化
1.优化前查询速度 2.优化后查询速度 3.优化配置 innodb_buffer_pool_size=4Ginnodb_log_file_size=4Gmax_connections=1024inno ...
- Nginx完整配置配置样例【官方版】
我们主要参考nginx官方给出的完整配置的样例: https://www.nginx.com/resources/wiki/start/topics/examples/full/# 完整摘录如下: n ...
- Paho -物联网 MQTT C Cient的实现和详解
概述 在文章Paho - MQTT C Cient的实现中,我介绍了如何使用Paho开源项目创建MQTTClient_pulish客户端.但只是简单的介绍了使用方法,而且客户端的结果与之前介绍的并 ...
- MySQL优化-》执行计划和常见索引
MySql的explain执行计划 explain是一个Mysql性能显示的工具,它显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句.在开发当 ...
- Python可视化库Matplotlib的使用
一.导入数据 import pandas as pd unrate = pd.read_csv('unrate.csv') unrate['DATE'] = pd.to_datetime(unrate ...
- TabHost用法
tabhost用两种方法 方法一:Activity继承TabActivity后用getTabHost()方法来获取tabhost(前提:Activity的setContentView要删除,这样布局才 ...
- Linux 文本处理工具(grep sed awk )
^test: 以test开头; test$: 以test结尾: ^$: 表示空行,不是空格: . :代表且只代表任意一个字符(其他功能:当前目录,加载文件): \ : 代表转义字符,表示特殊字符: * ...
- python3之socket&socketserver网络编程
1.套接字与套接模块 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象.它们允许程序接受并进行连接,如发送和接受数据.为了 ...