占空比无线传感器网络中基于优先级的大块数据分发方法与流程

文档序号:11681875阅读:228来源:国知局
占空比无线传感器网络中基于优先级的大块数据分发方法与流程

本发明涉及通信技术领域,尤其涉及一种无线传感器网络中基于优先级的大块数据分发方法。



背景技术:

无线传感器网络是由部署在监测区域内的大量微型传感器,通过无线通信方式形成的一种多跳的、自组织的网络。传感器节点一旦部署完毕将会长期工作于无人看守的或者恶劣的工作环境中,故通过人工的方式手动地对所有节点进行再编程将是一项非常耗时、耗力甚至是不可能完成的工作。大块数据分发技术是无线传感器网络的一项重要研究内容,数据从源节点通过无线通信传输到网络中的所有节点。数据可能是一个新的代码,系统命令或者更新的系统指标等。使用大块数据分发技术可以一次性传输大量数据给网络中的所有节点,传输的数据量一般超过10k字节。

大块数据分发技术要求百分之百的可靠性,即网络中的所有节点都要收到完整的数据,所以最后一个节点收到完整数据的时间就是大块数据分发的完成时间。现有的大块数据分发技术都以tinyos系统下的deluge协议为基准,deluge协议采用三次握手机制进行协商,协商成功就可以将数据发送给邻节点,邻节点再作为发送节点将数据转发给下一跳节点。deluge协议的优点是过程简单易于实施,缺点是没有考虑网络中的特殊节点,只要节点协商成功就直接发送数据,以及没有采用占空比模式来节约能耗。

pw-mac协议是一种占空比模式下的mac层协议,该协议中节点采用异步休眠调度机制与邻节点进行通信。为了能够预测邻节点的醒来时间,pw_mac协议使每个节点使用一个唯一的伪随机序列唤醒调度表来计算节点自身的醒来时间,以减少节点的碰撞概率。节点可以在获得任一节点的唤醒时刻调度表之后,随时计算出这一节点的醒来时刻。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种无线传感器网络中基于优先级的大块数据分发方法,占空比表示是节点交替工作在休眠状态与活动状态之间,该方法采用pw_mac协议实现占空比,采用优先级优先向难以获得数据的节点发送数据,目标是使网络中拖慢整体分发进程的节点有更多机会获得数据从而减少分发完成时间以及节约节点能耗。

为实现上述目的,本发明提供了一种无线传感器网络中基于优先级的大块数据分发方法,节点根据pw_mac协议采用伪随机序列唤醒调度表,其中伪随机序列唤醒时刻调度表为节点的休眠时间由伪随机序列xn+1=(axn+c)%m产生,其中m是模数,a是乘数,c是增量,xn为本次休眠时间,xn+1为下次休眠时间,设节点集为v,源节点为sn,包括如下的步骤:

(1)、节点s计算下一个最早醒来的节点r1的醒来时间,并在节点r1醒来时与节点r1进行协商,转向步骤(2);

(2)、如果节点s与节点r1协商成功,则节点s向节点r1发送数据,转向步骤(3),否则休眠;

(3)、节点s给节点r1发送数据的过程中节点r2醒来,转向步骤(4);

(4)、节点s计算节点r1、节点r2的优先级并比较,如果节点r2的优先级低于节点r1,转向步骤(7),否则转向步骤(5);

(5)、节点s向节点r1发送中止信息暂停数据发送,与节点r2协商,转向步骤(6);

(6)、如果节点s与节点r2协商成功,则向节点r2发送数据,否则转向步骤(7);

(7)、节点s继续给节点r1发送数据。

上述的一种无线传感器网络中基于优先级的大块数据分发方法,其特征在于,所述的步骤(4)中计算节点r1、节点r2的优先级并比较,按如下步骤进行:

(4.1)、节点s计算节点r1、节点r2的发送效益eef,转向步骤(4.2);

(4.2)、节点s获取节点r1、节点r2的深度值level,转向步骤(4.3);

(4.3)、节点s获取节点r1、节点r2的高度值heght,转向步骤(4.4);

