
2.1 ZigBee
ZigBee是新近发展的一种典型的短距离无线通信技术,由于其具有功耗低、价格低廉、组网方便等特点,特别适合无线传感网络应用的要求,因此成为当前无线传感网络应用领域的首选。2001年8月ZigBee联盟成立,之后该联盟陆续推出了ZigBee V1.0、ZigBee 2006、ZigBee PRO、ZigBee RF4CE等不同版本。
ZigBee 又被译为“紫蜂”,ZigBee 一词源自蜜蜂群在发现花粉位置时,通过跳ZigZag形舞蹈来告知同伴,达到交换信息的目的,是小动物实现“无线”沟通的一种简捷方式。研究人员借此称呼一种专注于低功耗、低成本、低复杂度、低速率的短距离无线网络通信技术。ZigBee技术如今已经被广泛应用在工业自动化控制、智能家居、农业及畜牧业养殖、环境监测、交通管理等各种领域。中国物联网校企联盟认为 ZigBee 作为一种短距离无线通信技术,由于其网络可以便捷地为用户提供无线数据传输功能,非常适合应用于物联网领域中的感知层。
2.1.1 ZigBee的性能特点
ZigBee主要具有如下特点。
(1)功耗低。由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了自动休眠模式,因此ZigBee设备非常省电,是目前功耗最低的无线通信技术之一。例如,目前已经投入使用的ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其他无线设备望尘莫及的。
(2)成本低。低成本对于ZigBee的应用是一个关键的因素。ZigBee通过大幅简化协议,降低了对通信控制器的要求,以8051的8位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,并且ZigBee协议是免专利费的,因此ZigBee模块相对于其他无线通信价格较为便宜。
(3)时延短。ZigBee的通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延为30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。因此ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)。
(4)网络容量大。一个星型结构的ZigBee网络最多可以容纳254个从设备和一个主设备,一个区域内可以同时存在最多100个ZigBee网络,而且组网灵活。
(5)可靠型高。ZigBee技术采取了可靠传输以及碰撞避免等策略,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。MAC 层采用了完全确认的数据传输模式,每个发送的数据包都必须等待接收方的确认信息,传输过程中出现问题可以重发,因此通过ZigBee传输数据可靠性较高。
(6)安全性高。ZigBee提供了基于循环冗余校验(Cyclic Redundancy Check ,CRC)的数据包完整性检查功能,支持鉴权和认证,采用了AES-128的加密算法,各个应用可以灵活确定其安全属性。
2.1.2 ZigBee的体系结构
ZigBee 体系结构参考了计算机网络系统中的开放系统互连参考模型(Open System Interconnection/Reference Model,OSI/RM),经过简化后采用了物理层、MAC层、网络层和应用层的四层体系结构,如图2-1所示。

