与蜂共舞—ZigBee技术一瞥
扫描二维码
随时随地手机看文章
摘要: 本文从ZigBee的发展历史入手,探讨了这种基于无线传感器技术的网络应用的协议栈、性能分析和各种应用领域,全面构建了完整的ZigBee技术应用与发展蓝图。
关键词: 短距离无线通信;ZigBee;IEEE 802.15.4
概述
“ZigBee”是什么?从字面上猜像是一种蜜蜂。因为“ZigBee”这个词由“Zig”和“Bee”两部分组成,“Zig”取自英文单词“zigzag”,意思是走“之”字形,“bee”英文是蜜蜂的意思,所以“ZigBee”就是跳着“之”字形舞的蜜蜂。不过,ZigBee并非是一种蜜蜂,事实上,它与蓝牙类似是一种新兴的短距离无线通信技术,国内也有人翻译成“紫蜂”。下面就让我们一起进入这只蜜蜂的世界,与蜂共舞吧!
这只蜜蜂的来头还是要从它的历史开始说起,早在上世纪末,就已经有人在考虑发展一种新的通信技术,用于传感控制应用(sensor and control),这个想法后来在IEEE 802.15工作组当中提出来,于是就成立了TG4工作组,并且制定了规范IEEE 802.15.4。但是IEEE 802的规范只专注于底层,要达到产品的互操作和兼容,还需要定义高层的规范,于是2002年ZigBee Alliance成立,正式有了“ZigBee”这个名词。两年之后,ZigBee的第一个规范ZigBee V1.0诞生,但这个规范推出的比较仓促,存在一些错误,并不实用。此后ZigBee Alliance又经过两年的努力,推出了新的规范ZigBee 2006,这是一个比较完善的规范。据联盟最新的消息,今年年底将会发布更新版本的规范ZigBee 2007,这个版本增加了一些新的特性。
从ZigBee的发展历史可以看到,它和IEEE 802.15.4有着密切的关系,事实上ZigBee的底层技术就是基于IEEE 802.15.4的,因此有一种说法认为ZigBee和IEEE 802.15.4是同一个东西,或者说“ZigBee”只是IEEE 802.15.4的名字而已,其实这是一种误解。实际上ZigBee和IEEE 802.15.4的关系,有点类似于WiMAX和IEEE 802.16,Wi-Fi和IEEE 802.11,Bluetooth和IEEE 802.15.1。“ZigBee”可以看作是一个商标,也可以看作是一种技术,当把它看作一种技术的时候,它表示一种高层的技术,而物理层和MAC层直接引用IEEE 802.15.4。事物是不断的发展变化的,尤其是通信技术,可以想象将来的ZigBee可能不会使用IEEE 802.15.4定义的底层,就跟蓝牙(Bluetooth)宣布下一代底层采用UWB技术一样,但是“ZigBee”这个商标以及高层的技术还会继续保留。
ZigBee协议栈速读
我们无法预料将来ZigBee会基于怎样的底层技术,只好从它现在的底层——IEEE 802.15.4开始了解,IEEE 802.15.4包括物理层和MAC层两部分。ZigBee工作在三种频带上,分别是用于欧洲的868MHz频带,用于美国的915MHz频带,以及全球通用的2.4GHz频带,但这三个频带的物理层并不相同,它们各自的信道带宽分别是0.6MHz, 2MHz和5MHz,分别有1个,10个和16个信道。不同频带的扩频和调制方式也有所区别,虽然都使用了直接序列扩频(DSSS)的方式,但从比特到码片的变换方式有比较大的差别;调制方面都使用了调相技术,但868MHz和915MHz频段采用的是BPSK,而2.4GHz频段采用的是OQPSK。我们可以以2.4GHz频段为例看看发射机基带部分的框图(如图1),可以看到物理层部分非常简单,而IEEE 802.15.4芯片的低价格正是得益于底层的简单性。可能我们会担心它的性能,但我们可以再看看它和Bluetooth/IEEE 802.15.1以及WiFi/IEEE 802.11的性能比较(如图2),在同样比特信噪比的情况下,IEEE 802.15.4要优于其他两者。直接序列扩频技术具有一定的抗干扰效果,同时在其他条件相同情况下传输距离要大于跳频技术。在发射功率为0dBm的情况下,Bluetooth通常能有10m作用范围,而基于IEEE 802.15.4的ZigBee在室内通常能达到30~50m作用距离,在室外如果障碍物较少,甚至可以达到100m作用距离;同时调相技术的误码性能要优于调频和调幅技术。因此综合起来,IEEE 802.15.4具有性能比较好的物理层。另一方面,我们可以看到IEEE 802.15.4的数据速率并不高,对于2.4GHz频段只有250kb/s,而868MHz频段只有20kb/s,915MHz频段只有40kb/s。因此我们完全可以把它归为低速率的短距离无线通信技术。
图1 IEEE 802。15.4 物理层2.4GHz频段发射机基带框图
图2 几种无线通信技术性能比较
物理层的上面是MAC层,它的核心是信道接入技术,包括时分复用GTS技术和随机接入信道技术CSMA/CA。不过ZigBee实际上并没有对时分复用GTS技术进行相关的支持,因此我们可以暂不考虑它,而专注于CSMA/CA。ZigBee/IEEE 802.15.4的网络所有节点都工作在同一个信道上,因此如果邻近的节点同时发送数据就有可能发生冲突。为此MAC层采用了CSMA/CA的技术,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲则可以发送数据,否则就要进行随机的退避,即延迟一段随机时间,然后再进行监听,这个退避的时间是指数增长的,但有一个最大值,即如果上一次退避之后再次监听信道忙,则退避时间要增倍,这样做的原因是如果多次监听信道都忙,有可能表明信道上的数据量大,因此让节点等待更多的时间,避免繁忙的监听。通过这种信道接入技术,所有节点竞争共享同一个信道。在MAC层当中还规定了两种信道接入模式,一种是信标(beacon)模式,另一种是非信标模式。信标模式当中规定了一种“超帧”的格式,在超帧的开始发送信标帧,里面含有一些时序以及网络的信息,紧接着是竞争接入时期,在这段时间内各节点以竞争方式接入信道,再后面是非竞争接入时期,节点采用时分复用的方式接入信道,然后是非活跃时期,节点进入休眠状态,等待下一个超帧周期的开始又发送信标帧。而非信标模式则比较灵活,节点均以竞争方式接入信道,不需要周期性的发送信标帧。显然,在信标模式当中由于有了周期性的信标,整个网络的所有节点都能进行同步,但这种同步网络的规模不会很大。实际上,在ZigBee当中用得更多的可能是非信标模式。
MAC层往上就属于ZigBee真正定义的部分了,我们可以参看一下ZigBee的协议栈(图3)。底层技术,包括物理层和MAC层由IEEE 802.15.4制定,而高层的网络层、应用支持子层(APS)、应用框架(AF)、ZigBee设备对象(ZDO)和安全组件(SSP),均由ZigBee Alliance所制定。
图3 ZigBee协议栈
这些部分当中最下面的是网络层。和其他技术一样,ZigBee网络层的主要功能是路由,路由算法是它的核心。目前ZigBee网络层主要支持两种路由算法—树路由和网状网路由。树路由采用一种特殊的算法,具体可以参考ZigBee的协议栈规范。它把整个网络看作是以协调器为根的一棵树,因为整个网络是由协调器所建立的,而协调器的子节点可以是路由器或者是末端节点,路由器的子节点也可以是路由器或者末端节点,而末端节点没有子节点,相当于树的叶子。这种结构又好像蜂群的结构,协调器相当于蜂后,是唯一的,而路由器相当于雄蜂,数目不多,末端节点则相当于数量最多的工蜂。其实有很多地方仔细一想,就可以发现ZigBee和蜂群的许多暗合之处。树路由利用了一种特殊的地址分配算法,使用四个参数—深度、最大深度、最大子节点数和最大子路由器数来计算新节点的地址,于是寻址的时候根据地址就能计算出路径,而路由只有两个方向—向子节点发送或者向父节点发送。树状路由不需要路由表,节省存储资源,但缺点是很不灵活,浪费了大量的地址空间,并且路由效率低,因此常常作为最后的路由方法,或者干脆不用。ZigBee当中还有一种路由方法是网状网路由,这种方法实际上是AODV路由算法的一个简化版本,非常适合于低成本的无线自组织网络的路由。它可以用于较大规模的网络,需要节点维护一个路由表,耗费一定的存储资源,但往往能达到最优的路由效率,而且使用灵活。除了这两种路由方法,ZigBee当中还可以进行邻居表路由,其实邻居表可以看作是特殊的路由表,只不过只需要一跳就可以发送到目的节点。
网络层的上面是应用层,包括了APS、AF和ZDO几部分,主要规定了一些和应用相关的功能,包括端点(endpoint)的规定,还有绑定(binding)、服务发现和设备发现等等。其中端点是应用对象存在的地方,ZigBee允许多个应用同时位于一个节点上,例如一个节点具有控制灯光的功能,又具有感应温度的功能,又具有收发文本消息的功能,这种设计有利于复杂ZigBee设备的出现。而绑定是用于把两个“互补的”应用联系在一起,如开关应用和灯的应用。更通俗的理解,“绑定”可以说是通信的一方了解另一方的通信信息的方法,比如开关需要控制“灯”,但它一开始并不知道“灯”这个应用所在的设备地址,也不知道其端点号,于是它可以广播一个消息,当“灯”接收到之后给出响应,于是开关就可以记录下“灯”的通信信息,以后就可以根据记录的通信信息去直接发送控制信息了。服务发现和设备发现是应用层需要提供的,ZigBee定义了几种描述符,对设备以及提供的服务可以进行描述,于是可以通过这些描述符来寻找合适的服务或者设备。
ZigBee还提供了安全组件,采用了AES128的算法对网络层和应用层的数据进行加密保护,另外还规定了信任中心(trust center)的角色—全网有一个信任中心,用于管理密钥和管理设备,可以执行设置的安全策略。
ZigBee性能分析
上面对ZigBee协议栈作了一些介绍,要知道ZigBee能胜任什么工作,还需要作进一步的分析,主要有几个方面:数据速率、可靠性、时延、能耗特性、组网和路由。
ZigBee的数据速率比较低,在2.4GHz的频段也只有250kb/s,而且这只是链路上的速率,除掉帧头开销、信道竞争、应答和重传,真正能被应用所利用的速率可能不足100kb/s,并且这余下的速率也可能要被邻近多个节点和同一个节点的多个应用所瓜分。所以我们不能奢望ZigBee去做一些如传输视频之类的高难度的事情,起码目前是这样,而应该聚焦于一些低速率的应用,比如人们早就给它找好的一个应用领域—传感和控制。
至于可靠性,ZigBee有很多方面进行保证,首先是物理层采用了扩频技术,能够在一定程度上抵抗干扰,而MAC层和应用层(APS部分)有应答重传功能,另外MAC层的CSMA机制使节点发送之前先监听信道,也可以起到避开干扰的作用,网络层采用了网状网的组网方式(图4),从源节点到达目的节点可以有多条路径,路径的冗余加强了网络的健壮性,如果原先的路径出现了问题,比如受到干扰,或者其中一个中间节点出现故障,ZigBee可以进行路由修复,另选一条合适的路径来保持通信(图5、图6)。据了解,在最新的ZigBee 2007协议栈规范当中,将会引入一个新的特性——频率捷变(frequency agility),这也是ZigBee加强其可靠性的一个重要特性。这个特性大致的意思是当ZigBee网络受到外界干扰,比如Wi-Fi的干扰,无法正常工作时,整个网络可以动态的切换到另一个工作信道上。
图4 ZigBee可靠的网状网组网方式
图5 ZigBee网络受到外部干扰
图6 通过更换路径避开干扰
时延也是一个重要的考察因素。由于ZigBee采用随机接入MAC层,并且不支持时分复用的信道接入方式,因此对于一些实时的业务并不能很好支持。而且由于发送冲突和多跳,使得时延变成一个不易确定的因素。
能耗特性是ZigBee的一个技术优势。通常情况下,ZigBee节点所承载的应用数据速率都比较低,在不需要通信的时候,节点可以进入很低功耗的休眠状态,此时能耗可能只有正常工作状态的千分之一。由于一般情况下休眠的时间占总运行时间的大部分,有时可能正常工作的时间还不到1%,因此达到很高的节能效果。在这种情况下,ZigBee的网络有可能依靠普通的电池连续运转一两年。当然,ZigBee节点能够方便的在休眠状态和正常运行状态之间灵活的切换,和它底层的特性是分不开的。ZigBee从休眠状态转换到活跃状态一般只需要十几毫秒,而且由于使用直接扩频而不是跳频技术,重新接入信道的时间也很快。
最后是组网和路由特性,它们属于网络层的特性,ZigBee在这方面做得相当出色。首先是大规模的组网能力——ZigBee可以支持每个网络多达六万多个节点,相比之下,Bluetooth只支持每个网络8个节点。这是因为ZigBee的底层采用了直扩技术,如果采用非信标模式,网络可以扩展得很大,因为不需要同步。而且节点加入网络和重新加入网络的过程也很快,一般可以做到一秒以内甚至更快,而Bluetooth通常需要3s时间。在路由方面,ZigBee支持可靠性很高的网状网的路由,因此可以布设范围很广的网络,并且支持多播和广播的特性,能够给丰富的应用带来有力的支撑。
ZigBee应用浅谈
上面介绍了ZigBee的一些技术优势,也谈到了不足之处,目前有些说法把它跟其它他的无线技术,如Wi-Fi、Bluetooth、RFID、NFC等等进行类比,说某种技术不如另一种,甚至说某种技术要取代另一种,这样的说法是片面的。作为一种低速率的短距离无线通信技术,ZigBee有其自身的特点,因此应该有为它量身定做的应用,尽管在某些应用方面可能和其他技术重叠。下面就来简单看看ZigBee可能的一些应用,包括智能家庭、工业控制、自动抄表、医疗监护、传感器网络应用和电信应用。
智能家庭:家里可能都有很多电器和电子设备,如电灯、电视机、冰箱、洗衣机、电脑、空调等等,可能还有烟雾感应、报警器和摄像头等设备,以前我们最多可能就做到点对点的控制,但如果使用了ZigBee技术,可以把这些电子电器设备都联系起来,组成一个网络,甚至可以通过网关连接到Internet,这样用户就可以方便的在任何地方监控自己家里的情况,并且省却了在家里布线的烦恼。
工业控制:工厂环境当中有大量的传感器和控制器,可以利用ZigBee技术把它们连接成一个网络进行监控,加强作业管理,降低成本。
自动抄表:抄表可能是大家比较熟悉的事情,像煤气表、电表、水表等等,每个月或每个季度可能都要统计一下读数,报给煤气、电力或者供水公司,然后根据读数来收费。现在在大多数地方还是使用人工的方式来进行抄表,逐家逐户的敲门,很不方便。而ZigBee可以用于这个领域,利用传感器把表的读数转化为数字信号,通过ZigBee网络把读数直接发送到提供煤气或水电的公司。使用ZigBee进行抄表还可以带来其它好处,比如煤气或水电公司可以直接把一些信息发送给用户,或者和节能相结合,当发现能源使用过快的时候可以自动降低使用速度。
医疗监护:电子医疗监护是最近的一个研究热点。在人体身上安装很多传感器,如测量脉搏、血压,监测健康状况,还有在人体周围环境放置一些监视器和报警器,如在病房环境,这样可以随时对人的身体状况进行监测,一旦发生问题,可以及时做出反应,比如通知医院的值班人员。这些传感器、监视器和报警器,可以通过ZigBee技术组成一个监测的网络,由于是无线技术,传感器之间不需要有线连接,被监护的人也可以比较自由的行动,非常方便。
传感器网络应用:传感器网络也是最近的一个研究热点,像货物跟踪、建筑物监测、环境保护等方面都有很好的应用前景。传感器网络要求节点低成本、低功耗,并且能够自动组网、易于维护、可靠性高。ZigBee在组网和低功耗方面的优势使得它成为传感器网络应用的一个很好的技术选择。
电信应用:在2006年初的时候,意大利电信就宣布她研发了一种集成了ZigBee技术的SIM卡,并命名为“ZSIM”[5]。其实这种SIM卡只是把ZigBee集成在电信终端上的一种手段。而ZigBee联盟也在2007年4月发布新闻,说联盟的成员在开发电信相关的应用[6]。如果ZigBee技术真得可以在电信领域开展起来,那么将来用户就可以利用手机来进行移动支付,并且在热点地区可以获得一些感兴趣的信息,如新闻、折扣信息,用户也可以通过定位服务获知自己的位置。虽然现在的GPS定位服务已经做得很好,但却很难支持室内的定位,而ZigBee的定位功能正好弥补这一缺陷。
结语
ZigBee为我们描绘了一个美好的未来,或许这些场景里我们不会太遥远了,让我们拭目以待,这只蜜蜂将会给我们的工作和生活带来怎样的变化。
参考文献:
1 Bob Heile, “Wireless Sensors and Control Networks: Enabling New Opportunities” 2 Ian Marsden, “Network Layer Overview”
3 ZigBee Alliance, “ZigBee Specification”
4 ZigBee Alliance, “ZigBee Unveils Comprehensive New Features”
5 Maura, Turolla, Elisa Alessio, “ZigBee Value for a Telecom Operator”
6 ZigBee Alliance, “ZigBee Alliance Members Connect With Telecom Market”