1. ZigBee简介

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

ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层(PHY)和媒体访问控制层(MAC)遵循IEEE802.15.4标准的规定。

成都亿佰特电子科技有限公司生产设计的E18系列ZigBee组网模块采用TI CC2530 ZigBee网络协议栈Zstack 2.5.1a协议栈进行ZigBee网络开发。

E18系列产品如下图所示:

(如需了解详情,请进入成都亿佰特电子科技有限公司官网www.cdebyte.com)

2. ZigBee设备类型

ZigBee网络包含:

  • 协调器(ZC)

  • 路由器(ZR)

  • 终端设备(ZED)

2.1 协调器

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

2.2 路由器

ZigBee网络中路由器主要作用是网络的扩展功能。在障碍周围动态路由,为远端节点与中心节点的提供信息通道。

2.3 终端设备

ZigBee网络中终端设备是一个仅接收信息和发送信息的简易功能的ZigBee设备。它只能处于ZigBee网络的末端,并且只能与其父节点进行通信,可支持低功耗功能,没有路由能力和网络维护能力。

3. ZigBee网络结构

ZigBee网络可分为:星型网,树状网,网状网(MESH网)。

(特别提示:星型和树状网络适合点多多点、距离相对较近的应用)

3.1星型网

ZigBee星型网络拓扑如下图所示。星形拓扑是最简单的一种拓扑形式,他包含一个Coordinator(协调者) 节点和一系列的 End Device(终端)节点。每一个End Device 节点只能和 Coordinator 节点进行通讯。如果需要在两个 End Device 节点之间进行通讯必须通过Coordinator 节点进行信息的转发。

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

ZigBee星型网络拓扑

3.2 树状网

ZigBee树状网络拓扑如下图所示。树状拓扑包括一个Coordinator(协调者)以及一系列的 Router(路由器) 和 End Device(终端)节点。Coordinator 连接一系列的 Router 和 End Device, 他的子节点的 Router也可以连接一系列的 Router 和End Device. 这样可以重复多个层级。

需要注意的是:

  • Coordinator 和 Router节点可以包含自己的子节点。

  • End Device 不能有自己的子节点。

  • 有同一个父节点的节点之间称为兄弟节点

  • 有同一个祖父节点的节点之间称为堂兄弟节点

  • 每一个节点都只能和他的父节点和子节点之间通讯。

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

  这种拓扑方式的缺点就是信息只有唯一的路由通道。另外信息的路由是由协议栈层处理的,整个的路由过程对于应用层是完全透明的

ZigBee树状网络拓扑

3.3网状网

ZigBee网状网拓扑如下图所示。网状拓扑包含一个Coordinator和一系列的Router 和End Device。这种网络拓扑形式和树状拓扑相同;请参考上面所提到的树状网络拓扑。但是,网状网络拓扑具有更加灵活的信息路由规则,在可能的情况下,路由节点之间可以直接的通讯。这种路由机制使得信息的通讯变得更有效率,而且意味这一旦一个路由路径出现了问题,信息可以自动的沿着其他的路由路径进行传输。

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

网状网络拓扑结构的网络具有强大的功能,网络可以通过“多级跳”的方式来通信;该拓扑结构还可以组成极为复杂的网络;网络还具备自组织、自愈功能;

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。它首先会判断目标地址设备是否是它的子设备,应当满足:

A < D < A+Cskip(d-1)

如果目标设备是它的子设备,下一跳地址就是

否则,路由器将此数据包发向它的父节点。