图2-1 ZigBee体系结构
从图2-1可以看出,ZigBee体系架构的最下面两层由IEEE 802.15.4标准定义的PHY层和MAC层的详细信息构成,没有为更高层规定任何要求。ZigBee标准则定义了协议的网络层和应用层,并采用IEEE 802.15.4的PHY层和MAC层作为其部分协议。因此,任何遵循ZigBee标准的设备也同样遵循IEEE 802.15.4标准。IEEE 802.15.4是独立于ZigBee标准而开发的,也就是说,仅基于IEEE 802.15.4而不使用详细的ZigBee协议层来建立短距离无线网络是有可能的。这样,用户只需要在IEEE 802.15.4的PHY层和MAC层之上开发自己的网络层和应用层。这些定制的网络层和应用层通常比 ZigBee 的协议层简单,并且主要针对具体的应用。定制的网络层和应用层有一个好处就是实现整个协议所需的内存较小,从而可以有效地降低成本。
下面对ZigBee的各层逐一介绍。
1.物理层
物理层定义了物理无线信道和 MAC 子层之间的接口,提供物理层数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个由物理层相关数据组成的数据库。IEEE 802.15.4物理层包括以下五个方面的功能。
(1)激活和休眠无线射频收发器。
(2)信道能量检测(Energy Detect,ED)。信道能量检测为网络层提供信道选择依据,它主要测量目标信道中接收信号的功率强度,由于这个检测本身不进行解码操作,所以检测结果是有效信号功率和噪声信号功率之和。
(3)检测接收数据包的链路质量指示(Link Quality Indication,LQI)。链路质量指示为网络层或应用层提供接收数据帧时无线信号的强度和质量信息,与信道能量检测不同的是,它要对信号进行解码,生成的是一个信噪比指标。这个信噪比指标和物理层数据单元一道提交给上层处理。
(4)空闲信道评估(Clear Channel Assessment,CCA)。空闲信道评估判断信道是否空闲。IEEE 802.15.4定义了三种空闲信道评估模式:第一种是简单判断信道的信号能量强度,当信号能量低于某一门限值时就认为信道空闲;第二种是判断无线信号的特征,这个特征主要包括两方面,即扩频信号特征和载波频率;第三种模式是前两种模式的综合,同时检测信号强度和信号特征,给出信道空闲判断。
(5)收发数据。
下面介绍物理层的载波调制和帧结构。
(1)物理层的载波调制
IEEE 802.15.4物理层定义了三个载波频段用于收发数据。在这三个频段上发送数据使用的速率、信号处理过程以及调制方式等方面存在一些差异。三个频段总共提供了27个信道(channel):868MHz频段1个信道,915MHz频段10个信道,2.4G频段16个信道,如图2-2所示。

图2-2 IEEE 802.15.4工作频段分布
在868 MHz和915 MHz这两个频段上,信号处理过程相同,只是数据速率不同。处理过程为:首先将物理层协议数据单元(PHY Protocol Data Unit,PPDU)的二制数据差分编码,然后将差分编码后的每一位转换为长度为15的片序列(Chip Sequence),最后将二进制相移键控(Binary Phase Shift Keying,BPSK)调制到信道上。差分编码是将数据的每一原始比特与前一个差分编码生成的比特进行异或运算:En=Rn⊕En-1,其中 En是差分编码的结果,Rn为要编码的原始比特,En-1是上一次差分编码的结果。对于每个发送的数据包,R1是第一个原始比特,计算 E1时假定 E0=0。差分解码过程与编码过程类似:Rn=En⊕En-1,对于每个接收到的数据包,E1是第一个需要解码的比特,计算R1时假定E0=0。差分编码以后,进行直接序列扩频。每一比特被转换为长度为15的片序列。扩频后的序列使用BPSK调制方式调制到载波上。
2.4 GHz频段的处理过程为:首先将物理层协议数据单元PPDU二进制数据中的每4位转换为一个符号(Symbol),然后将每个符号转换成长度为32bit的片序列,在把符号转换成片序列的过程中,利用16个近似正交的伪随机噪声序列来选择一个序列作为该符号的片序列,这是一个直接序列扩频的过程。扩频后,信号通过O-QPSK(Quadrature Phase Shift Keying)调制方式调制到载波上。
(2)物理层的帧结构
物理层的帧结构如表2-1所示
表2-1 ZigBee物理层帧格式

