ZBOSS_Sniffer用开源方案实现CC2530的抓包

接触zigbee一年多,一直以来都在寻找开源协议栈。在做CC2530的抓包功能时,偶然看到了这个。ZBOSS,zigbee open source stack,http://zboss.dsr-wireless.com/projects/zboss/。

这是一个经过联盟认证的协议栈,比大家相对熟悉的FreakZ要好一点。从某个前辈那得知了几年前的一些历史故事,这个跟台湾UBEC颇具渊源的协议栈,是第一个通过联盟认证。一方面他有基于CC2530的工程,方便大家下手;另一方面,它的代码应该是比FreakZ还要好,至少从FreakZ的release note就能知道其动态内存方式还有问题。

如果有朋友对ZBOSS感兴趣,欢迎加我的QQ群一起玩,多交流。

最近利用ZBOSS_Sniffer实现了CC2530的802.15.4的抓包功能,并摸索了其底层原理,总结了这么份文档。想想人家DSR那么大方地开源,那我这篇东西就共享出来。

一、ZBOSS_Sniffer抓包准备

下载安装wireshark通用版本。我的是“Wireshark-win32-1.12.3.exe”。

在ZBOSS官网下载Sniffer工具包“ZBOSS_Sniffer_v1.0_x86_Win_bin.zip”。目录如下:

gui目录中为抓包工具,hex中为CC2530和CC2531的两个抓包固件。测试发现,该固件要求CC2530使用串口1,且无PA,硬件满足的话就可以直接使用hex中的固件。如果你的硬件有差别,就需要自行修改源码进行编译。

二、ZBOSS_Sniffer抓包操作

打开gui目录中的zboss_sniffer.exe。将wireshark执行路径及CC2530所用串口配置好,那么就可以使用了。

三、抓包预览

1.wireshark与packet sniffer的对比

使用wire shark + 2530模块抓包,与TI packet sniffer + 2531 Dongle对比。发现二者的数据一致,所以wire shark的这套抓包基本可用。

2.wireshark的UI界面

下图是抓包的例子。UI界面由数据帧列表,帧解析详情,以及帧原始数据三个方框组成,内容较为清晰。有一个亮点,对于帧格式理解很有帮助,点击最下方的十六进制数据,对应的解析会高亮显示。比如图中点击了6B 00,Destination PAN就高亮显示了。

四、Wireshark与CC2530的串口交互协议

Wireshark与CC2530是通过串口进行通讯的,波特率为115200,工具界面将这些隐藏了,默认即可通讯。

通过对串口数据抓包,也大致明白了wireshark与CC2530的交互协议。

a.开始抓包

Wireshark->cc2530:0x0C(信道号)

b.暂停抓包

Wireshark->cc2530:0x01

c.抓包数据

cc2530->Wireshark:25 00 00 00 20 41 88 88 6B 00 FF FF 00 00 09 10 FC FF 00 00 01 62 98 91 96 02 00 4B 12 00 08 61 00 00 00 16 EC (某个抓包例子)

对应的原始数据帧:

0x41 0x88 0x88 0x6b 0x00 0xff 0xff 0x00 0x00 0x09 0x10 0xfc 0xff 0x00 0x00 0x01 0x62 0x98 0x91 0x96 0x02 0x00 0x4b 0x12 0x00 0x08 0x61 0x00 0x00 0x00

所以这个数据帧格式大概是:total_len(1b)+frame_len(4b)+data+crc(1b)+end_flag(1b)

五、版本更新记录


序号


时间


版本


修订说明


作者


1


2015-03-02


1.0


结合调试经历,生成初稿


郑冬冬

时间: 2024-10-07 18:51:19

ZBOSS_Sniffer用开源方案实现CC2530的抓包的相关文章

高可用开源方案Heartbeat vs Keepalived

转:http://www.kuqin.com/shuoit/20140623/340745.html 最近因为项目需要,简单的试用了两款高可用开源方案:Keepalived和Heartbeat.两者都很流行,但差异还是很大的,现将试用过程中的感受以及相关知识点简单总结一下,供大家选择方案的时候参考. 1)Keepalived使用更简单:从安装.配置.使用.维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤其是Heartbeat2.1.4后拆分成3个子项目,安装.配置.使用

WebGIS开源方案中空间数据的入库、编辑、发布的操作流程

