ZigBee技术(2)

2018-11-19 20:54

中的信息建立相应的路由发现表条目和路由表条目(在路由表中建立一个指向RREQ源节点的反向路由)并继续广播此分组。

(2)节点在转发RREQ之前计算将RREQ发送给它的邻节点与本节点之间的链路开销,并将它加到RREQ中存储的链路开销上,然后将更新后的链路开销存入路由发现表条目中。

(3)一旦RREQ到达目的节点或目的节点的父节点,此节点向RREQ的源节点回复一个RREP分组(RN一节点也可以回复RREP分组,但无法记录路由信息),RREP应沿着已建立的反向路径向源节点传输,收到RREP的节点建立到目的节点的正向路径并更新相应的路由信息。

(4)节点在转发RREP前计算反向路径中下一跳节点与本节点之间的链路开销并将它加到RREP中存储的链路开销上。当RREP到达相应RREQ的发起节点时,路由建立过程结束。

图1给出了一个路由建立过程的例子。其中节点0为ZigBee协调点,假设节点2要向节点9发送数据分组,但路由表中没有到达节点9的路由。节点2是一个RN+节点,它将发起路由建立过程,创建RREQ并向周围节点广播此分组(图la),节点0、1、3收到RREQ后建立到节点2的反向路由,并继续广播RREQ(图lb)。图1c中,节点3已经转发过RREQ,因此它不再转发此分组;由于节点5是RN一节点,不具有路由功能,因此它收到RREQ后发现自己不是目的节点只有将其发送给它的父节点(节点3);节点6发现RREQ的目的节点是它的一个子节点,它则代替此目的节点沿着刚刚建立的反向路径向RREQ的源节点(节点2)回复一个RREP,收到RREP的节点建立到目的节点(节点9)的正向路由。RREP到达源节点2后,路由建立过程结束,数据分组沿着刚刚发现的路径2—3—6—9传输(图ld)。此例中,如果是节点9要发送数据分组到节点2,由于节点9是RN一节点,它只有将分组发送给它的父节点(节点6),由其父节点发起路由建立过程。

2.3.2 路由维护过程

数据传输中若发生链路中断,将由中断链路的上游节点激活路由维护过程。如果检测到链路失效的是RN+节点,它将采用本地修复方式来维护路由,即缓存来自源节点的数据分组并广播RREQ,RREQ分组中的Command options域应指出此分组是在路由修复过程中产生的,RREQ中的源节点地址为发起路由修复节点的地址,目的节点地址为数据分组的目的地址。收到RREQ的节点按照路由建立过程转发此分组。如果收到RREQ的节点是RREQ的目的节点或目的节点是此节点的一个子节点,它将回复一个RREP,RREP中的Command options域也应指出此分组是在路由修复过程中产生的。发起路由建立过程的节点收到RREP

第 6 页 共 107 页

时路由修复成功。若在一定时间内没有收到RREP,此节点将向源节点发送RERR报告路由失败的消息,由源节点重新发起路由建立过程。

如果检测到链路失效的是RN一节点,它将直接向源节点发送RERR,由源节点重建路由。如果一个为RFD的ZigBee终端节点发现它与父节点之间的通信中断,此节点将发起IEEE 802.15.4 MAC层中的孤立通知过程(Orphaning procedure)。尝试重新加入网络并恢复与原来父节点之间的通信。如果孤立通知过程失败,节点将发起IEEE 802.15.4 MAC层中的关联过程(Association procedure),尝试通过新的父节点重新加入网络。若节点找不到具有接受它的能力的父节点,它则不能重新加入网络。在这种情况下,需要用户干涉才能使此节点重新加入网络。

2.4 ZigBee路由策略分析

ZigBee网络采用簇树路由和AODVjr路由相结合的混合型路由机制。首先使用簇树型路由选择,即在做路由选择策略时利用树型结构选址,这样设备不必保存庞大的路由表或进行额外的操作来发现路径,因此最小化了网络流量。但由于簇树型路由必须遵循树型结构,并非采用最短路径,因此超过一定长度的路径会产生额外的开销,而且有可能发生故障。为了提高路由效率,ZigBee算法让路由器去发现捷径,利用捷径上的每一个路由器保存一个表,其中D是目的地址,N是通往该目的地址路线上的下一跳设备的地址。路由选择规则很简单:“如果有捷径就用它,否则就使用簇树型路由。”在ZigBee中,借以发现捷径的简单请求/响应协议就是AODVjr算法,算法为了维护路由还周期性地发送Hello分组。