(4.4)、节点s计算节点r1、节点r2接收数据的速率sp,转向步骤(4.5);

(4.5)、节点s采用层次分析法计算出发送效益eef、深度值level、高度值heght、接收数据速率sp的权重w1,w2,w3,w4,并采用公式

w1·eff+w2·level+w3·heght+w4·sp

将发送效益、深度值、高度值、接收数据的速率加权计算,得到节点r1、节点r2的优先级,转向步骤(4.6);

(4.6)如果节点r2的优先级低于节点r1,转向步骤(7),否则转向步骤(5)。

上述的一种无线传感器网络中基于优先级的大块数据分发方法,其特征在于,所述步骤(4.2)中获取节点r1、节点r2的深度值,节点的深度值按如下步骤计算:

(4.2.a)初始化节点深度值,节点i的深度值用level(i)表示,其中源节点sn的深度值初始化为0,其余节点的深度值初始化为∞;

(4.2.b)所有节点按照伪随机序列调度表定期广播一个包含节点自身的深度值的信标帧,信标帧用beacon表示,转到步骤(4.2.c);

(4.2.c)如果节点收到邻节点的beacon,查看beacon中携带的邻节点的深度值,如果邻节点的深度值为无穷大或者邻节点的深度值加1大于本节点的深度值,则重复步骤(4.2.b),否则转向步骤(4.2.d);

(4.2.d)将本节点的深度值更新为邻节点beacon中携带的深度值加1,转向步骤(4.2.b)。

上述的一种无线传感器网络中基于优先级的大块数据分发方法,其特征在于,所述步骤(4.3)中获取节点r1、节点r2的高度值,节点的高度值按如下步骤计算:

(4.3.a)初始化节点高度值,节点i的高度值用height(i)表示,其中所有节点的深度值都初始化为0;

(4.3.b)所有节点按占空比模式定期广播一个包含节点自身的深度值和高度值的信标帧,信标帧用beacon表示,转到步骤(4.3.c);

(4.3.c)如果节点收到邻节点的beacon,查看beacon中携带的邻节点的深度值和高度值,如果邻节点的深度值小于或者等于本节点的深度值,则重复步骤(4.3.b),否则转向步骤(4.3.d);

(4.3.d)如果邻节点的高度值加1大于或者等于本节点的高度值,则重复步骤(4.3.b),否则转向步骤(4.3.e);

(4.3.e)将本节点的高度值更新为邻节点beacon中携带的高度值加1,重复步骤(4.3.b)。

本发明的有益效果是:

1、本发明采用pw_mac协议实现了占空比模式下的大块数据分发,节点大部分时间处于休眠状态,节约能耗。

2、本发明采用优先级机制使难以获得数据的节点有更多机会获得数据,加快了分发进程,减少了整体分发完成时间。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1为初始化流程图

图2为本发明的实现流程图

图3为占空比无线传感器网络拓扑图。

具体实施方式

下面结合附图和实施例对本发明详细说明。

以下实施实例用于说明本发明,但不用来限制本发明的适用范围。

实施例1

本发明适用于低占空比无线传感器网络。每个传感器节点根据pw_mac协议均有一个唯一的伪随机序列唤醒时刻调度表,并可以根据其他节点的伪随机序列唤醒时刻调度表计算出其他节点的醒来时间。其中伪随机序列唤醒时刻调度表为节点的休眠时间由伪随机序列xn+1=(axn+c)%m产生,其中m是模数,a是乘数,c是增量,a,m,c称之为节点的预测参数,xn为本次休眠时间,xn+1为下次休眠时间。一个节点只要知道另一个节点的预测参数就可以计算出其休眠时间间隔,继而计算出其醒来的时间。

pw-mac协议是一种占空比模式下的mac层协议,该协议中节点采用异步休眠调度机制与邻节点进行通信。为了能够预测邻节点的醒来时间,pw_mac协议使每个节点使用一个唯一的伪随机序列唤醒调度表来计算节点自身的醒来时间,以减少节点的碰撞概率。节点可以在获得任一节点的唤醒时刻调度表之后,随时计算出这一节点的醒来时刻。

