【Zigbee 科普系列】 - 2 网络模型
本文内容:
通过本文学习,可以了解到 Zigbee 的网络的概念,不同种类的设备类型,以及 Zigbee 网络中是如何传递消息的。
Zigbee 网络拓扑
先看一下大范围的网络拓扑
Zigbee 本地网络(以下简称 Zigbee 网络)通过网关与互联网建立联系,从而使 Zigbee 网络中的设备能够被远程访问,网关与互联网通信一般是通过 WIFI、以太网、蜂窝网等。
Zigbee 网络是网状网络(Mesh),理论上一个 Zigbee 网络最大支持 60000 多个节点(设备),因此它的物理覆盖范围并不因单个设备的射频性能决定。
Zigbee 设备类型
一个 Zigbee 网络中可以有如下几种设备类型:
协调器: 即网关,协调器负责管理整个 Zigbee 本地网络,是网络中的第一个节点,新设备入网需要经过协调器的允许,并通过协调器分发网络密钥和网络地址。
路由设备: 路由设备是 Zigbee 网络中最典型的设备,它之所有叫 路由设备 是因为它具备消息中继能力,它的无线接收始终是开启的,随时能参与网络中消息的传递。这样的设备通常是常供电设备,例如灯泡,插座,墙壁开关等。
终端设备: 通常是指低功耗设备,例如电池供电的温湿度计。这种设备平时处于睡眠状态,不参与网络中的消息中继。睡眠状态下它的无线接收是关闭的,只有特定时候会醒过来(例如定时唤醒或用户操作唤醒)。它会与一个路由设备或者协调器建立父子关系,网络中其他设备发送给它的消息会被缓存在其父设备中,待唤醒后向父设备获取缓存的消息。
注意:网关也支持中继能力
Zigbee 网络通信
信道 (Channel)
Zigbee 支持两个工作频段,即 2.4 GHz 频段和 868/915 MHz 频段。在 IEEE 802.15.4 中,总共分配了 27 个具有 3 种速率的信道:在 2.4GHz 频段有 16 个速率为 250kb/s 的信道,在 915MHz 频段有 10 个 40kb/s 的信道,在 868MHz 频段有 1 个 20kb/s 的信道。
这些信道的中心频率按如下定义(k 为信道数):
Fc = 868.3MHz,(k=0)
Fc = 906MHz+2(k-1)MHz,(k=1,2……10)
Fc = 2405MHz+5(k-11)MHz,(k=11,12……26)
其中 2.4GHz 最为常见,覆盖信道 11 ~ 26, Zigbee 网络中的第一个设备(通常是网关)负责选取一个信道,信道选取的基本原则是进行一次全信道的能量扫描,并选取无线干扰最小的一个。
网络标识(PanID)
Zigbee 网络第一个设备选择好信道之后,就可以创建一个 Zigbee 网络了, Zigbee 网络有其唯一的网络标识符,称作 PanID (两字节)
设备地址(Device address )
Zigbee 网络中每一个设备都有其在本网络中唯一的设备地址(Device address 两字节),通常网关设备给自己分配的地址是 0x0000。 当有新的设备加入网络后,由网关设备负责分配一个随机地址。Device address 用于后续的无线通信,作为消息的起始地址或目的地址。
群组地址 (Group address)
通过向指定设备发送添加群组指令,可以将多个设备可以加入到一个群组中,添加到同一个群组中的设备同时会拥有一个群组地址(也是两字节)。也可以向群组中的设备发送移除群组指令,使一个设备离开群组。
广播地址
广播地址通常指 0xFFFF, 向这个地址发送消息,则整个 Zigbee 网络中的设备都能收到
这里不再介绍 0xFFFE, 0xFFFC 等广播地址,如有兴趣可自行查阅
网络通信
根据消息接收的目的地址不同,Zigbee 消息可分为单播,组播,广播:
单播: 向 Zigbee 网络中的某个设备发送消息,例如一个灯具的设备地址是 0x5566,网关(0x0000)向该地址发送一条单播指令 on/off ,使这个灯具开或关,网关在自身射频信号范围内可能无法到达设备 0x5566, 根据Zigbee 路由算法选择先发送给 0x1122 设备,0x1122 设备收到消息后发现这个消息是要发送给0x5566的且刚好在射频信号范围内,于是将消息直接转发给了0x5566. 0x5566 收到消息后进行开或关操作。
组播: 向一个群组发送消息,目的地址是 组地址 ,例如一个群组地址是 0x1234 , 整个群组里面可能全都是灯具,当网关向群组 0x1234 发送 on/off 指令后,整个群组内所有的灯具都会响应指令。
广播: 向 Zigbee 本地网络全网发送消息,所有设备都能收到这个消息。