ZigBee路由算法的主要思想是先对接收数据帧的来源进行判断,然后分解出数据帧中的目的地址,根据目的地址采用相应的机制传送数据帧,其过程主要分为以下4个步骤:

(1)一个设备发出路由请求命令帧启动路由发现(Routing Discovery)过程; (2)对应的接收设备收到该命令后,回复应答命令帧;

(3)对潜在的各条路径开销(跳转次数、延迟时间),进行评估比较; (4)将最佳路由记录添加到此路径上各个设备的路由表中。 具体实现过程如图。

ZigBee标准对网络层数据帧的DiscoverRoute域定义了3种路由发现方式:

1.抑制路由发现(Suppress Route Discovery,SRD):这种方式使用已经存在的路由表,如果路由表项中有目的节点的地址,则数据包沿路由路径发送;当路由表项没有相应目的节

第 7 页 共 107 页

点地址并且参数nwkUseTreeRouting的值等于TRUE,网络将采用簇树路由方式,数据包沿树型推进。

2.使能路由发现(Enable Route Discovery, ERD):如果路由表项中有路由地址,那么路由将遵循路由表项的内容进行;否则,路由节点将启动路由发现过程,当发现过程完成,数据包沿计算出来的路由路径传送。如果该节点没有路由发现能力,那它也将使用簇树路由方式。

3.强制路由发现(Force Route Discovery,FRB):节点必须强制性进行路由发现过程,不管是否存在对应的路由表项。如果节点有路由发现能力,当路由发现完成时,数据包将沿计算出来的路由路径传送。如果节点没有路由发现能力,数据包将沿树型推进。这个选择必须非常小心,因为它会产生较大的网络冗余。主要用于修复破坏了的路由,一般很少用到。

在zigBee规范中并没有关于如何配置这些参数来选择路由策略。在ZigBee规范中提出了将AODV和Tree路由混合的路由机制。但在ZigBee规范中并没有说明如何配置参数来选择路由策略,没有使两者平衡的设计方法。根据上面Tree路由和Z-AODV的分析,我们提出了基于数据特性的路由方法,即在两种路由算法构成的网格型网络中,根据节点间传输数据特性的不同,通过设置数据帧帧头的DiscoverRouter域,选择不同的路由方法:对于zigBee应用层的绑定数据服务的连续数据,ZigBee应用层应选择使用“使能路由发现”的方法,即采用AODV路由首先建立路由发现,然后选择跳数少的路由,成为最佳路径;对于突发性的不连续数据的服务使用“抑制路由发现”方法,即在路由表中没有响应的目的节点的地址时,采用Tree路由方法。因为这种路由不需要建立路由表,因此对传输的数据响应较快。

2.5 TI Z-Stack协议栈分析

2007年4月,德州仪器推出业界领先的ZigBee协议栈(Z-Stack)。Z-Stack符合ZigBee 2006规范,支持多种平台,包括基于CC2420收发器以及TI MSP430超低功耗单片机的平台,CC2430 SOC平台等。Z-Stack包含了网状网络拓扑的几近于全功能的协议栈,在竞争激烈的ZigBee领域占有很重要地位。

图 Z-Stack协议栈结构

第 8 页 共 107 页

Figure Architecture of Z-Stack

ZigBee stack应用开发相关概念

ZigBee术语

一、属性

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

二、群集

群集Cluster是包含一个或多个属性(attribute)的群组。简单的说,群集就是属性的集合。每个群集都被分配一个唯一的群集ID 且每个群集最多有65536个属性。

三、设备描述

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

四、端点

端点EndPoint是协议栈应用层的入口,也可以理解应用对象(Application Object)存在的地方,它是为实现一个设备描述而定义的一组群集。每个ZigBee设备可以最多支持240这样的端点,这也意味着在每个设备上可以定义240个应用对象。端点0被保留用于与ZDO接口而端点255被保留用于广播,端点241-254则被保留用于将来做扩展使用。[25]

五、配置文件

