具体实施方式
为了解决大规则组网需求的问题,本实用新型的实施例提供了一种大规模无线传感器网络组网方法。下文中将结合附图对本实用新型的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
首先结合附图,对本实用新型的实施例一进行说明。
本实用新型实施例提供了一种可用于组建大规模无线传感器网络的无线传感器网络组网方法,网络中的传感器节点按照功能可分为sink节点、高能量节点以及普通节点。普通节点负责采集区域内的目标信息;高能量节点除了采集目标信息外还负责数据的接收、融合与转发;sink节点负责建立网络、接收其它节点发送的数据以及与网关的通信。节点因其功能不同,所采取的供电方式也不同。由于高能量节点和sink节点一直处于工作状态,因此宜采用可持续供电的方式供电(如太阳能电池等);而普通节点由于不需要一直处于工作状态,并可采用休眠唤醒机制来降低其功耗,因此采用普通电池(如普通干电池等)供电即可。本实用新型实施例中所涉及的sink节点、高能量节点和普通节点均通过无线传感器实现。
使用本实用新型的实施例提供的无线传感器网络组网方法组建无线传感器网络的流程如图1所示,包括:
步骤101、sink节点启动,完成无线传感器网络的初步建立;
在建立网络的过程中,sink节点首先启动,初始化后先扫描工作频段附近的各信道,选择能量最低的信道作为工作信道,确定自己的个域网标识符(PANID),然后广播信标帧告知网络中其它节点。若检测到与其它网络中的PANID冲突,则重新设定PANID并广播,直至无冲突为止。至此,sink节点便完成了网络的初步建立。
步骤102、所述sink节点在检测到要加入该sink节点所在无线传感器网络的高能量节点时,判断该sink节点能否再容纳所述高能量节点;
本步骤中,在有高能量节点需要加入sink节点建立的无线传感器网络时,该高能量节点首先初始化后以主动扫描的方式搜索信道上所存在的网络,搜索到网络后便会选择一个网络加入,sink节点会根据自身所能容纳的节点数目来决定是否允许该高能量节点加入网络。
步骤103、在所述sink节点判断能够容纳所述高能量节点时,所述sink节点允许所述高能量节点加入所述无线传感器网络;
相对的,在所述sink节点判断不能够容纳所述高能量节点时,所述sink节点则不允许所述高能量节点加入所述无线传感器网络,该高能量节点需要继续搜索网络。
步骤104、所述高能量节点在加入所述无线传感器网络后,广播信标帧,以使得其他节点通过主动扫描能够发现该高能量节点;
本步骤中,高能量节点在加入网络后,将广播信标帧以便其它节点主动扫描时可以搜索到自己。
步骤105、未加入任何无线传感器网络的普通节点或高能量节点向所述无线传感器网络中的高能量节点请求加入所述无线传感器网络;
步骤106、所述无线传感器网络中的高能量节点根据自身所能容纳的节点数据,判断能否接受所述未加入任何无线传感器网络的普通节点或高能量节点的请求;
普通节点初始化后主动扫描附近区域内的高能量节点以便加入网络。当有普通节点或其它高能量节点请求通过本高能量节点加入网络时,高能量节点会根据自身所能容纳的节点数目来决定是否允许其它节点加入网络。
本实用新型实施例中的无线传感器网络根据高能量节点到sink节点的跳数将网络分为多层网络,在网络拓扑控制方面采用了节点功率控制机制和层次型拓扑控制机制。
节点功率控制机制用于控制节点周围邻居节点的数目,以便使节点均匀的分布于网络中。高能量节点及普通节点在加入网络之前会主动扫描以搜索附近区域内的其它节点。在搜索前每个节点都会对其邻居节点数目设定一个最大值和一个最小值。当搜索结果大于最大值,则降低该节点的发射功率;当搜索结果小于最小值,则加大该节点的发射功率。
层次型拓扑控制机制用于控制网络中每一层节点的数目,主要针对高能量节点,使得高能量节点合理地分布于每一层中。在网络中,不是所有高能量节点都能直接与sink节点通信,那些离sink节点远的高能量节点需要借助于其它高能量节点通过多跳传输才能完成数据的传输。在上述层次型的网络结构中,越靠近sink节点的高能量节点承担越多的数据转发任务。为了平衡能量消耗,应控制内层网络上的高能量节点数目多于外层网络上的高能量节点数目。
步骤107、在所述无线传感器网络中的高能量节点判断能够接受所述未加入任何无线传感器网络的普通节点或高能量节点的请求时,所述未加入任何无线传感器网络的普通节点或高能量节点加入所述无线传感器网络。
相对的,在所述无线传感器网络中的高能量节点判断不能够接受所述未加入任何无线传感器网络的普通节点或高能量节点的请求时,所述未加入任何无线传感器网络的普通节点或高能量节点便需要继续搜索其他无线传感器网络,或继续搜同一无线传感器网络中的其他高能量节点。
优选的,高能量节点和sink节点都拥有一个邻居节点数目上限。每个高能量节点在加入网络时会在其邻居节点中选择一个层数最小的高能量节点(有可能是sink节点)作为父节点,选定后便会向其发出连接请求。该被选定的父节点接收到连接请求后会检查自己所连接的高能量节点数目,若未达到邻居节点数目上限则发送同意其连接的信息,反之则发送拒绝信息。被拒绝的高能量节点会重新选择其它节点作为父节点再次发出连接请求直到有高能量节点允许自己加入网络。
步骤108、所述普通节点在加入所述无线传感器网络后,根据预置的周期,周期性的采集区域内的目标信息,并将所述信息发送至该普通节点接入的高能量节点;
本步骤中,在整个网络建立后,普通节点负责采集区域内的目标信息,并将信息发送给所连接的高能量节点。除信息采集和发送以外,普通节点均处于睡眠状态。
在本实用新型实施例所涉及的无线传感器网络中,普通节点往往是周期性采集和发送数据,为尽可能地降低普通节点的能量消耗,数据发送完毕后普通节点便进入了睡眠状态。进入睡眠状态后,普通节点将启动一个定时器,当定时结束后定时器将触发中断唤醒该普通节点进行下一轮的数据采集及发送。
步骤109、所述无线传感器网络中的高能量节点采集区域内的目标信息并接收其簇内普通节点的发送的该普通节点采集区域内的目标信息;
本步骤中,高能量节点除采集区域内的目标信息外还接收其簇内(簇即为通过该高能量节点接入所述无线传感器网络的多个普通节点的集合)普通节点的数据。
步骤110、所述高能量节点对汇集到该高能量节点的全部目标信息进行融合后,通过一跳或多跳将所述全部目标信息传输至该高能量节点接入的sink节点;
本步骤中,高能量节点对所有数据进行融合后通过一跳或多跳将数据传输至sink节点。sink节点接收到其它节点发送的数据后对数据进行一些处理,然后发送给网关。
无论是sink节点还是高能量节点或普通节点,其发送数据时均遵照本实用新型的实施例所提出的一种路由协议,下面对这一路由协议进行详细说明。
本实用新型实施例所提供的路由协议将根据高能量节点所处的层数、高能量节点的剩余能量以及高能量节点之间的链路质量来决定数据传输的途径。整个路由建立和维护过程分为以下几个阶段:建立邻居节点表、建立下一跳节点选择表、建立路由表、维护路由表。
建立邻居节点表:每个高能量节点在接入网络时会主动扫描以搜索附近区域内的其它节点,搜索到的所有高能量节点(包括sink节点)都是该高能量节点的邻居节点,从而每个高能量节点可建立一个邻居节点表,其中包含每个邻居节点的信息(节点PANID、节点所处的网络层数、节点剩余能量E、链路质量Q)。
建立下一跳节点选择表:在建立下一跳节点选择表时高能量节点会选择节点所处的网络层数最小的邻居高能量节点进入下一跳节点选择表。一般情况下每一层不止一个高能量节点,因此需要为每个节点设定被选为下一跳节点的概率P。下一跳节点选择表中包含该节点的PANID以及被选为下一跳节点的概率P。概率P与节点剩余能量E和链路质量Q相关,可根据经验设计一个概率P的计算公式。在获得所有待选下一跳节点的PANID和当选概率后,下一跳节点选择表就建立成功了。
建立路由表:每个高能量节点选择其下一跳节点选择表中当选概率P值最大的为其下一跳节点,从而建立起整个网络的路由表。
维护路由表:路由表建立后需定期更新,从而有效地避免了由于路由表应用太久而造成的通信质量变差和节点能量消耗过度等情况。在路由表更新过程中,高能量节点要将自身最新的节点剩余能量E发送给邻居高能量节点。每个高能量节点在收到邻居节点传来的数据后便可获得最新的节点剩余能量E和链路质量Q,从而更新自己的邻居节点表。邻居节点表更新完后将重新计算下一跳节点概率P。最后高能量节点就会根据更新后的下一跳节点选择表来更新路由表。路由表除了定期更新外,发生以下情形之一也需要及时更新:①某一个高能量节点能量消耗过大,不适合再参与数据的转发。在这种情况下,需要从所有的下一跳节点选择表中将该节点删除并更新路由表。除非在某一个高能量节点的下一跳节点选择表中只有该节点一个节点,为保证网络的连通性就不能再删除该节点了。②两个高能量节点之间通信质量变差,丢包现象严重。此时需要从这两个高能量节点的下一跳节点选择表中将对方删除并更新路由表。
下面结合附图,对本实用新型的实施例二进行说明。
本实用新型实施例提供了一种无线传感器网络,其结构如图2所示,包括:
sink节点设备201、高能量节点设备202和普通节点设备203;
所述sink节点设备201构成初始无线传感器网络,所述高能量节点通过所述sink节点设备201或已接入所述无线传感器网络的其他高能量节点接入所述无线传感器网络,所述普通节点设备203通过已接入所述无线传感器网络中的高能量节点设备202接入所述无线传感器网络。
优选的,所述sink节点设备201、高能量节点设备202和普通节点设备203均为无线传感器,sink节点设备201实现了本实用新型实施例一中所谓的sink节点,高能量节点设备202。
优选的,所述高能量节点设备202接收经该高能量节点设备202接入的普通节点设备203或其他高能量节点设备202上报的采集区域内的目标信息,所述高能量节点设备202向所述sink节点设备201上报该高能量节点设备202收集的目标信息。
优选的,所述高能量节点设备202和所述sink节点设备201采用可持续供电电源。
优选的,所述无线传感器网络中的高能量节点设备202连接的其他高能量节点设备202和普通节点设备203的数目之和不超过邻居节点数目上限。
下面结合附图,对本实用新型的实施例三进行说明。
图3为本实用新型的实施例提供的一个典型的无线传感器网络组网结构示意图,网络中包含sink节点、高能量节点以及普通节点三种节点。普通节点均匀分布于网络中,而高能量节点按需分布在网络的各层,应控制内层网络上的高能量节点数目多于外层网络上的高能量节点数目。每个高能量节点一跳或通过其它高能量节点多跳到达sink节点。sink节点与网关连接,网关与外网连接。
在建立网络的过程中,sink节点首先启动,初始化后先扫描工作频段附近的各信道,选择能量最低的信道作为工作信道,确定自己的个域网标识符(PANID),然后广播信标帧告知网络中其它节点。若检测到与其它网络中的PANID冲突,则重新设定PANID并广播,直至无冲突为止。至此,sink节点便完成了网络的初步建立。
高能量节点初始化后以主动扫描的方式搜索信道上所存在的网络,每个高能量节点在加入网络时会在其邻居节点中选择一个层数最小的高能量节点(有可能是sink节点)作为父节点,选定后便会向其发出连接请求。该被选定的父节点接收到连接请求后会检查自己所连接的高能量节点数目,若未达到邻居节点数目上限则发送同意其连接的信息,反之则发送拒绝信息。被拒绝的高能量节点会重新选择其它节点作为父节点再次发出连接请求直到有高能量节点允许自己加入网络。在搜索前每个节点都会对其邻居节点数目设定一个最大值和一个最小值。当搜索结果大于最大值,则降低该节点的发射功率;当搜索结果小于最小值,则加大该节点的发射功率。加入网络后,高能量节点将广播信标帧以便其它节点主动扫描时可以搜索到自己。当有普通节点或其它高能量节点请求通过自己加入网络时,高能量节点会根据自身所能容纳的节点数目来决定是否允许其它节点加入网络。普通节点初始化后主动扫描附近区域内的高能量节点以便加入网络。
整个网络建立后,普通节点负责采集区域内的目标信息,并将信息发送给所连接的高能量节点。除信息采集和发送以外,普通节点均处于睡眠状态。进入睡眠状态后,普通节点将启动一个定时器,当定时结束后定时器将触发中断唤醒该普通节点进行下一轮的数据采集及发送。高能量节点除采集区域内的目标信息外还接收其簇内普通节点的数据,并对所有数据进行融合后通过一跳或多跳将数据传输至sink节点。sink节点接收到其它节点发送的数据后对数据进行一些处理,然后发送给网关。
高能量节点和sink节点一直处于工作状态,宜采用可持续供电的方式供电(如太阳能电池等);而普通节点不需要一直处于工作状态,并采用了休眠唤醒机制来降低其功耗,采用普通电池(如普通干电池等)供电即可。
本实用新型实施例提供的路由协议将根据高能量节点所处的层数、高能量节点的剩余能量以及高能量节点之间的链路质量来决定数据传输的途径。网络中路由的建立及维护过程如下述步骤:
(1)建立邻居节点表:每个高能量节点在接入网络时会主动扫描以搜索附近区域内的其它节点,搜索到的所有高能量节点(包括sink节点)都是该高能量节点的邻居节点,从而每个高能量节点可建立一个邻居节点表,其中包含每个邻居节点的信息(节点PANID、节点所处的网络层数、节点剩余能量E、链路质量Q)。邻居节点表格式如图4所示。
(2)建立下一跳节点选择表:在建立下一跳节点选择表时高能量节点会选择节点所处的网络层数最小的邻居高能量节点进入下一跳节点选择表。一般情况下每一层不止一个高能量节点,因此需要为每个节点设定被选为下一跳节点的概率P。下一跳节点选择表中包含该节点的PANID以及被选为下一跳节点的概率P。概率P与节点剩余能量E和链路质量Q相关,可根据经验设计一个概率P的计算公式(以下举了一个实例)。
假定下一跳节点选择表中有N个节点,任意一个节点为Ni(i=1,2,...,N),其相应的节点剩余能量为Ei(i=1,2,...,N),链路质量为Qi(i=1,2,...,N),则节点Ni被选为下一跳节点的概率Pi为
上式中系数α为一个位于[0,1]之间的常数,此例中选为0.5。
在获得所有待选下一跳节点的PANID和当选概率后,下一跳节点选择表就建立成功了。下一跳节点选择表格式如图5所示。
(3)建立路由表:每个高能量节点选择其下一跳节点选择表中当选概率P值最大的为其下一跳节点,从而建立起整个网络的路由表。
(4)维护路由表:路由表建立后需定期更新,从而有效地避免了由于路由表应用太久而造成的通信质量变差和节点能量消耗过度等情况。在路由表更新过程中,高能量节点要将自身最新的节点剩余能量E发送给邻居高能量节点。每个高能量节点在收到邻居节点传来的数据后便可获得最新的节点剩余能量E和链路质量Q,从而更新自己的邻居节点表。邻居节点表更新完后将重新计算下一跳节点概率P。最后高能量节点就会根据更新后的下一跳节点选择表来更新路由表。路由表除了定期更新外,发生以下情形之一也需要及时更新:①某一个高能量节点能量消耗过大,不适合再参与数据的转发。在这种情况下,需要从所有的下一跳节点选择表中将该节点删除并更新路由表。除非在某一个高能量节点的下一跳节点选择表中只有该节点一个节点,为保证网络的连通性就不能再删除该节点了。②两个高能量节点之间通信质量变差,丢包现象严重。此时需要从这两个高能量节点的下一跳节点选择表中将对方删除并更新路由表。
本实用新型的实施例提供了一种无线传感器网络组网方法,与本实用新型的实施例所提供的无线传感器网络相结合,首先sink节点启动,完成无线传感器网络的初步建立,然后所述sink节点在检测到要加入该sink节点所在无线传感器网络的高能量节点时,判断该sink节点能否再容纳所述高能量节点,并在所述sink节点判断能够容纳所述高能量节点时,所述sink节点允许所述高能量节点加入所述无线传感器网络。之后,再由接入无线传感器网络的高能量节点对向该高能量节点请求接入的其他高能量节点或普通节点进行控制筛选,实现了一种自动的节点均匀分布的无线传感器网络组网机制,解决了大规模组网需求的问题。本实用新型的实施例所提供的技术方案,可以建立一个大规模无线传感器网络;休眠唤醒机制可减少普通节点的能量消耗;采用了节点功率控制机制和层次型拓扑控制来控制网络的拓扑结构,以保证网络中的节点均匀分布以及高能量节点合理分布在每一层;路由协议的设计使高能量节点之间组成了多跳骨干网络,任何普通节点都能一跳与高能量节点连接。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本实用新型不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本实用新型揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本实用新型的保护范围之内。因此,本实用新型的保护范围应以权利要求所述的保护范围为准。