基于无线传感器网络的农田监测系统的网关设计
2013-04-29刘荣周杰杜景林
刘荣 周杰 杜景林
摘要:设计了一种基于无线传感器网络的农田监测系统的网关,通过在以PXA270为内核的嵌入式硬件平台上采用Linux操作系统作为应用程序的运行环境,实现了农田信息的采集、传输和处理功能。并且通过在嵌入式网关之间搭建Ad Hoc网络,实现了农田监测信息在网关之间的多跳传输功能,从而为农田的远程监控提供了一种可靠的解决方案。
关键词:网关;无线传感网;嵌入式;监测
中图分类号:TP393;S126 文献标识码:B 文章编号:0439-8114(2013)07-1672-04
无线传感器网络是继计算机和互联网之后世界信息产业的第三次浪潮,已成为新一轮全球经济和科技发展的战略焦点。随着研究的不断深入,无线传感器网络会逐渐融入人们的日常生活和社会生活活动的各个领域。所以把无线传感器网络技术应用到农田监测方面对农业事业的现代化发展具有重大的推进作用。
而对嵌入式网关的开发是构建整个农田监测系统至关重要的一步,直接影响了监测系统的性能。网关类似于一种转换器,具有效率高、响应实时、可靠性高、功耗低、抗干扰能力强等特点, 同时具有很好的通用性。对于农田监测系统来讲, 它是连接无线传感器网络与互联网的桥梁。而目前的IP网关协议虽然具有寿命长、稳定性好、可扩展性强等优点, 但已经不能满足集成电路芯片小型化、低功耗、低速率、高带宽利用率的传输要求。因此,尽快开发一种低功耗、能够满足探测系统要求、适合农田监测的网关是目前亟待解决的问题[1,2]。
1 农田监测系统结构
基于无线传感器网络的农田监测系统主要由无线传感器网络、网关和信息展示平台组成。无线传感器网络是由各种能够采集农田监测要素的传感器节点通过网络协议(例如Zigbee和Tinyos)而形成的一个或者多个无线网络。信息展示平台是一种可以向用户直接提供监测区域数据的应用系统。而网关在信息展示平台和无线传感器网络之间则扮演着桥梁的角色,使多种异构的无线传感器网络能够直接与信息展示平台进行交互。各个监测区域都会拥有一个与外部设备通信的汇聚节点,无论无线传感器网络采用星型的或者网状的拓扑结构,汇聚节点都会汇聚整个监测区域的数据,通过串口传递给相应的网关,并且各个网关通过Ad Hoc网络互相连接。网关通过3G网络与农田观测中心的信息展示平台直接通信,在网络基础设施条件允许的情况下,也可以通过以太网或者WIFI连接观测中心。观测中心得到相应的农田监测数据后以Web的方式展示,这样用户就可以顺利地通过PC、手机或者其他手持移动设备浏览监测区域的信息。图1为农田监测系统的总体结构图[3-5]。
2 网关的硬件设计
网关系统的硬件模块如图2。主要由处理器、存储器、无线射频收发模块、无线网卡模块、电源模块、JTAG模块、串口模块、USB模块、以太网接口模块组成。
ARM处理器采用PXA270 CPU,该CPU是Intel开发的高度集成的片上系统微处理器,结合了Intel XScale技术,具有动态电压调整、动态频率调整以及成熟的电源管理特点。具体型号采用FW(NH)PXA270C5C520, 主频为520 MHz。
存储器模块主要由FLASH存储器和内存模块组成。FLASH采用三星公司的K9F1208UDM NAND FASH,内存SDRAM部分采用Hynix Semiconductor公司的HY57V561620芯片。
以太网接口模块采用SMSC公司的10 M/100 M的以太网芯片LAN91C111/LAN91C113,主要负责目标机从宿主机下载应用程序。串口模块用于连接射频收发模块。JTAG模块主要用于用户进行JTAG 调试。USB模块用来连接USB设备以及下载Linux内核等功能。
无线网关模块采用的是型号为gspi8686的WIFI无线网卡,主要负责在网关板之间建立Ad Hoc网络,使传感器采集的数据能够通过多跳的方式传递给远距离的服务器。
射频无线模块采用了TI公司的CC2430核心板,该核心板主要由一片集成了8051单片机和射频模块的CC2430芯片和天线组成。CC2430内含的8051单片机具有高性能、低功耗的特性,同时具有128 kB可编程Flash和8 kB的RAM, 并集成了符合IEEE802.15.4标准的2.4 GHz RF无线电收发机,具有优良的无线接收灵敏度和强大的抗干扰能力。
3 网关的操作系统平台设计
Linux操作系统开放源代码,可以剪裁内核,并且已经在Motorola、NEC、ARM等多种硬件平台上稳定、高效运行,具有强大的网络和卓越的文件系统支持功能等优点。所以系统选择Linux操作系统,并根据具体应用进行裁剪和交叉编译,然后形成ARM可执行文件,借助串口和网络口下载到FLASH之中。构建适合网关的Linux操作系统必须进行Bootloader的移植、内核裁剪以及文件系统的制作。只有在操作系统平台建立之后,应用程序才能在此操作平台上运行来实现整个网关的主要工作。应用程序是在安装Linux操作系统发行版的虚拟机上进行开发的,通过交叉编译器对应用程序的编译生成适合在目标机上运行的程序。最终通过NFS服务进行应用程序的下载。
Bootloader是系统启动过程中执行的第一个软件,它与网关板有着高度的依存关系。Bootloader在完成底层硬件初始化工作后会直接跳到与硬件架构无关的start_kernel()函数执行,此函数会初始化高层内核功能、安装根文件系统,以及启动init进程。
内核是操作系统的中心组件。使用内核的目的是希望以一致的方式管理硬件,以及为用户软件提供高层抽象层。正如其他的类Unix内核那样,Linux会驱动设备、管理I/O的存取、调度进程、共享存储空间、管理信号的配送以及处理其他的管理工作。
文件系统是指在物理设备上的任何文件组织和目录,它构成了Linux系统上所有数据的基础。该网关选用JFFS2作为文件系统。
在Linux中设备驱动程序的设计和使用一般有两种方式可供选择。一种是把设备驱动程序在编译内核时直接编译进去,另一种是以模块的方式动态地插进内核。设计选用的是第二种方式。
4 数据的传输设计与实现
网关针对具体的应用场合和用户,所以采用了C/S结构来对应用程序进行设计和开发。当服务器与客户端建立好通信之后,首先由服务器向客户端发送服务请求,客户端接到请求命令立即向服务器返回请求响应包,一旦服务器接收到响应包并解析出正确的内容就会向客户端发送数据查询的命令,客户端接收到数据查询命令之后对命令包进行解析,根据数据包的解析内容分析是实时数据查询还是历史数据查询。如果是历史数据查询,那么客户端会直接提取数据库中的采集信息并发送给服务器,如果是实时数据查询,那么客户端就会实时地接收无线传感网中协调器的数据并把接收到的数据发送给服务器。整个工作流程如图3。
4.1 数据接收程序的设计
数据库采用了程序方式直接驱动的SQLite数据库。SQLite是一款轻型数据库,设计目标主要针对嵌入式系统。其占用资源少,一般只需要几百kB内存。它能够很好地支持Linux操作系统。SQLite虽然很小巧,但是支持的SQL语句不会逊色于其他开源数据库。SQLite不但支持命令方式操作数据库,而且为实现对数据库的管理提供了丰富的API接口函数,包括创建数据库、删除数据库、创建表、删除表、插入数据、删除数据、查找数据等。
在网关中数据接收程序主要任务是把协调器上传的数据存储到数据库。数据接收程序的流程如图4所示。主要包括串口参数的配置、串口接收线程的建立、串口发送线程的建立。串口参数的配置主要包括波特率设置、奇偶校验位和停止位的设置。串口接收数据线程负责把协调器上传的数据存入到串口缓冲区,串口主线程负责把缓冲区的数据解析后存储到数据库。
4.2 网关与服务器之间的网络程序设计
网关采用了可靠的、面向连接的TCP协议的网络程序设计。程序的工作流程如图5所示。Socket()函数用于创建Socket;Bind()函数用于将Socket寻址结构绑定到其所建立的Socket, 这样当有数据包到达时,Linux内核会将这个数据包让给其绑定的Socket来处理;Listen()函数用来监听、等待客户端的连接请求;Connect()函数是客户端使用的函数,当客户端建立好Socket后会调用这个函数向服务器请求连接;Read()和write()函数是用来进行数据的读写,在本网关中客户端的read()函数一方面接收串口的数据输入用来提供服务器的实时数据查询功能,另一方面接收数据库信息的输入用来完成历史数据的查询功能。
4.3 Ad Hoc网络的搭建
Ad Hoc网络是一种新颖的计算机网络,其自身的独特性赋予其巨大的发展前景。这种无线移动网络不依赖固定的网络设施,在有限的无线通信带宽和主机能源的情况下,通过系统主机自由地组网,建立动态变化的网络结构。网关系统中通过在嵌入式网关之间搭建Ad Hoc网络来传递数据到远距离的服务器。目前所提出的Ad Hoc网络的多路径路由协议基本上都是在DSR协议或AODV协议的基础上改进而来的。本网关采用了AODV的路由协议进行Ad Hoc网络的搭建。搭建步骤为:第一步移植AODV路由协议,本网络选择了aodv-uu-0.9.5作为路由协议,主要是通过交叉编译器编译出aodv-arm.ko和aodv-arm;第二步通过ifconfig eth1 up,iwconfig eth1 mode Ad-Hoc,iwconfig eth1 essid 服务区别号这几条命令来配置无线网卡工作模式为Ad Hoc模式;第三步把aodv-arm.ko模块动态地插进网关的内核;第四步执行aodv-arm路由协议。这几个关键步骤完成之后整个的Ad Hoc网络就搭建好了。
5 小结
所设计的基于无线传感器网络的农田监测系统的网关完成了多种异构的无线传感器网络的无缝隙连接工作,屏蔽了底层无线传感器网络的具体网络结构,实现了多个无线传感器网络和处于外网的信息展示平台的实时通信功能。并且根据具体的嵌入式平台对aodv路由协议进行了移植探索,最终也成功地在中间件的各个子系统之间搭建了一种无中心的自主的Ad Hoc网络,为农田监测数据的远距离传输提供了一种可靠的解决方案。
参考文献:
[1] 罗锡文,臧 英,周志艳.精细农业中农情信息采集技术的研究进展[J].农业工程学报,2006,22(1):167-173.
[2] 石复习,邹志勇. 农业环境参数检测WSN网关设计[J].安徽农业科学,2010,38(23):12923-12924.
[3] 宋先居,张宗灏,赵体召. 地面气象观测数据实时传输及质量控制程序实现[J].气象科技,2011,39(3):344-347.
[4] 唐慧强, 庄安荣.一种气象数据采集传输系统的设计[J].电子技术应用,2011,37(3):82-85.
[5] 崔炳俭,董卫红,黄跃青,等.无线传感器网络在气象领域的应用与研究[J].环境科学与技术,2010,33(6E):55-57.