无线短距离技术之ZigBee

物联网的江湖从未沉寂,通常是你方唱罢我登场,RFID、Bluetooth、NFC、ZigBee、LoRa、NB-IoT等群英并起,开山立派,逐鹿争雄,正所谓“江山如画,一时多少豪杰”。今天我们聊聊ZigBee这一短距离无线通信技术,也即传说中的“紫蜂”协议。

等等,ZigBee?紫蜂?是不是跟蜜蜂有什么关系呢?没错,您还真猜对了。蜜蜂(Bee)在发现花粉位置时,会通过翅膀抖动或腹部摆动这样的“舞蹈”(Zigzag)来传递花粉所在方位和远近信息,它的同伴看到舞蹈后,也会跟着舞起来,将消息继续传递,依靠这样的行为构成群体通信网络。ZigBee的发明者就是借鉴蜜蜂的这种行为,取“Zigzag”和“Bee”的合成词来表示ZigBee网络具有小巧简洁的无线传感功能。是不是很生动形象呢?

那么,我们就来具体看看,ZigBee是如何效仿蜜蜂的群体通信的。首先,ZigBee定义了三种设备类型:协调器(Coordinator)、路由器(Router)和端节点(End device)。

协调器是网络的核心节点,也是网络各节点信息的汇聚点,它负责组建、维护和管理网络。简单而言,协调器组建网络时要干两件事情:选择信道、设定网络ID。选择信道,是为了不与其他局域网产生干扰。以2.4GHz-2.4835GHz频段为例,总共划分了16个信道,不同信道之间有5MHz的频率隔离。因此,选择了信道,就能在物理上区分出不同的网络。网络ID,也叫PAN ID,主要用于标识当前的局域网。这很好理解,就像我们团建时,总要给自己的队伍起个响亮的名字一样。PAN ID可以通过侦听其他网络的ID然后选择一个不会冲突的ID的方式来获取,也可以人为的指定扫描的信道后,来确定不和其他网络冲突的PAN ID。

路由器的主要功能是允许端节点设备接入网络,以及多跳路由,并且它自身也可以作为端节点应用,进行数据采集。

端节点常与被监控的对象连接在一起,进行数据的采集,但它没有路由的功能,只能直接与协调器相连,或者经由路由器与协调器节点相连。

有小伙伴说了,既然路由器也可以进行数据采集,为什么还要定义端节点?这是典型的“不当家不知柴米贵”了。要知道,路由器既要当端节点的入网介绍人,又要传话(多跳路由),有时还要盯着监控对象,是非常耗电的,并且成本上也有要求。既然这样,何不定义端节点,让它大部分时间休眠,只在有需要的时候才发送数据,这样低成本、低功耗,何乐而不为呢?因此,从这个意义上而言,路由器反而不是必须的。一张ZigBee网络,只需要协调器和端节点的存在就能自组网了(注意:一个ZigBee网络里有且只能有一个协调器)。

定义了设备类型,接下来该组网了。ZigBee支持多种网络拓扑,包括星型、树型和网状结构。

星型结构是最简单的一种拓扑形式,它可以没有路由器节点,就包含一个协调器节点和一系列终端节点。但是,星型结构有一个缺点,当协调器节点故障了,将导致整个网络瘫痪。

树型结构包含协调器节点、路由器节点和终端节点,可以实现网络范围内的多跳信息服务,具有一定的稳定性和可拓展性,但也跟星型结构一样,一个节点中断或者故障,将会导致部分节点脱离网络。

具体如何组网呢?首先是网络初始化,大致流程是:确定网络协调器-信道扫描-设置网络ID。在组建网络前,需要判断本节点有没有跟其他网络连接,如果节点已经跟其他网络连接了,那么这个节点只能作为该网络的子节点。因为一个ZigBee网络中有且仅有一个ZigBee协调器。一旦网络建立好了,即使节点具有协调器的功能,也只能退化为路由器的角色。如果节点不存在于其他网络,那么恭喜了,节点可以成为“老大”,也就是作为协调器进行组网了。那么,怎么判断节点是否在其他网络里或者网络里是否已经存在协调器呢?主动扫描。节点发送一个信标请求命令,然后设置一个扫描期限,如果在扫描期限内都没有检测到信标,那么就认为没有协调器,可以建立自己的ZigBee网络。协调器确认可以组网后,进行信道扫描流程。首先对指定的信道或者默认的信道进行能量检测,以避免可能的干扰。以递增的方式对所测量的能量值进行信道排序,抛弃那么些能量值超出了可允许能量水平的信道,标注出可用信道。接着进行主动扫描,搜索节点通信半径内的网络信息。这些信息以信标帧的形式在网络中广播,节点通过主动信道扫描方式获得这些信标帧,然后根据这些信息,找到一个最好的、相对安静的信道,该信道应存在最少的ZigBee网络,最好是没有ZigBee设备。找到合适信道后,为网络选定PAN ID。

