第三章:zigbee学习笔记之物理层和mac层帧格式分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tainjau/article/details/81634681

IEEE802.15.4工作组致力于无线个人区域网络(wireless personal area network, WPAN)的标准化工作,制定的IEEE802.15.4标准规定了WPAN网络的物理层(PHY)和媒体访问层(MAC)

那么接下来的物理层和mac层都是以IEEE802.15.4标准来学习的。

文档下载路径在:https://download.csdn.net/download/tainjau/10578440,里面包含了上述文档和zigbee网络层应用层的资料。


1、PHY层

PHY层的数据包分为SHR,PHR和PHY Payload

SHR(Synchronization Header):用于同步数据的

PHR(Physical Header):包含了帧长度信息

PHY Payload:包负载,即实际内容(发送给接受设备的数据和命令)


2、MAC层

MAC Frame定义了四种结构如下:

信标帧、数据帧、应答帧和MAC命令帧。

帧类型是由MAC层前面的Herder中的2个字节的FrameControl来决定的。

除此之外,FrameControl控制字段还有其他用途,相应位代表的意思如下:

             

其中:第0-2位表示帧类型:000:信标帧、001:数据帧、010:应答帧、011:命令帧。

第3位表示安全使能:体现在该帧是否有密锁保护MAC的有效载荷。

第4位表示数据待传:1:表述当前数据还没传输完成,发送端还要接着传输数据给接收 端,因此接受设备还需要发送请求来获取数据。

第5位表示确认请求:1:表示接受设备在接受到该帧的时候,需要回复一个确认帧来表述接收到数据。

第6位表示网内/网际:表示是否在同个PAN网络中传输数据。

第10-11位和14-15为表示目的/源地址模式,00:没有目的地址,01:预留,10:16位的短地址,11:64位的长地址。

2.1、Beacon frame

其中Beacon Payload对于NWK层是可选域。

简单来说,信标帧用于同步网络中的设备。在信标网络中,协调器通过向网络中的所有从设备发送信标帧,以保证这些设备能够同协调器进行同步(同步工作和同步休眠),以达到网络功耗最低(非信标模式只允许ZE进行周期性休眠,ZC和所有ZR必须长期处于工作状态)。

这里我截取一段抓包器抓到的beacon包的数据,可以看到超帧描述(superframe specification)、保护时隙域(GTS Fields)和未处理地址区域(Pendling Address Filelds)这几个区域还是有很多细节要讨论的,这里我现在也不是很了解,留在将来学习吧。

                                   

2.2、Data frame

下图是MAC层数据协议单元(MPDU)的通用帧格式。 数据帧由高层(应用层)发起,在ZigBee设备之问进行数据传输的时候,要传输的数据由应用层生成,经过逐层数据处理后发送给MAC层,形成MAC层服务数据单元(MSDU)。通过添加MAC层帧头信息和帧尾,便形成了完整的MAC数据帧MPDU,其帧结构如下图所示。 

2.3、Ack frame

最简单的MAC帧,不包含任何Payload,向发送设备表示已经正确的接收了相应的信息。Ack帧非常小,只有5个字节。

 

还记得之前提到过的FrameControl控制段中的第5位表示确认请求位吧。这位如果被设置成1时,那么接收端收到之后,就需要回复一个ack,来表述接受到数据了。

看一下Ack的数据帧

2.4、MAC Command Frame

Mac命令帧是细化了通用MAC帧的帧载荷域,是这几种帧格式中较为复杂的

在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧。

区别命令帧的关键在于命令帧标识符(command Type)描述如下:

由于每个命令帧后面的载荷所携带信息不同,这里我就不做一一记录了。关于物理层和MAC层,还是基于《IEEE Std 802.15.4-2003》文档。


将来还是得买一本关于这类的书来学习比较稳妥。

猜你喜欢

转载自blog.csdn.net/tainjau/article/details/81634681
今日推荐