1.抓取数据包 要了解Zigbee数据协议,可从其通信数据包进行分析。在此,我们需要构建一个协议分析仪。对于TI产品可使用Texas Instruments Packet Sniffer软件,结合CC2530-EB开发板(任何一款基于Zigbee协议的开发板即可)、仿真下载器实现。 (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 NWK2.3 MAC负责网络号、网络发现,提供点对点通信的数据确认及 2.4 PHY负责将数据通过发射天线发送出去以及从天线接收数据。
(1) 同步头(SHR,Synchronization Header) (2) 物理层头(PHR,PHY Header) (3) 物理层净荷(PHY Payload)
|