关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 无线传感器网络拓扑的监控与维护

无线传感器网络拓扑的监控与维护

作者:时间:2012-05-21来源:网络收藏

摘要:以ZigBee协议为基础,提出了一种新的结构的方法。创新性地设计了基于叶子节点的通讯模式,该模式运用协议栈自有运行流程来获取节点的加入或丢失信息、实现,并通过设计一种基于关联表的链表式存储结构来进行动态。经过在实际办公环境平台上验证表明,该方法数据传输量小,资源占用少,操作简便,具有较强的应用推广价值。

本文引用地址:http://www.amcfsurvey.com/article/160576.htm

关键词:网络;ZigBee;拓扑结构;监控与

0 引言

随着网络技术在军事、工农业、城市管理、环境监控等各个领域的快速发展,作为系统基础组成部分的网络拓扑结构成为研究的一个重要方面。目前,国内外的科研机构在网络拓扑发现以及拓扑的监控和管理方面开展了大量的相关研究工作,但大多停留在理论和仿真层面,这些通过在高性能的PC机上搭建仿真模型来验证算法效果的研究,大多缺乏能够应用到实际系统的可行性案例。安徽财经大学的赵涛,根据在聚合节点(sink)收集到网络内部节点报文接收或丢失的情况,通过发现网络中所有叶子节点到sink节点的数据传输路径,来推测网络的逻辑拓扑。该方法计算比较复杂,120节点规模网络在主频为2.8 GHz的CPU主机上运行尚需9秒的时间,同时会受到节点资源、计算速度、实施条件等限制,因此,这种方法很难在实际应用中实现。德州仪器(TI)公司的官方网站也给出了一种获取网络拓扑结构的方法,该方法采用发送网络发现命令的方式,并通过返回结果来确定网络拓扑结构。此法虽然能够在实际应用中实施,但需要定期向网络中的所有节点发送发现命令,因而数据消耗量巨大。

本文以Z-stack协议栈为基础,采用叶子节点通讯方式,并利用协议自身的运行流程,提出了一种轻量数据消耗、真正面向应用的拓扑监控方案,同时通过设计一种基于关联表的链式存储结构来实现对网络拓扑信息的维护,因而在解决网络监控与维护方面更具有实际应用价值。

1 Z-stack协议栈原理简介

作为ZigBee联盟的一个重要的组织成员,2007年,TI公司宣布推出业界领先的ZigBee协议栈Z-Stack。Z-Stack符合ZigBee 2006规范,能支持多种平台,其中包括本系统使用的、面向IEEE 802.15.4/ZigBee的CC2430片上系统解决方案。

1.1 ZigBee协议栈的体系结构及信息传递流程

ZigBee协议栈的体系结构如图1所示,由图可见,ZigBee协议采用分层体系结构,由物理层(PHY)、介质接入控制子层(MAC层)、网络层(NWK)和应用层(APL)组成。其中,应用层框架包括了应用支持子层(APS)、ZigBee设备对象(ZDO)及由制造商制定的应用对象。

a.JPG

在ZigBee网络中,信息或数据的传递将依照上述层次结构实现。上层发送的数据或指令按照应用层-网络层-MAC层-物理层的顺序,从上至下依次进行处理;底层返回的数据则按照物理层-MAC层-网络层-应用层的顺序,从下至卜处理后返回给上层用户。每个层次负责发送到本层数据的分析和判断,并对于属于本层次的数据或指令做出相应的动作响应;对于不属十本层的数据,则按照规定格式打包后发送给上、下一层。

1.2 节点加入与失步流程

为了维护系统的正常运行,ZigBee协议栈还提供了一些必须的消息响应流程,其中包括节点加入网络和失步响应的流程。

b.JPG

节点加入流程如图2所示。当子节点申请加入网络时,会启动加入流程。子节点的加入请求通过其NWK层、MAC层、PHY层传递给父节点;父节点收到加入通知消息后,又通过其PHY层、MAC层、NWK层将该情况上传给应用层,最后通过ZDO JoinIndicationCB()函数的调用,得到子节点加入的消息。

节点失步流程是指终端节点丢失其父节点的同步信号时,向上层报告的失步情况发生的流程。其具体流程如图3所示。

c.JPG

终端节点每隔一段时间就会开启与父节点的同步,当在设定时间内没有接收到父节点的同步信号时,就会产生失步指示信息,协议栈将该失步信息层层上传,最后通过调用ZDOSynclndicationCB()函数,将信息传达到应用层。

1.3 关联表

TI的Z-stack协议栈在全功能节点中可以维护associateddevices t结构的关联表,关联表中保存有与本节点直接关联(父子节点)的相关信息,包括关联节点的短地址、设备类型、连接状态等,基本上可以满足网络拓扑结构监控和维护的信息需求。

