IEEE 802.15.4与ZigBee协议

来源:互联网 发布:头像源码图片怎么用 编辑:程序博客网 时间:2024/04/27 21:26

最近,公司转向无线网络产品的研发,本周主要工作为起草一个基于ZigBee无线通讯数据交换的项目策划收集了一些资料,整理如下,以方便其他正在研究ZigBee无线通讯的同行们:

IEEE.802.15.4简介 (IEEE.802.15.4标准中文文档)

IEEE.802.15.4 在IEEE 802系列标准中,OSI参考模型的数据链路层进一步划分为MAC和LLC两个子层。MAC子层使用物理层提供的服务实现设备之间的数据帧传输,而LLC在MAC子层的基础上,在设备间提供面向连接和非连接的服务。 MAC子层提供两种服务:MAC层数据服务和MAC层管理服务(MAC sublayer management entity, MLME)。前者保证MAC协议数据单元在物理层数据服务中的正确收发,后者维护一个存储MAC子层协议状态相关信息的数据库。 MAC子层主要功能包括下面六个方面:(1)协调器产生并发送信标帧,普通设备根据协调器的信标帧与协议器同步;(2)支持PAN网络的关联(association)和取消关联(disassociation)操作;(3)支持无线信道通信安全;(4)使用CSMA-CA机制访问信道;(5)支持时槽保障(guaranteed time slot, GTS)机制;(6)支持不同设备的MAC层间可靠传输。关联操作是指一个设备在加入一个特定网络时,向协调器注册以及身份认证的过程。LR-WPAN网络中的设备有可能从一个网络切换到另一个网络,这时就需要进行关联和取消关联操作。时槽保障机制和时分复用(time division multiple access, TDMA)机制相似,但它可以动态地为有收发请求的设备分配时槽。使用时槽保障机制需要设备间的时间同步,IEEE 802.15.4中的时间同步通过下面介绍的“超帧”机制实现。 1.超帧在IEEE 802.15.4中,可以选用以超帧为周期组织LR-WPAN网络内设备间的通信。每个超帧都以网络协调器发出信标帧(beacon)为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中普通设备接收到超帧开始时的信标帧后,就可以根据其中的内容安排自己的任务,例如进入休眠状态直到这个超帧结束。超帧将通信时间划分为活跃和不活跃两个部分。在不活跃期间,PAN网络中的设备不会相互通信,从而可以进入休眠状态以节省能量。超帧有活跃期间划分为三个阶段:信标帧发送时段、竞争访问时段(contention access period, CAP)和非竞争访问时段(contention-free period, CEP)。超帧的活跃部分被划分为16个等长的时槽,每个时槽的长度、竞争访问时段包含的时槽数等参数,都由协调器设定,并通过超帧开始时发出的信标帧广播到整个网络。在超帧的竞争访问时段,IEEE 802.15.4网络设备使用带时槽的CSMA-CA访问机制,并且任何通信都必须在竞争访问时段结束前完成。在非竞争时段,协调器根据上一个超帧PAN网络中设备申请GTS的情况,将非竞争时段划分成若干个GTS。每个GTS由若干个时槽组成,时槽数目在设备申请GTS时指定。如果申请成功,申请设备就拥有了它指定的时槽数目。每个GTS中的时槽都指定分配给了时槽申请设备,因而不需要竞争信道。IEEE 802.15.4标准要求任何通信都必须在自己分配的GTS内完成。超帧中规定非竞争时段必须跟在竞争时段后面。竞争时段的功能包括网络设备可以自由收发数据,域内设备向协调者申请GTS时段,新设备加入当前PAN网络等。非竞争阶段由协调者指定的设备发送或者接收数据包。如果某个设备在非竞争时段一直处在接收状态,那么拥有GTS使用权的设备就可以在GTS阶段直接向该设备发送信息。2.数据传输模型 LR-WPAN网络中存在着三种数据传输方式:设备发送数据给协调器、协调器发送数据给设备、对等设备之间的数据传输。星型拓扑网络中只存在前两种数据传输方式,因为数据只在协调器和设备之间交换;而在点对点拓扑网络中,三种数据传输方式都存在。 LR-WPAN网络中,有两种通信模式可供选择:信标使能通信和信标不使能通信。在信标使能的网络中,PAN网络协调器定时广播标帧。信标帧表示超帧的开始。设备之间通信使用基于时槽的CSMA-CA信道访问机制,PAN网络中的设备都通过协调器发送的信标帧进行同步。在时槽CSMA-CA机制下,每当设备需要发送数据帧或命令帧时,它首先定位下一个时槽的边界,然后等待随机数目个时槽。等待完毕后,设备开始检测信道状态:如果信道忙,设备需要重新等待随机数目个时槽,再检查信道状态,重复这个过程直到有空闲信道出现。在这种机制下,确认帧的发送不需要使用CSMA-CA机制,而是紧跟着接收帧发送回源设备。