物理帧第一个字段是4个字节的前导码,收发器在接收前导码期间,会根据前导码序列的特征完成片同步和符号同步。帧起始分隔符(Start of Delimiter,SFD)字段长度为一个字节,其值固定为0xA7,标识一个物理帧的开始。收发器接收完前导码后,只能做到数据的位同步,只有搜索起始分隔符SFD字段的值0xA7才能同步到字节上。帧长度由一个字节的低7位表示,其值就是物理帧负载的长度,因此物理帧负载的长度不会超过127字节。物理帧的负载长度可变,称之为物理服务数据单元(PHY Service Data Unit,PSDU),一般用来承载MAC帧。
2.MAC层
在 IEEE 802系列标准中,OSI 参考模型的数据链路层进一步划分为媒介访问控制子层(Medium Access Control Sub Layer,MAC)和逻辑链路子层(Logic Link Control Sub Layer, LLC)两个子层。MAC子层使用物理层提供的服务实现设备之间的数据帧传输,而LLC在MAC子层的基础上,在设备间提供面向连接和非连接的服务。
MAC子层提供两种服务:MAC层数据服务(MAC Layer Data Service,MLDS)和MAC层管理服务(MAC Layer Management Entity,MLME)。前者保证MAC协议数据单元在物理层数据服务中的正确收发,后者维护一个存储MAC子层协议状态相关信息的数据库。IEEE 802.15.4 MAC子层的主要功能包括以下六个方面。
(1)协调器产生并发送信标帧,普通设备根据协调器的信标帧与协调器同步。
(2)支持PAN网络的关联(Association)和取消关联(Disassociation)操作。
(3)支持无线信道通信安全。
(4)使用CSMA/CA机制访问信道。
(5)支持时槽保障(Guaranteed Time Slot,GTS)机制。
(6)支持不同设备的MAC层间可靠传输。
关联操作是指一个设备在加入一个特定网络时,向协调器注册以及身份认证的过程。ZigBee网络中的设备有可能从一个网络切换到另一个网络,这时就需要进行关联和取消关联操作。
时槽保障机制和时分复用(Time Division Multiple Access,TDMA)机制相似,但它可以动态地为有收发请求的设备分配时槽。使用时槽保障机制需要设备间的时间同步,IEEE 802.15.4中的时间同步通过下面介绍的“超帧”机制实现。
(1)超帧
在IEEE 802.15.4中,可以选用以超帧为周期组织ZigBee网络内设备间的通信。超帧结构示意图如图2-3所示。

