2.6 ZigBee
ZigBee一词源自蜜蜂群在发现花粉位置时,通过锯齿形(zigzag)舞蹈来告知同伴,达到交换信息的目的,可以说这是一种小动物通过简捷方式实现的“无线”沟通。ZigBee技术是一种面向自动化和无线控制的低速率、低功耗、低价格的无线网络方案,在该方案被提出一段时间后,IEEE 802.15.4工作组也开始了一种低速率无线通信标准的制定工作,最终ZigBee联盟和IEEE 802.15.4工作组决定合作共同制定一种通信协议标准,该协议被命名为“ZigBee”。
ZigBee的通信速率要求低于蓝牙,通过电池供电为设备提供无线通信功能,同时希望在不更换电池且不充电的情况下能正常工作几个月甚至几年。ZigBee支持Mesh型网络拓扑结构,网络规模可以比蓝牙大得多。ZigBee无线设备工作在公共频段上(全球为2.4GHz,美国为915MHz,欧洲为868MHz),传输距离为10~75m,具体数值取决于射频环境以及特定应用条件下的传输功耗。ZigBee的通信速率在2.4GHz时为250kbit/s,在915MHz时为40kbit/s,在868MHz时为20kbit/s。
2.6.1 ZigBee与IEEE 802.15.4的分工
IEEE 802.15.4是一个新兴的无线通信协议,是IEEE确定的低速个人域网络(Personal Area Network,PAN)标准。这个标准定义了物理层和MAC层:物理层规范确定无线网络的工作频段以及该频段上传输数据的基准传输率;MAC层规范定义了在同一区域工作的多个802.15.4无线信号如何共享空中频段。
但是,仅仅定义物理层和MAC层并不能完全解决问题,因为没有统一的使用规范,不同厂家生产的设备存在兼容性问题,于是ZigBee联盟应运而生。这种技术以前又称作HomeRF Lite、RF-Easy Link或Fire Fly无线电技术,主要用于近距离无线通信,目前统一称为ZigBee技术。ZigBee从IEEE 802.15.4标准开始着手,定义了允许不同厂商制造的设备相互兼容的应用纲要。
ZigBee从诞生到现在只有十几年时间,最初在2002年由英国的英维思(Invensys)、美国的摩托罗拉、荷兰的飞利浦、日本的三菱等几家公司联合成立了ZigBee联盟,合力推动ZigBee技术。2004年12月,ZigBee 1.0版标准正式发布;到了2006年,ZigBee联盟已经由最初十多家公司发展到全世界150多家知名厂商加盟的商业团体,其标准版本也升级到ZigBee 1.1;2016年5月,ZigBee联盟联合ZigBee中国成员组成员,面向亚洲市场正式推出ZigBee 3.0,加速推动ZigBee技术在更多领域的应用和完善,这也是目前ZigBee技术的最新标准。
2.6.2 ZigBee与IEEE 802.15.4的区别
IEEE PAN工作组的IEEE 802.15.4技术标准是ZigBee技术的基础,IEEE 802.15.4标准旨在为低能耗的简单设备提供有效覆盖范围在10m左右的低速连接,可广泛用于交互玩具、库存跟踪监测等消费与商业应用领域,传感器网络是其主要市场对象。
IEEE 802.15.4定义了3个工作频带:2.4GHz、915MHz和868MHz,每个频带提供固定数量的信道。例如,2.4GHz频带总共提供16个信道(信道11~26)、915MHz频带提供10个信道(信道1~10),而868MHz频带提供1个信道(信道0)。协议的比特率由所选择的工作频率决定:2.4GHz频带提供的数据速率为250kbit/s,915MHz频带提供的数据速率为40kbit/s,而868MHz频带提供的数据速率为20kbit/s。由于数据包开销和处理延迟,实际的数据吞吐量会小于规定的比特率。IEEE 802.15.4的MAC数据包的最大长度为127B,每个数据包都由头字节和16位CRC值组成,16位CRC值用于验证帧的完整性;此外,IEEE 802.15.4还可以选择使用应答数据传输机制,所有特殊ACK标志位置为1的帧均会被它们的接收器应答,这样就可以确定帧实际上已经被传递了。如果发送帧时置位了ACK标志位且在一定的超时期限内没有收到应答,发送器将重复进行固定次数的发送,如仍无应答就宣布发生错误。注意接收到应答仅仅表示帧被MAC层正确接收,而不表示帧被正确处理,这是非常重要的。接收节点的MAC层可能正确地接收并应答了一个帧,但是由于缺乏处理资源,该帧可能被上层丢弃,因此很多上层和应用程序要求其他的应答响应。
ZigBee和IEEE 802.15.4两者之间的区别和联系如下:
1)ZigBee完整而充分地利用了IEEE 802.15.4定义的功能强大的物理特性优点。
2)ZigBee增加了逻辑网络和应用软件。
3)ZigBee基于IEEE 802.15.4射频标准,同时ZigBee联盟通过与IEEE的紧密合作来确保一个集成的、完整的市场解决方案。
4)IEEE 802.15.4工作组主要负责制定物理层和MAC层标准,而ZigBee负责网络层、安全层以及应用层的开发。
2.6.3 ZigBee协议框架
相对于常见的无线通信标准,ZigBee协议比较紧凑、简单,ZigBee协议栈的体系结构主要由物理层、数据链路层(分为MAC子层和LLC子层)、网络层、应用汇聚层及应用层组成,如图2-7所示。其中物理层和MAC层采用IEEE 802.15.4协议标准,而网络层和应用层则由ZigBee联盟制定,各层之间均有数据服务接口和管理实体接口。下面对各层协议的功能进行简单的介绍。
图2-7 ZigBee协议框架
应用层定义了各种类型的应用业务,是协议栈的最上层用户。
应用汇聚层负责把不同的应用映射到ZigBee网络层上,包括安全与鉴权、多个业务数据流的汇聚、设备发现和业务发现。
网络层的功能包括拓扑管理、路由管理和安全管理。
数据链路层又可分为逻辑链路控制(LLC)子层和介质访问控制(MAC)子层。IEEE 802.15.4的LLC子层与IEEE 802.2的相同,功能包括传输可靠性保障、数据包的分段与重组、数据包的顺序传输。IEEE 802.15.4的MAC子层通过SSCS(Service-Specific Convergence Sublayer)协议能支持多种LLC标准,功能包括设备间无线链路的建立、维护和拆除,确认模式的帧传送与接收,信道接入控制、帧校验、预留时隙管理和广播信息管理。
物理层采用直接序列扩频技术,定义了三种频率等级。
2.6.4 ZigBee技术的特点
1)低速率短时延。最大传输速率为250kbit/s,搜索设备时延30ms,信道接入时延15ms,休眠激活时延15ms,适用于对时延要求苛刻的无线控制应用。
2)低功耗。节点在非工作模式时可休眠,模式切换时延短,且技术协议中对电池的使用进行了优化,一般采用电池供电方式可工作半年至数年。
3)低成本。由于协议栈相对于蓝牙、Wi-Fi要精简得多,对通信控制器的要求低,大大降低了器件成本;且协议栈为免专利费用,进一步降低了软件成本。
4)大容量网络。一个ZigBee网络支持255个设备,通过网络协调器最多可支持65000多个ZigBee网络节点,非常适合大面积无线传感器网络的布建需求。
5)近距离通信。由于低功耗特点,设备发射功率小,两个节点间的通信距离为10~100m,加大发射功率后,可达1~3km。通过相邻节点的连续通信传输,可以建立设备的多跳通信链路,使实际通信距离大幅增加。
6)自组织、自配置。协议中加入了关联和分离功能,协调器能自动建立网络,节点设备可随时加入和退出,是一种自组织、自配置的组网模式。
2.6.5 网络层规范
网络层是位于数据链路层之上与应用层交互的一个协议层,其主要功能是设备的发现和配置、网络的建立与维护、路由的选择以及广播通信,具有自我组网与自我修复的功能。为了与应用层交互,网络层逻辑上包含两个服务实体:数据服务实体(NLDE)和管理服务实体(NLME)。
NLDE-SAP是网络层提供给应用层的数据服务接口,用于将应用层提供的数据打包成应用层协议数据单元,并将其传输给网络层的相应节点;或者将接收到的应用层协议数据单元进行解包,将解包后得到的数据传送给本层节点,也就是说NLDE-SAP实现两层之间的数据传输,主要任务如下。
1)发现一个网络并且分配网络地址(网络协调器)。
2)向网络中添加设备或从网络中移除设备。
3)将消息路由到目的节点。
4)对发送的数据进行加密。
5)在网状网络中执行路由寻址并储存路由表。
网络层(NWK)帧即网络协议数据单元(NPDU),由两个基本部分组成:NWK头和NWK有效载荷。NWK头部分包含帧控制、地址和序号等信息;NWK有效载荷部分包含的信息因帧类型的不同而不同,长度可变,其一般格式如表2-2所示。
表2-2 NWK帧结构
网络层定义了两种类型的设备:全功能设备(Full Function Device,FFD)和简化功能设备(Reduced Function Device,RFD)。FFD作为网络协调器,支持各种拓扑结构的网络的建立,也可以和任一设备进行通信;而RFD只能和FFD进行通信,功能和结构比较简单,可以有效地降低成本和功耗。
网络层支持的网络拓扑结构有三种:星形结构(Star)、树形结构(Cluster tree)和网状结构(Mesh),如图2-8所示:
图2-8 ZigBee网络层支持的网络拓扑结构
1)星形网络为主从结构,由单个网络协调器和多个终端设备组成,网络的协调者必须是FFD,由它负责管理和维护网络。
2)树形网络可以看成是扩展的单个星形网或者相当于互联的多个星形网络。
3)网状网络中的每一个FFD同时还可以作为路由器,根据网络路由协议来优化最短和最可靠的路径。
2.6.6 应用层规范
应用层包括应用支持子层(APS)、应用框架(AF)、ZigBee设备对象(ZDO)。除了提供一些必要的函数以及服务接口外,应用层的另一个重要功能是可以根据具体应用的需要在此层基础上开发用户自己的应用对象。
APS提供了网络层和应用层之间的接口,通过数据服务和管理服务把两者连接起来。APS的作用是维护设备绑定表,在绑定的设备间传输信息,同时能发现在工作范围内操作的其他设备。
每个APS帧(APDU)包括两个基本部分:APS帧头和APS有效载荷。APS帧头由帧控制信息和地址信息组成;APS有效载荷是与帧相关的有效信息,长度可变,APS帧结构的一般格式如表2-3所示。
表2-3 APS帧结构
ZDO的作用是定义网络中其他设备的角色、发起或回应绑定请求、在网络设备间建立安全机制等。ZigBee定义了3种类型的ZOD设备。
1)网络协调者:全功能设备,负责扫描搜索,用未使用的信道建立新网络,分配网络位置。
2)路由器:全功能设备,允许其他设备连接,负责转发信息包,同时负责找寻、建立和修复信息包的路由路径。
3)终端设备:简化功能设备,不具备路由功能,只能选择加入已经形成的网络,可以收发信息,但不能转发信息。
应用框架(AF)是应用对象和ZigBee设备连接的环境,应用对象处于应用层的顶部,由设备制造商决定,每个应用对象通过相应的端点寻址,最多可定义240个不同的端口号(1~240),端口号241~254保留以作将来的应用,端口0是当前对象的数据接口,端口255是向整个网络所有应用对象的广播数据接口。