APP下载

基于Zstack的无线传感器网络设计与实现

2012-01-13

电子世界 2012年17期
关键词:温湿度服务器无线

1.引言

现代农业将电子、计算机、通信和自动化控制等信息技术融合在一起引入到精细农业生产中。定量的获取和分析农业环境参数,对关键性指标进行分析,有利于实现精细的农业生产控制。农业监测目标具有分散性、多样性、偏僻等特点,利用传统的人工或者有线的监测方式在人力、系统成本上都是严重的负担[1]。

无线传感器网络(Wireless Sensor Networks,WSN)是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发送给观察者。

无线传感器网络的特点非常适合野外环境下的农田环境参数的监测,本文就是针对监测农田区域的土壤温湿度的需求,设计了一种基于zigbee的农田大气温湿度的监测系统。

2.系统设计目的与架构

传感器网络的特点之一即以数据为中心构建面向野外环境的无线网络,获取特定区域特定时间段的相关数据,并将数据提供给数据需求者,为其提供数据支撑与服务。

本系统总体架构主要由两部分组成。一是分布在目标监测区的无线传感器网络,二是网络服务中心的服务器与可视化网络管理软件,两者通过GPRS与IP网络建立连接,实现实时通信。

目标监测区内无线传感器网络由多个采集节点组成,它们能自组织形成网络并完成相关数据采集与处理。采集得到的数据被汇聚至网关节点,并通过GPRS等远程无线通信方式发送至服务中心。同时,网关能够接收来自服务中心的命令,并将其转发至无线传感器网络中,进而完成远程对该网络的控制与管理。

图3.1 无线传感器网络节点

图3.2 SHT10传感器与CC2430之间通信示意图

图3.3 测量工作时序图

服务中心一方面运行网络数据管理软件,完成对传感网数据进行接收、解析与存储,并能对监测区域的网络进行相关控制与管理;该部分采用C/S架构,每个监测区域网关节点均为作为一个客户端。

3.传感器节点

传感器网络节点由传感单元、数据处理单元、无线通信单元和供电单元等几部分组成。图3.1为无线传感器网络节点示意图。

传感单元负责监测区域内的信息的采集和数据的转换;数据处理单元负责控制和协调节点各部分的工作,存储和处理自身采集的数据以及其他节点收发来的数据;无线通信单元负责与其它传感器节点进行通信,交换控制信息和收发采集数据;供电单元为传感器节点提供运行所需的能量。处理器模块和无线通信模块采用了TI公司的CC2430芯片,传感器模块采用了SHT10温湿度传感器。

3.1 CC2430芯片

CC2430芯片在单个芯片上整合了ZigBee射频(RF)前端、内存和微控制器。使用1个8位MCU(8051),具有128KB可编程闪存和8KB的RAM,还包含模拟数字转换器、定时器、协同处理器、看门狗定时器、32kHz晶振的休眠模式定时器、上电复位电路、掉电检测电路,以及21个可编程I/O引脚[2]。

图4.1 协调器、路由器及终端设备工作流程

图4.2 Z-Stack OSAL任务调度与处理流程图

3.2 大气温湿度传感器

大气温湿度传感器采用瑞士Sensirion公司的数字化温湿度传感器SHT10。该传感器由1个电容式聚合体测湿元件和1个能隙式测温元件组成,并与1个14位A/D转换器以及1个2-wire数字接口在单芯片中无缝结合。

3.3 通信接口

SHT10传感器与CC2430之间通过I2C接口进行通信,如图3.2所示。

3.4 SHT10的测量过程

测量工作时序图如图3.3所示。

3.4.1 启动传感器

首先,选择供电电压后将传感器通电,上电速率不能低于1V/ms。通电后传感器需要11ms进入休眠状态,在此之前不允许对传感器发送任何命令。

3.4.2 发送命令

用一组“启动传输”时序,来完成数据传输的初始化。它包括:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。后续命令包含三个地址位(目前只支持000”),和五个命令位。SHT1x会以下述方式表示已正确地接收到指令:在第8个SCK时钟的下降沿之后,将DATA下拉为低电平(ACK位)。在第9个SCK时钟的下降沿之后,释放DATA(恢复高电平)。

3.4.3 温湿度测量

发布一组测量命令后,控制器要等待测量结束。这个过程需要大约20/80/320ms,分别对应8/12/14bit测量。SHT1x通过下拉DATA至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1个字节的CRC奇偶校验(可选择读取)。uC需要通过下拉DATA为低电平,以确认每个字节。所有的数据从MSB开始,右值有效。在收到CRC的确认位之后,表明通讯结束。

3.4.4 通讯复位时序

如果与SHT1x通讯中断,可通过下列信号时序复位:当DATA保持高电平时,触发SCK时钟9次或更多,接着发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。

4.ZigBee网络构建及设备驱动开发

ZigBee网络中,设备分为协调器、路由器和终端设备。协调器主要功能是建立ZigBee网络,当网络建立完成后,协调器退化为普通路由器,另外协调器还可以用于配置网络安全及应用层设备绑定。路由器执行路由功能,主要包括:允许其他设备加入网络;支持多跳网络;存储 子节点处于休眠状态的消息。终端设备仅需完成对数据采集,可周期休眠与唤醒,以降低系统能耗。三者主要工作流程如图4.1所示。

图5.1 Linux套接字通信流程

Z-Stack的核心是任务系统。协议栈为每个模块定义一个任务,用于处理模块内部的所有事件。所有任务均在OSAL初始化时被添加到任务列表,不同任务具有不同优先级,高优先级任务会被操作系统优先调度和执行。通过轮转查询的调度方式,OSAL完成各模块定义的所有功能。