当传感器节点需要向邻节点发送数据时,首先需要与邻节点进行协商,协商成功之后向邻节点发送数据,邻节点再作为发送节点向下一跳节点发送数据。本发明包含两个阶段,一是初始化阶段,更新邻节点信息以及深度值和高度值;二是分发阶段,将数据从源节点分发到网络中的所有节点。

第1部分,初始化过程:

初始化部分,所有节点保持唤醒状态,如图1所示,本发明的初始化阶段实现步骤如下:

步骤1、节点i初始化深度值和高度值,其中level(sn)=0,level(i)=∞,i∈v且i≠sn,height(i)=0,i∈v;

步骤2、每个节点按照自己的伪随机序列唤醒时刻调度表发送beacon,beacon中携带了节点自身的高度值和深度值;

步骤3、节点i收到节点j的beacon数据包,如果此时网络中所有节点的深度值更新完成,转向步骤5,否则转向步骤4;

步骤4、如果level(i)>level(j)+1,level(i)=level(j)+1,转向步骤2;

步骤5、如果height(i)>height(j)+1,height(i)=height(j)+1,转向步骤2。

第2部分,分发过程:

如图2所示,一种占空比无线传感器网络中基于优先级的大块数据分发方法,设节点集为v,源节点为sn,包括如下的步骤:

(1)、节点s计算下一个最早醒来的节点r1的醒来时间,并在节点r1醒来时与节点r1进行协商,转向步骤(2);

(2)、如果节点s与节点r1协商成功,则节点s向节点r1发送数据,转向步骤(3),否则休眠;

(3)、节点s给节点r1发送数据的过程中节点r2醒来,转向步骤(4);

(4)、节点s计算节点r1、节点r2的优先级并比较,如果节点r2的优先级低于节点r1,转向步骤(7),否则转向步骤(5);

(5)、节点s向节点r1发送中止信息暂停数据发送,与节点r2协商,转向步骤(6);

(6)、如果节点s与节点r2协商成功,则向节点r2发送数据,否则转向步骤(7);

(7)、节点s继续给节点r1发送数据。

本实施例中,所述的步骤(4)中计算节点r1、节点r2的优先级并比较,按如下步骤进行:

(4.1)、节点s计算节点r1、节点r2的发送效益eef,转向步骤(4.2);

(4.2)、节点s获取节点r1、节点r2的深度值level,转向步骤(4.3);

(4.3)、节点s获取节点r1、节点r2的高度值heght,转向步骤(4.4);

(4.4)、节点s计算节点r1、节点r2接收数据的速率sp,转向步骤(4.5);

(4.5)、节点s采用层次分析法计算出发送效益eef、深度值level、高度值heght、接收数据速率sp的权重w1,w2,w3,w4,并采用公式

w1·eff+w2·level+w3·heght+w4·sp

将发送效益、深度值、高度值、接收数据的速率加权计算,得到节点r1、节点r2的优先级,转向步骤(4.6);

(4.6)如果节点r2的优先级低于节点r1,转向步骤(7),否则转向步骤(5)。

层次分析法(analytichierarchyprocess,简称ahp),是将与决策有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。具体步骤为:

建立层次结构模型。在深入分析实际问题的基础上,将有关的各个因素按照不同属性自上而下地分解成若干层次,同一层的诸因素从属于上一层的因素或对上层因素有影响,同时又支配下一层的因素或受到下层因素的作用。最上层为目标层,通常只有1个因素,最下层通常为方案或对象层,中间可以有一个或几个层次,通常为准则或指标层。当准则过多时(譬如多于9个)应进一步分解出子准则层。

构造判断矩阵。从层次结构模型的第2层开始,对于从属于上一层每个因素的同一层诸因素,构造判断矩阵直到最下层。

计算权向量并做一致性检验。对于每一个判断矩阵计算最大特征根及对应特征向量,进行一致性检验分析。若检验通过,特征向量归一化后即为权向量;若不通过,需重新构造判断矩阵。

