ZigBee介绍
ZigBee网络
什么是ZigBee技术
Zigbee在中国被译为"紫蜂",是一种基于IEEE802.15.4协议的最近发展起来的一种短距离无线通信技术,功耗低,被业界认为是最有可能应用在工控场合的无线方式。Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个Zigbee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。
ZigBee版本
2002年10月 ZigBeeAlliance成立。
2004年11月 ZigBeeV1.0诞生,它是zigbee的第一个规范,但由于推出仓促,存在一些错误。
2005年06月 zigbeeV1.0正式发布。
2006年11月 推出ZigBee2006,比较完善。
2007年底 ZigBeePRO推出。
ZigBee技术特点
ZigBee是一种无线连接,可工作在2.4GHz(全球流行)、868MHz(欧洲流行)和915MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以继续增加。作为一种无线通信技术,ZigBee具有如下特点:
低功耗:由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了休眠模式,功耗低,因此ZigBee设备非常省电。据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其它无线设备望尘莫及的。
成本低:ZigBee模块的初始成本在6美元左右,估计很快就能降到1.5—2.5美元,并且ZigBee协议是免专利费的。低成本对于ZigBee也是一个关键的因素。
低复杂性:zigbee协议的大小一般在4-32KB,而蓝牙和wi-fi一般都超过100KB。
时延短:通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。因此ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)应用。
网络容量大:一个星型结构的Zigbee网络最多可以容纳254个从设备和一个主设备,一个区域内可以同时存在最多100个ZigBee网络,而且网络组成灵活。并且在一个网络中最多可以有65000个节点连接。
网络建立:zigbee能够自动建立其所想要的网络。
可靠:采取了碰撞避免策略,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。MAC层采用了完全确认的数据传输模式,每个发送的数据包都必须等待接收方的确认信息。如果传输过程中出现问题可以进行重发。
安全:ZigBee提供了基于循环沉余校验(CRC)的数据包完整性检查功能,支持鉴权和认证,采用了AES-128的加密算法,各个应用可以灵活确定其安全属性。
ZigBee组网
ZigBee标准网络定义了三种类型(ZigBeedevice type),对这三种角色的行为的说明,是了解整个协议栈运作的很好切入点。
角色介绍
在zigbee网络中,不同的节点有不同的分工,根据其工作特性,可以分为以下几类:
协调者(Coordinator):它是一个FFD节点,负责整个网络的管理工作。每个网络中有只有一个协调者。它具有以下几个功能:
选择所用网络的信道;
从协调者开始,启动网络;
分派网络地址;
允许其他设备加入或者退出其网络;
保存邻接表和路由信息;
传输应用数据包;
路由节点(rooter):它是一个FFD节点,一般被应用于树形或者Mesh拓扑结构中扩大网络覆盖量。它用于去找到从源点到终点的一条最佳路径来传输信息。路由节点除了不能建立网络之外,和协调者相比较类似。
终端设备(Enddivice):它是一个RFD节点,被用于连接到路由节点或者协调者。终端节点完成以下2个任务:
加入或者离开网络;
传输应用数据包;
Zigbee信任中心(ZigBeetrust centre):它提供安全管理、安全密钥分配和设备认证。
网关(ZigbeeGateway):连接zigbee网络和其他网络,例如局域网。
网络拓扑
ZigBee网络有以下三种组网方式,星型网、簇型网和网状网。其中红色和蓝色的节点(路由节点和协调员节点)才具有转发功能,由他们构建网络框架。
Zigbee协议栈
ZigBee协议栈基于标准的OSI七层模型,但只是在相关的范围来定义一些相应层来完成特定的任务。IEEE802.15.4—2003标准定义了下面的两个层:物理层(PHY层)和媒介层(MAC层)。ZigBee联盟在此基础上建立了网络层(NWK层)以及应用层(APL层)的框架(framework)。APL层又包括应用支持子层(ApplicationSupport Sub—layer,APS)、ZigBee的设备对象(ZigBeeDevice 0bjects。ZD0)以及制造商定义的应用对象。
Zigbee与其他无线网络标准的比较
目前,市场上无线网络技术除了Zigbee外,主要有Wi-Fi(无线保真)、Bluetooth(蓝牙)和NFC(近场通信)等。一些大公司为开拓市场和应用领域,也在积极研究和制定一些新的无线组网通信技术标准,如UWB(超宽带)、Z-Wave等。这些技术在很大程度上是互补的,其不同之处或基于传输速度、距离、耗电量的特殊需要,或着眼于功能的扩充性,或符合某些单一应用场景的需要,或满足竞争技术的差异化等。
Bluetooth和Wi-Fi一样,同属于在办公室和家庭中使用的短距离无线通信技术。它们拥有非常大的无线技术容量,但并不像ZigBee一样是以监控为明确目标的无线传感器网络应用标准。Bluetooth技术已高度成熟,具有多种规范,并能提供PANad-hoc(非网状结构)联网能力,现已广泛应用于局域网络中各类数据及语音设备,如PC、拨号网络、笔记本电脑、打印机、传真机、数码相机、移动电话和高品质耳机等。Wi-Fi技术使用开放的2.4GHz附近的频段,最大覆盖范围为100m。一般来说,带有这个标志的产品表明可以利用它们方便地组建一个无线局域网。Wi-Fi目前有3个使用标准:IEEE802.11a/b/g,最高数传率为54Mb/s。尚在孕育并值得期待的802.11n标准数传率将达到150~600Mb/s。但是Wi-Fi收发器的功耗较大,集成到Mesh网络比较困难,且价格也较高。
UWB原属军方专用技术,2002年2月美国联邦通信委员会正式将其解禁。UWB一直被看作是Bluetooth技术的替代品,其数传率达到100~480Mb/s,但覆盖距离很短不超过10m。UWB已有芯片和模组产品,但没有网状网组网能力。
上述标准中最具可比性的是Bluetooth和ZigBee技术。ZigBee源于Bluetooth,但比后者更简单,速率更慢,功率及费用也更低,且大多数时间处于睡眠模式,更加适用于那些不需要实时传输或连续更新的场合,如工业控制和监控领域。而且ZigBee是当前唯一面向无线传感器网络的技术标准,其网状网组网能力使其应用范围可伸延至数百、甚至数千米的广泛区域,而Bluetooth则只为10~100m范围内的短程网络而设。就制造成本而言,ZigBee芯片现在远比Bluetooth芯片便宜。
相对于现有的各种无线通信技术,ZigBee将是功耗和成本最低的技术,并且能够用于Bluetooth、Wi-Fi、UWB、GPRS以及其他无线技术不能覆盖的大部分应用领域。生产商最终可以利用ZigBee这个标准化无线网络平台,设计出简单、可靠、便宜又节能的各种电子产品。
协议分析
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。因此我们完全可以把它归为低速率的短距离无线通信技术。
物理层的上面是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所制定。
这些部分当中最下面的是网络层。和其他技术一样,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的干扰,无法正常工作时,整个网络可以动态的切换到另一个工作信道上。
时延也是一个重要的考察因素。由于ZigBee采用随机接入MAC层,并且不支持时分复用的信道接入方式,因此对于一些实时的业务并不能很好支持。而且由于发送冲突和多跳,使得时延变成一个不易确定的因素。能耗特性是ZigBee的一个技术优势。通常情况下,ZigBee节点所承载的应用数据速率都比较低,在不需要通信的时候,节点可以进入很低功耗的休眠状态,此时能耗可能只有正常工作状态的千分之一。由于一般情况下休眠的时间占总运行时间的大部分,有时可能正常工作的时间还不到1%,因此达到很高的节能效果。在这种情况下,ZigBee的网络有可能依靠普通的电池连续运转一两年。当然,ZigBee节点能够方便的在休眠状态和正常运行状态之间灵活的切换,和它底层的特性是分不开的。ZigBee从休眠状态转换到活跃状态一般只需要十几毫秒,而且由于使用直接扩频而不是跳频技术,重新接入信道的时间也很快。
最后是组网和路由特性,它们属于网络层的特性,ZigBee在这方面做得相当出色。首先是大规模的组网能力——ZigBee可以支持每个网络多达六万多个节点,相比之下,Bluetooth只支持每个网络8个节点。这是因为ZigBee的底层采用了直扩技术,如果采用非信标模式,网络可以扩展得很大,因为不需要同步。而且节点加入网络和重新加入网络的过程也很快,一般可以做到一秒以内甚至更快,而Bluetooth通常需要3s时间。在路由方面,ZigBee支持可靠性很高的网状网的路由,因此可以布设范围很广的网络,并且支持多播和广播的特性,能够给丰富的应用带来有力的支撑。
ZigBee技术发展趋势
ZigBee技术将朝着开发SoC(片上系统)、更多规范、与IPv6结合、更廉价、更省电、更快速等方向发展。
ZigBee应用产品市场的培育和发展也是ZigBee技术发展重点方向。ZigBee产品应用在国际市场上将会有快速成长的机会,成长的动力来自于Zigbee联盟和业界厂商的大力推广,更完善的Zigbee标准制定、Zigbee芯片成本的不断下降以及与其他网络技术的互相结合并产生互补优势。
当然,在中国市场,Zigbee产品的应用爆发还需要更长一段时间,中国的无线网络市场还未成熟,本土厂商的参与度还非常有限,对中国市场来说,无线自动抄表系统、车用无线领域等工业级应用和高端市场将或是市场主要发力点,而中国家用无线自动控制系统、便携设备市场还处于培育阶段,Zigbee要在其中扮演重要角色尚待时日。
综上所述,作为新兴的短距离无线通信技术,Zigbee产品将以各种各样的方式快步向我们走来,成为人类工作和生活中不可或缺的一部分。
ZigBee介绍的更多相关文章
- zigbee学习之路(一):zigbee介绍
一.前言 大家好,我是一名在校的大学生,最近对zigbee非常感兴趣,于是自己从网上买了一款秉火cc2530的zigbee开发板,想通过这个平台来和大家分享自己学习和研究的经历,下面就来简单的介绍下z ...
- 戳破ZigBee技术智能家居的谎言!
戳破ZigBee技术智能家居的谎言 一.ZigBee介绍 简介 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷.对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂, ...
- zigbee学习之路(十二):zigbee协议原理介绍
一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...
- [ZigBee] 15、Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子(长文,OSAL及Zigbee入门知识)
1.Zigbee协议栈简介 协议是一系列的通信标准,通信双方需要按照这一标准进行正常的数据发射和接收.协议栈是协议的具体实现形式,通俗讲协议栈就是协议和用户之间的一个接口,开发人员通过使用协议栈来使用 ...
- ZigBee协议基本介绍
ZigBee是一种短距离(10~100米).低速率(20~250Kbps).底成本.低功耗的无线网络技术,主要用于近离无线通讯.能够做到在数千个微小的传感器之间相互协调实现通讯,这些传感器只需要很少的 ...
- Zigbee安全入门(一)—— 技术介绍和安全策略
么是Zigbee? Zigbee说白了就是类似wifi.蓝牙的一种交换数据的方式,学术点说就是低成本.用于低功耗嵌入式设备(无线电系统),用以促进机器与机器之间高效且有效通信(通常相距10-100米) ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
- zigbee学习之路(十四):基于协议栈的无线数据传输
一.前言 上次实验,我们介绍了zigbee原理的应用与使用,进行了基于zigbee的串口发送协议,但是上个实验并没有实现数据的收发.在这个实验中,我们要进行zigbee的接受和发送实验. 二.实验功能 ...
随机推荐
- Spring 中使用Properties文件
Spring提供了加载Properties文件的工具类:org.springframework.beans.factory.config.PropertyPlaceholderConfigurer. ...
- Beta阶段——4
一.提供当天站立式会议照片一张: 二. 每个人的工作 (有work item 的ID) (1) 昨天已完成的工作: 完善了用户管理模式的功能 (2) 今天计划完成的工作: 对用户功能的添加. (3) ...
- 基于JQuery的前端form表单操作
Jquery的前端表单操作: jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...
- BZOJ1226 SDOI2009学校食堂(状压dp)
由于Bi<=7,考虑状压. 如果考虑前i个位置的话,状态里需要压入前7个人后7个人,显然是跑不动的. 那么改成考虑前i个人.于是设f[i][j][k]表示前i个人都已吃完饭,i+1后面7个人的吃 ...
- Ubantu下配置Sublime Text3---python环境的搭建
因为学习机器学习算法的原因,买的参考书籍很多都是python语言进行开发的,因此也想着在Linux系统下配置python的环境.Sublime是一款非常流行的编辑器,可以添加很多小巧有用的插件,同时也 ...
- Wow! Such Doge! HDU - 4847(虽然是道水题 但很有必要记一下)
就是求出现了多少次doge 不区分大小写 巧用字符串函数 isalpha 判断是否是字母 tolower 转换为小写字母 toupper 转换为大写字母 strncmp字符串比较函数 能限制比较的 ...
- Girls' research HDU - 3294(马拉车水题)
题意: 求最长回文串 长度要大于等于2 且输出起点和终点 输出回文串字符 这个字符还是要以给出的字符为起点a 输出 解析: 分析一下s_new串就好了 #include <iostream& ...
- 在 Linux服务器中安装 Python 3.6
一.服务器环境配置 在 CentOS 7 中安装 Python 之前,请确保系统中已经有了所有必要的开发依赖: # yum -y groupinstall development # yum -y i ...
- [SDOI2013]项链
description luogu 最近,铭铭迷恋上了一种项链.与其他珍珠项链基本上相同,不过这种项链的珠子却与众不同,是正三菱柱的泰山石雕刻而成的. 三菱柱的侧面是正方形构成的,上面刻有数字. 能够 ...
- Mysql向数据库插入数据时,判断是否存在,若不存在就插入数据
表中一定要有主键 : select :id,此处的id位置处必须是主键 insert into table_name(id, name, password) select :id, :name, : ...