ZigBee入门之基础概念3

第三讲:

zigbee术语

射频收发器:如cc2420

一个节点可以对应多个设备

一个设备包含多个端点

每个端点又有很多群集(输出群集、输入群集)

每个群集有一个或多个属性

属性 Attribute 是一个反映物理数量或状态的数据值,比如开关值(On/Off) ,温度值、百

分比等。

群集(簇) Cluster 是包含一个或多个属性(attribute)的群组。简单的说,群集就是属性的集合。

每个群集都被分配一个唯一的群集 ID 且每个群集最多有 65536 个属性

设备描述 Device Description 是指一个大型目标应用的一部分,包括一个或多个群集,并且

指定群集是输入还是输出。描述符有:节点描述符、电源描述符、简单描述符、端点描述符。

重点使用:简单描述符,端点描述符

描述符在c语言上的体现就是一个结构体,定义在应用层下的SampleApp.h下

端点

端点 EndPoint 是协议栈应用层的入口,也可以理解应用对象(Application Object)存在的

地方,它是为实现一个设备描述而定义的一组群集。每个 ZigBee 设备可以最多支持 240 这样

的端点, 这也意味着在每个设备上可以定义 240 个应用对象。 端点 0 被保留用于与 ZDO 接口,

这是每个 ZigBee 设备必须使用的端点,而端点 255 被保留用于广播,端点 241-254 则被保留用

于将来做扩展使用。

节点

节点 Node 也可以理解为一个容器,包含一组 ZigBee 设备,分享一个无线信道。每个节点

有且只有一个无线信道使用。

绑定

在 zigaee 协议中定义了一种特殊的操作, 叫做绑定(binding)操作。 它能够通过使用 ClusterID

为不同节点上的独立端点建立一个逻辑上的连接。

网络中的两个节点分别为 Z1 和 Z2,其中 Zl 节点中包含两个独立端点分别是

EP3 和 EP21,它们分别表示开关 1 和开关 2。Z2 节点中有 EP5、EP7、EP8、EPl7 四个端点分

别表示从 l 到 4 这四盏灯。在网络中,通过建立 ZigBee 绑定操作,可以将 EP3 和 EP5、EP7、

EP8 进行绑定,将 EP21 和 EPl7 进行绑定。这样开关 I 便可以同时控制电灯 l、2、3,开关 2

便可以控制电灯 4。利用绑定操作,还可以更改开关和电灯之间的绑定关系,从而形成不同

的控制关系。从这个例子,可以看出绑定操作能够使用户的应用变得更加方便灵活。

要实现绑定操作,端点必须向协调器发送绑定请求,协调器在有限的时间间隔内接收到两

个端点的绑定请求后, 便通过建立端点之间的绑定表在这两个不同的端点之间形成了一个逻辑

链路。因此,在绑定后的两个端点之间进行消息传送的过程属于消息的间接传送。其中一个端

点首先会将信息发送到 ZigBee 协调器中,ZigBee 协调器在接收到消息后会通过查找绑定表,

将消息发送到与这个端点相绑定的所有端点中,从而实现了绑定端点之间的通信。

路由

路由对与应用层来说是完全透明的。应用程序只需简单的向下发送去往任何设备的数据到

栈中,栈会负责寻找路径。这种方法,应用程序不知道操作是在一个多跳的网络当中的。

路由还能够自愈 ZigBee 网络, 如果某个无线连接断开了, 路由功能又能自动寻找一条新的

路径避开那个断开的网络连接。这就极大的提高了网络的可靠性,同时也是 ZigBee 网络的一

个关键特性。

.2  路由协议 (Routing Protocol)

ZigBee 执行基于用于 AODV 专用网络的路由协议。简化后用于传感器网络。ZigBee 路由

协议有助于网络环境有能力支持移动节点,连接失败和数据包丢失。

当路由器从他自身的应用程序或者别的设备那里收到一个单点发送的数据包,则网络层

(NWK Layer)根据一下程序将它继续传递下去。如果目标节点是它相邻路由器中的一个,则数

据包直接被传送给目标设备。否则,路由器将要检索它的路由表中与所要传送的数据包的目标

地址相符合的记录。如果存在与目标地址相符合的活动路由记录,则数据包将被发送到存储在

记录中的下一级地址中去。如果没有发现任何相关的路由记录,则路由器发起路径寻找,数据

包存储在缓冲区中知道路径寻找结束。

ZigBee 终端节点不执行任何路由功能。终端节点要向任何一个设备传送数据包,它只需简

单的将数据向上发送给它的父亲设备,由它的父亲设备以它自己的名义执行路由。同样的,任

何一个设备要给终端节点发送数据, 发起路由寻找, 终端节的的父亲节点都已它的名义来回应。

