多链型农田监测无线传感器网络无分层通信协议
2020-05-28严锡君刘旭东
严锡君,刘旭东
(河海大学计算机与信息学院,南京 211000)
0 引 言
随着无线传感器网络的技术发展和应用,线型无线传感器网络和星型无线传感器网络作为常见的网络拓扑结构,已在农田监测等工程中得到广泛的应用[1,2]。结合线型和星型结构的多链型无线传感器网络,具有通信方式简单、数据传输链路少、路由相对固定等特点,已得到国内外学者的研究,具有广阔的应用前景和发展空间。
无线传感器网络通信协议的性能决定了整个网络的性能,已从跨层协议发展到无分层协议。目前众多学者研究的无分层协议,是一种适用于多种拓扑结构的通用协议,协议较为复杂,将这些协议应用于实际网络,会产生不必要的能耗和时延。
因此,我们针对农田检测的实际应用,提出一种多链型无线传感器网络无分层设计方法,实现从协议栈到功能模块的转变,将原来各层单独实现的功能在一个整体框架里进行联合优化[3],并可以进行数据共享,减少数据计算和信息通信,根据不同的需求,对各功能模块进行优化,以提高网络整体性能。
1 多链型无线传感器网络无分层协议RBP
针对多链型网络无分层多跳路由、能耗和信息不均衡的特点,采用以下网络模型:
(1)采用多链式结构进行部署网络,均衡节点能耗。
(2)汇聚节点位置固定,且能量不限。
(3)传感器节点的初始能量相同,可沿本链或邻链多跳路由,且发射功率可调。
1.1 协议描述
网络由多条链组成,每条链上传感器之间通过多跳的方式将数据传输到汇聚节点,为了避免最后一跳与汇聚节点的通信冲突,链与链之间在不同的时隙向汇聚节点发送数据。在某一条链路出现故障时,汇聚节点在调度周期向传感器节点发送命令帧,传感器节点根据接收到的命令帧建立新的链路。汇聚节点采用粗粒度时间同步的方法对整个网络进行时间同步[4],传感器节点采用周期性睡眠和监听机制,在属于自己的时隙内醒来、定时发送数据,在上一跳节点的时隙内接收数据,其他时间处于睡眠状态。RBP网络通信结节点部署构如图1所示。
图1 网络节点部署结构图
在协议中,整个系统被分为若干个模块,每个功能模块有一个头信息,包括功率、距离、节点状态、剩余能量等信息,这些信息均被封装在一个数据包内,所有的模块均可对其进行访问,因此模块和模块之间实现了信息共享[5,6],完全打破了传统的层的概念,真正实现了无线传感器网络无层协议的设计。
1.2 帧格式定义
为了实现数据通信、节点同步和新节点加入等功能,首先定义3种数据帧结构:命令帧,数据帧和确认帧。
1.2.1 命令帧
由sink节点发送,包括信标帧、时隙重分配(SRF)帧、链路调度(LSF)帧。
(1)信标帧。信标帧是sink节点一个发送/接收周期的开始,sink节点通过广播信标帧实现时间同步。传感器节点根据在每个时钟周期内接收到信标帧的时间,进行相应的调整。信标帧包括同步信标帧、数据信标帧和令牌信标帧三类,同步信标帧用于初始化阶段全网的时间同步,数据信标帧用于传感器节点向汇聚节点发送数据,令牌信标帧用于发送数据的两个传感器之间的同步。
(2)SRF帧。当新节点加入链路时,为了避免链与链之间出现新的冲突,汇聚节点需要给每条链上新加入的节点发送SRF帧,节点在收到该帧后,根据链号和节点id取出相应的时隙,以保证链路上数据能在正确的时隙开始传输。
(3)LSF帧。当汇聚节点发现某个节点出现故障,汇聚节点首先获取该节点的链号和节点id,然后针对故障链和邻链,发送新的调度帧。
1.2.2 数据帧
数据帧由传感器节点发送,经前继节点传输到汇聚节点,数据帧分为数据发送(DSF)帧和新数据标志(NDF)帧两类。
(1)DSF帧。一帧完整的DSF帧包括帧类型、数据类型、节点地址、承载的数据。
(2)NDF帧。用于标记当前节点有无新数据,传感器节点根据NDF帧的数据标志位获取传送的数据包数,最终确定需要的时隙长度。
1.2.3 确认帧
当传输的数据到达汇聚节点时,汇聚节点做出的应答信息。根据数据类型,它分为正常数据确认帧、低电警告确认帧以及新节点加入确认帧。
1.3 汇聚节点同步与调度
汇聚节点工作主要分为汇聚节点调度周期和传感器节点时间同步周期。当汇聚节点在规定的时刻未收到来自某传感器节点发出的“心跳包”时,则认为该节点死亡,并获取该节点的位置信息。当出现以下情况时,汇聚节点需要在调度周期内进行调度:
(1)当检测到传感器节点发生故障时,汇聚节点在此周期内通过发送命令帧对故障节点的后继节点进行调度,保证链路能够恢复数据传输;
(2)对上一周期已经调度过的后继节点,在此调度周期内,汇聚节点发送新的命令帧,使之加入到邻链,使左右邻链轮流承担故障链的数据传输,实现负载均衡;
(3)当有新节点入网时,汇聚节点会发送SRF帧对时隙进行重新分配。
如果在调度周期内,传感器节点在侦听一段时间后,没有收到任何命令帧,直接进入休眠状态。
当出现以下情况时,传感器节点进入时间同步周期:
(1)建立网络时,传感器节点等待接收信标帧,进行全网时间同步;
(2)新节点加入时需要进行时间同步;
(3)当传感器节点有新的数据发送时,汇聚节点必须先对传感器节点进行同步。
采用粗粒度时间同步的方法进行时间同步:汇聚节点广播同步信标帧,传感器节点根据接收到的信标帧的时刻进行对时。假设每个传感器节点内部时钟为,即传感器节点每隔时间周期性的醒来接收信标帧,整个同步周期为Tsyc,若某个传感器节点在第一次醒来接收到信标帧的时间为周期T′内的时刻t1,如果传感器节点第二次醒来在t1时刻正常接收到信标帧,则在下次周期内接收信标帧的时间为仍为t。否则在下个周期T′内接收信标帧的时刻为t-Δt(Δt表示一个较小的时间间隔);网内的传感器节点通过周期性的醒来接收信标帧进行若干次的时间调整,最终达到时间同步的状态。时间同步过程如图2所示。
图2 时间同步过程图
2 协议实现
2.1 传感节点
网络建立后,网络所有节点初始化,包括功率控制信息表、周期性侦听和睡眠时间、数据采集速率等。然后传感器节点开始数据采集,采集完后进入休眠状态,通过定时唤醒在某一时刻同时醒来,进入周期性的侦听状态,等待接收来自汇聚节点的信标帧。传感器节点具体工作流程如下。
(1)网络初始化后,全网需要进行一次时间同步,所有传感器节点根据设定的内部时钟周期性的醒来接收信标帧,如果某个时刻醒来没有接收到信标帧,在下次周期内则进行相应的时间调整;
(2)全网时间同步后,传感器节点进入侦听阶段,从末端节点开始转发NDF数据帧,如果传感器节点有新数据产生,则将NDF中相应的数据标志置1;在NDF帧转发过程中,每个节点根据数据标志位计算在自己的时隙内需要传输数据的时间。
(3)NDF转发结束后,根据时隙部署,节点在相应的时隙内醒来,等待接收来自汇聚节点的NDS信标帧,在接收到信标帧后,处于侦听状态的节点进行同步,并在延时一定时间后开始数据发送,如果节点数据标志位为1,则进行数据处理后向下一跳节点转发数据包,直至汇聚节点。
(4)第一次数据发送完成后,传感器节点直接进入休眠状态,等待下一轮周期的到来。在下一轮周期的开始,传感器节点醒来首先进入调度周期,侦听来自汇聚节点的命令帧,如果传感器节点收到CLSF命令帧,则说明该链路出现故障,传感器节点根据接收到的CLSF帧的链号建立临时代理链路,恢复数据传输;如果传感器节点收到NLSF命令帧,则说明邻路故障,传感器节点根据通过接收到的NLSF帧的邻链号来调度数据传输,避免数据冲突;如果传感器节点收到SRF命令帧,则说明有新节点入网,传感器节点根据接收到的SRF命令帧对时隙进行重分配;
(5)调度周期结束后,如果需要时间同步,传感器节点则等待接收信标帧,进行时间同步,然后从末端节点开始转发NDF数据帧,最后根据部署的时隙进行数据通信,如此循环下去,直到网络生命周期结束。传感器节点的具体工作流程如图3所示。
图3 传感器节点工作流程图
2.2 汇聚节点
汇聚节点在初始化后,首先发送信标帧进行全网时间同步,然后等待接收来自传感器节点的NDF帧;收到NDF数据帧后,广播NDS信标帧,同步相邻的两个传感器节点,并在收到新数据后,向第一跳节点发送一个确认帧,同时,对收到的数据进行处理,上传到管理节点。在开始下一个周期时,汇聚节点首先进入调度周期,发送命令帧进行调度。如果有节点出现故障,则向故障节点的后继节点发送CLSF帧,向故障链的邻链发送NLSF帧,传感器节点根据收到的命令帧进行数据通信;如果有新节点入网,汇聚节点发送SRF帧,更新总时隙数,并进行时隙重分配。调度周期结束后,进入侦听周期,该周期内如果有新数据产生,汇聚节点发送NDF信标帧,进行全网时间同步,然后再进入数据传输通信阶段,如此循环。汇聚节点工作流程如图4所示。
图4 汇聚节点为工作流程图
3 仿 真
采用OMNET++仿真软件[7],对协议的性能进行研究并与XLP进行比较,仿真参数的初始值如表1所示。
表1 OMNET++仿真参数初始值
3.1 平均数据时延
数据时延是无线传感器网络性能的一个重要指标。在链型网络中,数据时延是随着节点个数的增加而不断累加的,因此节点个数越多,平均时延越大,链上不同节点数的网络平均时延如图5所示。从图5中可看出,与XLP协议相比,RBP协议的平均时延都小,且链上8个节点到13个节点的时延几乎没有变化,这是由于链与链之间时隙复用的结果。
图5 不同节点个数的网络平均时延图
RBP协议的时延除了和节点个数及监测区域半径有关,还和链的条数有关,不同链数的网络平均时延如图6所示。从图6中可看出,RBP由于采用了时隙复用,因此随着链的条数的增加,时延呈现缓慢增加的趋势,而XLP协议随着链的条数的增加,时延线性迅速,因此RBP协议时延性能优于XLP协议。
图6 不同链数的网络平均时延图
3.2 网络能耗
为了分析不同的网络传感器节点个数与网络总能耗的关系,取δ=2,传感器节点个数为1~7个,传感器节点个数增加,数据转发的跳数增加,能耗也随之增加。两种协议的网络拓扑结构相同,链上不同节点数的网络能耗如图7所示。
图7 不同节点数的网络能耗图
最后,分析链的条数与网络总能耗的关系,δ仍取0.2,监测区域半径为500 m,不同链数的网络能耗如图8所示。从图8中可看出,RBP无层协议与XLP相比具有更小的能耗,提高了网络的整体性能,延长了网络生命周期。
4 结 语
根据传感器节点的能耗模型,通过改变传感器节点的工作方式来降低节点的功耗,进而对传感器节点无线通信能耗模型的扩展,在链型结构模型下,分析并仿真实现了多数据源负载时,网络的时延和能耗。通过对比分析,在无线传感器网络节点配置时,提出能量高效可行的节点配置机制。在进行传感器节点规划和部署时,优化了网络中的能量消耗,显著地延长了网络的生命周期。
图8 不同链数的网络能耗图