在信标不使能的通信网络中,PAN网络协调器不发送信标帧,各个设备使用非分时槽的CSMA-CA机制访问信道。该机制的通信过程如下:每当设备需要发送数据或者发送MAC命令时,它首先等候一段随机长的时间,然后开始检测信道状态:如果信道空闲,该设备立即开始发送数据;如果信道忙,设备需要重复上面的等待一段随机时间和检测信道状态的过程,直到能够发送数据。在设备接收到数据帧或命令帧而需要回应确认帧的时候,确认帧应紧跟着接收帧发送,而不使用CSMA-CA机制竞争信道。

 3.MAC层帧结构 MAC层帧结构的设计目标是用最低复杂度实现在多噪声无线信道环境下的可靠数据传输。每个MAC子层的帧都由帧头、负载和帧尾三部分组成。帧头由帧控制信息、帧序列号和地址信息组成。MAC子层负载具有可变长度,具体内容由帧类型决定。帧尾是帧头和负载数据的16位CRC校验序列。

在MAC子层中设备地址有两种格式:16位(两个字节)的短地址和64位(8个字节)的扩展地址。16位短地址是设备与PAN网络协调器关联时,由协调器分配的网内局部地址;64位扩展地址是全球惟一地址,在设备进入网络之前就分配好了。16位短地址只能保证在PAN网络内部是惟一的,所以在使用16位短地址通信时需要结合16位的PAN网络标识符才有意义。两种地址类型的地址信息的长度是不同的,从而导致MAC帧头的长度也是可变的。一个数据帧使用哪种地址类型由帧控制字段的内容指示。在帧结构中没有表示帧长度的字段,这是因为在物理层的帧里面有表示MAC帧长度的字段,MAC负载长度可以通过物理层帧长和MAC帧头的长度计算出来。

IEEE 802.15.4网络共定义了四种类型的帧:信标帧,数据帧,确认帧和MAC命令帧。

1)信标帧信标帧的负载数据单元由四部分组成:超帧描述字段、GTS分配字段、待转发数据目标地址字段和信标帧负载数据。(1)信标帧中超帧描述字段规定了这个超帧的持续时间,活跃部分持续时间以及竞争访问时段持续时间等信息。(2)GTS分配字段交无竞争时段划分为若干个GTS,并把每个GTS具体分配给了某个设备。(3)转发数据目标地址列出了与协调者保存的数据相对应的设备地址。一个设备如果发现自己的地址出现在待转发数据目标地址字段里,则意味着协调器存有属于它的数据,所以它就会向协调器发出请求传送数据的MAC命令帧。(4)信标帧负载数据为上层协议提供数据传输接口。例如在使用安全机制的时候,这个负载域将根据被通信设备设定的安全通信协议填入相应的信息。通常情况下,这个字段可以忽略。在信标不使能网络里,协调器在其他设备的请求下也会发送信标帧。此时信标帧的功能是辅助协调器向设备传输数据,整个帧只有待转发数据目标地址字段有意义。

2)数据帧数据帧用来传输上层发到MAC子层的数据,它的负载字段包含了上层需要传送的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元。它的首尾被分别附加了MHR头信息和MFR尾信息后,就构成了MAC帧。 MAC帧传送至物理层后,就成为了物理帧的负载PSDU。PSDU在物理层被“包装”,其首部增加了同步信息SHR和帧长度字段PHR字段。同步信息SHR包括用于同步的前导码和SFD字段,它们都是固定值。帧长度字段的PHR标识了MAC帧的长度,为一个字节长而且只有其中的低7位有效位,所以MAC帧的长度不会超过127个字节。

3)确认帧如果设备收到目的地址为其自身的数据帧或MAC命令帧,并且帧的控制信息字段的确认请求位被置1,设备需要回应一个确认帧。确认帧的序列号应该与被确认帧的序列号相同,并且负载长度应该为零。确认帧紧接着被确认帧发送,不需要使用CSMA-CA机制竞争信道。

4)命令帧 MAC命令帧用于组建PAN网络,传输同步数据等。目前定义好的命令帧有力种类型,主要完成三方面的功能:把设备关联到PAN网络,与协调器交换数据,分配GTS。命令帧在格式上和其他类型的帧没有太多的区别,只是帧控制字段的帧类型位有所不同。帧头的帧控制字段的帧类型为011B(B表示二进制数据)表示这是一个命令帧。命令帧的具体功能由帧的负载数据表示。负载数据是一个变长结构,所有命令帧负载的第一个字节是命令类型字节,后面的数据针对不同的命令类型有不同的含义。

原创粉丝点击