1.前言 本开源方案的构架是:geoserver(服务器)+tomcat(中间件)+postgis(数据库)+uDig(desktop). 本文将主要讲解如何将shp数据通过postgis导入到postgresql中,并且在uDig上进行展示和编辑,然后如何将postgresql中的图层数据通过geoserver进行发布. 2.通过postgis将shp数据入库 2.1环境 需装有postgresql+postgis.安装完成后,在程序目录中可以看到: 2.2. 入库 a. 点击 此工具,会弹出

高可用开源方案 Keepalived VS Heartbeat对比

最近因为项目需要,简单的试用了两款高可用开源方案:Keepalived和Heartbeat.两者都很流行,但差异还是很大的,现将试用过程中的感受以及相关知识点简单总结一下,供大家选择方案的时候参考. 1)Keepalived使用更简单:从安装.配置.使用.维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤其是Heartbeat2.1.4后拆分成3个子项目,安装.配置.使用都比较复杂,尤其是出问题的时候,都不知道具体是哪个子系统出问题了:而Keepalived只有1个安装文

[原创]边缘计算开源方案对比

通过分析对比EdgeX Foundry.K3S.KubeEdge.StarlingX和OpenEdge五个开源边缘计算框架的差异,推荐选择华为开源的KubeEdge边缘计算集群方案来自建边缘计算集群. 一.五个边缘计算开源框架的简介: 1)EdgeX Foundry      Linux基金组织的开源项目.偏重于端侧设备的管理,定位是通用工业IOT边缘计算通用框架,提供了一些设备接入.边缘数据传输等场景的实现,但不具备云上对边缘端的应用和设备的管控.云边协同等智能边缘系统的能力,架构组件之间依赖

C#版的抓包软件

C#版的抓包软件 [创建时间:2015-09-10 22:37:04] NetAnalyzer下载地址 不好意思啊,NetAnalyzer停更有点长了,今天继续填坑^&^ NetAnalyzer实现结构 在上一篇中介绍一点VC++开发环境的配置,与基本的运行方式.因为NetAnalyzer使用的C#作为开发语言,所以在此主要介绍一些在C#环境下的开发环境的配置,与一些基本开发情况,力求在完成本篇后后,读者可以制作一个简单的抓包程序. 在开始编程前先要介绍连个.Net类库SharpPcap.dll

NetAnalyzer笔记 之 四. C#版的抓包软件

[创建时间:2015-09-10 22:37:04] NetAnalyzer下载地址 不好意思啊,NetAnalyzer停更有点长了,今天继续填坑^&^ NetAnalyzer实现结构 在上一篇中介绍一点VC++开发环境的配置,与基本的运行方式.因为NetAnalyzer使用的C#作为开发语言,所以在此主要介绍一些在C#环境下的开发环境的配置,与一些基本开发情况,力求在完成本篇后后,读者可以制作一个简单的抓包程序. 在开始编程前先要介绍连个.Net类库SharpPcap.dll与PacketDo

Wireshark 网络抓包工具Wireshark的使用

阅读目录 wireshark介绍 wireshark不能做的 wireshark VS Fiddler 同类的其他工具 什么人会用到wireshark wireshark 开始抓包 wireshark 窗口介绍 wireshark 显示过滤 保存过滤 过滤表达式 封包列表(Packet List Pane) 封包详细信息 (Packet Details Pane) wireshark与对应的OSI七层模型 TCP包的具体内容 实例分析TCP三次握手过程 wireshark介绍 wireshark

网络抓包wireshark

抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle.wireshark,作为一个不是经常要抓包的人员,学会用Wireshark就够了,毕竟它是功能最全面使用者最多的抓包工具. Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 网络封包分析软件的功能可想像成

NetAnalyzer笔记 之 三. 用C++做一个抓包程序

[创建时间:2015-08-27 22:15:17] NetAnalyzer下载地址 经过前两篇的瞎扯,你是不是已经厌倦了呢,那么这篇让我们来点有意思的吧,什么,用C#.不,这篇我们先来C++的 Winpcap开发环境配置 完成了对Winpcap的介绍,什么,你没看到Winpcap的介绍,左转,百度(其实,真的是不想复制).我们就需要做一点有用的事情,比如写一个简单的数据采集工具.当然在此之前,我们需要配置Winpcap的开发环境. (1) 运行环境设置 Win32 平台下Winpcap应用程序