图2-3 超帧结构
每个超帧都以网络协调器发出的信标帧(Beacon)为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中的普通设备接收到超帧开始时的信标帧后,可以根据其中的内容安排自己的任务,如进入休眠状态直到这个超帧结束。
超帧将通信时间划分为活跃和不活跃两个部分。在不活跃期间,ZigBee网络中的设备不会相互通信,从而可以进入休眠状态以节省能量。超帧将活跃期间划分为3个阶段:信标帧发送时段(Send Period,SP)、竞争访问时段(Contention Access Period,CAP)和非竞争访问时段(Contention-free Period,CFP)。超帧的活跃部分被划分为16个等长的时槽,每个时槽的长度、竞争访问时段包含的时槽数等参数都由协调器设定,并通过超帧开始时发出的信标帧广播到整个网络。
在超帧的竞争访问时段,IEEE 802.15.4网络设备使用带时槽的CSMA/CA访问机制,并且任何通信都必须在竞争访问时段结束前完成。在非竞争时段,协调器根据上一个超帧ZigBee网络中设备申请GTS的情况,将非竞争时段划分成若干GTS。每个GTS由若干时槽组成,时槽数目在设备申请GTS时指定。如果申请成功,申请设备就拥有了它指定的时槽数目。每个GTS中的时槽都指定分配给了时槽申请设备,因而不需要竞争信道。IEEE 802.15.4标准要求任何通信都必须在自己分配的GTS内完成。
超帧中规定非竞争时段必须跟在竞争时段后面。竞争时段的功能包括网络设备可以自由收发数据、域内设备向协调器申请GTS时段、新设备加入当前ZigBee网络等。非竞争阶段由协调器指定的设备发送或者接收数据包。如果某个设备在非竞争时段一直处在接收状态,拥有GTS使用权的设备就可以在GTS阶段直接向该设备发送信息。
(2)数据传输模型
ZigBee网络中存在三种数据传输方式:设备发送数据给协调器、协调器发送数据给设备、对等设备之间的数据传输。星型拓扑网络中只存在前两种数据传输方式,因为数据只在协调器和设备之间交换。而在点对点拓扑网络中,三种数据传输方式都存在。
ZigBee网络中有两种通信模式可供选择:信标使能通信和信标不使能通信。
① 信标使能通信模式。在信标使能的网络中,ZigBee 网络协调器定时广播信标帧。信标帧表示超帧的开始。设备之间的通信使用基于时槽的CSMA/CA信道访问机制,ZigBee网络中的设备都是通过协调器发送的信标帧进行同步。在时槽CSMA/CA机制下,每当设备需要发送数据帧或命令帧时,它首先定位下一个时槽的边界,然后等待随机数目个时槽。等待完毕后,设备开始检测信道状态:如果信道忙,则设备需要重新等待随机数目个时槽,再检查信道状态,重复这个过程,直到有空闲信道出现。在这种机制下,确认帧的发送不需要使用CSMA/CA机制,而是紧跟着接收帧发送回源设备。
② 信标不使能通信模式。在信标不使能的通信网络中,ZigBee网络协调器不发送信标帧,各个设备使用非分时槽的CSMA/CA机制(即随机等待时间与时槽无关)访问信道。该机制的通信过程如下:当设备需要发送数据或者发送MAC命令时,它首先等候一段随机长的时间,然后开始检测信道状态。如果信道空闲,则该设备立即开始发送数据。如果信道忙,则设备需要重复上面的等待一段随机时间和检测信道状态的过程,直到能够发送数据。在设备接收到数据帧或命令帧而需要回应确认帧时,确认帧则紧跟着接收帧发送,而不使用CSMA/CA机制竞争信道。
(3)MAC层帧结构
MAC 层帧结构的设计目标是用最低复杂度实现在多噪声无线信道环境下的可靠数据传输。每个 MAC 子层的帧都由帧头、负载和帧尾三部分组成。帧头由帧控制信息、帧序列号和地址信息组成。MAC 子层负载具有可变长度,具体内容由帧类型决定。帧尾是帧头和负载数据的16位CRC校验序列。
在MAC子层中,设备地址有两种格式:16位(2字节)的短地址和64位(8字节)的扩展地址。16位短地址是设备与ZigBee网络协调器关联时,由协调器分配的网内局部地址, 64位扩展地址是全球唯一地址,在设备进入网络之前就分配好了。16位短地址只能保证在ZigBee网络内部是唯一的,所以在使用16位短地址通信时,需要结合16位的ZigBee网络标识符才有意义。两种地址类型的地址信息的长度不同,从而导致 MAC 帧头的长度也是可变的。一个数据帧使用哪种地址类型由帧控制字段的内容指示。在帧结构中没有表示帧长度的字段,这是因为在物理层的帧中有表示MAC帧长度的字段,MAC负载长度可以通过物理层帧长和MAC帧头的长度计算出来。
IEEE 802.15.4网络共定义了四种类型的帧:信标帧、数据帧、确认帧和命令帧
① 信标帧。信标帧的负载数据单元由4部分组成:超帧规范、保护时隙GTS分配字段、待转发数据的目标地址字段和信标帧的负载数据,如表2-2所示。
表2-2 信标帧

(a)信标帧中的超帧规范规定了这个超帧的持续时间、活跃部分持续时间以及竞争访问时段持续时间等信息。
(b)GTS分配字段将无竞争时段划分为若干GTS,并把每个GTS具体分配给某个设备。
(c)转发数据目标地址列出了与协调器保存的数据相对应的设备地址。一个设备如果发现自己的地址出现在待转发数据目标地址字段中,则意味着协调器存有属于它的数据,所以它就会向协调器发出请求传送数据的命令帧。
(d)信标帧负载数据为上层协议提供数据传输接口。例如在使用安全机制时,这个负载域将根据被通信设备设定的安全通信协议填入相应的信息。通常情况下,这个字段可以忽略。
在信标不使能网络中,协调器在其他设备的请求下也会发送信标帧。此时信标帧的功能是辅助协调器向设备传输数据,整个帧只有待转发数据目标地址字段有意义。
② 数据帧。数据帧用来传输上层发到MAC子层的数据,它的负载字段包含了上层需要传送的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元(MAC Service Data Unit,MSDU)。它的首尾分别附加MHR头信息和MFR尾信息后,就构成了MAC帧,如表2-3所示。
表2-3 数据帧

