一种高能效的传感器网络邻居状态查询方法
【专利说明】一种高能效的传感器网络邻居状态查询方法 一、技术领域
[0001] 本发明一种网络邻居状态查询方法,尤其是无线传感器网络中实现高能效的同时 查询技术。 二、
【背景技术】
[0002] 作为物联网的核心技术,无线传感器网络将客观世界的物理信息同传输网络连接 在一起,为人们提供最直接,最有效和最真实的信息。传感器节点利用内置的传感装置监测 自身所处环境的信息,比如温度,声音,震动,压力,污染物等。传感器节点上配有无线通信 芯片,能够将所监测到的环境信息发送给临近的其他节点或基站。多个传感器节点通过无 线通信方式可以形成一个多跳的自组织网络系统。在实际的无线传感器网络应用中,某个 查询节点(比如数据收集节点)通常需要了解其所有邻居节点的状态以做出相应的决策。 为了获得邻居节点的信息,节点可以采取轮询的方式和每个邻居通信,或者采用TDMA的方 式广播一个查询数据包之后,每个节点按照预先定好的顺序依次回复其状态。尽管这两种 方法实现起来比较简单,它们的可扩展性都不够好,因为查询节点的通信时延和能量消耗 随着都邻居节点的数目的增加而线性的增大。
[0003] 利用同时查询技术,查询节点需要首先广播一个数据包,这个数据包中可能包含 有查询节点感兴趣的一个谓语条件,比如询问邻居节点是否监测到某一事件等。收到广 播包的邻居节点会判断自身的状态是否满足这个谓语条件,如果满足的话就立即回复一个 ACK信号,不满足的话则保持沉默。如果有多个邻居节点满足这个条件,那么会有多个ACK 信号同时发出,造成ACK信号碰撞。根据无线碰撞的特点,查询节点将不可能解出叠加信号 所包含的内容,因此传统的基于解包的协议在这里无法使用。 三、
【发明内容】
[0004] 本发明的目的是,在无线传感器网络中实现邻居节点状态信息的同时查询技术。 为了实现同时查询,本发明提出利用混合信号的能量值来编码节点的状态信息。利用接收 能量的信息,查询节点不需要解包,只需根据接收能量值就可以判断所有邻居节点的状态。 与传统的基于轮询的查询技术和基于TDMA的查询技术相比,同时查询技术的时延与邻居 节点的数目无关,只需要常数度的时间复杂度就可以收集所有邻居节点的状态。
[0005] 为了实现上述目的,本发明的技术方案是,高能效的传感器网络中邻居状态查询 方法,使得一个查询节点同时查询其所有邻居节点的状态;步骤如下:
[0006] 1)根据传感器网络监控区域,布置一定数目的传感器节点,确定一个查询节点,该 节点定期的查询其所在位置的所有邻居节点的状态;
[0007] 2)查询节点在离线阶段和每个邻居节点通信,邻居节点在离线阶段给查询节点 发送几个包含了发送能量的数据包,查询节点根据数据包中发送能量的信息和数据包的接 收能量信息来估算无线信号从每个邻居节点位置到查询节点位置的路径损耗;
[0008] 3)查询节点在离线阶段广播一个时钟校准消息,收到时钟校准消息时,邻居节点 记录收到消息的时间,并将该时间依次回传给查询节点;查询节点根据收到回传消息的时 间以及消息数据中的时间来估算每个邻居节点相对自己的时钟偏移量;
[0009] 4)查询节点根据每个邻居节点的相对时钟偏移量发送一定数目的空指令给邻居 节点,邻居节点收到空指令的数目后,在查询阶段每次回复消息前都先执行一定的空指令 然后才回复查询消息;
[0010] 5)查询节点根据每个邻居节点的路径损耗,给每个邻居节点分配一个发送能量, 邻居节点收到分配的发送能量消息后,在查询阶段每次回复消息时都以指定的发送能量发 送;
[0011] 6)查询节点通过给每个邻居节点分配一个发送能量使得每个邻居节点的回复信 号到达查询节点时能量大小都相同,然后根据多个回复信号叠加后的能量来估计邻居节点 中满足某一条件的节点数目;
[0012] 7)查询节点通过给每个邻居节点分配一个发送能量,使得邻居节点回复的信号到 达查询节点时能量大小都非常分散,然后根据多个回复信号叠加后的能量值来估计邻居节 点中满足某一条件的节点的身份信息(如节点号等);
[0013] 查询节点广播一个查询条件后,所有邻居节点根据自身的状态同时恢复ACK或 NAK消息,多个消息会在查询节点处产生叠加效果,查询节点根据信号叠加后的接收能量来 判断每个邻居节点的状态。
[0014] 查询节点在进行查询前,需要在离线阶段与每个邻居节点通信,根据发送数据包 和接收数据包的能量值来确定每个邻居节点到查询节点的信号传播路径损耗;求出路径损 耗后,查询节点即可对任意邻居节点在给定发送能量大小时,估算邻居节点接收发送信号 的能量。
[0015] 查询节点在进行查询前,需要在离线阶段与每个邻居节点通信,根据发送数据和 接收数据的不同时刻来估算每个邻居节点相对查询节点的时钟偏移量;算出时钟偏移量 后,之后邻居节点在每次回复ACK或NAK之前都执行一定数目的空指令,使得所有信号都同 时到达查询节点处,产生ConstructiveInterference;
[0016] 查询节点给每个邻居节点分配相似的发送能量,来估计满足某一条件的邻居节点 数;或者给每个邻居节点分配非常分散的发送能量,来估计满足某一条件的邻居节点的身 份信息。
[0017] 利用邻居节点同时回复的ACK信号叠加之后的接收能量来判断回复节点的数目 和身份信息;要实现信号叠加之后的能量预测模型,查询节点需要知道每个邻居节点的路 径损耗和时钟漂移系数;而且信号叠加之后的能量不能超过查询节点接收能量的上限;包 含下列步骤:
[0018] 1)邻居节点路径损耗估计;
[0019] 2)邻居节点时钟漂移系数估计;
[0020] 3)建立信号能量叠加模型;
[0021] 4)估计邻居节点中满足某一条件的节点数目或者节点身份信息;
[0022] 上述步骤中1) _3)需要在离线阶段完成,且一次完成之后不需要再执行步骤第4) 则是查询节点在任何时候想要查询邻居状态信息时在线完成的。
[0023] 第一阶段:估计邻居节点的路径损耗
[0024] 考虑一个由查询节点s和邻居节点集合N所组成的静态无线网络。用L(s,i)来 表示节点i(ieN)到s的路径损耗。本文中的L(s,i)表示的是i到s的实际路径损耗, 不仅包含自由空间损耗还包括遮蔽和多径效应等。在静态网络中,我们假定L(s,i)的变化 很小,可以当做一个常数来对待。用Ρα,1〇来表示当单个节点i以发送能量h回复ACK 信号时查询节点的接收能。,有P(i, =aihi+bi,这里ajPb;是待估系数。注意,a;是发 送能量h的放缩系数,bi与背景噪音n以及路径损耗L(s,i)有关:b1=n-L(s,i)对于某 个特定的节点,a;,bdPn都是常数。
[0025] 要在给定匕的情况下预测PahJ,查询节点首先需要对链路(i,s)上的ajPbi 这两个系数进行估计。这需要至少两个像(ρα,ιο,ιο这样的元组样本。为了降低估计误 差,在实验中我们用了更多的这样的元组样本,然后用最小均方差来估计 &1和bi。知道ai 和匕后就可以计算路径损耗L,以及给定某邻居节点的发送能量预测其接收能量了。
[0026] 第二阶段:估计邻居节点时钟漂移系数
[0027] 1)信号传播时延:是指信号在空中从查询节点到接收节点,再从接收节点到查询 节点这两趟的飞行时间;
[0028] 2)软件时延:包括a).接收节点的通信芯片监测到信号到达之后将其SFD引脚置 低电平到MCU监测到SFD引脚上的低电平所产生的时延;b)MCU需要判断接收包的谓语条 件以及向通信芯片发出回复ACK命令;这些上层逻辑的所对应的底层指令的执行所产生的 时延以及c)通信芯片监测到的MCU所发出的回复ACK命令的时延;
[0029] 3)硬件时延:通信芯片在回复ACK之前需要调整其内部的压控振荡器以及从接包 状态
[0030] 转移到发包状态所需要的时延;
[0031 ] 查询节点的数据发送时延与所有节点的数据接收时延都是相同的,由此估计每一 个接收节点相对查询节点的时钟漂移系数;在获得每一个节点的时钟漂移系数后,查询节 点给每个邻居节点分配一定数目的空指令,所有邻居节点的信号最后都同时到达查询节 点。邻居节点需要执行的空指令数目由查询节点在离线阶段计算并发给每个节点;
[0032] 第三阶段、建立信号能量叠加模型
[0033] 考虑多个无线信号在查询节点处叠加的情况。假