异步低占空比WSN中基于相长干涉的数据收集方法与流程

文档序号:11207674阅读:550来源:国知局
异步低占空比WSN中基于相长干涉的数据收集方法与流程

本发明涉及无线传感器网络技术领域,尤其涉及异步低占空比wsn中基于相长干涉的数据收集方法。



背景技术:

相长干涉应用到无线传感器网络(wirelesssensornetwork,wsn)的数据传输中,可以实现数据的并发传输,且具有接近100%的数据包接收率和非常低的数据发送延迟,基于相长干涉的并发传输具有以下特点:(1)并发传输过程中,传输的是同一个数据包;(2)多个节点同时向同一个节点发送数据时,需要满足相长干涉的条件;(3)节点不会保存邻居和路由信息;(4)所有的节点都参与到并发传输中;因此,基于相长干涉的并发传输应用到数据收集协议中时,这样节点将无需维护邻居节点信息和路由状态信息,减少网络能量消耗,提高数据包接收率。但是并发传输需要所有的节点都参与到数据传输中,造成较大的能量消耗,因此,我们需要结合低占空比机制,仅需部分节点参与到并发传输中,不需要参与的节点进入睡眠,以减少网络的能量消耗。

然而,在环境监测、医疗领域等基于事件监测驱动的应用中,传感器节点往往不是进行连续和高频率的数据收集,而是当有事件(森林火灾等)发生时将状态消息或者收集到的信息发送到sink节点(sink节点,又称汇聚节点),目前已有的数据收集协议主要是基于单播转发,以减少节点进行不必要的传输。在基于单播转发的数据收集协议中,节点从其邻居节点中选择父节点进行数据传输,最终将数据包路由到sink节点。受环境、节点能量等因素影响,邻居节点的信息可能会实时发送变化。因此在这些协议中,为了保证路由的健壮性,节点需要定期进行邻居信息维护,维护过程所消耗的能量是比较大的,而在低占空比无线传感器网络中,节点与邻居之间并不是同时苏醒,维护过程将变得更复杂。因此,在低占空比无线传感器网络中,异步占空比机制不需要进行时钟同步,且不需要知道邻居节点的睡眠调度,可以更有效的延长网络生命周期。在异步占空比网络中,与lpl(lowpowerlisten,低功耗侦听)机制相比,lpp(lowpowerlisten,低功耗采集)机制适合于唤醒网络中一部分节点的应用场景,随着网络规模的增大,lpp机制性能会更好。因此在使用异步lpp机制的低占空比传感器网络中,我们提出了一种基于相长干涉的数据收集协议adcci(asynchronousdutycycleandconstructiveinterference),sink节点不需要保存和维护邻居信息,以减少端到端延迟和网络能量消耗。



技术实现要素:

本发明的目的在于提供异步低占空比wsn中基于相长干涉的数据收集方法,根据本发明的数据收集方法可以有效的减少网络中的控制开销,提高数据包接收率,减少端到端延迟和网络能量消耗,为了实现上述目的,本发明采用以下技术效果:

根据本发明的一个方面,提供了异步低占空比wsn中基于相长干涉的数据收集方法,所述数据收集方法包括以下步骤:将n个传感器节点随机地分布在一个面积为m×m平方米的区域内形成无线传感器网络,其中,n为大于1的整数,在传感器节点中至少包括source节点、转发节点和1个sink节点,除sink节点外,无线传感器网络中的其他传感器节点都采用异步lpp机制进行睡眠调度,在网络初始化过程中,传感器节点会进行层次选择从而获取传感器节点到sink节点的跳数,当有数据需要发送时,source节点选择网络中苏醒的转发节点进行数据转发,转发节点接收source节点发送数据包并将该数据包并发传输到sink节点,并发传输完毕后,source节点与转发节点返回到lpp睡眠调度状态。

优选的,在网络初始化过程中,传感器节点进行层次选择包括以下步骤:

步骤21:sink节点广播一个packet(hop=0)数据包,其中hop代表距离sink节点的跳数;

步骤22:网络中的任意一个传感器节点vi(i∈n)接收到邻居节点vj(j∈n,j≠i)广播的数据包packet(vj.hop),如果vi.hop<=vj.hop-1则将节点vi的hop设置为vi.hop=vj.hop+1,然后继续广播packet(vi.hop)数据包,一直持续到网络中的节点均到sink节点的跳数,将hop=k的节点命名为k层节点,其中k为大于等于1的整数,k层节点只需要保存hop信息,而不需保存任何关于相邻层次节点的信息。

