zigbee如何自组网络_ZigBee自组网地址分配与路由协议技术详解

1.ZigBee简介

ZigBee是一种基于IEEE802.15.4标准的低功耗局域网协议。按照国际标准,ZigBee技术是一种短距离、低功耗的无线通信技术。

ZigBee协议自下而上由物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)和应用层(APL)组成。物理层(PHY)和媒体访问控制层(MAC)符合IEEE802.15.4标准的规定。

2.ZigBee设备类型

ZigBee网络包括:

协调员(ZC)

路由器(ZR)

终端设备

2.1协调员

ZigBee网络中协调器的主要功能是建立和维护网络。存储网络信息。它是整个网络的认证中心。

2.2路由器

ZigBee网络中路由器的主要功能是网络的扩展功能。障碍物周围的动态路由为远程节点和中心节点提供信息通道。

2.3终端设备

ZigBee网络中的终端设备是只具有接收信息和发送信息的简单功能的ZigBee设备。它只能在ZigBee网络的末端,只能与其父节点通信,可以支持低功耗功能,没有路由能力和网络维护能力。

3.ZigBee网络结构

ZigBee网络可以分为星形网络、树形网络和网状网络。

(特别说明:星型和树型网络适用于点多、距离相对较近的应用。)

3.1星形网络

ZigBee星形网络拓扑如下图所示。星型拓扑是最简单的拓扑形式,它包括一个协调器节点和一系列终端设备节点。每个终端设备节点只能与协调器节点通信。如果两个终端设备节点之间需要通信,则必须通过协调器节点转发信息。

这种拓扑的缺点是节点之间只有一条数据路由路径。协调器可能成为整个网络的瓶颈。zigbee的网络层协议不需要实现星型网络拓扑,因为IEEE 802.15.4的协议层已经实现了星型拓扑,但这需要开发者在应用层做更多的工作,包括自己处理信息转发。

ZigBee星形网络拓扑

3.2树形网络

ZigBee树状网络拓扑如下图所示。树形拓扑包括一个协调器和一系列路由器和终端设备节点。协调器连接一系列路由器和终端设备,他的子节点的路由器也可以连接一系列路由器和终端设备。这样可以重复多个层次。

请注意:

协调器和路由器节点可以包含它们自己的子节点。

终端设备不能有自己的子节点。

具有相同父节点的节点称为兄弟节点。

具有相同祖父节点的节点称为堂兄节点。

每个节点只能与其父节点和子节点通信。

如果数据需要从一个节点发送到另一个节点,信息将沿着树路径向上传递到最近的祖先节点,然后向下传递到目标节点。

这种拓扑结构的缺点是只有一条信息路径。另外,信息的路由由协议栈层处理,整个路由过程对应用层完全透明。

ZigBee树形网络拓扑

3.3网状网络

ZigBee网状网络拓扑如下图所示。网状拓扑由一个协调器、一系列路由器和终端设备组成。这个网络拓扑与树拓扑相同;请参考上面提到的树形网络拓扑。而网状网络拓扑具有更灵活的信息路由规则,路由节点在可能的情况下可以直接通信。这种路由机制使得信息的交流更加高效,它意味着一旦一条路由路径出现问题,信息可以自动沿着其他路由路径传输。

通常网络层会提供相应的路由探索功能来支持网状网络的实现,使得网络层能够找到信息传输的最优路径。需要注意的是,上面提到的所有特性都是由网络层实现的,应用层不需要任何参与。

网状网络拓扑的网络功能强大,网络可以“多跳”通信;拓扑也可以形成极其复杂的网络;网络还具有自组织、自愈的功能;

ZigBee网状网络拓扑

4.ZigBee地址分配机制

在ZigBee 2007协议中,网络地址分配机制是一种树形网络分配机制,主要实现如下:

假设子设备的最大数量为nwkMaxChildren(Cm),网络的最大深度为nwkMaxDepth(Lm),父节点作为其子设备使用的路由设备的最大数量为nwkMaxRouters(Rm),自身网络的深度为(d),则可以计算出函数Cskip(d)m,即在给定的网络深度和路由子设备的数量下,祝福设备可以分配的子段地址的数量。

如果一个设备Cskip(d)的值为0,则没有路由能力,该设备为终端设备;

如果设备Cskip(d)的值大于0,则它具有路由功能,并且该设备是路由器设备。

网络中分配的地址是(n是当前分配的节点数)

终端:An=Ak 1 Cskip(d)*(n-1)

路由器:An=Ak Cskip(d)* Rm *(n-1);

下一个路由器设备的分配地址是先前分配的路由器地址加上Cskip偏移量。

CurNodeInfo。NextRouterAddr=CurNodeInfo。Cskip

要分配的下一个终端设备地址是先前已知的分配地址1。

CurNodeInfo。NextEndDevAddr

5.ZigBee树路由机制

假设一个路由器要向目的地址d发送一个数据包,这个路由器的网络地址的网络深度为a和d,它会先判断目的地址设备是否是它的子设备,需要满足以下要求:

Cskip(d-1)

如果目标设备是其子设备,则下一跳地址是

否则,路由器会将数据包发送到其父节点。