发明内容
本发明所要解决的技术问题在于克服现有技术的不足,提供一种多跳无线传感网络机会路由方法及其系统,针对WSN的广播特性、有损特性,并且在候选转发节点的选择过程中考虑链路相关特性,提出的信息包接收联合概率可用来来衡量多条链路间的相关性大小,提出子集质量指数SQI(Subset Quality Index),可以衡量多跳WSN网络中所选节点子集的优劣,选择子集质量指数最小的节点子集作为候选转发子集,由此形成了一种新的机会路由机制,并且运用于水情RTU组成的无线网络。
本发明具体采用以下技术方案解决上述技术问题:
一种多跳无线传感网络机会路由方法,包括以下步骤:
步骤(1)、每个节点根据发送和接收的hello消息获得路由参数表后,广播到全网所有节点;其中,所述路由参数表包括发送hello消息节点ID、接收到hello消息节点ID、包接收率;
步骤(2)、在源节点s到目的节点d之间选取若干个级联的候选转发子集,具体为:
步骤(2-1)、从所有节点中确定一个作为源节点s,令源节点s为初始发送节点x,遍历源节点s上的路由参数表得到发送节点x与临近节点n之间的正向链路信息包接收率pxn和反向链路信息包接收率pnx,以得到发送节点x到临近节点n所组成链路的链路质量指数e(x,n);
步骤(2-2)、选取所述链路质量指数e(x,n)大于阈值α的临近节点组成节点集合Px,计算节点集合Px中任意节点到目的节点d的路径质量指数E(m,d);
步骤(2-3)、从节点集合Px中根据路径质量指数E(m,d)选取M+k个节点组成节点集合Qx,再从节点集合Qx中选取若干多个节点子集F,每个节点子集F中有k个成员节点;获得发送节点x到若干节点子集F中各节点所组成链路的信息包接收联合概率pr(x,F);由公式计算得到每个节点子集F到目的节点d的子集质量指数SQI(x,F,d),公式为:
其中,i为常数,i=1,2,3...k;ni为节点子集F中任一节点;pxi为发送节点x到节点子集F中节点的正向链路信息包接收率;pix为节点子集F中节点到发送节点x的反向链路信息包接收率;M为机会路由方法的精度参数;ni为节点子集F中任一节点;E(ni,d)为节点子集F中任一节点到目的节点的路径质量指数;
步骤(2-4)、选取子集质量指数最小的节点子集F为第一跳候选转发子集F1;
步骤(2-5)、从第一跳候选转发子集F1中选取一个节点作为发送节点,重复所述步骤(2-1)至(2-4),依次获得第二候选转发子集F2至第num跳候选转发子集Fnum,直到第num跳候选转发子集Fnum中包含目的节点d为止;
步骤(3)、源节点s发送的数据包经步骤(2)所选取的候选转发子集依次转发直到目的节点d。
进一步地,作为本发明的一种优选技术方案:所述步骤(2-5)中在获得第二候选转发子集F2至第num跳候选转发子集Fnum时,排除已被选取到之前所有的候选转发子集中的节点以及作为源节点的节点。
进一步地,作为本发明的一种优选技术方案:所述步骤(2-5)中从每一跳候选转发子集中选取优先级最高的节点作为本跳候选转发子集中的发送节点。
进一步地,作为本发明的一种优选技术方案:所述步骤(2-3)中利用Dijkstra最短路径算法得到路径质量指数E(m,d)。
一种基于上述多跳无线传感网络机会路由方法的水情远程测控系统,包括:若干个水情远程终端节点、水情汇聚终端节点、远程控制中心站,其中所述若干个水情远程终端节点和水情汇聚终端节点之间建立无线传感网络,且水情远程终端节点采集的水情数据发送至水情汇聚终端节点,所述水情汇聚终端节点向远程控制中心站上传水情数据并接收控制;所述若干个水情远程终端节点中选取一个源节点,并将水情汇聚终端节点作为目的节点;所述源节点到目的节点之间通过机会路由方法选取级联的候选转发子集;作为源节点将采集的水情数据通过级联的候选转发子集进行转发,直到发送至目的节点。
进一步地,作为本发明的一种优选技术方案:所述每个水情远程终端节点还包括太阳能电池模块,所述太阳能电池模块由太阳能充电电路与锂电池构成。
本发明采用上述技术方案,能产生如下技术效果:
本发明提出的多跳无线传感网络机会路由方法,在发送节点选择候选转发子集时,利用信息包接收联合概率来衡量多条链路间的相关性大小,并结合子集质量指数衡量多跳WSN网络中所选节点子集的优劣,选择子集质量指数最小的节点子集作为候选转发子集。子集质量指数指标充分考虑到多条链路间的相关性并且支持候选转发子集成员数为任意合理整数,由此解决了现有的机会路由中无法将各链路间的相关性考虑到路由选择过程和考虑链路相关性的多跳无线传感网络中无法实施的问题。
并且,将该多跳无线传感网络机会路由方法运用于水情测控系统中,源节点到目的节点间的通信传输利用多个级联的候选转发子集实现转发过程。每个水情远程终端节点均承担自身水情数据监测上传任务以及作为其他节点路由的任务。水情RTU网络中配置水情汇聚终端节点,水情汇聚终端节点负责与远程控制中心站通信,水情远程终端节点经由水情汇聚终端节点向远程控制中心站发送水情数据并由远程控制中心站发送的控制指令控制。节点间的通信传输不依赖于固定的转发节点,而是基于本发明的机会路由方法在候选转发子集中选择转发节点。将该多跳无线传感网络机会路由方法运用于水情RTU网络中,网络中个别中间RTU节点不可用仍能利用候选转发子集中其他节点保证RTU源节点到远程控制中心站的可靠通信,达到可无人值守的水情信息监测,提供鲁棒的通信能力。
具体实施方式
下面结合说明书附图对本发明的实施方式进行描述。
本发明设计了一种多跳无线传感网络机会路由方法,如图1所示,其中节点s为通信传输的源节点,节点d为目的节点,候选转发子集成员数为k,k在方法运行前按设计需要指定为一整数。距数据发送端(即源节点s)第一跳范围候选转发子集为F1,距源节点第num跳(num≥1)范围的候选转发子集为Fnum。发送节点x的临近节点n集合记为Rx,x候选转发子集选取过程中另外需用到的集合记为Px,Qx,算法运行结果为逐跳的候选转发子集。本发明机会路由方法算法运行步骤包括:
步骤(1)、全网周期性更新路由参数表,具体为:路由参数表包含多条记录,每条记录均包含:类型标识,用于识别该数据为路由参数表记录;路由参数表序号用于区分路由参数表中各条记录;发送hello消息节点ID及接收hello消息节点ID表示对应的hello消息发送节点与接收节点;包接收率项为前两项提到的发送hello消息节点到接收hello消息节点的hello消息包接收率;包接收记录序列为路由参数表结构最后一项,表示一个周期hello消息接收情况。路由参数表是机会路由方法运行的基础,机会路由方法中会利用路由参数表中的包接收率计算出链路质量指数;利用包接收记录序列计算出包接收联合概率。具体参数表更新步骤如下:
步骤(1-1)、全网包含多个节点,各节点向一跳范围内其他节点(即临近节点)周期性发送hello消息,hello消息头部包含发送hello消息节点ID、hello消息序列号。
步骤(1-2)、接收到hello消息的节点记录其一个周期时间内hello消息的接收情况,将发送hello消息节点ID存入路由参数表项中第三项发送hello消息节点ID,本节点ID存入路由参数表中接收hello消息节点ID项,路由参数表每增加一条记录,路由参数表序号加1;将一个周期的hello消息接收记录序列存入路由参数表中包接收记录序列项,包接收记录序列为一串有固定位数的二进制序列,计算包接收记录序列中1的位数占序列位数的百分比存入路由参数表中包接收率项;
步骤(1-3)、各节点均发送完一个周期的hello消息且均接收完临近节点一个周期的hello消息后,每个节点广播其路由参数表到全网所有节点,采用洪泛方式,各接收节点添加其路由参数表中没有的记录,每增加一条记录,路由参数表序号加1。之后,全网各节点的路由参数表汇集,每个节点上均获得数量与内容都相同的路由参数表;
步骤(2)、在源节点s到目的节点d之间选取若干个级联的候选转发子集,具体为:
设置初始状态下,发送节点为源节点,x=s,num=1。其中,x节点用于表示发送节点,源节点为初始的发送节点,num用于表示候选转发子集Fnum到源节点的跳数,运行到算法结束时,num即为源节点到目的节点所需跳数。
发送节点x的临近节点n集合为Rx≠φ,即距离发送节点x一跳范围内的节点集合,并设Px=Qx=φ,用于作为算法中间步骤节点集合。
步骤(2-1)、将源节点s作为初始发送节点x,遍历源节点s上的路由参数表即可得到发送节点x与其临近节点n间的信息包接收率。即,找出路由参数表中发送hello消息节点ID为本步骤发送节点x的记录,若记录中包接收率项不为零,则接收hello消息节点ID项表示一临近节点n,获得发送节点x到其各临近节点n之间的正向信息包接收率pxn。同样的可得各临近节点n到其发送节点x之间的反向链路信息包接收率pnx;包接收率为衡量链路质量的经典指标,由于正向链路与反向链路均对通信传输造成影响,因而同时考虑正反向链路的包接收率。然后,根据公式计算得到发送节点x到任一个临近节点n所组成链路的链路质量指数,其中n∈Rx:
e(x,n)=-ln(pxn·pnx)
步骤(2-2)、设定阈值α,并且运用节点集合Px,Px表示链路质量满足一定要求的节点集合;如果e(x,n)<α,则Px=Px∪{n};否则节点集合Px保持不变,将链路质量指数大于阈值α的对应节点n添加到节点集合Px;重复步骤(2-1)计算得到Rx中所有节点的链路质量指数,将所有链路质量指数大于阈值α的对应节点n添加到节点集合Px,并得到最终的Px。Px中不包含源节点s以及已分配到之前所有的候选转发子集中的节点:
({s}+F1+F2+...+Fnum-1)∩Px=φ(num>1时)
其中,F1、F2、...、Fnum-1依次为第一跳候选转发子集至第num-1跳候选转发子集;φ表示空集。
再定义最终的节点集合Px中任意节点m到目的节点d的路径质量指数E(m,d):
Dijkstra最短路径算法是求解网络中任意两点间最短路径的一种经典算法,若已知网络中各相邻节点间的“距离”,则可以求解出从源节点到目的节点间“距离”和最小的一条路径。基于经典的Dijkstra算法,计算任一节点m(m∈Px)到目的节点d的最短路径,并将该最短路径上的节点集合记为Ω。其中该路径上任意相邻两节点点na,nb间的“距离”定义为链路质量指数e(na,nb)。将节点集合Px中所有的节点对应的E(m,d)均计算完毕,节点集合Px中节点m到目的节点的路径质量用节点m到节点d的最短路径的“距离”和表示。
步骤(2-3)、从节点集合Px中选取路径质量指数E(m,d)较小的M+k个节点组成节点集合Qx,其中M为机会路由方法精度参数,0<M<所有节点总数-k,该步骤可通过M的大小控制临近节点较多时的计算量,M越大路由选择结果越准确,同时时间复杂度越高。再从节点集合Qx中选取k个成员节点组成若干个节点子集F,则且F有种可能。然后,计算发送节点x经其中一种可能的节点子集F到目的节点d的子集质量指数SQI(x,F,d):
其中,i为常数,i=1,2,3...k;ni为节点子集F中任一节点;pxi为发送节点x到节点子集F中节点的正向链路信息包接收率;pix为节点子集F中节点到发送节点x的反向链路信息包接收率;M为机会路由方法的精度参数;E(ni,d)为节点子集F中任一节点到目的节点的路径质量指数。pr(x,F)表示发送节点x到一种可能的节点子集F中各节点所组成链路的信息包接收联合概率。
上述的信息包接收联合概率pr(x,F)利用路由参数表中最后一项计算得出,具体为:遍历路由参数表,找出路由参数表中hello消息包发送节点ID为本步骤发送节点x的记录,若记录中包接收率项不为零,则接收hello消息节点ID项表示节点子集F中一节点,
根据路由参数表中发送hello消息节点ID为本步骤发送节点x、接收hello消息节点ID为节点子集F中任一节点的记录,即可得到发送节点x到节点子集F中任一节点的包接收记录序列,将发送节点x到节点子集F中各个节点对应的包接收记录序列进行与运算,运算所得序列中值为1的位占序列位数的百分比即为发送节点x到节点子集F中各节点所组成链路的包接收联合概率pr(x,F)。
子集质量指数SQI(x,F,d)综合考虑了节点集合F的成员节点到目的节点的路径质量以及各链路间的相关性,用于衡量节点子集F的优劣,进而选择候选转发子集。转而考虑另一个节点子集F,重复步骤(2-3),直到计算出所有种可能节点集合F对应的子集质量指数SQI(x,F,d)。
步骤(2-4)、选取最小的SQI(x,F,d)对应的节点子集F为第一跳候选转发子集F1,F1={n11,n12,...,n1k},其包含k个节点。
步骤(2-5)、从第一跳候选转发子集F1中选取一个优先级最高的可用节点作为转发节点x',其中e(x,x')=min{e(x,nnum1),…e(x,nnumk)},e(x,x')指发送节点x到下一跳候选转发子集中发送节点的链路质量指数,且表示转发节点x'在集合Fnum中优先级最高。令x=x'更新发送节点,num=num+1,重复所述步骤(2-1)至(2-4),依次获得第二候选转发子集F2、第三候选转发子集F3、...、第num跳候选转发子集Fnum,直到第num跳候选转发子集Fnum中包含目的节点d为止;则从源节点s到目的节点d的机会路由候选转发子集依次为F1、F2、...、Fnum-1。
步骤(3)、源节点s发送的数据包经步骤(2)所选取的若干个候选转发子集进行依次转发直到目的节点d。即按照步骤(2)确定好的机会路由路径传输,完成由源节点s到目的节点d间的多个级联的候选转发子集实现转发过程。
本方法中路由参数表结构如图2所示,路由参数表记录数为水情RTU网络中节点数的二次方个,每条记录都包含图2所示各项。其中,类型标识为路由参数表首项,用于识别该数据为路由参数表记录;路由参数表序号用于区分路由参数表中各条记录;hello消息发送节点ID及hello消息包发送节点ID表示对应的hello消息发送节点与接收节点;包接收率项为前两项提到的发送节点到接收节点的hello消息包接收率;包接收记录序列为路由参数表结构最后一项,表示一个周期hello消息包接收情况,为一二进制序列,序列中某位为0表示hello消息未接收到,某位为1反之,用于计算包接收联合概率。如图1所示的机会路由方法的运行,需要利用路由参数表中各项参数,包接收率用于计算链路质量指数,包接收记录序列用于计算包接收联合概率,进而计算子集质量指数。
在此基础上,本发明还提出了一种在多跳WSN的水情远程测控系统,针对WSN的广播特性、有损特性,并且在候选转发节点的选择过程中考虑链路相关特性,将多跳无线传感网络机会路由方法运用在传输过程中。
如图4所示,水情远程测控系统包括:采集水情数据的若干个水情远程终端节点、用于接收若干个水情远程终端节点发送的水情数据并上传的水情汇聚终端节点、远程控制中心站,其中所述若干个水情远程终端节点和水情汇聚终端节点之间建立无线传感网络,且水情远程终端节点采集的水情数据发送至水情汇聚终端节点,所述水情汇聚终端节点向远程控制中心站上传水情数据并接收控制;所述若干个水情远程终端节点中选取一个源节点,并将水情汇聚终端节点作为目的节点;所述源节点到目的节点之间通过本发明的机会路由方法选取级联的候选转发子集;作为源节点将采集的水情数据通过级联的候选转发子集进行转发,直到发送至目的节点。水情汇聚节点与若干个水情远程终端节点间的通信传输不依赖于固定的转发节点,而是基于本发明的机会路由方法在候选转发子集中选择转发节点,通过多个级联的候选转发子集实现转发过程。
为了验证本发明能够运用于水情遥测系统,特以一验证例进行验证。
首先,系统组建水情RTU网络如图3所示,水情RTU子网中共有15个节点,节点ID用n1~n15编号表示,水情汇聚节点ID=n1,水情远程终端节点ID=n2~n15,设定候选转发节点成员数k=2。汇聚节点用于接收水情远程终端节点发送的水情信息包,水情远程终端节点需向汇聚节点传输水情信息包同时需承担必要的转发任务,所有节点射频模块均符合2.4GHz IEEE802.15.4标准,水情RTU网络较均匀分布在30*90m2水平平面内,节点的最大通信距离为30m,在节点间距离大于25m之后包接收率快速衰减,在节点间距离大于30m之后包接收率为0。验证例RTU网络拓扑如图3所示,图中的各个顶点表示水情RTU网络中的节点,图中各线段连接的两个节点互为临近节点。
一源节点到目的节点采用机会路由传输数据的过程如图3所示,现有一水情远程终端节点n15要上传水情监测信息包到远程控制中心站,则在水情RTU子网中令水情远程终端节点n15为源节点,水情汇聚节点n1为目的节点(汇聚节点将信息包通过外网传输至远程控制中心站),通过下述步骤进行机会路由路径选择。
全网定期更新路由参数表是机会路由方法运行的基础,机会路由方法中会利用路由参数表中的包接收率计算出链路质量指数;利用包接收记录序列计算出包接收联合概率。路由参数表结构如图2所示,该网络路由参数表共15*15条记录,具体步骤如下。
路由参数表更新步骤:
步骤1.全网水情远程终端节点开机,水情汇聚节点开机,各节点初始化;
步骤2.各水情远程终端节点(包括汇聚节点)周期性广播hello消息,hello消息头部包含发送hello消息节点ID、hello消息序列号,接收到hello消息的节点记录一个周期时间内hello消息的接收情况,将发送hello消息节点ID存入路由参数表项中第三项发送hello消息节点ID,本节点ID存入路由参数表中接收hello消息节点ID项,路由参数表每增加一条记录,路由参数表序号加1;
步骤3.将一个周期的hello消息接收记录序列存入路由参数表中包接收记录序列项,包接收记录序列为一串有固定位数的二进制序列,计算包接收记录序列中1的位数占序列位数的百分比存入路由参数表中包接收率项;
步骤4.各节点均发送完一个周期的hello消息后,每个节点广播其路由参数表到全网所有RTU节点(包括汇聚节点),采用洪泛方式;
步骤5.洪泛结束,全网节点均获得更新的路由参数表,全网节点路由参数表相同,路由参数表更新结束;
路由参数表更新完成后,在水情RTU子网中,水情远程终端节点n15需向水情汇聚节点n1(进而转发到远程控制中心站)发送水情数据包之前,需要运行本发明的机会路由算法,具体步骤如下:
步骤6.在源节点n15上运行机会路由算法,遍历路由参数表,x=n15,若某节点与x节点组成的链路正反向包接收率均不为零或大于一阈值,则该节点为x的临近节点。计算节点x到其临近节点的链路质量指数,满足链路质量指数大于阈值α的临近节点添加到集合Px(Px初始为空);
步骤7.该验证例网络规模较小,Qx=Px(即令M+k=15,不限制Qx中节点数目),运行Dijkstra算法计算Qx集合中各节点到汇聚节点n1的路径质量指数;
步骤8.从集合Qx中选取k=2个节点组成多个节点子集F,计算子集质量指数SQI(x,F,d),两节点的接收联合概率由路由参数表中包接收记录序列求得,将发送节点x到节点子集F各节点的各包接收记录序列(从路由参数表中读出)进行与运算,记录结果中1占包接收记录序列位数的百分比即为所求包接收联合概率pr(x,F)。子集质量指数最小的节点子集F选为候选转发子集F1(下标表示其为第一跳),其中的成员节点与节点ID=n15节点间的链路质量指数越小,对应节点优先级越高;
步骤9.更新发送节点x为步骤8所得候选转发子集中优先级最高节点,清空F、Px、Qx集合,重复运行步骤6~8,此时,节点集合Px中不包含已分配到之前所有候选转发子集中的节点以及源节点。分别得出后续候选转发子集,重复此过程直到所分配候选转发子集中包含目的节点为止。
步骤10.路由选择结果:源节点为n15,第一跳候选转发节点子集F1={n9,n10},第二跳候选转发节点子集F2={n6,n7},第三跳候选转发节点子集F3={n3,n8},第四跳候选转发节点子集F4={n2,n4},目的节点n1。
如图3所示,为水情RTU网络拓扑图,运行本发明的机会路由算法,路由选择结果:源节点为n15,第一跳候选转发节点子集F1={n9,n10},第二跳候选转发节点子集F2={n6,n7},第三跳候选转发节点子集F3={n3,n8},第四跳候选转发节点子集F4={n2,n4},目的节点n1。
机会路由算法运行结束,源节点将水情数据包沿所得机会路径传输到水情汇聚节点n1,如图4所示,水情汇聚节点通过外网将信息包传输至远程控制中心站。
所述实施例硬件实现方面,每个水情远程终端节点由主控模块(8位RISC微处理器)、射频通信模块、太阳能电池模块、数据采集模块、存储模块构成。汇聚节点没有数据采集模块,有与远程控制中心站相连接的第二通信模块。水情远程终端节点采用低功耗微处理器,可提供2A以上电流,而静态电流仅为80uA。外围电路均选用CMOS及低功耗器件,具有AD接口,支持SPI接口。选用STC12C5410系列微处理器,该处理器为宏晶科技生产的单时钟/机器周期的微处理器,在4MHz时钟下(RISC技术,大部分指令只要一个时钟周期),工作电流仅有3.2mA,从中断唤醒只要4ms。电源采用高效率低静态工作电流的开关电源,内部集成MAX810专用复位电路,10位A/D转换,有很强的抗干扰能力。选择该型号微处理器可使得外围电路得到了大大的简化。水情远程终端节点存储容量:8MB-16MB FLASH ROM,一个扩展的SD卡。太阳能电池模块由太阳能充电电路与磷酸铁锂电池构成,能保证无人值守节点长时间内的能源供应。水情远程终端节点数据采集模块包含温度计、湿度计、水位计,定期采集水情信息并将测量数据存储在存储模块。
节点射频模块采用2.4GHz ZigBee通信模块,接收控制指令,受主控模块控制发送监测水情参数到远程控制中心站。可选用TI公司生产的符合2.4GHz IEEE802.15.4标准的CC2520射频收发芯片,该芯片电流消耗低、接收灵敏度高、抗邻频道干扰能力强、内部集成有VCO、LNA、PA以及电源整流器、与控制微处理器的接口配置容易(4总线SPI接口),支持Z-Stack协议栈,通信模块与主控模块间采用SPI接口连接。工作电压:4.5-18VDC。
终端设计采用双层金属机壳,提供电磁防护。PCB板安装在一个铝合金保护盒内,再安装在一个外箱内。机壳内部分为两个区域,密封部分用于放置电路板,通风部分安置蓄电池,外层开防雨淋通风口。
由此,验证了本发明提出的多跳无线传感网络机会路由方法,在发送节点选择候选转发子集时,利用信息包接收联合概率来衡量多条链路间的相关性大小,并结合子集质量指数衡量多跳WSN网络中所选节点子集的优劣,选择子集质量指数最小的节点子集作为候选转发子集,解决了现有的机会路由中无法将各链路间的相关性考虑到路由选择过程和考虑链路相关性的多跳无线传感网络中无法实施的问题。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。