优选的,网络初始化过程中,所述传感器节点只需进行一次层次选择,网络初始化完成后,传感器节点均按照lpp机制进行睡眠调度。

优选的,当k层的source节点有数据需要发送时,source节点会侦听网络信道一段时间,等待邻居节点苏醒发送probe数据包以建立连接,建立连接后,邻近节点接收source节点发送的awake数据包以延长邻居节点的苏醒时间;所述source节点发送awake数据包最终将到sink节点,sink节点收到awake数据包后,经过tbackoff等待时间后,sink节点发送feedback包到source节点,tbackoff等待时间确保所有正在传输的probe数据包和awake数据包距离sink至少为两跳,网络中的sink节点接收到awake包时会根据以下三种情况进行处理:

情况41:k=(k≥hop)层的节点将直接丢弃并进入睡眠状态,避免k=(k≥hop)层的节点参与此次并发传输,以减少网络能耗;

情况42:k-1层邻居节点在进行awake数据包转发时,会加入自己的hop(k-1)信息;k=(k>hop(k-1))层邻居节点收到awake数据包后直接丢弃并进入睡眠状态;k-2层节点在收到awake数据包,在转发之前会用hop(k-2)覆盖hop(k-1),k-2层节点继续执行与hop(k-1)节点相同操作;

情况43:已经处理过awake数据包,且保持苏醒的转发节点,不受上层节点发送的awake包的影响;

优选的,所述sink节点在接收到awake数据包后,将会发送feedback数据包到source节点,source节点接收到feedback数据包的转发节点会根据以下三种情况进行处理:

情况51:source节点收到feedback数据包,但是没有收到awake数据包,source节点将丢弃feedback数据包,进入睡眠状态;

情况52:k=(k≥hop)层次的转发节点将直接丢弃feedback包,进入睡眠状态;

情况53:处于相同层次的转发节点,将同时接收到上一层次节点发送的feedback数据包,转发节点将数据从接收队列中不经任何处理直接复制到发送队列中进行发送,最终feedback数据包将并发传输到达source节点,且在source节点处产生相长干涉。

优选的,经过tbackoff等待时间后,所述sink节点发送feedback包到source节点,当feedback数据包到达source节点后,source节点在twait等待时间之后,发起间隔时间为tcount的并发传输,此时传输的是传感器节点采集到的数据data数据包;相同层次的转发节点同时接收到data数据包后,在发送该数据包前会有固定等待时间tprocess,因此满足相长干涉的条件,此时source节点到sink节点的路径上的转发节点不会发起probe数据包或awake数据包,因此满足twait<tbackoff;

source节点启动并发传输之后,如果在2×tprocess之后没有侦听到k=(hop-1)层节点转发数据包,则进行重传,以增加传输的可靠性;如果侦听到并且缓存队列里还有数据source节点会在tcount=2×tprocess继续发送数据。

优选的,并发传输完毕后,转发节点返回到lpp睡眠调度状态,在数据传输完成后,通过隐式终止方式或显示终止方式通知传输路径上的转发节点已完成传输,则进入睡眠状态,此后,转发节点将按照lpp进行休眠调度。

优选的,在所述隐式终止方式中,参与并发传输的转发节点从awake包中获取数据包的数量,转发节点在转发完最后一个数据包之后进入睡眠;在所述显示终止方式中,sink节点收到所有count个数据包之后,会发送确认ack,否则发送否定确认nack,参与并发传输的转发节点在转发完ack或nack之后,将终止并发传输阶段进入睡眠。

本发明采用了上述技术方案,本发明具有以下技术效果:

(1)本发明可以有效的减少网络中的控制开销,提高数据包接收率,减少端到端延迟和网络能量消耗,特别适用于基于事件驱动的传感器监测应用领域。

(2)本发明的sink节点不需要保存、维护邻居信息和路由状态信息,可以大大以减少端到端延迟和网络能量消耗,仅当有数据发送时使用基于相长干涉的并发传输快速且可靠的将数据发送到sink节点,从而提高数据包接收率;本发明结合了低占空比机制,仅需部分节点参与到并发传输中,不需要参与的节点进入睡眠,可以减少了网络的能量消耗。

