公开/公告号CN102970702A
专利类型发明专利
公开/公告日2013-03-13
原文格式PDF
申请/专利权人 中国科学院微电子研究所;
申请/专利号CN201210510343.3
申请日2012-12-03
分类号H04W24/04;H04W84/18;
代理机构北京集佳知识产权代理有限公司;
代理人王宝筠
地址 100029 北京市朝阳区北土城西路3号
入库时间 2024-02-19 17:52:51
法律状态公告日
法律状态信息
法律状态
2016-03-02
授权
授权
2013-04-10
实质审查的生效 IPC(主分类):H04W24/04 申请日:20121203
实质审查的生效
2013-03-13
公开
公开
技术领域
本发明涉及无线传感器网络领域,尤其涉及一种基于Zigbee协议的无线 传感器网络结构维护方法及系统。
背景技术
Zigbee是一种开放性的低成本、低功耗、低数据速率、低复杂度、双向 传输、高可靠性的新型短距离无线通信技术,该技术应用简单,电池寿命长, 成本低,可靠性高,具有自组网和自恢复能力。
Zigbee可以在数千个节点之间相互协调实现通信。这些节点只需要很少 的能量,以接力的方式通过无线电波将数据从一个节点传到另一个节点,所以 它们的通信效率非常高。因此Zigbee在传感器网络、智能家居、工业自动化 等领域有着广泛的应用。
为了方便的获知网络的信息,需要对网络的结构进行监控和维护。以基于 Zigbee协议的无线传感器网络为例,目前,主要通过在网络的全功能节点处 即网关节点和路由节点处维护一张只与全功能节点直接关联的节点信息的关 联表对网络进行管理。当上述关联表中的节点发生变化时,进行更新。但因为 只保存直接关联的节点信息,因此,上述方式无法使用户从网关处获知整个网 络的主要结构信息。
发明内容
本发明旨在提供一种基于Zigbee协议的无线传感器网络结构维护方法及 系统,以实现在网关节点处对网络中所有节点信息的维护。
基于此,本发明提供了一种基于Zigbee协议的无线传感器网络结构的维护 方法,所述方法包括:
网关节点预先建立网络拓扑结构信息表的步骤;
所述网关节点检测到网关子节点的变化,所述网关节点生成网关子节点变 化信息的步骤,所述网关子节点包括网络中与网关节点存在父子关系的路由节 点和/或终端节点;
网络中路由节点检测到路由子节点的变化,所述路由节点生成路由子节点 变化信息并上报至所述网关节点的步骤;
所述网关节点根据网络中节点的变化信息更新所述网络拓扑结构信息表, 以供用户查询的步骤,所述网络中节点包括所述网关子节点和所述路由子节 点;
其中,所述网关节点预先建立网络拓扑结构信息表的步骤包括;
所述网关节点在所述网络中广播节点信息收集命令;
网络中的节点根据收到的所述广播节点信息收集命令返回自身的节点信 息至所述网关节点;
所述网关节点将所述网络中的节点返回的所述节点信息进行组合生成网 络拓扑结构信息表并存储。
优选的,所述网关节点检测到网关子节点的变化,生成网关子节点变化信 息,其中,所述网关子节点变化信息包括网关子节点加入信息和网关子节点丢 失信息;
所述网关节点检测到网关子节点的变化,生成网关子节点加入信息,包括:
当一节点以所述网关节点为父节点加入所述网络时,所述网关节点生成网 关子节点加入信息;
所述网关节点检测到网关子节点的变化,生成网关子节点丢失信息,包括:
所述网关节点根据待发送数据的目的节点确定下一跳网关子节点;
所述网关节点将所述待发送数据发送至所述下一跳网关子节点;
所述网关节点根据所述待发送数据的接收状态判断所述下一跳网关子节 点是否丢失;
当所述网关子节点丢失时,则所述网关节点生成网关子节点丢失信息。
优选的,所述网关节点根据网络中节点的变化信息更新所述网络拓扑结构 信息表,包括:
当所述节点的变化信息为节点的加入信息时,所述网关节点根据网络拓扑 结构信息表的内容判断所述节点是否存在于所述网络中;
若所述节点存在于所述网络中,则所述网关节点更新所述网络拓扑结构信 息表中存储的所述节点的相应信息;
若所述节点未存在于所述网络中,则所述网关节点在所述网络拓扑结构信 息表中为所述节点分配存储空间,并增加对应的父子信息;
当所述节点的变化信息为节点的丢失信息时,所述网关节点根据网络拓扑 结构信息表的内容判断所述节点是否已经存在于所述网络中;
若所述节点存在于所述网络中,则所述网关节点在所述网络拓扑结构信息 表中删除所述节点的信息;
若所述节点未存在于所述网络中,则所述网关节点提示出错。
优选的,所述网络中路由节点检测到路由子节点的变化,生成路由子节点 变化信息并上报至所述网关节点;其中,所述路由子节点变化信息包括路由子 节点加入信息和路由子节点丢失信息;
所述路由节点检测到路由子节点的变化,生成路由子节点加入信息,包括:
当一节点以所述路由节点为父节点加入所述网络时,所述路由节点生成路 由子节点加入信息;
所述路由节点上报所述路由子节点加入信息至所述网关节点;
所述路由节点检测到路由子节点的变化,生成路由子节点丢失信息,包括:
所述路由节点根据待发送数据的目的节点确定下一跳节点;
所述路由节点将所述待发送数据发送至所述下一跳节点;
所述路由节点根据所述待发送数据的接收状态确定所述下一跳节点是否 丢失;
若所述下一跳节点丢失,且所述下一跳节点为所述路由节点的子节点,则 在所述路由节点的协议层生成路由子节点丢失信息并上报至所述路由节点的 应用层;
当所述路由节点的应用层接收到所述路由子节点丢失信息时,所述路由节 点将所述路由子节点丢失信息上报至所述网关节点;
若所述下一跳节点丢失,且所述下一跳节点为路由节点的父节点,则在所 述路由节点的协议层生成路由父节点丢失信息并上报至所述路由节点的应用 层;
当所述路由节点的应用层接收到所述路由父节点丢失信息时,所述路由节点开 启节点加入流程,选择合适的节点为父节点重新加入所述网络。
优选的,所述方法还包括:
所述路由节点根据所述路由子节点的变化信息更新存储于所述路由节点的路 由节点拓扑结构信息表,以供用户查询所述路由节点处的拓扑结构信息。
优选的,所述路由节点根据所述路由子节点的变化信息更新存储于所述路 由节点的路由节点拓扑结构信息表包括:
当所述路由子节点的变化信息为加入信息时,所述路由节点根据路由节点 拓扑结构信息表的内容判断所述路由子节点是否已经存在于所述网络中;
若是,则更新在所述路由节点拓扑结构信息表中所存储的所述路由子节点 的信息;
若否,则在所述路由节点拓扑结构信息表中为所述路由子节点分配存储空 间,并增加对应的父子信息;
当所述路由子节点的变化信息为丢失信息时,所述路由节点根据路由节点 拓扑结构信息表的内容判断所述路由子节点是否已经存在于所述网络中;
若是,则所述路由节点在所述路由节点拓扑结构信息表中删除所述路由子 节点的信息;
若否,则所述路由节点提示出错。
优选的,所述方法还包括:
终端节点根据待发送数据目的节点确定下一跳终端父节点;
所述终端节点发送所述待发送数据至所述下一跳终端父节点;
所述终端节点根据所述待发送数据的接收状态判断所述终端父节点是否 丢失;
若所述终端父节点丢失,则生成终端父节点丢失信息;
所述终端节点根据所述终端父节点丢失信息开启孤点加入流程,选择所述 终端节点的父节点为父节点加入所述网络;
若无法加入,则所述终端节点开启节点加入流程,选择其他合适的节点为 父节点加入所述网络。
优选的,所述网络拓扑结构信息表采用分级动态链表形式,在每一级中存 储上一级节点对应的子节点信息。
对应上述方法,本发明还提供了一种基于Zigbee协议的无线传感器网络 结构的维护系统,所述系统包括网关节点、路由节点和终端节点;
所述网关节点包括:
网络拓扑结构信息表建立单元,用于预先建立网络拓扑结构信息表;
网关子节点变化信息生成单元,用于在检测到网关子节点的变化时生成网 关子节点变化信息;所述网关子节点包括网络中与网关节点存在父子关系的路 由节点和/或终端节点;
网关更新单元,用于根据网络中节点的变信息更新所述网络拓扑结构信息 表,以供用户查询;所述网络中节点包括所述网关子节点和所述路由子节点;
所述路由节点包括:
路由子节点变化信息生成单元,用于在检测到路由子节点的变化时生成路 由子节点变化信息并上报至所述网关节点;
路由节点信息返回单元,用于根据接收到的广播节点信息收集命令返回自 身的节点信息至所述网关节点;
所述终端节点包括:
终端节点信息返回单元,用于根据接收到的广播节点信息收集命令返回自 身的节点信息至所述网关节点;
所述网络拓扑结构信息表建立单元包括:
广播单元,用于在所述网络中广播节点信息收集命令;
网络拓扑结构信息表建立子单元,用于根据路由节点信息返回单元和终端 节点信息返回单元返回的节点信息进行组合生成网络拓扑结构信息表并存储。
优选的,所述网关子节点变化信息生成单元,包括:网关子节点加入信息 生成单元和网关子节点丢失信息生成单元;
所述网关子节点加入信息生成单元,用于在检测到网关子节点的变化时, 生成网关子节点加入信息;
所述网关子节点加入信息生成单元,具体用于当一节点以所述网关节点为 父节点加入所述网络时,生成网关子节点加入信息;
所述网关子节点丢失信息生成单元,用于在检测到网关子节点的变化,生 成网关子节点丢失信息,包括:
第一下一跳节点确定单元,用于根据待发送数据的目的节点确定下一跳网 关子节点;
第一数据发送单元,用于将所述待发送数据发送至所述下一跳网关子节 点;
网关子节点丢失判断单元,用于根据所述待发送数据的接收状态判断所述 下一跳网关子节点是否丢失;
网关子节点丢失信息生成子单元,用于当所述网关子节点丢失时,生成网 关子节点丢失信息。
优选的,所述网关更新单元包括:
网关加入信息判断单元,用于当所述节点的变化信息为节点的加入信息 时,根据网络拓扑结构信息表的内容判断所述节点是否存在于所述网络中;
网关加入信息更新子单元,用于在所述节点存在于所述网络中时,更新所 述网络拓扑结构信息表中存储的所述节点的相应信息;
网关分配单元,用于在所述节点未存在于所述网络中时,在所述网络拓扑 结构信息表中为所述节点分配存储空间,并增加对应的父子信息;
网关丢失信息判断单元,用于当所述节点的变化信息为节点的丢失信息 时,根据网络拓扑结构信息表的内容判断所述节点是否已经存在于所述网络 中;
网关丢失信息删除单元,用于在若所述节点存在于所述网络中时,在所述 网络拓扑结构信息表中删除所述节点的信息;
网关提示单元,用于在所述节点未存在于所述网络中时,提示出错。
优选的,所述路由子节点变化信息生成单元包括路由子节点加入信息生成 单元和路由子节点丢失信息生成单元;
所述路由子节点加入信息生成单元,用于在检测到路由子节点的变化时, 生成路由子节点加入信息;
所述路由子节点加入信息生成单元,包括:
路由子节点加入信息生成子单元,用于当一节点以所述路由节点为父节点 加入所述网络时,生成路由子节点加入信息;
所述路由子节点丢失信息生成单元,具体用于在检测到路由子节点的变化 时,生成路由子节点丢失信息;包括:
第二下一跳节点确定单元,用于根据待发送数据的目的节点确定下一跳节 点;
第二数据发送单元,用于将所述待发送数据发送至所述下一跳节点;
路由子节点丢失判断单元,用于根据所述待发送数据的接收状态确定所述 路由节点的下一跳节点是否丢失;
协议层上报单元,用于在所述下一跳路由子节点丢失,且所述下一跳路由 节点为所述路由节点的子节点时,在所述路由节点的协议层生成路由子节点丢 失信息并上报至所述路由节点的应用层;
应用层上报单元,用于在所述路由节点的应用层接收到所述路由子节点丢 失信息时,将所述路由子节点丢失信息上报至所述网关节点;
所述协议层上报单元,还用于在所述下一跳节点丢失,且所述下一跳节点 为路由节点的父节点时,在所述路由节点的协议层生成路由父节点丢失信息并 上报至所述路由节点的应用层;
应用层上报单元,还用于当所述路由节点的应用层接收到所述路由父节点 丢失信息时,开启节点加入流程,选择合适的节点为父节点重新加入所述网络。
优选的,所述路由节点还包括:
路由更新单元,用于根据所述路由子节点的变化信息更新存储于所述路由 节点的路由节点拓扑结构信息表,以供用户查询所述路由节点处的拓扑结构信 息。
优选的,所述路由更新单元包括:
路由加入信息判断单元,用于当所述路由子节点的变化信息为加入信息 时,根据路由节点拓扑结构信息表的内容判断所述路由子节点是否已经存在于 所述网络中;
路由加入信息更新子单元,用于在所述路由子节点已经存在于所述网络中 时,更新在所述路由节点拓扑结构信息表中所存储的所述路由子节点的信息;
路由分配单元,用于在所述路由子节点未存在于所述网络中时,在所述路 由节点拓扑结构信息表中为所述路由子节点分配存储空间,并增加对应的父子 信息;
路由丢失信息判断单元,用于当所述路由子节点的变化信息为丢失信息 时,根据路由节点拓扑结构信息表的内容判断所述路由子节点是否已经存在于 所述网络中;
路由丢失信息删除单元,用于在所述路由子节点已经存在于所述网络中 时,在所述路由节点拓扑结构信息表中删除所述路由子节点的信息;
路由提示单元,用于在所述路由子节点未存在于所述网络中时提示出错。
优选的,所述终端节点还包括:
终端父节点确定单元,用于根据待发送数据目的节点确定下一跳终端父节 点;
终端数据发送单元,用于发送所述待发送数据至所述下一跳终端父节点;
终端父节点丢失判断单元,用于根据所述待发送数据的接收状态判断所述 终端父节点是否丢失;
终端父节点丢失信息生成单元,用于在所述终端父节点丢失时,生成终端 父节点丢失信息;
孤点加入单元,用于根据所述终端父节点丢失信息开启孤点加入流程,选 择所述终端节点的父节点为父节点加入所述网络;
节点加入单元,用于在所述父节点无法通过孤点加入流程加入时,开启节 点加入流程,选择其他合适的节点为父节点加入所述网络。
与现有技术相比,本发明具有如下有益效果:
本发明中网关节点预先建立网络拓扑结构信息表;网关节点检测到网关子 节点即网络中与网关节点存在父子关系的路由节点和/或终端节点的变化后生 成网关子节点变化信息,网络中路由节点检测到路由子节点的变化后生成路由 子节点变化信息并上报至所述网关节点;网关节点根据网络中节点即所述网关 子节点和所述路由子节点的变化信息更新网络拓扑结构信息表,供用户查询, 通过上述过程使得在网关节点处维护了网络中所有节点的信息,在后续用户查 询时可以直接从网关节点处获知所有节点的信息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是 本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的 前提下,还可以根据这些附图获得其他的附图。
图1是本发明网络中各类型节点连接示意图;
图2是本发明方法实施例流程图;
图3是本发明中网关节点生成网关子节点丢失信息流程图;
图4是本发明路由节点生成路由子节点丢失信息流程图;
图5是本发明终端节点生成终端父节点变化信息流程图;
图6是本发明网关节点更新网络拓扑结构信息表流程图;
图7是本发明网络拓扑结构信息表结构图;
图8是本发明网络中各节点信息维护示意图;
图9是本发明系统实施例结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其 他实施例,都属于本发明保护的范围。
在本发明中,子节点和父节点是依据基于ZigBee协议的网络中的节点通 信关系划分的。当网络中的某台设备通过另一台设备加入网络时,这两台设备 就构成了父子关系,新接入的设备成为子节点,而另一台设备称为该子节点的 父节点。例如,设备A通过设备B加入到该ZigBee网络中,则设备A称为子 节点,设备B称为设备A这个子节点的父节点。
在网络中,节点包括网关节点、路由节点和终端节点三种类型。如图1 所示,网关节点为a1,终端节点为a3,路由节点为a2。其中,路由节点a2和 终端节点a3经常会发生掉电、错误、离开或信号变弱等情况,导致不能被检 测,我们称之为节点丢失。当有路由节点a2和终端节点a3加入网络时,为节 点加入。
节点的丢失和加入都是节点的一种变化,在网络中是经常发生的情况。为 保证网络的稳定,用户需要掌握网络的现状以便及时作出调整。
为此,本发明实施例1提供了一种基于Zigbee协议的无线传感器网络结 构的维护方法,参见图2,所述方法包括:
S11、网关节点预先建立网络拓扑结构信息表的步骤。
网关节点预先建立网络拓扑结构信息表的方法有多种,本发明实施例2 提供了一种具体方式,包括如下步骤:
所述网关节点在所述网络中广播节点信息收集命令。
网络中的节点根据收到的所述广播节点信息收集命令返回自身的节点信 息至所述网关节点。
所述网关节点将所述网络中的节点返回的所述节点信息进行组合生成网 络拓扑结构信息表并存储。
需要说明的是,本发明用以在网关节点处查询网络中所有节点的状态,因 此本发明中的拓扑结构信息表应当包含建立该信息表时网络中所有节点的信 息。
S12、所述网关节点检测到网关子节点的变化,所述网关节点生成网关子 节点变化信息的步骤,所述网关子节点包括网络中与网关节点存在父子关系的 路由节点和/或终端节点。
S13、网络中路由节点检测到路由子节点的变化,所述路由节点生成路由 子节点变化信息并上报至所述网关节点的步骤。
S14、所述网关节点根据网络中节点的变化信息更新所述网络拓扑结构信 息表,以供用户查询的步骤,所述网络中节点包括所述网关子节点和所述路由 子节点。
为使本发明更加清楚,以下分几部分对上述实施例进行介绍。
首先对网关节点生成网络中网关子节点的变化信息进行介绍。
在本发明中,网关节点生成网关子节点变化信息可以通过多种方法实现。
比如,可以通过网关节点周期性查询的方式。即网关节点每隔一定的时间 向网关子节点发送查询信息,若网关子节点正常回复,则认为该网关子节点正 常,否则认为该网关子节点离开网络。但这种方式中网络结构信息的反映实时 性与查询周期的长短直接相关,查询周期设置较长,系统网络结构信息的变化 反映时间就增长,实时性变差。若查询周期设置较短,就增大了传输的数据量, 占用了网络有限的资源。
另一种方式是通过变化节点主动上报的方式对网络进行监控。即当网关子 节点发生变化时,主动上报变化信息至网关节点。但这种方式不具备对突发情 况(如节点忽然丢失、损坏等)的反映能力。
针对此,本发明实施例3提供了一种优选的方式,能够解决上述两种方式 存在的问题。
如前所述,节点的变化包括节点加入和节点丢失两种情况,对应的该优选 的方式具体包括网关节点检测网关子节点的变化生成网关子节点加入信息和 网关节点检测网关子节点的变化,生成网关子节点丢失信息。
其中,网关节点检测网关子节点的变化生成网关子节点加入信息包括:
当一节点以网关节点为父节点加入网络时,网关节点生成网关子节点加入 信息。
参见图3,网关节点检测网关子节点的变化生成网关子节点丢失信息包括 如下步骤:
S21、网关节点根据待发送数据的目的节点确定下一跳网关子节点。
对于网络中的节点来说,其待发送数据可以是本节点自己构造的数据,也 可以是接收的其它节点发送来并由本节点转发的数据。对于网关节点来说,不 可能接收其它节点发送的数据,因此,此处的待发送数据实际是指网关节点自 身构造的数据。
网关节点在网络层获取到该待发送数据的目的节点,进而查询本节点所保 存的路由表,确定出下一跳节点。
S22、网关节点将上述待发送数据发送至确定出的下一跳网关子节点。
S23、网关节点根据待发送数据的接收状态判断下一跳网关子节点是否丢 失。
S24、当判断出该下一跳网关子节点丢失时,网关节点生成网关子节点丢 失信息。
如果确定出的下一跳网关子节点仍处于网络中,即下一跳网关子节点未丢 失,则该下一跳网关子节点会接收到该待发送数据。如果该下一跳网关子节点 丢失,则网关节点的ZigBee协议栈底层(即应用层以下的协议层)可以获知 该下一跳网关子节点并未接收到该待发送数据,同时在该协议栈底层生成指示 该下一跳网关子节点丢失的丢失指示消息。本发明中当在协议栈底层生成该丢 失指示消息后,会将该丢失指示消息逐层上报,最终由网络层将该丢失指示消 息上报给应用层的ZigBee设备对象(ZDO,Zigbee Device Obiect),以便ZigBee 协议栈中应用层的ZigBee设备对象获取到该下一跳网关子节点丢失的信息。
本发明中为了能够让Zigbee协议栈中应用层的应用对象获取到节点丢 失,当从ZigBee设备对象中获取到丢失指示消息时,提取出该消息中包含的 节点的网络信息,并进一步将该节点的网络信息作为节点丢失信息上报给应用 对象,进而使得应用对象可以实时获取到节点丢失信息。
需要说明的是,该丢失指示消息中包含的节点的网络信息可以包括:丢失 节点的网络地址,以及丢失节点与本节点的通信关系,如,丢失节点为本节点 的子节点或者丢失节点为本节点的父节点。此处的通信关系为网关节点的子节 点。其中,丢失指示消息中所包含节点的网络信息被认为是丢失节点的网络信 息。
其次,对路由节点检测到路由子节点的变化,生成路由子节点变化信息进 行介绍。
同网关节点相同,根据路由子节点的不同变化,路由节点在检测到路由子 节点时可能会生成路由子节点加入信息,也有可能生成路由子节点丢失信息。
其中,当一节点以路由节点为父节点加入网络时,该路由节点生成路由子 节点加入信息。之后路由节点会将该信息上报至网关节点,以便网关节点据此 更新网络拓扑结构信息表。
同网关节点生成网关子节点的丢失信息类似,参见图4,路由节点生成路 由子节点的丢失信息包括如下步骤:
S31、路由节点根据待发送数据的目的节点确定下一跳节点。
S32、路由节点将待发送数据发送至所述确定出的下一跳节点。
S33、路由节点根据待发送数据的接收状态确定该下一跳节点是否丢失。
S34、若该下一跳节点丢失,且该下一跳节点为路由节点的子节点,则在 路由节点的协议层生成路由子节点丢失信息并上报至路由节点的应用层。
S35、当路由节点的应用层接收到路由子节点丢失信息时,路由节点将路 由子节点丢失信息上报至网关节点。
S36、若下一跳节点丢失,且下一跳节点为路由节点的父节点,则在路由 节点的协议层生成路由父节点丢失信息并上报至路由节点的应用层。
S37、当路由节点的应用层接收到路由父节点丢失信息时,路由节点开启 节点加入流程,选择合适的节点为父节点重新加入网络。
在网络中,网关节点只有子节点,其发送的待发送数据也只能是自己构造 的。与之不同的是,路由节点既有子节点也有父节点,其发送的待发送数据既 可以是自己构造的,也可以是从上一跳节点接收的。根据目的节点的不同,路 由节点有可能将数据发送至父节点,也有可能发送至子节点,即路由节点的下 一跳节点有可能是路由子节点,也有可能是路由父节点。由于后续的处理方式 不同,因此,要对其进行判断。
具体的,如果该路由节点的下一跳节点丢失,则路由节点的ZigBee协议 栈底层(即应用层以下的协议层)可以获知该下一跳节点并未接收到该待发 送数据,同时在该协议栈底层生成指示该下一跳节点丢失的丢失指示消息。本 发明中当在协议栈底层生成该丢失指示消息后,会将该丢失指示消息逐层上 报,最终由网络层将该丢失指示消息上报给应用层的ZigBee设备对象(ZDO, Zigbee Device Obiect),以便ZigBee协议栈中应用层的ZigBee设备对象获取 到该下一跳节点丢失的信息。
本发明中为了能够让Zigbee协议栈中应用层的应用对象获取到节点丢失 信息,当从ZigBee设备对象中获取到丢失指示消息时,提取出该消息中包含 的节点的网络信息,并进一步将该节点的网络信息作为节点丢失信息上报给应 用对象,进而使得应用对象可以实时获取到节点丢失信息。
需要说明的是,该丢失指示消息中包含的节点的网络信息可以包括:丢失 节点的网络地址,以及丢失节点与路由节点的通信关系,如,丢失节点为路由 节点的子节点或者丢失节点为路由节点的父节点。
当应用对象根据节点丢失信息发现丢失节点为路由子节点时,会将该节点 丢失信息上报至网关节点。
当应用对象根据节点丢失信息发现丢失节点为路由节点的父节点时,该应 用对象开启节点加入流程,选择合适的节点为父节点重新加入网络。
在本发明中,除网关节点和路由节点检测节点变化生成节点变化信息外, 还包括终端节点检测节点变化生成节点变化信息的步骤。
终端节点只有父节点,因此,终端节点根据对节点的检测只会生成终端父 节点变化信息。具体过程如图5所示,包括:
S41、终端节点发送待发送数据至下一跳终端父节点。
终端节点的待发送数据是自己构造的。
S42、终端节点根据待发送数据的接收状态判断终端父节点是否丢失。
S43、若终端父节点丢失,则生成终端父节点丢失信息。
同上述方式类似,如果该终端节点的父节点丢失,则终端节点的ZigBee协 议栈底层(即应用层以下的协议层)可以获知该终端父节点并未接收到该待 发送数据,同时在该协议栈底层生成指示该终端父节点丢失的丢失指示消息。 本发明中当在协议栈底层生成该丢失指示消息后,会将该丢失指示消息逐层上 报,最终由网络层将该丢失指示消息上报给应用层的ZigBee设备对象(ZDO, Zigbee Device Obiect),以便ZigBee协议栈中应用层的ZigBee设备对象获取 到该终端父节点丢失的信息。
当从ZigBee设备对象中获取到丢失指示消息时,提取出该消息中包含的 节点的网络信息,并进一步将该节点的网络信息作为节点丢失信息上报给应用 对象,进而使得应用对象可以实时获取到节点丢失信息。
需要说明的是,该丢失指示消息中包含的节点的网络信息可以包括:丢失 节点的网络地址,以及丢失节点与终端节点的通信关系,此处为终端节点的父 节点。
S44、终端节点根据终端父节点丢失信息开启孤点加入流程,选择终端节 点的父节点为父节点加入网络。
孤点加入流程即以该丢失的父节点为父节点,将其重新加入网络。
S45、若无法加入,则终端节点开启节点加入流程,选择其他合适的节点 为父节点加入网络。
在原父节点无法加入时,选择其他合适的节点为终端节点的父节点加入网 络。
本发明中,待发送数据可以为任意数据,如可以为与协议栈相关的数据, 也可以是普通通信数据。
上述过程中涉及发送待发送数据的节点判断下一跳节点是否接收到待发 送数据。其具体判断方式有多中,其中一种方式为:判断ZigBee协议栈底层 在指定时间内是否接收到该下一跳节点返回的确认接收到待发送数据的消息, 如果是,则该下一跳节点处于网络中;如果否,则下一跳节点丢失。也就是说, 如果该下一跳节点接收到待发送数据后,会向其上一跳节点回复一个确认消 息,以表示自己接收到待发送数据。当发送待发送数据的节点的协议层在指定 时间内没有检测或接收到该下一跳节点返回的确认消息,则在协议层中生成指 示下一跳节点丢失的丢失指示消息。
需要明确的是,有时候下一跳节点只是暂时的失去联系,而非真正的丢失, 尤其是下一跳子节点,可以通过孤立加入申请,很快的加入网络,恢复正常的 运行状态。因此,在发现下一跳子节点失去联系时,可定时一段时间,再作判 断。比如定时一段时间比如三秒后,下一跳子节点仍旧失去联系,则确定下一 跳子节点丢失,生成下一跳子节点丢失信息。
关于上述网关节点、路由节点以及终端节点检测节点的变化生成相关节点 丢失信息的具体过程可参见申请号为201110391507.0,发明名称为“基于 ZigBee协议获取节点丢失信息的方法和系统”以及申请号为201110391517.0, 发明名称为“基于ZigBee协议获取节点丢失信息的方法和系统”的专利申请。 此处不再详述。
接下来对网关节点更新网络拓扑结构信息表的过程进行描述。通过上述过 程可知,路由节点会将自身生成的路由子节点丢失信息以及路由子节点加入信 息上报至网关节点,因此,在网关节点处就汇集了路由子节点的变化信息和网 关子节点的变化信息。网关节点根据这些变化信息更新网络拓扑结构信息表。 其具体过程参见图6:
S51、判断节点的变化信息为节点的加入信息还是节点的丢失信息。若为 节点的加入信息,转入步骤S52;若为节点的丢失信息,转入步骤S55。
S52、网关节点根据网络拓扑结构信息表的内容判断节点是否存在于网络 中。若存在于所述网络中,转入步骤S53。若没有存在于所述网络中,则转入 步骤S54。
S53、网关节点更新网络拓扑结构信息表中存储的该节点的相应信息。
S54、网关节点在所述网络拓扑结构信息表中为该节点分配存储空间,并 增加对应的父子信息。
S55、网关节点根据网络拓扑结构信息表的内容判断该节点是否已经存在 于所述网络中。若存在于所述网络中,转入步骤S56,若否,转入步骤S57。
S56、网关节点在网络拓扑结构信息表中删除该节点的信息。
S57、网关节点提示出错。
考虑到网关资源有限,为节省存储空间,网络拓扑结构信息表可以选用分 级动态链表的形式,具体如图7所示。
本发明优选实施例中,可同时在路由节点处维护路由节点拓扑结构信息 表,以供用户查询该路由节点处的拓扑结构信息。具体过程如下:
判断路由子节点的变化信息为节点加入信息还是节点丢失信息。
若为节点加入信息,则路由节点根据路由节点拓扑结构信息表的内容判断 该路由子节点是否已经存在于所述网络中。如果存在于所述网络中,则路由节 点更新所述路由节点拓扑结构信息表中存储的该路由子节点的信息;如果没有 存在于所述网络中,则路由节点在路由节点拓扑结构信息表中为路由子节点分 配存储空间,并增加对应的父子信息。
当路由子节点的变化信息为丢失信息时,路由节点根据路由节点拓扑结构 信息表的内容判断路由子节点是否已经存在于网络中。
若存在于所述网络中,则路由节点在路由节点拓扑结构信息表中删除该路 由子节点的信息;若否,则所述路由节点提示出错。
图8为本发明中网络各节点信息的维护示意图。
其中,终端节点生成其父节点丢失信息,并根据其父节点丢失信息开启孤 点加入流程,将父节点重新加入所述网络。其具体加入过程参见之前实施例, 此处不再详述。
路由节点生成路由子节点加入信息、路由子节点丢失信息和路由父节点丢 失信息。路由节点根据路由父节点丢失信息开启节点加入流程,选择一个合适 的节点作为父节点,以此重新加入所述网络;并根据路由子节点加入信息和路 由子节点丢失信息更新路由节点网络结构信息表,同时将路由子节点加入信息 和路由子节点丢失信息上报至网关节点。
网关节点生成网关子节点加入信息、网关子节点丢失信息,接收路由节点 上报的路由子节点加入和路由子节点丢失信息,并据此更新网络拓扑结构信息 表。
本发明实施例4提供了一种基于Zigbee协议的无线传感器网络结构的维 护系统,参见图9,所述系统包括网关节点1,路由节点2以及终端节点3。 其中,网关节点1包括:
网络拓扑结构信息表建立单元11,用于预先建立网络拓扑结构信息表。
网关子节点变化信息生成单元12,用于在检测到网关子节点的变化时生 成网关子节点变化信息;所述网关子节点包括网络中与网关节点存在父子关系 的路由节点和/或终端节点。
网关更新单元13,用于根据网络中节点的变信息更新所述网络拓扑结构 信息表,以供用户查询;所述网络中节点包括所述网关子节点和所述路由子节 点。
路由节点2包括:
路由子节点变化信息生成单元21,用于在检测到路由子节点的变化时生 成路由子节点变化信息并上报至所述网关节点。
路由节点信息返回单元22,用于根据接收到的广播节点信息收集命令返 回自身的节点信息至所述网关节点。
终端节点3包括:
终端节点信息返回单元31,用于根据接收到的广播节点信息收集命令返 回自身的节点信息至所述网关节点。
其中,网络拓扑结构信息表建立单元11包括:
广播单元111,用于在所述网络中广播节点信息收集命令。
网络拓扑结构信息表建立子单元112,用于根据路由节点信息返回单元22 和终端节点信息返回单元31返回的节点信息进行组合生成网络拓扑结构信息 表并存储。
在网络中节点的变化分节点的加入和节点丢失两种情况。对应的,网关子 节点变化信息生成单元,包括:网关子节点加入信息生成单元和网关子节点丢 失信息生成单元。路由子节点变化信息生成单元,包括:路由子节点加入信息生 成单元和路由子节点丢失信息生成单元。
其中,网关子节点加入信息生成单元,用于在检测到网关子节点的变化时, 生成网关子节点加入信息,其具体用于当一节点以网关节点为父节点加入网络 时,生成网关子节点加入信息。
网关子节点丢失信息生成单元,用于在检测到网关子节点的变化,生成网 关子节点丢失信息,包括:
第一下一跳节点确定单元,用于根据待发送数据的目的节点确定下一跳网 关子节点。
第一数据发送单元,用于将所述待发送数据发送至所述下一跳网关子节 点。
网关子节点丢失判断单元,用于根据所述待发送数据的接收状态判断所述 下一跳网关子节点是否丢失。
网关子节点丢失信息生成子单元,用于当所述网关子节点丢失时,生成网 关子节点丢失信息。
所述路由子节点加入信息生成单元,用于在检测到路由子节点的变化时, 生成路由子节点加入信息;具体包括:
路由子节点加入信息生成子单元,用于当一节点以所述路由节点为父节点 加入所述网络时,生成路由子节点加入信息;
路由子节点丢失信息生成单元,具体用于在检测到路由子节点的变化时, 生成路由子节点丢失信息;包括:
第二下一跳节点确定单元,用于根据待发送数据的目的节点确定下一跳节 点;
第二数据发送单元,用于将所述待发送数据发送至所述下一跳节点;
路由子节点丢失判断单元,用于根据所述待发送数据的接收状态确定所述 路由节点的下一跳节点是否丢失;
协议层上报单元,用于在所述下一跳路由子节点丢失,且所述下一跳路由 节点为所述路由节点的子节点时,在所述路由节点的协议层生成路由子节点丢 失信息并上报至所述路由节点的应用层;
应用层上报单元,用于在所述路由节点的应用层接收到所述路由子节点丢 失信息时,将所述路由子节点丢失信息上报至所述网关节点;
协议层上报单元,还用于在所述下一跳节点丢失,且所述下一跳节点为路 由节点的父节点时,在所述路由节点的协议层生成路由父节点丢失信息并上报 至所述路由节点的应用层;
应用层上报单元,还用于当所述路由节点的应用层接收到所述路由父节点 丢失信息时,开启节点加入流程,选择合适的节点为父节点重新加入所述网络。
在本发明中,终端节点也可检测其父节点的变化,生成父节点变化信息。 此时,终端节点还包括:
终端父节点确定单元,用于根据待发送数据目的节点确定下一跳终端父节 点;
终端数据发送单元,用于发送所述待发送数据至所述下一跳终端父节点;
终端父节点丢失判断单元,用于根据所述待发送数据的接收状态判断所述 终端父节点是否丢失;
终端父节点丢失信息生成单元,用于在所述终端父节点丢失时,生成终端 父节点丢失信息;
孤点加入单元,用于根据所述终端父节点丢失信息开启孤点加入流程,选 择所述终端节点的父节点为父节点加入所述网络;
节点加入单元,用于在所述父节点无法通过孤点加入流程加入时,开启节 点加入流程,选择其他合适的节点为父节点加入所述网络。
通过上述介绍可知,路由子节点丢失信息以及路由子节点加入信息会被上 报至网关节点,因此,在网关节点处就汇集了路由子节点的变化信息和网关子 节点的变化信息。网关更新单元根据这些变化信息更新网络拓扑结构信息表。 网关更新单元具体包括:
网关更新单元包括:
网关加入信息判断单元,用于当所述节点的变化信息为节点的加入信息 时,根据网络拓扑结构信息表的内容判断所述节点是否存在于所述网络中;
网关加入信息更新子单元,用于在所述节点存在于所述网络中时,更新所 述网络拓扑结构信息表中存储的所述节点的相应信息;
网关分配单元,用于在所述节点未存在于所述网络中时,在所述网络拓扑 结构信息表中为所述节点分配存储空间,并增加对应的父子信息;
网关丢失信息判断单元,用于当所述节点的变化信息为节点的丢失信息 时,根据网络拓扑结构信息表的内容判断所述节点是否已经存在于所述网络 中;
网关丢失信息删除单元,用于在若所述节点存在于所述网络中时,在所述 网络拓扑结构信息表中删除所述节点的信息;
网关提示单元,用于在所述节点未存在于所述网络中时,提示出错。
在本发明的优选实施例中,可同时在路由节点处维护路由节点拓扑结构信 息表,以供用户查询该路由节点处的拓扑结构信息。此时,路由节点还包括:
路由更新单元,用于根据所述路由子节点的变化信息更新存储于所述路由 节点的路由节点拓扑结构信息表,以供用户查询所述路由节点处的拓扑结构信 息;
所述路由更新单元包括:
路由加入信息判断单元,用于当所述路由子节点的变化信息为加入信息 时,根据路由节点拓扑结构信息表的内容判断所述路由子节点是否已经存在于 所述网络中;
路由加入信息更新子单元,用于在所述路由子节点已经存在于所述网络中 时,更新在所述路由节点拓扑结构信息表中所存储的所述路由子节点的信息;
路由分配单元,用于在所述路由子节点未存在于所述网络中时,在所述路 由节点拓扑结构信息表中为所述路由子节点分配存储空间,并增加对应的父子 信息;
路由丢失信息判断单元,用于当所述路由子节点的变化信息为丢失信息 时,根据路由节点拓扑结构信息表的内容判断所述路由子节点是否已经存在于 所述网络中;
路由丢失信息删除单元,用于在所述路由子节点已经存在于所述网络中 时,在所述路由节点拓扑结构信息表中删除所述路由子节点的信息;
路由提示单元,用于在所述路由子节点未存在于所述网络中时提示出错。
值得注意的是,本发明系统与本发明的方法相对应,因此对系统不再详述, 相关部分参见方法实施例即可。
以上对本发明所提供的一种基于Zigbee协议的无线传感器网络结构的维 护方法及系统,进行了介绍,本文中应用了具体个例对本发明的原理及实施方 式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思 想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式 及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明 的限制。
机译: 确定系统中的无线传感器节点的网络结构和位置定位方法具有基于网格的特征定位
机译: 无线传感器网络系统,一种在无线传感器网络系统中设置多个传感器节点的方法,以及一种按传感器节点的面积计算传感能量消耗的方法,能够进行最佳传感器节点设置
机译: 基于测距和三角测量来确定无线传感器节点位置的系统和方法,该无线传感器节点基于节点与各种启用射频的设备之间的无线电频率通信