ZigBee自组网地址分配与路由协议概述的更多相关文章

  1. NB-IOT/LoRa/Zigbee无线组网方案对比

    物联网设备节点组网存在2种组网方式, 无线组网和有线组网. 无线组网我们常见到的有Zigbee,LoRa, NB-IOT等,其中Lora/NB-IOT属于LPWAN技术,LPWAN技术有覆盖广.连接多 ...

  2. zigbee智能家居基础扫盲

    zigbee Zigbee是基于IEEE802.15.4标准的低功耗个域网协议.根据这个协议规定的技术是一种短距离.低功耗的无线通信技术.这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和&qu ...

  3. 【Zigbee技术入门教程-号外】基于Z-Stack协议栈的抢答系统

    [Zigbee技术入门教程-号外]基于Z-Stack协议栈的抢答系统 广东职业技术学院  欧浩源 一.引言    2017年全国职业院校技能大赛"物联网技术应用"赛项中任务三题2的 ...

  4. zigbee CC2530首选方案模组:TZU06A1

    模块特点 微型24-pin 邮票式SMT 封装 提供U.FL 接口,用于外接SMA 天线 小尺寸封装:16mm*20mm*3.7mm 通过欧盟CE0168.欧盟ROHS 认证 基于8051 单片机架构 ...

  5. ZigBee 协议规范

      ZigBee协议栈体系结构由应用层.应用汇聚层. 网络层.数据链路层和物理层组成,如下图所示:   图1 ZigBee 协议栈体系的层次结构      应用层定义了各种类型的应用业务,是协议栈的最 ...

  6. 【Zigbee技术入门教程-01】Zigbee无线组网技术入门的学习路线

    [Zigbee技术入门教程-01]Zigbee无线组网技术入门的学习路线 广东职业技术学院  欧浩源 一.引言    在物联网技术应用的知识体系中,Zigbee无线组网技术是非常重要的一环,也是大家感 ...

  7. ZigBee毕设

    毕设题目: —————————————————————————————————————————————————————————————————————————————— 基于Zigbee的智能家居监测 ...

  8. 大规模SDN云计算数据中心组网的架构设计

    本文首先分析了在大规模SDN数据中心组网中遇到的问题.一方面Underlay底层组网规模受限于设备实际的转发能力和端口密度,单一Spine-leaf的Fabric架构无法满足大规模组网的需求:另一方面 ...

  9. WiFi、ZigBee、BLE用哪个?

    小米是这么选的: 1) 插电的设备,用WiFi: 2) 需要和手机交互的,用BLE: 3) 传感器用ZigBee. WIFI,WIFI是目前应用最广泛的无线通信技术,传输距离在100-300M,速率可 ...

随机推荐

  1. python学习(八)阶段性总结

    这里学习了python的一点点基础然后来总结一下 python是一个强类型的语言 数字: 数字的类型大概有:整数.浮点数.复数.固定精度的十进制数.带分子和分母的有理数 数字与字符串之间不能直接相加, ...

  2. 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。

    // 第一种方法 // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...

  3. Qt QImageReader 相似乎有bug

    Qt 版本号 5.4.1 (VS2010) 近期在做一个小程序,事实上非常easy,就是打开一个gif 动画.能够静态显示当中随意一帧图像.Qt 中有一个QImageReader 类.用这个类理论上说 ...

  4. 在mac下搭建java开发环境

    刚刚从windows系统转到使用mac系统.感觉不是特别熟悉,须要一定的适应时间. 以下简介一下mac下搭建主要的java开发环境. 1.安装jdk 安装jdk1.7后,发现不须要进行环境变量配置,直 ...

  5. Android-理解window和windowmanager

    1.window和windowmanager的关系 window是一个抽象类,具体实现为phoneWindow.创建一个window可以通过windowmanager来实现. window的具体实现在 ...

  6. php加速器: xcache

    1.准备软件包 xcache-3.2.0.tar.gz 2.安装组件 $ echo 'export LC_ALL=C' >> /etc/profile $ tail -l /etc/pro ...

  7. global 全局变量的用法

    说明:i 和foo()都为全局变量,i 是在模块文件顶层注册的,所以为全局变量,他能够在函数内部进行引用而不需要再特意声明是全局变量,且foo()函数也是全局变量 1.当没有局部变量时,print(i ...

  8. Database: index

    The whole point of having an index is to speed up search queries by essentially cutting down the num ...

  9. BZOJ 3990 [SDOI2015]排序

    题解: 首先很容易看出各个操作是互不影响的,即对于一个合法的操作序列,我们可以任意交换两个操作的位置而不影响合法性. 因此我们可以忽略操作先后的影响,只考虑这个操作是否会出现在操作序列中. 如果用2n ...

  10. 深入浅出 - Android系统移植与平台开发(七)- 初识HAL【转】

    本文转载自:http://blog.csdn.net/mr_raptor/article/details/8069588 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   ...