注意 ZigBee 地址分配方案使得对于任何一个目标设备,根据它的地址都可以得到一条路径。

在 Z-Stack 中,如果万一正常的路径寻找过程不能启动的话(通常由于缺少路由表空间),那么

Z-Stack 拥有自动回退机制。

此外,在 Z-Stack 中,执行的路由已经优化了路由表记录。通常,每一个目标设备都需要

一条路由表记录。但是,通过把一定父亲节点记录与其子所有子结点的记录合并,这样既可以

优化路径也可以不丧失任何功能。

ZigBee 路由器,包括协调器执行下面的路由函数:(i)路径发现和选择;(ii)路径保持维护;

(iii)路径期满。

路径的发现和选择 (Route Discovery and Selection)

路径发现是网络设备凭借网络相互协作发现和建立路径的一个过程。路由发现可以由任意

一个路由设备发起,并且对于某个特定的目标设备一直执行。路径发现机制寻找源地址和目标

地址之间的所有路径,并且试图选择可能的最好的路径。

路径选择就是选择出可能的最小成本的路径。每一个结点通常持有跟它所有邻接点的“连

接成本(link costs)” 。通常,连接成本的典型函数是接收到的信号的强度。沿着路径,求出所有

连接的连接成本总和,便可以得到整个路径的“路径成本” 。路由算法试图寻找到拥有最小路

径成本的路径。

路径通过一系列的请求和回复数据包被发现。源设备通过向它的所有邻接节点广播一个路

由请求数据包,来请求一个目标地址的路径。当一个节点接收到 RREQ 数据包,它依次转发

RREQ 数据包。但是在转发之前,它要加上最新的连接成本,然后更新 RREQ 数据包中的成本

值。这样,沿着所有它通过的连接,RREQ 数据包携带着连接成本的总和。这个过程一直持续

到 RREQ 数据包到达目标设备。通过不同的路由器,许多 RREQ 副本都将到达目标设备。目

标设备选择最好的RREQ数据包, 然后发回一个路径答复数据包(a Route Reply)RREP给源设备。

RREP 数据包是一个单点发送数据包,它沿着中间节点的相反路径传送直到它到达原来发送请

求的节点为止。

一旦一条路径被创建,数据包就可以发送了。当一个结点与它的下一级相邻节点失去了连

接(当它发送数据时,没有收到 MAC ACK),该节点向所有等待接收它的 RREQ 数据包的节点

发送一个 RERR 数据包,将它的路径设为无效。各个结点根据收到的数据包 RREQ、RREP 或

者 RERR 来更新它的路由表。

路径保持维护

网状网提供路径维护和网络自愈功能。中间节点沿着连接跟踪传送失败,如果一个连接被

认定是坏链,那么上游节点将针对所有使用这条连接的路径启动路径修复。节点发起重新发现

直到下一次数据包到达该节点,标志路径修复完成。如果不能够启动路径发现或者由于某种原

因失败了,节点则向数据包的源节点发送一个路径错误包(RERR),它将负责启动新路径的发

现。这两种方法,路径都自动重建。

路径期满 (Route expiry)

路由表为已经建立连接路径的节点维护路径记录。如果在一定的时间周期内,没有数据通

过沿着这条路径发送,这条路径将被表示为期满。期满的路径一直保留到它所占用的空间要被

使用为止。这样,路径在绝对不使用之前不会被删除掉的。在配臵文件 f8wConfig.cfg 文件中配

臵自动路径期满时间。设臵 ROUTE_EXPIRY_TIME 为期满时间,单位为秒。如果设臵为 0,

则表示关闭自动期满功能。

ZigBee  原语

ZigBee 协议按照开放系统互联的 7 层模型将协议分成了一系列的层结构,各层之间通过相

应的服务访问点来提供服务。 这样使得处于协议中的不同层能够根据各自的功能进行独立的运

作,从而使整个协议栈的结构变得清晰明朗。另一方面,由于 ZigBee 协议栈是一个有机的整

体,任何 ZigBee 设备要能够正确无误的工作,就要求协议栈各层之间共同协作。因此,层与

层之问的信息交互就显得十分重要。 ZigBee 协议为了实现层与层之间的关联, 采用了称为服务

“原语"的操作

服务由 N 用户和 N 层之问信息流的描述来指定。这个信息流由离散瞬时事件构成,以提

供服务的特征。每个事件由服务原语组成,它将在一个用户的某一

层,通过与该层相关联的层服务访问 A(SAP)与建立对等连接的用户的相同层之

问传送。层与层之间的原语一般情况下可以分为 4 种类型:

◆ 请求:请求原语从 NI 用户发送到它的 N 层,请求发起一个服务。

◆ 指示:指示原语从 N 层到 N2 用户,指示一个对 N2 用户有重要意义外部 N