配置文件Profile可以理解为共同促成交互式应用的多个设备描述项的集合。 ZigBee联盟已经定义了部分标准的配置文件,比如远程控制开关配置文件和光传感器配置文件等。任何遵循某一标准配置文件的节点都可以与实现相同配置文件的节点进行互操作。用户也可以创建自己的配置文件然后递交ZigBee联盟测试、审核批准。

配置文件是对逻辑设备及其接口描述的集合,是面向某个应用类别的公约、准则。设备描述符是为分布应用提供的描述项,多种描述项共同组成描述集合Profile。定义Profile的目的就是使得不同厂商生产的ZigBee设备能够实现互操作。

六、节点

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

绑定(Binding)

ZigBee定义了一个称为端点绑定的特殊过程。绑定即在源节点的某个端点( EndPoint)和目标节点的某个端点之间创建一条逻辑链路。绑定可以发生在两个或多个设备之间。协调器节点维护一个基本上包括两个或多个端点之间的逻辑链路的绑定表。

在绑定表中,包含如下信息,源节点和目的节点的IEEE地址、Endpoint号以及ClusterID。对于可以建立绑定关系的两个节点,它们的Cluster的属性必须一个选择“输入”,另一个选择“输出”,而且ClusterID值相等,只有这样,它们彼此才能建立绑定。如果目标设备的扩

第 9 页 共 107 页

展地址是已知的,则调用zb_BindDeviceRequest( )函数可以创建一个绑定条目。

寻址(Addressing)

在ZigBee网络中,使用两种地址:

一种是64位的IEEE Address,也叫物理地址,64位地址在所有ZigBee设备之中是唯一,其中包含一个由IEEE分配、也是全球唯一的24位制造商特定组织标识符OUI(Organizationally Unique Identifier);

另一种是16位的NWK Address即网络地址,当设备加入ZigBee网络时,从允许其加入的父设备上获取16位网络地址。该地址在ZigBee网络中唯一,用于数据传输和数据包路由。

在Zigbee中,数据包可以单点传送(unicast),多点传送(multicast)或者广播传送(broadcast),所以必须有地址模式参数。一个单点传送数据包只发送给一个设备,多点传送数据包则要传送给一组设备,而广播数据包则要发送给整个网络的所有节点。当应用程序需要将数据包发送给网络上的一组设备时,还可以使用组寻址方式(Group Addressing)。

TI Z-Stack协议栈架构分析

协议栈定义通信硬件和软件在不同级如何协调工作。在网络通信领域,在每个协议层的实体们通过对信息打包与对等实体通信。在通信的发送方,用户需要传递的数据包按照从高层到低层的顺序依次通过各个协议层,每一层的实体按照最初预定消息格式向数据信息中加入自己的信息,比如每一层的头信息和校验等终抵达最低的物理层,变成数据位流,在物理连接间传递。在通信的接收方数据包依次向上通过协议栈,每一层的实体能够根据预定的格式准确的提取需要在本层处理的数据信息,最终用户应用程序得到最终的数据信息进行处理。

ZigBee无线网络的实现,是建立在ZigBee协议栈的基础上的,协议栈采用分层的结构协议分层的目的是为了使各层相对独立,每一层都提供一些服务,服务由协议定义,程序员只需关心与他的工作直接相关的那些层的协议,它们向高层提供服务,并由低层提供服务。

在ZigBee协议栈中,PHY、MAC层位于最低层,且与硬件相关;NWK、APS, APL层以及安全层建立在PHY和MAC层之上,并且完全与硬件无关。分层的结构脉络清晰、一目了然,给设计和调试带来极大的方便。

整个Z-Stack采用分层的软件结构,硬件抽象层(HAL)提供各种硬件模块的驱动,包括定时器Timer,通用I/O口GPIO,通用异步收发传输器UART,模数转换ADC的应用程序接口API,提供各种服务的扩展集。操作系统抽象层OSAL实现了一个易用的操作系统平台,通过时间片轮转函数实现任务调度,提供多任务处理机制。用户可以调用OSAL提供的相关API进行多任务编程,将自己的应用程序作为一个独立的任务来实现。整个Z-Stack协议栈结构如图2-13

Z-stack OSAL API 介绍

OSAL层是与协议栈独立的,但是整个协议都要基于OS才能运行。OSAL提供如下服务和管理:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。[28][29]

第 10 页 共 107 页


ZigBee技术(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:楚辞与诗经

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: