1.抓取数据包

要了解Zigbee数据协议,可从其通信数据包进行分析。在此,我们需要构建一个协议分析仪。对于TI产品可使用Texas Instruments Packet Sniffer软件,结合CC2530-EB开发板、仿真下载器实现。

(1)选择IEEE 802.15.4/Zigbee

 

(2)打开协调器和终端,连接Debug调试器跟CC2530开发板,会在软件中检测到图中下方信息,此时点击上方开始按钮,便会在对话框中抓取到协调器跟终端通信的数据包。

 

 

 2.数据包解读

首先可以看到数据包由很多分段组成,这与Zigbee协议是对应的。Zigbee协议采用分层设计方式,故图中图一样的网络层也使用了不同的颜色。

 

第1-6行是协调器建立Zigbee无线网络和终端节点加入网络的过程。

第1、3、5行是终端节点发送信标(Beacon)请求。

第2、4、6是协调器建立了Zigbee无线网络,并尝试与终端节点建立连接。在Zigbee网络中,协调器的网络地址必定是0x0000,数据包中“Source Address”就是协调器的网络地址。

第7行,终端节点发送加入网络请求(Association Request)

第8行,协调器对终端节点的加入网络请求做出应答,这个可以通过“Sequence Number”来判读。

第9行,终端节点收到协调器的应答后,发送数据请求(Data Request),请求协调器分配网络地址。从数据包可以看到,终端节点的IEEE地址是:0x00124B0008E8566F(64位地址)。

为什么使用的是64位的地址?

因为此时终端节点还没有加入网络,所以有效的网络地址还没有分配。从开始我们看到,终端节点网络默认地址是0xFFFF,为什么不能使用。默认地址是每个终端节点的地址,当网络中存在多个终端节点时,如果都使用默认地址就会产生冲突。

第10行,协调器对终端节点的数据请求做出应答。(序列号都是0x9A)

第11行,协调器分配的网络地址发送给终端节点,新分配的地址是:0xDC35

第12行,终端节点做应答。

第13-15行,终端节点使用短地址0xDC35与协调器进行通信。

第16行,可以看到“MAC payload”栏的最后三个数据是:4C 45 44,这就是终端节点发送的数据“LED”。数据发送是以ASCII码的格式发送的,L的ASCII码为0x4C,E的的ASCII码为0x45,D的ASCII码为0x44。

从数据包中可以看到,每层数据包中都有一个payload字段,payload字段可以理解为有效数据,称为净荷,及每层所包含的有效数据。

应用程序支持子层(APS)                  

网络层(NWK)                    

介质访问控制层(MAC)

 

从上可以看出,协议中下层中有效数据都包含了上一层中的有效数据。

2.1 APS

 

 

2.2 NWK

 

2.3 MAC

负责网络号、网络发现,提供点对点通信的数据确认及

 

2.4 PHY

负责将数据通过发射天线发送出去以及从天线接收数据。

 

 

(1)       同步头(SHR,Synchronization Header)

(2)       物理层头(PHR,PHY Header)

(3)       物理层净荷(PHY Payload)

版权声明:本文为doget原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/doget/p/10520911.html