节点通过协调器加入网络。当节点协调器确定之后,节点首先需要和协调器建立连接加入网络。为了建立连接,节点需要向协调器提出请求,协调器接收到节点的连接请求后根据情况决定是否允许其连接,然后对请求连接的节点做出响应。如果允其加入,则协调器会给节点分配一个16位的短地址(由此可以推算出,一个ZigBee网络的理论最大节点数为2的16次方,也即65536个),并产生包含新地址和连接成功状态的连接响应命令,则此节点将成功的和协调器建立连接并可以开始通信。

完成组网之后,ZigBee网络就可以实现通信了。我们主要关注几个问题。第一,终端节点如何给协调器发送数据。前面说过,节点入网后会获得协调器给它分配的16位网络短地址,同时它也能获知协调器的短地址(默认0x0000)。这样终端节点就能向目标地址的协调器发送数据了。如果协调器与终端节点之间存在多跳,则终端节点的直接上级路由器会转发这条消息,按需逐跳转发,直到协调器收到并发送确认。第二,所有的节点都向协调器发送数据,怎么解决冲突。ZigBee采用了CSMA/CA(载波侦听多路访问/冲突避免)的机制。节点发送数据时,首先侦听信道是否空闲,如空闲,则等待一段随机时间后,再发出数据。简单来说,就是让节点主动避免冲突,“先听话,再说话”。

了解了ZigBee的运行机制,我们就可以进一步小结ZigBee的特点了。

  • ž 低功耗:在低耗电待机模式下,2节5号干电池可支持ZigBee的1个节点工作数月,这是ZigBee的突出优势。相比之下,Bluetooth可以工作数周、WiFi可以工作数小时。
  • ž 低速率:ZigBee工作在2.4GHz频率时,数据传输数量最高可以达到250kbps,速率不高,基本满足一般场景下低速率传输数据的应用需求。
  • ž 低成本:ZigBee的底层硬件成本低,而上层可以通过软件实现(ZigBee的MAC层和PHY层采用的是IEEE 802.15.4标准)。
  • ž 短距离:ZigBee相邻两个节点间的传输距离一般介于10~100m之间,在增加RF发射功率后,亦可增加到1-3km。如果通过路由和节点间通信的接力,传输距离将可以更远。
  • ž 短时延:ZigBee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比之下,Bluetooth需要3-10s、WiFi需要3s。
  • ž 免授权频段:ZigBee使用的是开放频段,不用经过授权。当然,这是有利有弊的,开放频段也容易受干扰,且没有排他性。
  • ž 网络自愈:ZigBee考虑了网络中的节点增减变化,可以根据实际情况调整网络的拓扑模型。只要ZigBee节点在同一个通信范围内,它们就可以通过彼此自动寻找,从而形成一个互联互通的ZigBee网络。ZigBee节点还可以通过重新寻找通信对象,确定彼此间的联络,对原有网络进行刷新。也就是说,ZigBee可以有多个灵活的通信路由,这样在实际工业现场,如果由于某些原因,某一个路由发生故障中断了,或者繁忙不能及时进行传送,可以重新发起路由寻找过程,通过对其他节点进行探测,确定另一个畅通的路由进行通信,从而保证数据传输的可靠。

回到开篇,我们提到,ZigBee是一种无线短距离技术。那它是不是就能用于短距离覆盖呢?其实,ZigBee通过提高每个节点的发射功率和接收灵敏度以及增加节点数量就可以扩展网络。另外,ZigBee还可以和长距离技术结合应用,实现广域覆盖的。比如,ZigBee和GPRS结合的无线数据传输网络,还可以和LTE结合,未来还可以和5G技术结合。

但是,理想是丰满的,现实是骨感的。首先,ZigBee节点随着发射功率的增加,耗电量也要增大,从而失去它本身电能消耗很低的优势;而且,ZigBee工作的2.4GHz是免费频段,国家对它的使用功率是有相应的限制,ZigBee不能超过最大功率的限制。其次,随着节点的增多,会加重无线网络管理的负担。ZigBee网络每次动态组网,都需要扫描各种可能的路径,占用大量的带宽资源,并增加了数据传输的时延,带来网络管理的复杂度提高。

所以,ZigBee主要还是适用于符合下列条件之一的短距离通信。

  • ž 需要数据采集或监控的网点多;
  • ž 要求传输的数据量不大,可靠性强,安全性高;
  • ž 要求设备体积小,成本低;
  • ž 可以用电池供电;
  • ž 地形复杂,监测点多,需要较大的网络覆盖;
  • ž 对于那些现有的移动网络的盲区进行覆盖;
  • ž 已经使用了现存移动网络进行低数据量传输的遥测遥控系统。

归纳起来,ZigBee的应用范围大致是家庭自动化、工业自动化、农业自动化、智慧交通、医疗护理、物流管理等涉及小范围传感器的无线数据采集和监控、遥测遥控等多个场景。具体,比如可以应用于照明控制、门禁控制、家居遥控、农业传感器和自动化控制装置、工业传感器和自动化控制装置、医学领域的侦听和诊断、局部区域内移动目标的定位等。

转载于:无线短距离技术之ZigBee - 知乎

猜你喜欢

转载自blog.csdn.net/weixin_42602900/article/details/126952572