zigbee协议描述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
满足以下条件的节点设备称为具有路由发现表能力的节点设备: (1)设备维护了一张路由发现表, 路由发现表的具体格式见表 2.2;
(2)设备具有一个空闲的路由发现条目。
Zigbee 路由过程指的是当收到一个数据帧之后, 节点设备的网络 层对其的处理过程,具体如图 2.4 所示。 从图 2.4 可以看出,当节点网络层收到一个数据帧时,如果网络 层从更高层接收到数据帧且数据帧的目的地址和广播地址一致, 那么 节点将数据帧广播发送,如果该接收节点是路由器或者协调器,同时 数据帧的目的节点是一个终端设备并且正是该节点的子节点, 那么这 个数据帧将直接传送到目的地址, 并且设置下一跳目的地址和最终的 目的地址一致。 一个有路由能力的节点会首先检查路由表中目的地址, 有对应目的地址的路由条目的节点应当使用路由表条目来路由数据 帧;如果没有对应目的地址的路由条目,应当检查数据帧头的帧控 制域中的路由发现标志。如果路由发现标志的值为 1,那么节点 按照路由发现的发起条件和方法来发起路由发现; 如果此发现路由标 志的值为 0,或者该节点无法发起路由发现(没有路由能力),那么数 据帧将沿着树路径路由。
等级树路由也可以简称为树路由, 等级树路由机制包括树地址分 配和树路由两部分. ZigBee 协调器建立网络时将给自身分配网络地址 0 和设置自身的 深度 Depth0 为 0。 节点 i 加入网络并连接到节点 k 时,节点 k 将成为节点 i 的父节 点,并根据自身的网络地址 Ak 和深度眈 Depthk 给节点 i 分配一个网 络地址 Ai 以及深度,其深度为: Depthi=Depthk+1 (2.1) 式中,深度 Depthi 表示了节点 i 到协调器的跳数。 图 2.3 说明了 ZigBee 等级树结构,其中 cM 表示一个路由器或者 协调器节点可容纳的最大子节点数,RM 表示子节点中可以是路由器 的数目。对于一个网络的不同节点,CM 和 RM 一般是定值。
Biblioteka Baidu
对于深度为 Depth=d 的节点 k,将给其新加入的无路由能力的第 n 个 RFD 子节点 i 分配网络地址;
Ai=Ak+Cskip(d)Rm+n (2.2) 对于有路由能力的 FFD 子节点分配地址: Ai=Ak+1+(n-1)Cskip(d) (2.3) 式中, 1+Cm(Lm-d-1),if Rm=1 Cskip=
另外,除了对数据帧进行路由和完成路由发现过程之外,ZigBee 网络层的路由功能还包括路由维护过程。 每个节点都要为它的每个邻 居节点维护一个失败计数器, 当计数器超过一定数值或者路由失败时, 节点就要发起路由修复过程。路由修复过程与路由发现过程类似。为 了避免网络堵塞和过多的网络开销, 往往在实际应用中不会频繁的发 起路由修复过程。
描述 ZigBee 网络的路由协议及路由发现过程 一.ZigBee 路由协议概述 ZigBee 路由协议指的是 ZigBee 规范中规定的与路由相关的功能 和算法部分,主要包括不同网络拓扑结构下 ZigBee 协议数据单元的 路由方式,路由发现和路由维护等内容。 IEEE 802.15.4/ZigBee 规范中定义了星状、树状、网状三种网 络拓扑结构,以及 ZigBee 协调器(ZigBee Coordinator)、ZigBee 路 由器(ZigBeeRouter)和 Zigbee 终端设备(ZigBee End Device)三种网络设 备。 ZigBee 星状网络是简单的一对多通信. 树状网络中,每个全功能设备都可以成为父节点,简化功能设备 只能作为子节点.树状网络采用一种等级树路由(Hierarchical Routing) 机制。 网状网络中除了允许父节点和子节点之间的通信, 也允许通信范 围之内具有路由能力的非父子关系的邻居节点之间进行通信。 网状网 络采用一种无线自组织按需距离矢量(AODv)与等级树路由相结合的 混合路由方式。 AODV 路由算法是一种按需路由协议,根据节点的需求发起路由 发现过程,网络拓扑结构和路由表内容也是按需建立的,路由表中不 需保存网络内各个节点的路径。因此,AODV 路由算法不需要周期性 的广播路由信息,节省了一定的网络资源。AODV 的路由发现和路由 维护过程中使用的命令帧有:路由请求命令帧(RREQ)、路由回复命令
三.ZigBee 路由发现过程 当一个 ZigBee 协调器或者路由器的网络层需要发现路由时,也 就是图 2.4 的数据帧处理流程进入了发起路由发现的步骤后,将发起 一个路由发现过程, 路由发现过程是网络设备通过网络层的合作来发 现并建立路由的过程, 而且在被执行时总是和一对特定的发起节点和 目的节点相关。 路由发现过程可以说明如下: (1)路由发现过程的发起
当网络层收到的数据帧来自低层时, 将根据数据帧的目的节点是 否是本地节点而决定将数据帧发送到本地节点的高层还是将数据帧 转发。 树路由的具体过程在上一小节中已经说明。需要指出的是,如果 目的节点是一个终端设备, 那么帧的发送可能因为该设备的休眠状态 而失败。这种情况下,可以使用间接传送方式来传送数据帧。 另外, ZigBee 网络层的实际路由方式选择需要根据数据帧头中的 DiscoverRoute 字段来确定, 图 2.4 中的路由过程实际上对应于 Discover Route 字段取值为 0 或者 1 时的情况,是应用中一般常用的一种路由 方式。其他路由方式的路由过程,以及如何适当选择路由方式,将在 后面的章节中做具体的讨论。
1+Cm −Rm −CmRm Lm −d −1 1 −������������
,otherwise
(2.4)
通过这样的地址分配机制,每个路由器节点都把包含 Cskip(d)个 地址的地址块分配给自己有路由能力的子节点, 保证了数据帧发送节 点总是能够根据目的节点地址来判断目的节点是否是本节点的后代 节点。 利用等级树路由传送数据帧时,目的节点网络地址为 D,则当深 度为 d,网络地址为 A 的路由节点转发此数据帧时,将首先根据下式 判断目的节点是否是本节点的后代节点: , A<D<A+Cskip(d-1) (2.5) 如果满足式(2.5),则数据帧的下一跳地址 N 为:
(3)接收到路由回复命令帧 中间节点或者路由发现过程的发起节点接收到路由回复命令帧 (RREP)之后的具体处理过程如图 2.6。路由发现过程的发起节点在接 收到 RREP 后,就获得了到目的节点的路由。当路由发现过程的发起 节点接收到来自多条路径的 RREP 时,该节点将选择累积路径损耗最 小的路径作为到目的节点的路由。 累积路径损耗最小的路径不唯一时, 路由发现过程的发起节点将选择最早接收到的 RREP 所对应的路径。
帧(RREP)、路由修复命令帧(RERR)、HELLO 帧,命令帧采用逐跳转发 的方式,每个中间节点隐式保存了路由请求和回复的结果。HELLO 帧 获取邻居节点的信息, RREO 发起路由请求, RREP 进行路由应答, RERR 表示链路出现问题。 AODV 路由方式中,在需要发送数据分组时,如果没有到目的节 点的路由,节点就要临时启动路由发现过程来寻找路由,因此数据分 组的发送有一定时间的延迟。 路由发现过程通常采用全网洪泛的方式 发送 RREQ 帧进行路由搜索。由于 AODV 路由基于双向信道的网络, 因此含有到目的节点路由的中间节点或者目的节点本身在收到 RREO 帧后, 可以沿着路由请求的反方向发送 RREP 到发起路由请求的节点, 从而使发起路由请求的节点获得请求的路由。AODV 路由采用逐跳的 方式转发分组,路由表中记录了到目的节点的下一跳地址,因此不需 要在数据帧中携带完整的路由信息。AODV 路由比较适合于节点依靠 电池 供电、能量受限的网络环境。 需要指出的是,ZigBee 路由中使用的 AODV 路由算法与无线自组 织网络中的 AODV 路由算法略有区别。如无线自组织网络中的 AODV 路由是基于最少跳数的,即当接收到多个 RREP 时,总是选择跳数较 少的路由,而 ZigBee 中的 AODV 路由选择则是基于路径损耗(当路径 损耗设置为 ZigBee 规范中所指定的常数 7 时, ZigBee 的 AODV 路由算 法总是寻找最短路径).为了说明方便,下文中用 Z-AODV 表示 zigsee 规范采用的 AODV 路由算法。
(2.6) 即如果目的节点的地址是与本节点相连的子节点则直接发送, 否 则就发送到目的节点地址所在地址块的路由器节点。 如果目的节点不
是本节点的后代节点, 下一跳地址 N 为本节点的父节点, 即向上寻找 目的节点所在的地址块。 二.ZigBee路由过程 先说明一下路由能力(Routing Capacity)的概念。节点的路由能力 指节点同时具备路由表能力和路由发现表能力。 满足以下条件的节点设备称为具有路由表能力的节点设备: (1)设备是一个协调器或者路由器; (2)设备维护了一张路由表,路由表的具体格式见表2.1; (3)该设备有一个空闲的路由表条目, 或者已经有一个存在的与目 标节点相对应的路由表条目; (4)该设备保留了一些路由条目在路由修复时使用。
对于一个具有路由能力的节点,在符合以下条件时,网络层应当 发起路由发现过程: 接收到一个从网络层的更高层发出的发送数据帧 的请求,网络层的路由发现使能参数为真,并且路由表中没有和目的 地址对应的条目;或者接收到一个来自媒体接入控制予层的帧,该帧 控制域中的路由发现标志的值被设置为 1,帧头目的地址域中包含的 目的地址并非当前的节点地址或者广播地址, 并且路由表中没有和目 的地址对应的条目。如果这个节点没有路由能力,那么该节点将不会 发起路由发现过程,并且数据帧将沿着树路径路由。 如果一个节点发起了路由发现过程, 它就应当建立相应的路由表 条目和路由发现表条目,状态设置为路由发现中,并且路由发现过程 发起节点将广播路由请求命令帧。该命令帧中包含发起节点的地址、 目的节点地址等信息。 (2)接收到路由请求命令帧 中间节点或者目的节点接收到路由请求命令帧(RREQ)之后的具 体处理过程如图 2.5。