技术领域
本发明涉及一种无线通信中的单跳多播方法,该方法适用于传感 器节点能够捕获环境能量的无线传感器网络。
背景技术
无线传感器网络有着非常广泛的应用前景。但是,在传统传感器 网络中,传感器节点由电池来供电,而电池的容量是有限制的,电池 储能的耗尽意味着传感器节点生命的结束。即使采用经过优化的通信 和网络协议,节点的生命也非常有限,这严重的限制了无线传感器网 络的实际应用。
由具有能从环境中捕获能量的传感器节点组成的无线传感器网络 (Energy-HarvestingWirelessSensorNetworks,EH-WSNs),提供了一种 崭新的有效突破能量供应瓶颈的传感器网络方案,具有非常广泛的实 际应用前景。在EH-WSNs中,在对节点的工作参数进行重新配置、更 新节点的系统等场合需要用到多播或广播通信。由于传感器节点捕获 能量非常有限,使用以基站为汇聚节点的单跳星形拓扑是一种相对容 易实现的网络结构。
本发明考虑EH-WSNs如下单跳多播场景:源节点具有充足能量而 接收节点的能量是通过捕获而得来。目前为止,已经有一些文献研究 设计该场景下的单跳多播方案。比如Kuan等人提出的多播方法(参见 《ReliableMulticastandBroadcastMechanismsforEnergy-Harvesting Devices》,刊于IEEETransactionsonVehicularTechnology,2014)。 这些已有方法虽然具有剩余能量意识和采用了数据块提前终止接收机 制,但还存在二个方面的不足:(1)没有考虑到传感器节点在数据块接 收过程中还会捕获一定的能量,这将会发生以下情况:节点由于当前 能量不足以接收整个当前数据块而不启动该数据块接收,但是节点电 池由于该数据块持续期间的能量捕获而发生储能溢出;(2)未考虑无线 链路丢包率动态变化特性,不管当前数据块接收期间的丢包率多高, 只要当前能量足够接收本数据块中所有数据包,就接收该数据块。这 二个方面会很浪费所捕获的极其有限的能量,造成较低的数据包传递 率。
发明内容
为了克服现有能量捕获无线传感网单跳多播方法的低数据包传递 率不足,本发明提出一种高数据包传递率的单跳多播方法,该方法综 合考虑节点当前储能、能量捕获速率以及当前信道质量这三方面因 素,分析出当前待接收数据块的正确接收数据包数目期望值,只有当 该期望值大于等于一定值时或者如果不接收该数据块则将发生储能溢 出时才接收该数据块,有效地降低了信道质量差造成接收失败和节点 储能溢出这两种事件的发生频率,提高了单跳多播的数据包传递率。
本发明为了解决上述技术问题提供的技术方案为:
一种能量捕获无线传感网高数据包传递率多播方法,其特征在 于:所述多播方法包括以下步骤:
1)基站节点操作过程如下:
(1.1)在需要以多播方式发送出去且尚未发送的源数据包中挑出任 意k个源数据包,将这k个源数据包利用系统纠删码进行编码来得到 个数据包,称这n个数据包为一个数据块,其中p是传感器 节点无线链路的平均丢包率,运算符号
是对符号内部的数值向上取 整数,参数k的取值取决于传感器节点的内存大小,其取值所对应的n 个数据包总大小要小于等于传感器节点上的缓存大小;
(1.2)对编码得到的n个数据包,以M个时隙为一个周期,每周期只 发送一个数据包,其中Epkt是传感器节点接收一个数 据包所消耗的能量,
是传感器节点的平均能量捕获速率,Ts是一个时 隙的时间长度;
2)捕获环境能量的传感器节点操作过程如下:
(2.1)在新到来的数据块初始时刻,根据本传感器节点在数据块初 始时刻的储能E(1)和本传感器节点能量捕获速率sh的值,计算出一旦接 收该数据块则能正确接收的数据包个数期望值N;
(2.2)如果N≥k或者E(1)-nMEidle+nMTssh>C,则继续执行步骤
(2.3),否则不接收该新到来的数据块,其中Eidle为传感器节点在一个空 闲时隙上所消耗的能量,C为传感器节点的储能容量;
(2.3)对于当前数据块中每个到来的数据包,如果在该数据包到达 时刻传感器节点的能量小于接收一个数据包所需消耗的能量Epkt,则不 接收该数据包,否则接收该数据包,每当接收完一个数据包时进行以 下操作:如果已经正确接收的数据包为k个,则停止接收当前数据块 的后续数据包并继续执行步骤(2.4),如果接收出错的数据包个数为n- k+1个,则跳过步骤(2.4)并停止接收当前数据块的后续包,否则继续进 行当前数据块的后续数据包的接收;
(2.4)进行系统纠删码解码以恢复出k个源数据包。
进一步,所述步骤(2.1)中参数N的计算包括以下步骤:
(2.1.1)初始化j=1,N=0;
(2.1.2)如果j≤n,则执行下一步骤;否则执行步骤(2.1.5);
(2.1.3)如果E(j)≥Epkt,E(j)表示本传感器节点第j个数据包接收 时刻的储能,则更新接收的数据包个数期望值N←N+1,并且计算第 j+1个数据包接收时刻的储能
E(j+1)=min{E(j)-Epkt-(M-1)Eidle+MTs·sh,C};否则计算j+1个数据包接 收时刻的储能为E(j+1)=min{E(j)-MEidle+MTs·sh,C};
(2.1.4)令j←j+1,然后再跳到步骤(2.1.2);
(2.1.5)N←N·(1-pe),其中pe为本传感器节点的丢包率。
本发明的技术特点及效果:该方案综合考虑节点当前储能、能量捕 获速率以及当前信道质量这三方面因素,分析出当前待接收数据块的 正确接收数据包数目期望值,只有当该期望值大于等于一定值时或者 如果不接收该数据块则将发生储能溢出时才接收该数据块,有效地降 低了信道质量差造成接收失败和节点储能溢出这两种事件的发生频 率,高效利用极有限的捕获能量。
具体实施方式
下面对本发明做进一步说明。
一种能量捕获无线传感网高数据包传递率多播方法,包括以下步 骤:
1)基站节点操作过程:当基站节点要以单跳多播的方式往传感器 节点上多播数据包时,在需要发送出去且尚未发送的源数据包中挑出 任意k个源数据包,进行以下操作并发送出去,具体如下:
(1.1)将这k个源数据包利用已有的任意一种系统纠删码进行编码 来得到个数据包,称这n个数据包为一个数据块,其中p是 传感器节点无线链路的平均丢包率,运算符号
是对符号内部的数值 向上取整数,参数k的取值取决于传感器节点的内存大小,其取值所 对应的n个数据包总大小要小于等于传感器节点上的缓存大小;
(1.2)对编码得到的n个数据包,以M个时隙为一个周期,每周期只 发送一个数据包,其中Epkt是传感器节点接收一个数 据包所消耗的能量,
是传感器节点的平均能量捕获速率,Ts是一个时 隙的时间长度.
基站重复挑出需要发送且尚未发送的任意k个源数据包,使用以上 方式来进行对应的编码操作和发送操作。如果最后一轮的剩余未发送 的数据包不足k个,则补上数据比特全为0的数据包,以凑够k个。
2)捕获环境能量的传感器节点操作过程:对于任意一个传感器节 点,每当开始接收新的数据块即n个数据包时,进行以下操作:
(2.1)在新到来的数据块初始时刻,根据本传感器节点在数据块初 始时刻的储能E(1)和本传感器节点能量捕获速率sh的值,计算出一旦接 收该数据块则能正确接收的数据包个数期望值N;
(2.2)如果N≥k或者E(1)-nMEidle+nMTssh>C,则继续执行步骤
(2.3),否则不接收该新到来的数据块,其中Eidle为传感器节点在一个空 闲时隙上所消耗的能量,C为传感器节点的储能容量;
(2.3)对于当前数据块中每个到来的数据包,如果在该数据包到达 时刻传感器节点的能量小于接收一个数据包所需消耗的能量Epkt,则不 接收该数据包,否则接收该数据包,每当接收完一个数据包时进行以 下操作:如果已经正确接收的数据包为k个,则停止接收当前数据块 的后续数据包并继续执行步骤(2.4),如果接收出错的数据包个数为n- k+1个,则跳过步骤(2.4)并停止接收当前数据块的后续包,否则继续进 行当前数据块的后续数据包的接收;
(2.4)进行系统纠删码解码以恢复出k个源数据包。
进一步,所述步骤(2.1)中参数N的计算包括以下步骤:
(2.1.1)初始化j=1,N=0;
(2.1.2)如果j≤n,则执行下一步骤;否则执行步骤(2.1.5);
(2.1.3)如果E(j)≥Epkt,E(j)表示本传感器节点第j个数据包接收 时刻的储能,则更新接收的数据包个数期望值N←N+1,并且计算第 j+1个数据包接收时刻的储能
E(j+1)=min{E(j)-Epkt-(M-1)Eidle+MTs·sh,C};否则计算j+1个数据包接 收时刻的储能为E(j+1)=min{E(j)-MEidle+MTs·sh,C};
(2.1.4)令j←j+1,然后再跳到步骤(2.1.2);
(2.1.5)N←N·(1-pe),其中pe为本传感器节点的丢包率。