TI的ZigBee协议栈虽然可为用户开发提供强大支持,但是在网络监控和维护上并没有专用的接口。一方面,该协议栈只能发现节点加入网络,但是无法发现节点非主动性的丢失或退出,因而不具备网络拓扑监控的功能;另一方面,协议在每个全功能节点中部维护了与之关联设备的关联表,但是并没有维护整体网络的关联信息,因而无法掌控网络拓扑的全貌。鉴于协议栈在网络拓扑功能上的不足和缺陷,本文以协议基本流程为基础,提出一种实现整体网络拓扑监控和维护的方法,该方法可以满足一般系统对于拓扑结构的监控和维护需求。

2 网络拓扑结构监控

网络拓扑结构监控的主要目的是实现拓扑结构的建立和在结构发生变化时及时获取变化情况,其中最主要的是实现节点加入和退出事件的捕捉。节点加入事件的获取相对容易,可以通过加入节点主动上报等方式来获取;而节点丢失事件获取要复杂得多。现阶段,对节点丢失情况的监控多采用系统定期查询的手段。采用查询方法时,其实时性与查询周期的长短直接相关:查询周期设置较长,拓扑变化反映时间增长,实时性变差;而查询周期设置较短,则传输数据量增大,占用系统资源,往往很难在二者之间找到平衡点。协议栈中数据或消息的传递是一个复杂的过程,为了尽可能地降低系统资源的占用、节约能耗,除了维护系统正常运行所必须的数据通讯外,还应尽量减少人为添加(应用层)的数据通讯量。因此,最好的办法就是利用协议自身的数据传递或者节点加入、失步等流程来实现相关信息的获取。

本文设计了一种基于网关——叶子节点通讯的节点丢失情况获取方法,该方法可以利用协议栈自身的运行流程,以较少的数据通讯量和简单的操作,实现网络中所有节点的丢失情况获取。

2.1 节点加入事件的获取

通常情况下,节点加入事件多采用加入节点主动上报的方法来获取。该方法操作简单,但是需要人为地发送相关加入信息,会增加系统数据通讯量。由图2所示的节点加入流程可知,如果有子节点加入网络,加入的指示信息都会通过ZDOJoinIndmationCB()函数的调用报告给父节点。即该函数的调用证明有了节点的加入事件。因此,本文通过在此函数中添加向应用程序报告的功能,即可通知用户了节点加入事件的发生。

2.2 节点丢失信息的获取

由图3所示的流程可知,协议栈通过调用vold ZDOSyncIndicationCB(byte type,uint16 shortAddr)函数可实现失步情况的报告。该函数具有节点丢失的指示功能,并能够指示丢失节点与本节点的父子关系和短地址等。但在实际的应用中发现,该函数的调用是有条件限制的,具体实施条件如下:

父节点丢失:从失步报告流程可知,终端节点能够自动轮询发现其父节点同步信号的丢失,而无需人为添加任何触发条件,引发函数调用。但路由节点不支持与父节点的轮询机制,因而不能产生父节点丢失情况的报告。

子节点丢失:对于包括终端节点在内的所有类型节点的子节点丢失,在未加相应处理的情况下,协议栈都不会引发该函数的调用。

由实施条件可知,该函数的丢失指示并不适用于所有类型节点的丢失情况,因此,如果要得到除终端父节点外网络中所有节点的丢失情况,就需要人为加入其他处理,以触发ZDOsynclndicationCB()函数的调用,从而实现丢失事件的获取。

2.3 叶子节点通讯触发方法

通常采用的基于查询的网络发现机制部需要在所有节点间发送数据,因而增大系统的数据开销。这里以图4所示的拓扑结构为例,图中的叶子通讯需要进行14条数据的查询和14条数据的应答才能够完成一次节点丢失情况的获取。为了尽可能减少数据通讯和操作的复杂度,本文设计了一种基于网关——叶子节点通讯的节点丢失情况获取方法,以便用较少的数据通讯量和简单的操作来实现网络中听有节点的丢失情况获取。

d.JPG

研究发现,失步函数的触发可以通过加入数据通讯来实现。因为在数据发送的过程中,协议栈会开启数据发送流程,数据发送后则会自动检测接收方应答帧。这样,如果节点丢失,则发送节点无法接收到有效应答,进而引发节点失步指示函数的触发。

具体触发时,如果节点之间有数据通讯,发送数据节点则能够发现接收数据节点的丢失,从而引发vold ZDOSynclndicationCB(byte type,uint16 shortAddr)函数的调用。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