MAC 帧传送至物理层后,就成为了物理帧的负载 PSDU。PSDU 在物理层被“包装”,其首部增加了同步信息SHR和帧长度字段PHR。同步信息SHR包括用于同步的前导码和SFD字段,它们都是固定值。因为帧长度字段的PHR标识了MAC帧的长度,为1字节长,而且只有其中的低7位有效位,所以MAC帧的长度不会超过127字节。
③ 确认帧。如果设备收到目的地址为其自身的数据帧或MAC命令帧,并且帧的控制信息字段的确认请求位被置1,则设备需要回应一个确认帧。确认帧的序列号应该与被确认帧的序列号相同,并且负载长度应该为0。确认帧紧接着被确认帧发送,不需要使用CSMA/CA机制竞争信道,其帧格式如表2-4所示。
表2-4 确认帧

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

⑤ 安全服务。IEEE 802.15.4提供的安全服务是在应用层已经提供密钥情况下的对称密钥服务。密钥的管理和分配都由上层协议负责。这种机制提供的安全服务基于这样一个假定,即密钥的产生、分配和存储都在安全方式下进行。在IEEE 802.15.4中,以MAC帧为单位提供了四种帧安全服务,为了适用各种不同的应用,设备可以在三种安全模式中进行选择。
(a)帧安全服务。MAC子层可以为输入输出的MAC帧提供安全服务,提供的安全服务主要包括四种:访问控制、数据加密、帧完整性检查和顺序更新。
● 访问控制提供的安全服务是确保一个设备只和它愿意通信的设备通信。在这种方式下,设备需要维护一个列表,记录希望与它通信的设备。
● 数据加密服务使用对称密钥来保护数据,防止第三方直接读取数据帧信息。在ZigBee网络中,信标帧、命令帧和数据帧的负载均可使用加密服务。
● 帧完整性检查是指通过一个不可逆的单向算法对整个MAC帧运算,生成一个消息完整性代码,并将其附加在数据包的后面发送。接收方用同样的过程对 MAC 帧进行运算,对比运算结果和发送端给出的结果是否一致,以此判断数据帧是否被第三方修改。信标帧、数据帧和命令帧均可使用帧完整性检查保护。
● 顺序更新是指使用一个有序编号避免帧重发攻击。接收到一个数据帧后,新编号要与最后1个编号比较。如果新编号比最后一个编号新,则校验通过,编号更新为最新的;反之校验失败。这项服务可以保证收到的数据是最新的,但不提供严格的与上一帧数据之间的时间间隔信息。
(b)安全模式。在基于802.15.4网络中,设备可以根据自身需要选择不同的安全模式:无安全模式、访问控制列表ACL模式和安全模式。
● 无安全模式是MAC子层默认的安全模式。处于这种模式下的设备不对接收到的帧进行任何安全检查。当某个设备接收到一个帧时,只检查帧的目的地址。如果目的地址是本设备地址或广播地址,这个帧就会转发给上层,否则丢弃。在设备被设置为混杂模式的情况下,它会向上层转发所有接收到的帧。
● 访问控制列表模式为通信提供了访问控制服务。高层可以通过设置MAC子层的ACL条目指示MAC子层根据源地址过滤接收到的帧。因此在这种方式下,MAC子层没有提供加密保护,高层有必要采取其他机制来保证通信的安全。
● 安全模式是对接收或发送的帧提供全部的4种安全服务,即访问控制、数据加密、帧完整性检查和顺序更新。
3.网络层
虽然网络拓扑结构的形成过程属于网络层的功能,但IEEE 802.15.4底层协议为形成各种网络拓扑结构提供了充分支持,ZigBee可以在基于IEEE 802.15.4底层协议上灵活采用多种拓扑结构,可以采用星型和点对点型,也允许两者组合形成网状型,如图2-4所示。
星型拓扑是最简单的一种拓扑形式,星型拓扑包含一个网络协调器节点和一系列终端节点。每一个终端节点只能和网络协调器节点进行通信。树型拓扑包括一个网络协调器节点以及一系列路由节点和终端节点。网络协调器节点连接一系列路由节点和终端节点,其子节点的路由节点也可以连接一系列路由节点和终端节点,这样可以重复多个层级。网状拓扑包含一个网络协调器节点和一系列路由节点和终端节点,这种网络拓扑形式和树型拓扑相同。但是,网状拓扑具有更加灵活的信息路由规则,在可能的情况下,路由节点之间可以直接通信。这种路由机制使得信息通信变得更有效率,一旦一个路由路径出现问题,信息就可以自动沿着其他路由路径传输,如图2-4所示。