层事件。这个事件可能与一个远程的服务请求有关,或者由内部事件产生。

◆ 响应:响应原语由 N2 用户向它的 N 层传递,用来响应上一个由指示原语引

起的过程。

◆ 确认:确认原语由 N 层向 Nl 用户传递,用来传递与前面一个或多个服务请

求相关的执行结果。

时间: 2024-10-09 20:58:36

ZigBee入门之基础概念3的相关文章

Zigbee入门之基础概念

大二就开始接触ZigBee硬件开发确实是一个不小的挑战,尤其是对一个计算机专业的同学而言. 最近开始写项目申请书,各种资料看的头都大了.为了以后更好的进行开发,这次记录了一些名词和解释 上位机和下位机 上位机是指可以直接发出操控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化(液压,水位,温度等).下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcompute

ZigBe入门之基础概念2

设备类型 1.协调器  具备协调功能.路由功能 2.路由器  具备路由功能 3.终端设备  空 Note.一个网络当中,只有且必须有一个协调器,可以有多个路由器,也可以有多个终端设备 协调器负责启动整个网络.它也是网络的第一个设备.协调器选择一个信道(2.4G一共有16个信道)和一个网络 ID(也称之为 PAN ID,即 Personal Area Network ID:个人局域网ID号),随后启动整个网络.协调器也可以用来协 助建立网络中安全层和应用层的绑定(bindings).协调器功能很强

足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一)

在足球赛事数据库以及统计分析预测平台中,有很多概念,如果不搞懂,很难进行下一步的工作.所以为了配合团队人员的学习和任务进行,特意编写这篇文章.如果有其他问题和不懂的,请留言,将根据情况进行更新. 本文原文地址:足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一) 1.指数1/2/3.... 我在 足彩基础知识入门(3)足彩赔率的本质 一文中介绍了赔率的概念,那么指数的概念和赔率以及结果是相关的.我们举个例子: 如上图的比赛,前面是竞彩非让球的赔率:1.74-3.25-4.15,也就是说

MongoDB入门系列(一):基础概念和安装

概述 MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则.数据类型.功能以及安装等. 环境: OS:Windows Version:3.4 一.安装 1.下载解压 在官网下载对应操作系统版本的安装包,然后解压:我这里使用Windows环境安装测试. 2.在D盘创建Mongodb\data\db目录 3.初始化数据 最好先将bin目录加入到环境变量,否则要到命令目录下执行. mongod --dbpath D:\mongod

一步步AS400-Cobol 上手自学入门教程01 - 基础概念(原创)

先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 ?System-names ?Reserved words 关键字 2.用户定义字符User-defined words:合法的定义: ? A - Z ? a - z ? 0 - 9 ? - (连字符). 3.系统名 System-names Computer-names ?Language-names ?Implementor-names: Environment-name Assignment-n

【Cocos2d入门教程二】Cocos2d-x基础概念

上一章已经学习了环境的搭建.这一章对基础概念进行掌握.内容大概有: 1.导演 2.场景 3.节点 4.层 4.精灵 1.导演(Director) 导演存在的主要作用: 环境设定(帧率 初始化openGl和渲染器) 场景管理 执行主循环 游戏就是个死循环 不断不断的渲染  就跟视频没两样 一帧一帧的绘制出来  话说提一下一帧为1/60秒  也就是说coco里一秒渲染60次 导演的管理:   计时器  事件管理器  动作管理器 导演继承于REF  一个单例类 获得导演类Director实例语句 au

控制台基础概念

一.引言 控制台程序(Console Application)相信是很多人接触编程的第一个界面,比如C/C++入门的Hello World程序,黑色的字符界面窗口,windows最经典的控制台程序是cmd(命令行窗口),如下图. MSDN上对控制台描述如下:用于管理基于字符的应用程序(不提供GUI界面)的输入输出. 本文主要参考MSDN上关于Console的资料,并加以整理扩充.原始资料可参考:http://msdn.microsoft.com/en-us/library/windows/des

【嵌入式4412开发板学习教程】Uboot教程之uboot基础概念和框架

[4412开发板教程]Uboot教程之uboot基础概念和框架 正在学习uboot,教程讲解的很详细,先上个笔记,视频上传到网盘后再补上...... 知识点: 1.操作系统分层的概念 Windows:bios→内核模式→用户模式→用户程序 linux:bootloader→内核→文件系统→用户程序 2.bootboader种类介绍 U-boot是最通用的bootboader.(210,4412等等) vivi 针对三星的ARM来定制2440上有用到 3.4412休眠问题 它可以直接跳过uboot

HBase入门修行基础篇

HBase入门修行基础篇 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力.HBase是Apache的Hadoop项目的子项目.HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是H