发明内容
本发明的目的是提供一种移动终端辅助的无线传感器网络信息获取方法.
本发明要解决是的现有在固定传感器网络中存在的网络的吞吐量难以提高、信息获取延迟和网络生存时间短的问题。
本发明通过在固定无线传感器网络中引入一个到多个具有传感器通信接口的移动终端进行辅助数据获取与传输来实现。本发明的技术方案包括如下3个步骤:
步骤1)网络中所有节点上电,并完成自身初始化工作。固定汇聚节点(SS)广播自声明消息(StaticSink Announcement,SS_ANNONCE),消息中包括的信息有:固定汇聚节点的标识符、上一跳节点标识符、上一跳节点距离汇聚节点的跳数。网络中全部传感器节点通过扩散SS_ANNOUNCE消息来建立到固定汇聚节点的距离梯度。这个过程可以细分为以下两个部分:
a.固定汇聚节点广播SS_ANNOUNCE消息,消息的上一跳节点标识符设定为自己的ID,距离汇聚节点的跳数设为0。
b.传感器节点接收到SS_ANNOUNCE消息,查找自己的Sink Table,如果没有找到消息中汇聚节点标识符对应的条目就将该SS_ANNOUNCE消息标识的固定汇聚节点信息加入Sink Table,同时广播转发此SS_ANNOUNCE消息;如果找到对应条目就比较Sink Table条目中记录的到汇聚节点跳数与通过SS_ANNOUNCE消息中信息计算得到的跳数,如果前者较大就将其用后者计算得到的跳数信息进行更新,并广播转发此SS_ANNOUNCE消息。
在以上整个过程中,传感器节点都不响应移动终端的消息。通过上述过程,网络中所有传感器节点至少能获得到一个固定汇聚节点的距离梯度信息。
步骤2)传感器节点(SN)进入正常工作状态,按照预先设定的工作模式进行工作:当工作在定时上报模式时,传感器节点定时读取传感器数据,并将数据上传;当工作在查询模式时,固定汇聚节点扩散查询命令,收到查询命令的传感器节点进行命令指定的传感器数据采集工作,并将采集到的数据上传。传感器节点到固定汇聚节点的路由协议可以采用现有的任何传感器网络相关路由协议,包括AODV、DSR或者地理位置路由等。
步骤3)移动终端(MT)广播其存在信息,周围小范围内的传感器节点通过交互移动终端相关信息来动态维护自己的上行数据路由。这个过程可以细分为以下几个部分:
c.MT向邻近传感器节点广播HELLO消息MT_HELLO。邻近传感器节点接收到MT_HELLO消息后将该MT加入自己的Sink Table,如果自己不是MTA就向邻近传感器节点广播MTA声明消息MTA_ANNOUNCE。为了将MTA的影响范围控制在一个较小的区域内,必须限制MTA_ANNOUNCE消息的传播跳数,这通过在消息中加入一个TTL域来实现。MTA为TTL域赋予一个较小的初始值。最后,节点启动MT检测定时器。如果定时器超时,说明MT已经移动到自己的通信范围之外,应该从Sink Table中删除该MT并检查Sink Table是否为空,如果为空,就向周围节点广播MTA删除消息MTA_DELETE。如果节点在定时器超时前再次收到同一MT的MT_HELLO就取消旧的定时器并重新启动一个新定时器。
d.接收到MTA_DELETE消息的邻近传感器节点在自己的MTATable中查找此MTA:如果找到,就删除该MTA并广播转发MTA_DELETE消息;如果MTATable中无此MTA就直接丢弃该消息。
e.邻近传感器节点接收到MTA_ANNOUNCE消息,查询自己的MTA Table:如果该MTA已经在MTATable中,则直接丢弃该消息;如果列表中不存在此MTA就将其加入,并将列表项的LastHop及HopCount域设置为消息中的LastHop及HopCount+1。列表项新建完毕后节点将原消息的TTL值减1,LastHop域更新为自己的ID,HopCount域更新为原HopCount+1。然后向邻近传感器节点广播转发更新后的MTA_ANNOUNCE。
f.邻近传感器节点产生传感数据包后,查找自己MTA列表中HopCount最小的一个MTA:如果没有找到,就给数据包设置Packetto SS(PTSS)标记并交由到SS的默认路由协议处理;如果找到且其HopCount小于等于Sink Table中所有SS的HopCount,就给数据包设置Packet to MT标记(PTMT)并转发到该MTA表项LastHop域指向的节点。
g.邻近传感器节点接收到上行数据包,查找自己MTA列表中HopCount最小的一个MTA,如果找到且其HopCount小于等于Sink Table中所有SS的HopCount,就为数据包设置PTMT标记并转发到该MTA表项的LastHop域指向的节点。这样,通过多跳转发,数据包能够到达MTA,并由MTA发送到MT;如果节点收到上行数据包时发现自己的MTA列表为空且数据包中PTMT标记被设置,则向数据包的上一跳节点发送MTA_INVALID消息,声明自己已经不能和任何MTA建立联系,然后给数据包设置Packet to SS(PTSS)标记并交由到SS的默认路由协议处理。
h.接收到MTA_INVALID消息的节点查找自己的MTA列表,删除所有LastHop域为此消息发送者ID的表项。
i.MTA收到上行数据包,启动一个寻路过程:如果附近有MT就缓存数据包并将其发送到该MT,同时启动ACK接收定时器;如果附近没有MT将数据包路由到最近的SS。MT收到数据后应该在MTA的ACK接收定时器设定的超时时间内发送一个应答MT_DATA_ACK,MTA收到MT_DATA_ACK后将缓存中的数据包删除。如果MTA在定时器超时时还没有收到应答,就认为该数据已经丢失,重新启动寻路过程。
注意:如果网络中传感器节点采用分簇结构进行组织,则本步骤所述过程只由簇头节点执行。
本发明通过在在全固定传感器网络中引入一些带有传感器通信接口的移动终端,使用本发明相比传统固定及其它移动辅助的无线传感器网络信息获取方法具有如下一些显著的优点:
1)实现了网络负载均衡:传统固定传感器网络中汇聚节点附近是整个网络的通信热区,这一区域内节点承受的数据流量远远大于网络中其它位置的节点承受的流量。这一现象就造成了汇聚节点附近的网络节点比其它位置网络节点更快的消耗自身能量。一旦这部分节点失效,整个网络的连通性就会受到破坏。本发明中传感器节点除了可以将数据发送到固定汇聚节点之外还可以将数据发送到邻近的移动终端,流向固定汇聚节点的数据量减少,从而使整个网络的负载得以均衡分配。
2)增大了网络容量:传统固定传感器网络的网络容量受汇聚节点周围网络节点传输能力限制,当网络中数据流量加大时,汇聚节点周围发生频繁的数据包碰撞与重传,整个网络的吞吐量难以提高。本发明中由于移动终端分担了一部分网络数据流量,缓解了固定汇聚节点附近的通信瓶颈问题,网络吞吐量得以提升。
3)提高数据传输成功率:由于采取了应答-重传的机制,由移动终端移动带来的数据包丢失问题得以解决,数据传输成功率得到保障。
4)降低了平均数据传输延迟:由于引入移动终端进行辅助信息获取,数据传输的平均路径长度减小,数据平均传输延迟降低。
具体实施方式
下面结合附图及实施例对本发明作进一步的说明。
本发明的移动终端辅助的无线传感器网络信息获取方法包括如下步骤:
步骤1)网络中所有节点上电,并完成自身初始化工作。固定汇聚节点(SS)广播自声明消息(StaticSink Announcement,SS_ANNONCE),消息中包括的信息有:固定汇聚节点的标识符、上一跳节点标识符、上一跳节点距离汇聚节点的跳数。网络中全部传感器节点通过扩散SS_ANNOUNCE消息来建立到固定汇聚节点的距离梯度。这个过程可以细分为以下两个部分:
a.固定汇聚节点广播SS_ANNOUNCE消息,消息的上一跳节点标识符设定为自己的ID,距离汇聚节点的跳数设为0。
b.传感器节点接收到SS_ANNOUNCE消息,查找自己的Sink Table,如果没有找到消息中汇聚节点标识符对应的条目就将该SS_ANNOUNCE消息标识的固定汇聚节点信息加入Sink Table,同时广播转发此SS_ANNOUNCE消息;如果找到对应条目就比较Sink Table条目中记录的到汇聚节点跳数与通过SS_ANNOUNCE消息中信息计算得到的跳数,如果前者较大就将其用后者计算得到的跳数信息进行更新,并广播转发此SS_ANNOUNCE消息。
在以上整个过程中,传感器节点都不响应移动终端的消息。通过上述过程,网络中所有传感器节点至少能获得到一个固定汇聚节点的距离梯度信息。
步骤2)传感器节点(SN)进入正常工作状态,按照预先设定的工作模式进行工作:当工作在定时上报模式时,传感器节点定时读取传感器数据,并将数据上传;当工作在查询模式时,固定汇聚节点扩散查询命令,收到查询命令的传感器节点进行命令指定的传感器数据采集工作,并将采集到的数据上传。传感器节点到固定汇聚节点的路由协议可以采用现有的任何传感器网络相关路由协议,例如AODV、DSR或者地理位置路由等。
步骤3)移动终端(MT)广播其存在信息,周围小范围内的传感器节点通过交互移动终端相关信息来动态维护自己的上行数据路由。这个过程可以细分为以下几个部分:
c.MT向邻近传感器节点广播HELLO消息MT_HELLO。邻近传感器节点接收到MT_HELLO消息后将该MT加入自己的Sink Table,如果自己不是MTA就向邻近传感器节点广播MTA声明消息MTA_ANNOUNCE。为了将MTA的影响范围控制在一个较小的区域内,必须限制MTA_ANNOUNCE消息的传播跳数,这通过在消息中加入一个TTL域来实现。MTA为TTL域赋予一个较小的初始值。最后,节点启动MT检测定时器。如果定时器超时,说明MT已经移动到自己的通信范围之外,应该从Sink Table中删除该MT并检查Sink Table是否为空,如果为空,就向周围节点广播MTA删除消息MTA_DELETE。如果节点在定时器超时前再次收到同一MT的MT_HELLO就取消旧的定时器并重新启动一个新定时器。
d.接收到MTA_DELETE消息的邻近传感器节点在自己的MTA Table中查找此MTA:如果找到,就删除该MTA并广播转发MTA_DELETE消息;如果MTA Table中无此MTA就直接丢弃该消息。
e.邻近传感器节点接收到MTA_ANNOUNCE消息,查询自己的MTA Table:如果该MTA已经在MTATable中,则直接丢弃该消息;如果列表中不存在此MTA就将其加入,并将列表项的LastHop及HopCount域设置为消息中的LastHop及HopCount+1。列表项新建完毕后节点将原消息的TTL值减1,LastHop域更新为自己的ID,HopCount域更新为原HopCount+1。然后向邻近传感器节点广播转发更新后的MTA_ANNOUNCE。
f.邻近传感器节点产生传感数据包后,查找自己MTA列表中HopCount最小的一个MTA:如果没有找到,就给数据包设置Packet to SS(PTSS)标记并交由到SS的默认路由协议处理;如果找到且其HopCount小于等于Sink Table中所有SS的HopCount,就给数据包设置Packet to MT标记(PTMT)并转发到该MTA表项LastHop域指向的节点。
g.邻近传感器节点接收到上行数据包,查找自己MTA列表中HopCount最小的一个MTA,如果找到且其HopCount小于等于Sink Table中所有SS的HopCount,就为数据包设置PTMT标记并转发到该MTA表项的LastHop域指向的节点。这样,通过多跳转发,数据包能够到达MTA,并由MTA发送到MT;如果节点收到上行数据包时发现自己的MTA列表为空且数据包中PTMT标记被设置,则向数据包的上一跳节点发送MTA_INVALID消息,声明自己已经不能和任何MTA建立联系,然后给数据包设置Packet to SS(PTSS)标记并交由到SS的默认路由协议处理。
h.接收到MTA_INVALID消息的节点查找自己的MTA列表,删除所有LastHop域为此消息发送者ID的表项。
i.MTA收到上行数据包,启动一个寻路过程:如果附近有MT就缓存数据包并将其发送到该MT,同时启动ACK接收定时器;如果附近没有MT将数据包路由到最近的SS。MT收到数据后应该在MTA的ACK接收定时器设定的超时时间内发送一个应答MT_DATA_ACK,MTA收到MT_DATA_ACK后将缓存中的数据包删除。如果MTA在定时器超时时还没有收到应答,就认为该数据已经丢失,重新启动寻路过程。
所述的使用本发明的无线传感器网络体系结构如错误!未找到引用源。所示。它由三种类型的节点组成:
1)传感器节点:简称为SN(Sensor Node)。此类节点上配备各种类型的传感器,负责对周围环境的探测与感知。该类节点能量有限,处理能力有限,通信距离短,通信带宽窄,造价低廉。传感器节点可以采用分簇或者平面拓扑结构。使用平面拓扑结构时,所有节点的地位都是等同的,网络数据包通过多跳的方式在节点间传递;使用分簇拓扑结构时,网络被分为多个逻辑单位,每个逻辑单位中有一个传感器节点被选举为簇头节点,簇头节点维护到固定汇聚节点或者移动终端的路由。逻辑单位中其它传感器节点成为簇成员,当传感器节点有数据需要传送时,先将数据传送到节点所在簇的簇头节点,然后簇头节点之间通过多跳把数据传送到固定汇聚节点或者移动终端。
2)固定汇聚节点:简称为SS(Static Sink)。此类节点通常都配备两个以上的网络接口,一方面,可以通过传感器通信接口与底层传感器节点进行通信,另一方面,可以通过连接以太网或者高速的无线网络以接入上层网络。固定汇聚节点是底层传感器网络与上层高速网络的互联接口。固定汇聚节点通常有充足的能量供应,处理能力与存储能力都较强。
3)移动终端:简称为MT(Mobile Terminal)。此类节点通常指具有底层传感器网络通信接口的商用移动通信终端。和固定汇聚节点类似,其携带的能量较充足或者可以进行充电以补充能量。节点处理能力与存储能力都较强。移动终端可以通过高速无线网络与固定汇聚节点通信或者直接充当底层传感器网络接入上层高速网络的网关。
节点状态及转换:网络中的传感器节点按工作状态分为3种类型,如错误!未找到引用源。所示:
1)普通工作状态节点(SN):节点上电初始化后就进入该状态,在该状态中节点没有感知到任何与移动终端有关的信息,而只是通过预设的路由协议向固定汇聚节点发送数据。
2)移动终端邻近状态节点(Mobile Terminal Adjacent,MTA):普通工作状态的传感器节点收到MT发出的HELLO消息后转变为该状态。在该状态中,MTA至少能与一个MT直接通信。
3)MTA感知状态节点(Mobile Terminal Adjacent Aware,MTAA):普通工作状态的传感器节点收到MTA发送的MTA声明消息(MTA Announcement,MTA_ANNOUNCE)后切换到该状态。在该状态中,节点能够通过多跳将数据包转发给MTA,再由MTA发送到MT。
网络中每个SN都维护一个汇聚节点列表Sink Table和一个MTA列表MTA Table:SinkTable中保存着节点已知的所有固定汇聚节点和移动终端的信息,例如ID、类型、上一跳节点ID、自己到汇聚节点或移动终端跳数等;MTA Table中保存节点已知的MTA信息,其中包括ID、上一跳节点ID(LastHop)和自己距MTA跳数HopCount。每个SN都处理6种类型的控制消息:SS自声明消息(SS_ANNOUNCE)、MT发出的HELLO消息(MT_HELLO)、MTA声明消息(MTA_ANNOUNCE)、MTA删除消息(MTA_DELETE)、MTA无效消息(MTA_INVALID)和MT数据应答消息(MT_DATA_ACK)。
现以一个假定的实例来进一步描述本发明:开发一个基于无线传感器网络的大型室内场馆的火灾预警与监控应用,采用本发明提出的移动终端辅助的信息获取方法,完成实时的火灾预警与灾情形势信息收集工作。
(1)场馆中放置大量的烟雾与温度传感节点进行场馆内环境监控工作。
(2)场馆中央或者周围放置少量固定汇聚节点进行场馆内数据收集工作。
(3)场馆中部分人员携带具有传感器通信接口的手机作为移动终端。
(4)火灾发生后,部分具有传感器通信接口与高速移动通信终端的的探测机器人被派到场馆内进行辅助探测与数据收集。
整个系统的工作流程为:
1)网络中所有节点上电,并完成自身初始化工作。固定汇聚节点(SS)广播自声明消息(Static SinkAnnouncement,SS_ANNONCE),消息中包括的信息有:固定汇聚节点的标识符、上一跳节点标识符、上一跳节点距离汇聚节点的跳数。网络中全部传感器节点通过扩散SS_ANNOUNCE消息来建立到固定汇聚节点的距离梯度。
2)传感器节点(SN)进入正常工作状态,此时工作在事件触发模式,传感器节点定时需读取温度与烟雾探测器数据,如果探测到异常状况,就上报报警信息。
3)当携带具有传感器通信接口手机的人员或者机器人进入场馆后,其携带的移动终端设备(MT)定时广播其存在信息,周围小范围内的传感器节点通过交互移动终端相关信息来动态维护自己的上行数据路由。这个过程可以细分为以下几个部分:
a.MT向邻近传感器节点广播HELLO消息MT_HELLO。传感器节点接收到MT_HELLO消息后将该MT加入自己的Sink Table,如果自己不是MTA就向周围节点广播MTA声明消息MTA_ANNOUNCE。最后,节点启动MT检测定时器。如果定时器超时,说明MT已经移动到自己的通信范围之外,应该从Sink Table中删除该MT并检查Sink Table是否为空,如果为空,就向周围节点广播MTA删除消息MTA_DELETE。如果节点在定时器超时前再次收到同一MT的MT_HELLO就取消旧的定时器并重新启动一个新定时器。
b.接收到MTA_DELETE消息的传感器节点在自己的MTA Table中查找此MTA:如果找到,就删除该MTA并广播转发MTA_DELETE消息;如果MTA Table中无此MTA就直接丢弃该消息。
c.传感器节点接收到MTA_ANNOUNCE消息,查询自己的MTA Table:如果该MTA已经在MTA Table中,则直接丢弃该消息;如果列表中不存在此MTA就将其加入,并将列表项的LastHop及HopCount域设置为消息中的LastHop及HopCount+1。列表项新建完毕后节点将原消息的TTL值减1,LastHop域更新为自己的ID,HopCount域更新为原HopCount+1。然后向周围节点广播转发更新后的MTA_ANNOUNCE。
d.传感器节点产生传感数据包后,查找自己MTA列表中HopCount最小的一个MTA:如果没有找到,就给数据包设置Packet to SS(PTSS)标记并交由到SS的默认路由协议处理;如果找到且其HopCount小于等于Sink Table中所有SS的HopCount,就给数据包设置Packet to MT标记(PTMT)并转发到该MTA表项LastHop域指向的节点。
e.传感器节点接收到上行的报警数据包,查找自己MTA列表中HopCount最小的一个MTA,如果找到且其HopCount小于等于Sink Table中所有SS的HopCount,就为数据包设置PTMT标记并转发到该MTA表项的LastHop域指向的节点。这样,通过多跳转发,数据包能够到达MTA,并由MTA发送到MT;如果节点收到上行数据包时发现自己的MTA列表为空且数据包中PTMT标记被设置,则向数据包的上一跳节点发送MTA_INVALID消息,声明自己已经不能和任何MTA建立联系,然后给数据包设置Packet to SS(PTSS)标记并交由到SS的默认路由协议处理。
f.接收到MTA_INVALID消息的节点查找自己的MTA列表,删除所有LastHop域为此消息发送者ID的表项。
g.MTA收到上行报警数据包,启动一个寻路过程:如果附近有MT就缓存数据包并将其发送到该MT,同时启动ACK接收定时器;如果附近没有MT将数据包路由到最近的SS。MT收到数据后应该在MTA的ACK接收定时器设定的超时时间内发送一个应答MT_DATA_ACK,MTA收到MT_DATA_ACK后将缓存中的数据包删除。如果MTA在定时器超时时还没有收到应答,就认为该数据已经丢失,重新启动寻路过程。