图2-4 ZigBee网络结构
点对点网络模式可以支持Ad-Hoc网络,允许通过多跳路由的方式在网络中传输数据。不过一般认为自组织问题由网络层来解决,不在IEEE 802.15.4标准讨论范围之内。点对点网络可以构造更复杂的网络结构,适合于设备分布范围广的应用,比如在工业检测与控制、货物库存跟踪和智能农业等方面有非常好的应用背景。
在ZigBee应用系统中,根据设备具有的通信能力,可以分为全功能设备FFD和精简功能设备RFD。FFD设备之间以及FFD设备与RFD设备之间可以通信。RFD设备之间不能直接通信,只能与FFD设备通信,或者通过一个FFD设备向外转发数据。这个与RFD相关联的FFD设备称为该RFD的协调器(Coordinator)。RFD设备主要用于简单的控制应用,如灯的开关、被动式红外线传感器等,传输的数据量较少,对传输资源和通信资源占用不多,这样RFD设备可以采用非常廉价的实现方案。在ZigBee网络中,还有一个称为PAN网络协调器(PAN Coordinator)的FFD设备,是网络中的主控制器。ZigBee网络协调器除了直接参与应用以外,还要完成成员身份管理、链路状态信息管理以及分组转发等任务。
下面详细介绍星型网络和点对点网络的形成过程。
(1)星型网络的形成
在星型结构中,所有设备都与中心设备ZigBee网络协调器通信。在这种网络中,网络协调器一般使用持续电力系统供电,而其他设备采用电池供电。星型网络适合家庭自动化、个人计算机的外设以及个人健康护理等小范围的室内应用。
星型网络以网络协调器为中心,所有设备只能与网络协调器通信,因此在星型网络的形成过程中,第一步就是建立网络协调器。任何一个FFD设备都有成为网络协调器的可能,一个网络如何确定自己的网络协调器由上层协议决定。一种简单的策略是一个FFD设备在第一次被激活后,首先广播查询网络协调器的请求,如果接收到回应就说明网络中已经存在网络协调器,再通过一系列认证过程,设备就成为了这个网络中的普通设备。如果没有收到回应,或者认证过程不成功,这个FFD设备就可以建立自己的网络,并且成为这个网络的网络协调器。当然,这里还存在一些更深入的问题,一个是网络协调器过期问题,如原有的网络协调器损坏或者能量耗尽,另一个是偶然因素造成多个网络协调器竞争问题,如移动物体阻挡导致一个FFD自己建立网络,当移动物体离开的时候,网络中将出现多个协调器。
网络协调器要为网络选择一个唯一的标识符,所有该星型网络中的设备都用这个标识符来规定自己的属主关系。不同星型网络之间的设备通过设置专门的网关完成相互通信。选择一个标识符后,网络协调器就允许其他设备加入自己的网络,并为这些设备转发数据分组。
星型网络中的两个设备如果需要互相通信,都是先把各自的数据包发送给网络协调器,然后由网络协调器转发给对方。
(2)点对点网络的形成
与星型网不同,点对点网络只要彼此都在对方的无线辐射范围之内,任何两个设备之都可以直接通信。点对点网络中也需要网络协调器,负责管理链路状态信息、认证设备身份等功能。
在点对点网络中,任意两个设备只要能够彼此收到对方的无线信号,就可以进行直接通信,不需要其他设备的转发。但点对点网络中仍然需要一个网络协调器,不过该协调器的功能不再是为其他设备转发数据,而是完成设备注册和访问控制等基本的网络管理功能。网络协调器的产生同样由上层协议规定,如把某个信道上第一个开始通信的设备作为该信道上的网络协议器。簇树网络是点对点网络的一个例子,下面以簇树网络为例,描述点到点网络的形成过程。
在簇树网络中,绝大多数设备是FFD设备,而RFD设备总是作为簇树的叶设备连接到网络中。任意一个FFD都可以充当RFD协调器或者网络协调器,为其他设备提供同步信息。在这些协调器中,只有一个可以充当整个点对点网络的网络协调器。网络协调器和网络中的其他设备一样,也可能拥有比其他设备更多的计算资源和能量资源。网络协调器首先将自己设为簇头(Cluster Header,CLH),并将簇标识符(Cluster Identifier,CID)设置为0,同时为该簇选择一个未被使用的ZigBee网络标识符,形成网络中的第一个簇。接着,网络协调器开始广播信标帧。邻近设备收到信标帧后,可以申请加入该簇。设备能否成为簇成员,由网络协调器决定。如果请求被允许,则该设备将作为簇的子设备加入网络协调器的邻居列表。新加入的设备会将簇头作为它的父设备加入自己的邻居列表中。
上面介绍的只是一个由单簇构成的最简单的簇树。ZigBee网络协调器可以指定另一个设备成为邻接的新簇头,以此形成更多的簇。新簇头同样可以选择其他设备成为簇头,进一步扩大网络的覆盖范围。但是过多的簇头会增加簇间消息传递的延迟和通信开销。为了减少延迟和通信开销,簇头可以选择最远的通信设备作为相邻簇的簇头,这样可以最大限度地缩小不同簇间消息传递的跳数,达到减少延迟和开销的目的。
2.1.3 ZigBee的工作过程
ZigBee的地址结构分两个部分:一个是64位的IEEE地址,通常也叫作MAC地址或者扩展地址(Extended Address),另一个是16位的网络地址,也叫做逻辑地址(Logical Address)或者短地址。64位长地址是全球唯一的地址,并且终身分配给设备。这个地址可由制造商设定或者在安装的时候设置,由IEEE提供。当设备加入ZigBee网络被分配一个短地址时,在其所在的网络中是唯一的。这个地址主要用来在网络中辨识设备、数据传输和数据包路由等,一个节点是一个设备,有一个射频端、一个64位IEEE地址和一个16位网络地址。
ZigBee 协议套件紧凑且简单,具体实现的硬件需求很低,8位51微控制器即可满足要求,全功能协议软件需要32 KB 的ROM,最小功能协议软件需求大约4 KB的ROM,其工作流程如图2-5所示。

图2-5 ZigBee工作过程
首先,每个设备的协议栈必须要对其PHY和MAC层初始化,每个网络必须有一个也只能有一个PAN Coordinator,PAN ID作为网络标识,可以被人为地预定义。除64位IEEE MAC 地址外,还必须分配一个16位的短地址。
例如,ZigBee技术选择2.4GHz,节点以Coordinator的模式启动,然后开放请求应答,如有可以利用的Coordinator,节点就可以申请加入网络,该节点被Coordinator接收,并获得短地址作为标识后,便可传输数据。