物联网ZigBee的结构体系
相对于其他无线通信标准而言,ZigBee协议栈显得更为紧凑和简单。ZigBee协议栈它是由底层硬件模块、中间协议层和高端应用层三大部分组成的。
1、底层硬件模块
底层硬件模块是ZigBee技术的核心模块,所有嵌入ZigBee技术的设备都必须包括底层硬件模块,它主要由射频(Radio-Frequency,RF)、ZigBee无线收发器和底层控制模块组成。
ZigBee标准协议定义了两个物理层(PHY)标准,分别是2.4 GHz物理层和868/915 MHz物理层。两个物理层都基于直接序列扩频(Direct Sequence Spread Spectrun,DssS)技术,使用相同的物理层数据包格式,区别在于工作频率、调制方式、信号处理过程和传输速率。
底层控制模块定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个由物理层相关数据组成的数据库。数据服务主要包括:激活和休眠射频收发器、收发数据、信道能量检测(Energy Detect,ED)、链路质量指示(Link Quality Indication,LQI)和空闲信道评估(Clear Channel Assessment,CCA)。
(1)信道能量检测为网络层提供信道选择依据,它主要测量目标信道中接收信号的功率强度,由于这个检测本身不需要进行解码操作,所以检测结果是有效信号功率和噪声信号功率之和。
(2)链路质量指示为MAC层或者应用层提供接收数据帧时无线信号的强度和质量信息,与信道能量检测不同的是,它要对信号进行解码,生成的是一个信噪比指标,这个信噪比指标和物理层数据单元一起提交给上层处理。
(3)空闲信道评估用于判断信道是否空闲。ZigBee协议标准定义了三种空闲信道评估模式:第一种是判断信道的信号能量,当信号能量低于某一个门限量就认为信道空闲;第二种是判断无线信道的特征,这个特征主要包括两方面,即扩频信号特征和载波频率;第三种模式是前两种模式的综合,同时检测信号强度和信号特征,判断信道是否空闲。
2、中间协议层
中间协议层由IEEE 802.154MAC子层、IEEE 802.15.4链路控制子(Logical Link Control,LLC)层、网络(NWK)层,以及通过业务相关聚合子层(ServiceSpecific Convergence Sublayer,SSCS)协议承载的IEEE 802.2LLC子层(选用协议层)组成。
MAC子层使用物理层提供的服务实现设备之间的数据帧传输,而LLC子层在MAC子层的基础上,在设备间提供面向连接和非连接的服务。MAC子层提供两种服务:MAC层数据服务和MAC层管理服务,前者保证MAC协议数据单元在物理层数据服务中的正确收发,后者维护一个存储MAC子层协议状态相关信息的数据库。MAC子层主要功能包括:
·作为协调器产生并发送信标帧,普通设备根据协调器的信标帧与协调器同步;
·支持无线信道通信安全;
·使用载波侦听多址冲突避免(CSMA/CA)机制访问信道;
·支持时隙预留机制(Guaranteed Time Slot,GTS);
·支持不同设备的MAC层间可靠传输。
NWK层负责建立和维护网络连接,它独立处理传入数据请求、关联(Assoclation)、解除关联(Disassociation)和孤立通知请求。
SsCS和IEEE 802.2LLC只是ZigBee标准协议中可能的上层协议,并不在IEEE 802.154标准的定义范围之内。SSCS为IEEE802.15.4的MAC层接入IEEE 802.2标准中定义的LLC子层提供聚合服务。LLC子层可以使用SSCS的服务接口访问IEEE 802.15.4网络,为应用层提供链路层服务。
3、高端应用层
高端应用层位于ZigBee协议栈的最上面,主要包括以下五个部分:应用支持(APS)子层、 ZigBee设备对象(ZDO)、ZigBee设备配置(ZDC)层、应用层(APL)和用户应用程序。
(1)APS子层主要提供ZigBee端点接口。应用程序将使用该层打开或关闭一个或多个端点,并且获取或发送数据。
(2)ZDO负责接收和处理远程设备的不同请求。ZDO打开和处理目标端点接口,和其他的端点接口不同,目标端点接口总是在启动时就被打开并假设绑定到任何发往该端口的输入数据帧。
(3)ZigBee设备配置层提供标准的ZigBee配置服务,它定义和处理描述符请求。远程设备可以通过ZDO请求任何标准的描述符信息,当接收到这些请求时,ZDO会调用配置对象以获取相应的描述符值。
(4)APL提供高级协议栈管理功能。用户应用程序使用此模块来实现管理协议栈功能。
(5)用户应用程序主要包括厂家预置的应用软件,同时,为了给用户提供更广泛的应用,还提供了面向仪器控制、信息电器、通信设备的嵌入式应用编程接口库,从而可以更广泛地实现设备与用户的应用软件间的交互。