(3)在本发明的低占空比无线传感器网络中,采用异步占空比机制不需要进行时钟同步,且不需要知道邻居节点的睡眠调度,可以更有效的延长网络生命周期。

附图说明

图1是本发明的无线传感器网络的传感器节点分布示意图。

图2是本发明的sink节点在整个协议中处理数据的运行示意图。

图3是本发明的传感器节点的数据收集过程的流程图。

图4是本发明lpp睡眠调度示意图。

图5是本发明的不同数据包产生间隔下,数据包接收率的变化示意图;

图6是本发明的不同数据包产生间隔下,占空比的变化示意图。

图7是本发明不同数据包产生间隔下,数据发送延迟的变化示意图。

图8是本发明不同数据包产生间隔下,并发传输阶段占数据发送延迟比例的变化示意图。

图9是本发明不同数据包产生间隔下,平均发送每个数据包所需的开销的变化示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。

如图1所示,根据本发明的异步低占空比wsn中基于相长干涉的数据收集方法,包括以下步骤:将n个传感器网络节点随机地分布在一个面积为m×m平方米的区域内,其中,n为大于1的整数,在传感器节点中至少包括source节点、转发节点和1个sink节点,除sink节点外,无线传感器网络中的其他传感器节点都采用异步lpp机制进行睡眠调度,在网络初始化过程中,传感器节点会进行层次选择从而获取传感器节点到sink节点的跳数,当有数据需要发送时,source节点选择网络中苏醒的转发节点进行数据转发,转发节点接收source节点发送数据包并将该数据包并发传输到sink节点,并发传输完毕后,source节点与转发节点返回到lpp睡眠调度状态。当传感器节点收集到数据,需要将数据需要发送到sink节点时,我们称这种节点为源节点(source节点),而传感器网络中,帮助源节点将数据发送到sink节点的传感器节点,我们称之为转发节点(node节点)。

(1)、当source节点要发送数据时会一直侦听信道,等待邻居节点苏醒发送probe数据包,source节点收到probe数据包后,会发送ack建立连接,source节点此时会发送一个awake数据包到sink节点。

(2)、sink节点接收到awake数据包后,在等待一段时间(避免与probe数据包、awake数据包冲突)后返回一个feedback数据包(反馈包)。转发节点node1和转发节点node2处于同一跳,如图1、图2和图3所示,所以两者会同时接收到反馈包。转发节点node1和转发节点node2将不会对反馈包做任何处理直接发送,反馈包将同时到达source节点,并产生相长干涉。

(3)、源节点收到反馈包后,就会认为到sink节点路径上的节点已做好并发传输准备。source节点在等待一段时间(避免与sink的反馈包产生冲突)后发送数据,node1转发节点和node2转发节点将同时收到包,然后直接进行发送,同样在sink节点处产生相长干涉。

(4)、最后,网络可以采取显式终止或隐式终止结束数据传输,source节点和node1转发节点、node2转发节点进入睡眠,此后按照lpp进行睡眠调度。

在本发明中的初始化网络过程中,对sink节点所在的层次选择包括以下步骤:

步骤21:sink节点广播一个packet(hop=0)数据包,其中hop代表距离sink节点的跳数;从而使source节点获取自己到sink节点的跳数;

步骤22:网络中的任意一个传感器节点vi(i∈n)接收到邻居节点vj(j∈n,j≠i)广播的数据包packet(vj.hop),如果vi.hop<=vj.hop-1则将节点vi的hop设置为vi.hop=vj.hop+1,然后继续广播packet(vi.hop)数据包,一直持续到网络中的节点均到sink节点的跳数,将hop=k的节点命名为k层节点,其中k为大于等于1的整数,k层节点只需要保存hop信息,而不需保存任何关于相邻层次节点的信息。网络初始化过程中,即在网络生命周期内,所述传感器节点只需进行一次层次选择,网络初始化完成后,传感器节点均按照lpp机制进行睡眠调度,在本发明中,结合图1、图2图3和图4,lpp机制进行睡眠调度按照如下方式进行:

当k=hop层的source节点有数据需要发送时,source节点会侦听网络信道一段时间tlisten,等待邻居节点苏醒发送probe数据包以建立连接,建立连接后,邻近节点接收source节点发送的awake数据包以延长邻居节点的苏醒时间;所述source节点发送awake数据包最终将到sink节点,sink节点收到awake数据包后,经过tbackoff等待时间后,sink节点发送feedback包到source节点,tbackoff等待时间确保所有正在传输的probe数据包和awake数据包距离sink至少为两跳。

当经过tbackoff等待时间后,所述sink节点发送feedback包到source节点,当feedback数据包到达source节点后,source节点在twait等待时间之后,发起间隔时间为tcount的并发传输,此时传输的是传感器节点采集到的数据data数据包;相同层次的转发节点同时接收到data数据包后,在发送该数据包前会有固定等待时间tprocess,因此满足相长干涉的条件,此时source节点到sink节点的路径上的转发节点不会发起probe数据包或awake数据包,因此满足twait<tbackoff;source节点启动并发传输之后,如果在2×tprocess之后没有侦听到k=(hop-1)层节点转发数据包,则进行重传,以增加传输的可靠性;如果侦听到并且缓存队列里还有数据source节点会在tcount=2×tprocess继续发送数据。在本发明中,传感器网络中的sink节点接收到awake包时会根据以下三种情况进行处理:

情况41:k=(k≥hop)层的节点将直接丢弃并进入睡眠状态,避免k=(k≥hop)层的节点参与此次并发传输,以减少网络能耗;

情况42:k-1层邻居节点在进行awake数据包转发时,会加入自己的hop(k-1)信息;k=(k>hop(k-1))层邻居节点收到awake数据包后直接丢弃并进入睡眠状态;k-2层节点在收到awake数据包,在转发之前会用hop(k-2)覆盖hop(k-1),继续执行与hop(k-1)节点相同操作;

情况43:已经处理过awake包,且保持苏醒的转发节点,不受上层节点发送的awake包的影响;所述sink节点在接收到awake数据包后,将会发送feedback数据包到source节点,source节点接收到feedback数据包的转发节点会根据以下三种情况进行处理:

情况51:节点收到feedback数据包,但是没有收到awake数据包,source节点将丢弃feedback数据包,进入睡眠状态;

情况52:k=(k≥hop)层次的转发节点将直接丢弃feedback数据包,进入睡眠状态。

情况53:处于相同层次的转发节点,将同时接收到上一层次节点发送的feedback数据包,转发节点将数据从接收队列中不经任何处理直接复制到发送队列中进行发送,最终feedback数据包将并发传输到达source节点,且在source节点处产生相长干涉;

在本发明中,转发节点接收source节点数据包并将该数据包并发传输到sink节点,并发传输完毕后,sink节点发送feedback数据包到source节点;当feedback数据包到达源节点后,源节点(source节点)在等待时间为twait(为了避免与正在进行的feedback数据包传输产生冲突)之后,发起间隔时间为tcount的传输(总共count个数据包),相同层次的转发节点同时接收到数据包后,在发送该数据包前会有固定等待时间tprocess,传感器节点从接收到数据包到发送数据包,这个过程产生的等待时间定义为tprocess。因此同一层次的节点满足相长干涉的条件,增大了端到端的可靠性,当k=1层节点同时向sink节点发送同一个数据,产生相长干涉,进一步提高数据包成功接收概率。

转发节点记录了转发过数据包的元数据(metadata),所以不会重新发送该数据包,防止出现循环转发的问题。在此阶段,源节点开始执行并发传输且到sink的路径上的节点不会发起probe数据包或awake数据包,所以设置twait<tbackoff。

源节点启动并发传输之后,如果在2×tprocess之后没有侦听到k=(hop-1)层节点转发数据包,则进行重传,增加传输的可靠性;如果侦听到并且缓存队列里还有数据,源节点会在tcount=2×tprocess继续发送数据。

并发传输完毕后,转发节点返回到lpp睡眠调度状态,在数据传输完成后,通过隐式终止方式或显示终止方式通知传输路径上的转发节点已完成传输,则进入睡眠状态。此后,节点将按照lpp进行休眠调度,在所述隐式终止方式中,参与并发传输的转发节点从awake数据包中获取数据包的数量,节点在转发完最后一个数据包之后进入睡眠;这隐式终止方式传输比较简单,但是转发节点在数据包丢失后会一直在侦听信道,因此在adcci协议中设置节点在timeout(tx(h))后,退出并发传输阶段进入睡眠。

