Zigbee Mac 层协议
MAC层
功能:MAC层需要处理接入到物理无线信道等事务,并负责下列的任务:
一、 能产生网络信标(如果设备是协调器
二、 同信标保持同步
三、 支持PAN的连接和断开连接
四、 支持设备的安全性
五、 信道接入采用CSMA-CA接入机制
六、 处理和维护GTS机制
七、 在对等的MAC实体之间提供一个可靠的通信链路
(MAC层所规定和维护的常数和属性用斜体字表示,常数通常加上前缀a,例如aBaseSlotDuration。属性前通常加上mac)
MAC层帧结构
介质访问控制层(MAC)帧被称为MAC协议数据单元(MPDU),其长度不超过127个字节。它具有四种不同的帧形式,即信标帧、数据帧、确认帧和命令帧。
说明:第1个时隙是用来传输信标帧的,后面15个时隙是竞争接入期(CAP),这16个时隙组成超帧结构。而最后一个时隙也是传输信标帧,但是属于下一个超帧结构。
LR-WPAN标准中允许使用超帧结构。超帧格式由协调器定义。超帧由协调器发送并受网络信标的限制(如上图),而且它还被分为16个大小相同的时隙。超帧的第一个时隙用来传输信标帧。如果协调器不希望使用超帧结构,它就不发送信标。
信标在网络中用于设备之间的同步、区分PAN和描述超帧结构。
任何设备想要在两个信标之间的竞争接入期(contention Access period,CAP)进行通信,就必须同其他设备采用时隙免冲突载波检测多路接入CSMA-CA机制进行竞争,所有的处理必须在下一个网络信标的到达之前完成。超帧有活动和不活动部分(网络休眠区和网络活动区)。在不活动部分,协调器与PAN之间不能发生联系,并进入低功耗模式。
对于应用于低延迟或需要在特定数据带宽的情况下,PAN协调器可以用活动超帧的一部分来实现,这部分称为保证时隙(Guaranteed Time Slot GTS)。保证时隙(可有多个)形成了非竞争期(CFP),它始终出现在CAP之后和活动超帧之前。PAN协调器可分配七个GTS,而每个GTS时间不少于一个时隙。然而CAP的有效部分应当保留,使基于竞争的其它网络设备和新设备能接入网络。所有基于竞争的传输应当在CFP开始之前完成,同时每个工作在GTS时期的设备应当确保它的传输在下一个GTS开始和CFP的结束之前完成。
GTS:保证时隙:是活动超帧的一部分,为实现一些特殊应用开辟的
CAP:竞争接入期:任何设备想在此时通信,必须采用CSMA-CA竞争机制
CFP:非竞争期:由GTS组成,这段时期内不需竞争
(一) 信标帧
信标帧MPDU由MAC子层产生。在信标网络中,协调器通过向网络中的所有从设备发送信标帧,以保证这些设备能够同协调器进行同步(同步工作和同步休眠),以达到网络功耗最低(非信标模式只允许ZE进行周期性休眠,ZC和所有ZR必须长期处于工作状态)。其帧结构如下图所示。
其中MHR是MAC层帧头;MSDU是MAC层服务数据单元,表示MAC层载荷;MFR是MAC层帧尾。这三部分共同构成了MAC层协议数据单元(MPDU)。MFR中包含16位帧校验序列(FCS)。当MAC层协议数据单元(MPDU)被发送到物理层(PHY)时,它便成为了物理层服务数据单元(PSDU)。如果在PSDU前面加上一个物理层帧头(PHR)便可构成物理层协议数据单元(PPDU)。如果再加上一个同步帧头(SHR),则这个数据包便成为最终在空气中传播的数据包。
MSDU = 超帧域 + 未处理数据地址域 + 地址列表域 + 信标净荷域
MHR = 帧控制域 + 信标序列号 + 寻址信息域
MFR = 16bit的帧校验序列FCS
MPDU = MHR + MSDU + MFR
MAC协议数据单元 = MAC帧头 + MAC服务数据单元 + MAC帧尾
PPDU = PHR + PSDU + PFR
物理层协议数据单元 = 物理层帧头 + 物理层数据单元 + 物理层帧尾
空气中最终传播的数据包 = PPDU + 同步帧头SHR
(二) 数据帧
数据帧由高层(应用层)发起,在ZigBee设备之问进行数据传输的时候,要传输的数据由应用层生成,经过逐层数据处理后发送给MAC层,形成MAC层服务数据单元(MSDU)。通过添加MAC层帧头信息和帧尾,便形成了完整的MAC数据帧MPDU,其帧结构如下图所示。
应用层生成要传输的数据——>逐层数据处理——>MSDU——>添加MHR、MFR——>MPDU——>PSDU——>添加SHR、PHR——>PPDU
SHR = 前导码序列 + SFD域
PHR = PSDU长度值
(三) 应答帧
应答帧由MAC子层发起。为了保证设备之问通信的可靠性,发送设备通常要求接收设各在接收到正确的帧信息后返回一个应答帧,向发送设备表示已经正确的接收了相应的信息。其帧结构如下图所示。MAC子层应答帧由MHR和MFR组成。MHR包括MAC帧控制域和数据序列号;MFR由16bit的FCS组形成。
同样,MPDU传到物理层就形成物理应答帧的净载荷,即PSDU。在PSDU前面加上SHR和PHR就形成PPDU。其中SHR由前导码序列和SFD域构成;PHR由PSDU的长度值域构成。
(四)命令帧
MAC命令帧由MAC子层发起。在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧。其帧结构如下图所示。
MSDU = 命令类型域 + 数据域(命令净载荷)
MHR = MAC帧控制域 + 数据序列号 + 寻址信息域
MFR = 16bitFCS
MPDU = MHR + MSDU + MFR
同样,MPDU传到物理层就形成物理层命令帧的净载荷,即PSDU。在PSDU前面加上SHR和PHR就形成PPDU。其中中SHR由前导码序列(保证接收机和符号同步)和SFD域构成;PHR由PSDU的长度值域构成。