面向农业应用的WSNs 路由恢复算法*
2015-03-30杜永文练云翔朱晓阳
杜永文,练云翔,朱晓阳
(兰州交通大学 电子与信息工程学院,甘肃 兰州730070)
0 引 言
无线传感器网络(wireless sensor networks,WSNs)[1]作为计算、通信和传感器三项技术相结合的产物,具有强大的感知能力、计算能力和通信能力。将先进的科技手段融入到农业生产中,提高农业的生产效率、经济效益与环境效益,这已经成为了实现农业现代化的必然发展趋势。利用WSNs 技术进行信息采集与管理[2~4],是目前农业信息技术研究的热点。
在农业应用上的WSNs 是一种特定的WSNs,这种特定的WSNs 不同于随机分布WSNs,它通常部署在可以触及的区域,在固定位置上人工部署传感器节点[5]。它采用固定的拓扑结构,这种拓扑结构会形成特定的路由,传感器节点通过特定的路由把感知的数据收集起来。针对农业应用的特点,本文设计了特定WSNs 的拓扑结构、路由、传感器节点、控制端和农业灌溉系统的控制策略。为解决因节点故障导致的路由链路中断问题,研究了特定WSNs 的路由恢复算法。这种特定WSNs 的路由恢复算法使用Tiny-OS[6,7]系统的仿真器TOSSIM[8]进行了仿真。对这种路由恢复算法和动态源路由(dynamic source routing,DSR)协议[9,10]的仿真结果表明:这种路由恢复算法可以实现在节点损坏的情况下自动恢复路由,而且与具有同样路由恢复功能的DSR 协议相比传输的包更少,可以有效降低节点能耗。
1 总体设计
基于WSNs 的灌溉系统包括WSNs、控制端和灌溉系统等三个部分组成。WSNs 由传感器节点、路由节点和汇聚节点组成。
2 WSNs 设计
2.1 传感器节点设计
如图1,传感器节点由CC2530 无线控制器、电池、JWSL—6空气温湿度传感器、GY—2561 光强传感器、YL—69 土壤湿度传感器构成。
CC2530 无线控制器内包含性能优良的低功耗8051 微控制器内核、适应2.4 GHz IEEE 802.15.4 的RF 收发器和A/D 转换器。JWSL—6 空气温湿度传感器用来测量空气中的温度和湿度。GY—2561 光强传感器用来感知光照强度。YL—69 土壤湿度传感器负责感知土壤湿度,通过模拟信号输出土壤湿度的精确值。
图1 传感器节点设计图Fig 1 Design diagram of sensor node
2.2 WSNs 的部署和拓扑设计
为了覆盖整个灌溉区域,并减少重复覆盖的情况,传感器节点使用人工放置的方式覆盖灌溉区域。如图2,传感器节点均匀部署在灌溉区域,每4 个感知节点划分为一簇,簇的中心位置放置路由节点。
图2 部署和拓扑图Fig 2 Deployment and topology diagram
2.3 WSNs 的路由设计
由于路由节点的传输半径比路由节点到汇聚节点的距离小得多,所以,必须通过多跳的方式把环境信息传给汇聚节点。如图3,路由节点根据设计好的路由把环境信息传输给下一个路由节点,这样传输下去直到环境信息到达汇聚节点为止。
图3 路由设计图Fig 3 Routing design diagram
2.4 WSNs 的路由恢复算法
2.4.1 路由节点的路由表设计
每个路由节点维护着一个路由表,它记录了本路由节点所在路由中的上一个路由节点地址、下一个路由节点地址和下下个路由节点的地址。
2.4.2 路由恢复算法的研究
为了解决路由节点损坏后路由中断的问题,提出了异常节点路由恢复(faulty node routing recovery,FNRR)算法。FNRR 算法运行在每个路由节点中,它可以在一个已建立路由的WSNs 中恢复损坏的路由。在WSNs 部署后,每个路由节点都保存了下一个路由节点的地址。
当路由节点收到上一个路由节点的数据后会保存上一个路由节点的地址,接着会回复上一个路由节点一个回复包,回复包中包含下一个路由节点的地址信息,然后把数据转发给下一个路由节点。
当路由节点收到周围传感器节点采集的数据后,会传输数据给下一个路由节点,并等待下一个路由节点返回的回复包。如果收到回复包,就把包内的下下个路由节点的地址保存。如果等待一段时间没有接收到回复包,就重复发送数据,直到第三次没有收到回复包时,就把路由表中的下一个路由节点地址位置的内容修改为下下个路由节点地址位置的值,然后清空路由表的下下个路由节点地址位置的内容。
FNRR 算法描述表述如下:
定时发送线程
{ if(此节点是路由节点而不是汇聚节点)
{ if(累计没有收到回复包的计数<3)
{ 累计没有收到回复包的计数加1;
}
else
{ 路由表的下一个节点地址位置存放路由表的下下个节点的地址;
路由表的下下个节点的地址位置清空;
累计没有收到回复包的计数清零;
}
}
发送包给下一个节点;
}
接收数据线程
{ if(包的类型是发送包)
{ 包的源地址保存在路由表的上一个节点的地址位置中;
向上一个节点发送回复包,回复包包含了下一个节点的地址;
}
else if(包的类型是回复包)
{ 把下下个节点地址保存在路由表的下下个节点地址位置中;
累计没有收到回复包的计数清零;
}
}
如图4,当有路由节点损坏时,路由节点上的FNRR 算法会让路由节点不再与下一个损坏的路由节点传输数据,而是与损坏的路由节点的下一个路由节点传输数据。
图4 路由恢复示意图Fig 4 Diagram of routing recovery
3 控制端设计
3.1 控制端硬件设计
如图5,控制端由CC2530 无线控制器、S3C2440 处理器、驱动电路、触摸屏、电源组成。控制端的处理器采用三星公司的S3C2440 处理器。控制端的无线数据接收和发送使用CC2530 无线控制器上的RF 收发器实现。触摸屏采用带触摸屏接口的4.3 寸LCD/STN 液晶屏。
图5 控制端硬件结构图Fig 5 Hardware structure diagram of controller end
3.2 控制端软件设计
3.2.1 控制端软件环境
控制端上安装内核版本为Linux—2.6.30.4 的嵌入式Linux 系统。在嵌入式Linux 系统中安装了Qtopia 软件平台,可以运行QT 图形界面程序。使用者可以通过触摸屏操作软件,用触屏的方式进行人机交互。
3.2.2 控制端软件设计
通过控制端软件在控制端的触摸屏上显示感知区域的环境情况、路由节点的工作情况等。控制端软件会把这些信息保存在控制端的嵌入式数据库中。控制端软件会根据设置好的参数和灌溉策略自动启动和关闭灌溉系统。
3.2.3 灌溉策略
当控制端发现灌溉区域的土壤湿度低于设定的阈值时开启灌溉系统。当土壤湿度高于设定的阈值时或当光强度弱、空气温度低、空气湿度高时关闭或不启动灌溉系统。
4 仿真结果与分析
本论文提出的FNRR 算法为了与DSR 进行对比,对WSNs 的路由节点进行了仿真。仿真采用的是TinyOS 操作系统上的仿真器TOSSIM。TinyOS 是针对WSNs 开发的一套操作系统。TOSSIM 是TinyOS 操作系统上的仿真器,它可以模拟传感器节点运行nesC 程序。
仿真过程:将FNRR 算法写入路由节点,分别对4,6,8,10 个路由节点的WSNs 进行仿真。每次仿真都让一个节点停止通信,然后让剩余节点通过算法恢复路由。用DSR 协议也在4,6,8,10 个路由节点的WSNs 中进行同样的仿真,然后在从建立路由到恢复路由的过程中对这两种算法传输的包数量进行统计,如图6 所示。
图6 包数量统计图Fig 6 Statistical graph of packages number
从仿真结果中可以看出:在WSNs 中使用FNRR 算法可以在路由节点损坏时让其他路由节点产生新的路由继续传输数据,保持WSNs 的正常工作,并且FNRR 算法在通信使用的包数量上比DSR 算法更少,这样节省了通信消耗的能量。
5 结束语
针对农业应用的特点,本文设计了特定WSNs 的拓扑结构、路由、传感器节点、控制端和农业灌溉系统的控制策略。提出了一种特定WSNs 的路由恢复算法,并对这种路由恢复算法进行了仿真和分析。仿真结果表明:这种路由恢复算法传输的包数量比动态源路由协议更少,可以有效降低节点的能耗。
[1] Akyildiz I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:A survey[J].Computer Networks,2002,38(4):393-422.
[2] 王士明,俞阿龙,杨维卫.基于Zig Bee 的大水域水质环境监测系统设计[J].传感器与微系统,2014,33(11):102-105.
[3] 李加念,倪慧娜.基于无线传感器网络的小粒种咖啡园滴灌自动控制系统[J].传感器与微系统,2014,33(10):43-46.
[4] 肖克辉.基于无线传感器网络的精细农业智能节水灌溉系统[J].农业工程学报,2010,26(11):170-175.
[5] 朱性伟,王子荣.多深度土壤温度无线传感器网络节点设计[J].传感器与微系统,2014,33(10):73-79.
[6] 刘 营,于宏毅.基于TinyOS 的无线传感器网络应用程序开发技术[J].传感器与微系统,2007,26(3):93-96.
[7] 夏静清,张 荣.P—TOSSIM:一个基于TinyOS 传感器网络的任务调度仿真程序[J].计算机应用,2005,25(12):2968-2970.
[8] 孙发军,吴 昊.一个基于TOSSIM 的异构传感器网络仿真方案[J].计算机仿真,2007,24(10):126-129.
[9] 庄春梅,王利利,陆建德.DSR 协议的路由缓存策略[J].计算机工程,2010,36(2):100-101.
[10]黄 伟,李腊元,孙 强.MANET 路由协议DSR 的OPNET 实现及仿真[J].武汉理工大学学报,2005,29(2):182-185.