在所述显示终止方式中,sink节点收到所有count个数据包之后,会发送确认ack,否则发送否定确认nack,参与并发传输的转发节点在转发完ack或nack之后,将终止并发传输阶段进入睡眠。该显示终止方式虽然产生传输ack或nack的额外时间,但是显式终止方式可以减少在丢包率高的网络中节点的超时时间timeout(tx(h))。

在本发明中,选择在一个100×100m2的正方形区域中设置50个节点,sink节点位于这个区域的中心,每个节点在数据包产生间隔内产生数据包(20bytes)并将包经过多跳路由到sink节点。在该实施例中,adcci均采用显式终止方案。在adcci协议中,基本参数设置如表1所示

表1:adcci参数设置

在本发明中通过使用contiki上的数据收集协议tree-basedhop-by-hopreliabledatacollection(以下简称thrdc)作为对比协议,该协议是collectiontreeprocotol(ctp)在contiki上的实现,ctp在lpl模式下性能比在lpp模式下好,因此我们使用x-mac协议为thrdc提供睡眠调度,如图4所示,设置x-mac的twakeup与adcci的值一致。链路质量等参数均按照系统默认。在本章中我们用数据包产生间隔表示两次事件发生的时间间隔,将占空比定义为:t(数据包产生间隔内平均每个节点无线电开启的时间)/t(数据包产生间隔),如图5和图6所示,从图5可以看出,adcci的数据包接收率接近100%,而thrdc的数据包接收率在94%左右。因为在adcci中,由于相长干涉的原因,节点层与层之间的可靠性更高且网络中存在多条路径同时传输数据,最后在sink节点处产生相长干涉进一步增加了接收概率。thrdc传输数据时,每一跳都是etx(expectedtransmissioncount,预期传输次数)值最小的节点。当数据传输失败后,更新etx后再次等待etx值最小的节点苏醒。如果etx值变化较大,发送节点还会进行广播通知其他节点更新路由,由此增加传输延迟和节点苏醒时间。从图6中的占空比也证明了在相同数据包产生间隔内,thrdc协议无线电开启的时间更长。因此从图6中可以总结出,相对于thrdc,adcci在减少24.6%的占空比的同时提高5.8%的数据包接收率。

在本发明中,如图7所示,平均端到端延迟与并发传输延迟,从图7中可以看出,在不同数据包产生间隔下,thrdc的平均端到端延迟是12.78s,adcci的是9.95s。因此相对于thrdc,adcci能够减少22.1%的端到端延迟。从图8可以看出,并发传输阶段所产生的延迟在adcci平均端到端延迟中占8.9%比例(平均0.89s),而91.1%的时间在为并发传输阶段做准备。并发传输阶段产生的延迟变化并不大,所以并发传输阶段所占比例随着平均端到端延迟的增大而变小,因此在数据包产生间隔等于1200s和2400s时,产生了两个极小值。从图7和图8中可知基于相长干涉的并发传输是一种低延迟的数据传输方式。

控制开销,实验比较了adcci和thrdc在数据传输的整个过程中,不同数据包产生间隔下平均传输每个数据包所需的控制包数量,平均每个数据包开销越小,意味着传输每个数据包整个网络消耗的能量越少,能量利用率越高,在x-mac协议中,节点在下一跳节点开始接收数据包前会连续发送信标帧,我们将这些连续发送的信标帧数量记为1个。

当数据包产生间隔较小的时候,thrdc所需的控制包的数量较少,但随着数据包产生间隔的增加,这种开销会迅速增加,因为尽管网络中没有数据要进行发送,但thrdc协议需要定期维护路由状态,产生控制包开销。而adcci仅在有数据包要发送时节点才会产生控制包,所以随着数据包产生间隔的增大,每个数据包的所需的控制包没有明显变化,从而说明了图7中在数据包产生间隔等于1800s开始,thrdc的占空比并没有进一步下降,而adcci的占空比呈下降趋势。

结合图6和图9,分析了adcci和thrdc的网络能量消耗。传感器节点中无线电模块是最消耗能量的单元,而图6表明在相同的数据包产生间隔内,adcci无线电模块开启的时间比thrdc少24.6%。图9表明在adcci协议中平均每个数据所需的控制包开销在不同数据包产生间隔中几乎没有变化,所以相对于thrdc,adcci能够有效的减少网络能量消耗。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1