在Z-Stack中,任务由函数osalInitTasks初始化,并通过tasksArr指 向任务的处理函数。根据任务优先级,二者需依次添加MAC、NWK、HAL、APS、ZDO和用户自定义任务App。操作系统任务调度和处理流程如4.2所示。

传感器的数据采集任务就可以当作应用层任务,我们需要编写任务初始化函数和任务处理函数,每当采集周期到来时,我们进行一次采集,也就是对SHT10的一次读写操作,然后将数据打包发送到协调器,协调器将数据发送给网关,网关通过GPRS将数据发送给远端的服务器。

传感器终端节点采用星形网络拓扑结构,该结构由一个协调器和多个终端传感节点构成。终端节点只能与协调器直接进行通信,各个终端之间不需直接进行通信。对于终端节点,其流程较简单,设置好定时器中断,每隔一定时间读取传感器数据,并将其发送至相邻的协调节点,发送完后便进入待机状态,直到定时中断的再次到来[3]。

5.网关节点设计

网关节点是指完成无线传感器网络与外部(如因特网中的服务器,便携设备)数据交互的节点,一方面,能将传感器网络汇聚的数据转发至外部服务器;另一方面,能接收并解析外部数据,将其送至传感器网络。网关节点同时归属于各异构网络。

网关由ARM+GPRS模块+CC2430组成,CC2430作为zigbee网络的协调器与传感器节点通信,并收发数据的命令,GPRS模块作为TCP/IP网络的接入点,与服务器进行通信[4]。

5.1 GPRS通信

GPRS设备先与GSM基站通信,接着GPRS分组被基站发送到SGSN,(与电路交换式数据呼叫不同,电路交换式是通过移动交换中心(MSC)连接到语音网络上)。接着SGSN与GGSN进行通信;GGSN对分组进行响应的处理,再发送到目的网络。来自Internet,标识有移动台地址的IP包,由GGSN接受,再转发到SGSN,继而传送到移动台上。

5.2 Linux下Socket通信

Socket是一个通用的网络编程接口,它描述了一个连接的一个端点,提供网络应用程序中所用到的网络地址和端口号信息,对所包含的数据量没有限制。如5.1所示,一个连接的建立开始于TCP客户机创建一个套接字,然后调用Connect函数启动TCP协议的三握手操作,并与远程服务器建立连接。在服务器方面,当套接字建立以后,调用函数bind绑定自己的公认端口号,然后调用函数listen准备接收客户端请求,最后调用函accept完成接收,这样一次通信宣告结束如图5.1所示。

6.数据服务器

数据服务器主要负责WSN数据的接收、解析、存储和显示,同时它也作为WSN的管理和控制者通过发送命令可以对WSN进行配置,例如节点的休眠和唤醒、改变采样周期等。

本软件基于QT设计,监听服务器IP端口的数据,并对接收到的数据作出处理。软件主要包括实时数据解析与显示、实时网络拓扑结构显示、监测量变化曲线、网络行为控制以及数据库等部分。

6.1 数据接收与实时显示

该部分的功能是以列表的形式将接收到的数据解析并根据相数据类型将传感信息实时显示出来。这些信息包括节点硬件ID、节点工作状态、网络地址、父设备地址、空气温度、空气湿度等信息。用户可以选择某条数据查看详细信息。

6.2 实时网络拓扑显示

节点发送数据帧中包含设备及其父设备网络地址,结合ZigBee协议规范中分布式网络地址分配方式,即可获取整个网络的拓扑结构。软件设计中建立节点拓扑数据库,将接收数据中的新节点拓扑信息加入其中;另外,设置节点超时时间,即当一定时间内未收到该节点数据时,认为该节点已失效,将其从拓扑数据库中删除。因此,拓扑数据库中会一直保持准实时的网络拓扑,据此可画出网络拓扑架构。

6.3 数据库部分

传感器网络以数据为中心,该系统构建目的亦是获取相关传感数据,为多尺度协同观测提供数据支撑。因此,数据库是本软件核心。软件使用MySQL数据库,接收到的数据通过校验并解析后存储至其中。

6.4 网络行为控制

该部分主要功能是通过与现场网关已建立的TCP连接,通过发送相关指令控制传感器网络采样频率、采样精度等。目前该部分功能是通过用户输入相关控制指令手动发送运行。

7.结论

本文针对农田大气温湿度监测需求,提出了基于无线传感器网络的监测方案,给出了传感器网络设计、网关节点设计和数据服务器的设计实现,实验结果表明,本方案能够满足长时间、低功耗、高可靠性等观测需求,在滑坡监测等环境监测领域,有着良好的应用前景。

[1]江朝辉,焦俊,潘炜,李绍稳.基于Zigbee的农业通用无线监测系统设计[J].安徽农业科学,2010,38(6):3149-3151.

[2]尹应鹏,李平舟,郭志华.基于CC2430的Zigbee无线数传模块的设计和实现[J].电子元器件应用,2008,10(4):18-21.

[3]刘广林,汪秉文,唐旋来.基于ZigBee无线传感器网络的农业环境监测系统设计[J].计算机与数字工程,2010,38(10):57-60.

[4]巩浩,屈玉贵.基于短距无线通信与3G的无线集中抄表系统[J].计算机工程,2011(1):290-292.

猜你喜欢

温湿度服务器无线
温湿度控制器在回收砂冷却系统中的应用
《无线互联科技》征稿词(2021)
通信控制服务器(CCS)维护终端的设计与实现
基于DSP的多路温湿度监测系统
无线追踪3
基于ARM的无线WiFi插排的设计
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
ADF7021-N在无线寻呼发射系统中的应用
得形忘意的服务器标准