本实施例中,所述步骤(4.2)中获取节点r1、节点r2的深度值,节点的深度值按如下步骤计算:

(4.2.a)初始化节点深度值,节点i的深度值用level(i)表示,其中源节点sn的深度值初始化为0,其余节点的深度值初始化为∞;

(4.2.b)所有节点按照伪随机序列调度表定期广播一个包含节点自身的深度值的信标帧,信标帧用beacon表示,转到步骤(4.2.c);

(4.2.c)如果节点收到邻节点的beacon,查看beacon中携带的邻节点的深度值,如果邻节点的深度值为无穷大或者邻节点的深度值加1大于本节点的深度值,则重复步骤(4.2.b),否则转向步骤(4.2.d);

(4.2.d)将本节点的深度值更新为邻节点beacon中携带的深度值加1,转向步骤(4.2.b)。

本实施例中,所述步骤(4.3)中获取节点r1、节点r2的高度值,节点的高度值按如下步骤计算:

(4.3.a)初始化节点高度值,节点i的高度值用height(i)表示,其中所有节点的深度值都初始化为0;

(4.3.b)所有节点按占空比模式定期广播一个包含节点自身的深度值和高度值的信标帧,信标帧用beacon表示,转到步骤(4.3.c);

(4.3.c)如果节点收到邻节点的beacon,查看beacon中携带的邻节点的深度值和高度值,如果邻节点的深度值小于或者等于本节点的深度值,则重复步骤(4.3.b),否则转向步骤(4.3.d);

(4.3.d)如果邻节点的高度值加1大于或者等于本节点的高度值,则重复步骤(4.3.b),否则转向步骤(4.3.e);

(4.3.e)将本节点的高度值更新为邻节点beacon中携带的高度值加1,重复步骤(4.3.b)。

实施例2

占空比无线传感器网络基于优先级的大块数据分发方法同实施例1,本例以图3所示的简单网络,对本发明的占空比无线传感器网络中初始化部分节点的高度值和深度值更新过程进行描述。

图3所示为一个占空比无线传感器网络,节点0为源节点,节点间的连线表示节点互相连通,为方便描述,用(d,h)表示节点的深度值和高度值,d表示深度值,h表示高度值。节点0的高度值和深度值初始化为(0,0),其他节点的高度值和深度值初始化为(∞,0)。

每个节点都按照自己的伪随机序列唤醒时刻表唤醒,并广播信标帧beacon,beacon中携带了自己的深度值和高度值。网络中节点先更新深度值,全部节点深度值更新完之后更新高度值。

第1部分,更新深度值:

深度值更新从节点0开始逐层进行,节点0广播自己的深度值和高度值。节点1和节点2接收到来自节点0的信标帧,更新自己的深度值,网络中所有节点的深度值和高度值如表1所示。

表1节点1、2更新深度值

节点1和节点2根据自己的伪随机序列唤醒时刻表广播自己的深度值和高度值,节点3、4、5、6接收到来自节点1和节点2的信标帧,更新的深度值如表2所示。

表2节点3、4、5、6更新深度值

节点3、4、5、6根据自己的伪随机序列唤醒时刻表广播自己的深度值和高度值,节点7、8、9接收到来自节点4、5的信标帧,更新的深度值如表3所示,至此,网络中所有节点深度值更新完毕。

表3节点7、8、9更新深度值

第2部分,更新高度值:

高度值是从下往上更新的过程,节点7、8、9根据自己的伪随机序列唤醒时刻表广播自己的深度值和高度值,节点4、5接收到来自节点7、8、9的信标帧,更新的高度值如表4所示。

表4节点4、5更新高度值

节点3、4、5、6根据自己的伪随机序列唤醒时刻表广播自己的深度值和高度值,节点1、2接收到来自节点3、4、5、6的信标帧,更新的高度值如表5所示。

表5节点1、2更新高度值

节点1、2根据自己的伪随机序列唤醒时刻表广播自己的深度值和高度值,节点0接收到来自节点1、2的信标帧,更新的高度值如表6所示。至此,网络中所有节点的深度值和高度值都更新完毕。

表6节点0更新高度值

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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