Zigbee Mac 层协议

转载 2011年03月13日 15:26:00

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 periodCAP)进行通信,就必须同其他设备采用时隙免冲突载波检测多路接入CSMA-CA机制进行竞争,所有的处理必须在下一个网络信标的到达之前完成。超帧有活动和不活动部分(网络休眠区和网络活动区。在不活动部分,协调器与PAN之间不能发生联系,并进入低功耗模式

对于应用于低延迟或需要在特定数据带宽的情况下,PAN协调器可以用活动超帧的一部分来实现,这部分称为保证时隙(Guaranteed Time Slot GTS)。保证时隙(可有多个)形成了非竞争期CFP),它始终出现在CAP之后和活动超帧之前。PAN协调器可分配七个GTS,而每个GTS时间不少于一个时隙。然而CAP的有效部分应当保留,使基于竞争的其它网络设备和新设备能接入网络。所有基于竞争的传输应当在CFP开始之前完成,同时每个工作在GTS时期的设备应当确保它的传输在下一个GTS开始和CFP的结束之前完成。

 

GTS保证时隙:是活动超帧的一部分,为实现一些特殊应用开辟的

CAP竞争接入期:任何设备想在此时通信,必须采用CSMA-CA竞争机制

CFP非竞争期:由GTS组成,这段时期内不需竞争

 

(一) 信标帧

信标帧MPDUMAC子层产生。在信标网络中,协调器通过向网络中的所有从设备发送信标帧,以保证这些设备能够同协调器进行同步(同步工作和同步休眠,以达到网络功耗最低(非信标模式只允许ZE进行周期性休眠,ZC和所有ZR必须长期处于工作状态)。其帧结构如下图所示。

 

                      

 

其中MHRMAC层帧头;MSDUMAC层服务数据单元,表示MAC层载荷;MFRMAC层帧尾。这三部分共同构成了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——>添加MHRMFR——>MPDU——>PSDU——>添加SHRPHR——>PPDU

 

SHR = 前导码序列 + SFD

PHR = PSDU长度值

 

(三) 应答帧

应答帧由MAC子层发起。为了保证设备之问通信的可靠性,发送设备通常要求接收设各在接收到正确的帧信息后返回一个应答帧,向发送设备表示已经正确的接收了相应的信息。其帧结构如下图所示。MAC子层应答帧由MHRMFR组成。MHR包括MAC帧控制域和数据序列号;MFR16bitFCS组形成。

                             

                      

同样,MPDU传到物理层就形成物理应答帧的净载荷,即PSDU。在PSDU前面加上SHRPHR就形成PPDU。其中SHR由前导码序列和SFD域构成;PHRPSDU的长度值域构成。

(四)命令帧

MAC命令帧由MAC子层发起。在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧。其帧结构如下图所示。

                          

 

 

MSDU = 命令类型域 + 数据域(命令净载荷)

MHR = MAC帧控制域 + 数据序列号  + 寻址信息域

MFR = 16bitFCS

MPDU = MHR + MSDU + MFR

同样,MPDU传到物理层就形成物理层命令帧的净载荷,即PSDU。在PSDU前面加上SHRPHR就形成PPDU。其中中SHR由前导码序列(保证接收机和符号同步)和SFD域构成;PHRPSDU的长度值域构成。

 

zigbee 获取自身的mac地址

协议栈版本: ZHA 1.2.1 方法1: NLMEDE.h 中有相关的API可以获取到设备的MAC地址: /*  * This function will return a pointer ...
  • u010119959
  • u010119959
  • 2015年12月27日 19:11
  • 1198

ZIGBEE获取本设备及父设备的IEEE64地址和短地址

 第一种方法,利用NLME.h里面定义的专门API 获取设备自身IEEE地址 extern byte *NLME_GetExtAddr( void ); 获取设备自身网络地址 ...
  • jk110333
  • jk110333
  • 2014年03月27日 15:06
  • 9357

ZigBee MAC地址通信原理

先看有关通信的结构体或枚举: //ZigBee在发送数据的时候,有以下同种地址模式 typedef enum { afAddrNotPresent = AddrNotPresent,//间...
  • PZ0605
  • PZ0605
  • 2017年03月17日 09:37
  • 1287

对MAC层协议的几个问题的理解

无线通信中,为什么要有MAC协议?无线网络主要通过光、无线电波进行传输。大家都是通过一个共享的无线物理链路把所有的用户联结起来。由排队理论得知,对个用户,也就是多址通信的接入方式有好多种,但是最重要的...
  • icu
  • icu
  • 2006年12月13日 19:09
  • 10309

ZigBee帧结构汇总(应用层(APS)、网络层(NWK),MAC层,物理层(PHY))

ZigBee帧结构汇总如下:
  • dsanmux
  • dsanmux
  • 2015年08月14日 11:33
  • 2467

以太网的MAC层

以太网的MAC层 以太网的MAC地址 MAC帧的格式
  • Neil4
  • Neil4
  • 2017年06月25日 10:34
  • 2177

MAC子层层协议仿真包括ALOHA, CSMA

  • 2009年04月19日 18:11
  • 503KB
  • 下载

zigbee如何设置重发次数

zigbee在发送数据不成功的时候,会启用重发机制,而这个重发机制分为:MAC重发,APSC重发,NWK重发,而APSC和NWK重发是以接收到MAC ACK为前提,否则不会重发。 ...
  • MENGHUANBEIKE
  • MENGHUANBEIKE
  • 2017年06月13日 18:14
  • 956

Zigbee协议栈中文说明

1.概述   1.1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标...
  • tanqiuwei
  • tanqiuwei
  • 2013年12月13日 15:07
  • 34613

计算机网络--数据链据层之MAC子层(整理)

概述:   为什么需要介质访问控制子层(MAC)?   介质访问控制子层(MAC)是局域网体系结构中划分的子层,多路访问链路采用共享介质连接所有站点.发送站点通过广播方式发送数据并占用整个...
  • CareChere
  • CareChere
  • 2016年04月21日 15:55
  • 2353
收藏助手
不良信息举报
您举报文章:Zigbee Mac 层协议
举报原因:
原因补充:

(最多只允许输入30个字)