转自:http://blog.csdn.net/wanghanjiett/article/details/6931867

几个重要概念:

node(节点):

在zigbee堆栈中最多有三种节点:Coordinator(协调器)、Router(路由器)、End Device(终端)。

其中Coordinator负责选择工作频段,建立网络,允许子设备加入网络;Router负责传递消息,允许子设备加入网络;End Device只负责收发消息。

一个网络中可以有若干Router和End Device,但只能有一个Coordinator。

下面几个图说得更清楚点

profile:

有人将profile翻译为“规约”,它规定了设备的具体应用环境(这是由zigbee使用联盟制定的,我们只能选择其一)。

其中stack profile定义了网络类型、深度等;application profile针对给定的stack profile定义了不同功能的标准函数,说明了设备类型、接口、如何传输数据等等。

总之,profile就是对设备的描述。目的是形成标准,便于不同制造商间产品的兼容。

descriptor:

cluster:

attribute:

endpoint:

endpoint的作用举例说明下:

假如我们想让node1的开关1控制node2的灯1、2、3,开关2只控制灯4。但是由于节点间信息只依靠网络地址定位,所以node2接收到node1的控制信息后,无法判断究竟是哪个开关的控制信息。所以引入了endpoint概念(这和TCP/IP协议里的“端点”概念很像),给node2两个endpoint(端口),一个对应开关1,一个对应开关2。这样node2的应用程序就能通过接收到的endpoint来区别究竟是接收到哪个开关的信息了。

杂记:

ZigBee网络层的主要功能是路由,路由算法是它的核心。目前ZigBee网络层主要支持两种路由算法——树状路由和网状路由。树状路由(具体可以参考ZigBee的协议栈规范)把整个网络看作是以协调器为根的一棵树,因为整个网络是由协调器所建立的。协调器的子节点可以是路由器或者是末端节点,路由器的子节点也可以是路由器或者末端节点,而末端节点没有子节点,相当于树的叶子。树状路由利用了一种特殊的地址分配算法,使用四个参数—深度、最大深度、最大子节点数和最大子路由器数来计算新节点的地址,于是寻址的时候根据地址就能计算出路径,而路由只有两个方向——向子节点发送或者向父节点发送。树状路由不需要路由表,节省存储资源,但缺点是很不灵活,浪费了大量的地址空间,并且路由效率低。ZigBee当中还有一种路由方法是网状路由,这种方法实际上是AODV路由算法的一个简化版本,非常适合于低成本的无线自组织网络的路由。它可以用于较大规模的网络,需要节点维护一个路由表,耗费一定的存储资源,但往往能达到最优的路由效率,而且使用灵活。除了这两种路由方法,ZigBee当中还可以进行邻居表路由,其实邻居表可以看作是特殊的路由表,只不过只需要一跳就可以发送到目的节点。

[XBee] ZigBee学习笔记的更多相关文章

  1. zigbee 学习笔记

    在德州仪器的站点:http://www.ti.com.cn/tool/cn/z-stack上下载安装zigbee2007协议栈版,我的是ZStack-CC2530-2.3.0-1.4.0. 以下演示一 ...

  2. 转 zigbee学习笔记---Channel、PANID、发射功率及其它参数

    现对z-stack里几个网络参数的设置以及如何获取总结一下.信道配置:Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个20Kb/s信道,915MHz频段中定义了10个40Kb/ ...

  3. 物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus

    物联网学习笔记三:物联网网关协议比较:MQTT 和 Modbus 物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信.可用的通信方法各不相同,但是,各种不同的协议在将海量“事物”连接 ...

  4. JavaEE精英进阶课学习笔记《博学谷》

    JavaEE精英进阶课学习笔记<博学谷> 第1章 亿可控系统分析与设计 学习目标 了解物联网应用领域及发展现状 能够说出亿可控的核心功能 能够画出亿可控的系统架构图 能够完成亿可控环境的准 ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  7. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  8. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  9. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. CDH5.5.1 安装Spark ON Yarn环境

    CDH对我们已经封装了,我们如果需要Spark on Yarn,只需要yum安装几个包就可以了. 前面的文章我有写过如果搭建自己内网的CDH Yum服务器,请参考<CDH 5.5.1 Yum源服 ...

  2. HTTP响应报文与工作原理详解

    超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议.HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到 ...

  3. Java 任务调度

    1.普通方式 /** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现 */ p ...

  4. Hibernate、Mybatis 通过数据库表反向生成java类和配置

    一.通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件    (转载孙宇老师的文章) 二.Mybatis生成实体类和配置文件: myeclipse下生 ...

  5. 贪心-poj-2437-Muddy roads

    题目链接: http://poj.org/problem?id=2437 题目意思: 给n个区间,每次可以用长度为L的棒A去覆盖,求将所有区间覆盖至少需要几次.给的区间不覆盖. 解题思路: 简单贪心. ...

  6. js隐藏

    function openLoadingIcon(){ $("#dataLoading").css("display","block"); ...

  7. GUI图形界面

    一.界面元素 1.首层容器:Jwindow.JFrane(窗体).JDialge(对话框).JApplet. 2.组件:标签.文本框.密码框.按钮.下拉列表.单选框.复选框.文本域等 注:标签JLab ...

  8. spring事务注解

    @Transactional只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能. Spring使用声明式事务处理,默认 ...

  9. UVa 11111 Generalized Matrioshkas

    嵌套玩具, 要求外层玩具的尺寸比内层玩具尺寸的和要大. 每一个玩具由一个负数与相应的正数表示, 在这两数之间的部分即为此玩具内部的玩具. 要求判断一串输出的数字是否能组成一个合法的玩具. 一个合法的玩 ...

  10. SRV记录说明

      SRV记录是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息 SRV 记录:一般是为Microsoft的活动目录设置时的应用.DNS可以独立于活动 ...