摘要:针对目前国内大坝状况监测系统存在结构复杂、成本过高、难以长期监测等一系列问题,提出了一种基于ZigBee技术的大坝状况监测系统接收终端。该终端基于ARM硬件平台和嵌入式Linux软件平台,通过ZigBee无线方式接收各种参数,并对数据进行分析、存储、查询等操作。工作人员通过用户界面可以直观获取当前大坝状态参数信息,并通过对历史数据的分析对比,得出大坝状态参数的变化趋势,从而满足对大坝进行长期实时监测的要求。
关键词:大坝监测;ZigBee;ARM;Linux
0 引言
我国领土广阔,地质条件复杂,而且地震,火山等地壳活动分布普遍,导致近年来地质灾害频发,对灾害地区的基础设施造成了严重破坏,并对人民的生活生产带来了安全隐患。大坝作为重要的基础设施,投资巨大,使用期长,如果发生溃坝等事故会造成更大的灾害,因此大坝的安全性是水电开发建设首要解决的问题,对大坝安全工作状况的监测是一项长期而重要的工作。
由于技术水平的限制,长期以来,我国对大坝的安全监测主要以人工方法为主。这种方法不能及时掌握大坝的安全状况,又需监测人员具有丰富的经验,同时对人力、物力消耗过大,且误差较大。现有的一些有线监测系统设备复杂,加之大坝周围建设条件恶劣,经常难以有效布放。本文提出了一种基于ZigBee的大坝无线网络监测系统接收终端,以ZigBee无线监测系统来代替人工监测和有线监测,提高了监测和评估的可靠性和实时性。采用ZigBee技术的大坝监测系统,可满足对大坝安全状况长期实时监测的要求。
1 ZigBee技术
ZigBee技术是一种新兴的低耗电、低速率、低成本、结构简单、可靠性高的无线通信技术,频段为2.4 GHz、868 MHz(欧洲)及915 MHz(美国),为免执照频段,它使得在低电能和低吞吐量的应用环境中使用无线连接成为可能,便于移植在各种设备中,适合于电子自动控制监测等领域。Z-Stack是TI公司开发的符合ZigBee规范2006的ZigBee协议栈。Z-Stack支持多种开发平台,包括CC2430SoC(System-on-chip,片上系统)和CC2420+MSP430平台。它具有以下特性:兼容ZigBee规范2006;支持多种平台;简单的应用开发环境;简单的面向开发者的API;支持空中下载;具有无线节点定位能力等功能。Z-Stack采用模块化设计方法,基于ZigBee规范中的协议栈架构进行设计。它将协议栈架构中不同的层以一单独的模块来实现,本层模块向其上层模块提供特定服务,模块之间的通信通过接口来实现,此外,它还设计实现了其他管理和辅助模块。通常每一个模块包含的源文件的文件名以特定字符串开头,通过文件名就可以很容易判断该文件是属于哪一个模块并实现何种功能。部分模块以库的形式提供,只提供模块的接口定义,无法查看具体的实现细节。对于用户应用来说,这部分代码不需要改变,只需要根据接口定义去了解该模块提供什么样的服务即可。这样的封装既防止了用户对协议栈关键部分的误改,也避免了用户在开发过程中浪费大量时间去读一些与应用实现无关的代码,在一定程度上加速了应用程序的开发。
2 系统设计
大坝监测系统由前端采集终端、接收终端两部分组成。每个前端采集模块固定于大坝应力截面处,当监测人员靠近大坝开启手持的接收终端后,采集终端ZigBee模块被唤醒并与手持接收终端的ZigBee模块建立连接,并将传感器(包括压阻式传感器,垂线仪传感器,静力水准传感器,差动电阻式传感器等)采集到的数据发送给接收终端,接收终端将接收到的数据存储并分析。系统框架如图1所示。限于篇幅,本文着重论述接收终端部分。
3 接收终端硬件设计
手持接收终端利用ZigBee无线模块实现无线数据接收,接收到的数据通过核心处理器完成数据的分析和处理。接收终端硬件组成框图如图2所示。
由于接收终端要完成信息接收、信息显示、信息存储、信息查询,需要支持无线网络,对数据处理能力的要求较高,本设计选择Samsung公司的S3C2410嵌入式处理器作为核心处理器。
ZigBee模块选用CC2430模块。CC2430是TI公司生产的符合ZigBee标准的射频收发器,工作在2.4 GHz,采用直接序列扩频方式,数据传输率最高250 Kb/s,供电电压为3.6 V,可方便移植Z-Stack协议栈。
存储单元包括两片16位数据宽度的SDRAM存储器和FLASH存储器。FLASH存储包括32 MB的NOR FLASH存储器和8 MB的NAND FLASH存储器,NOR FLASH支持程序芯片内执行,大大提高了程序执行速度,用于存放启动代码Bootloader,Linux内核映象等。
NAND FLASH能提供极高的单元密度,可以达到高存储密度,价格低廉,写入和擦除的速度也很快。用来存放Linux文件系统和用户程序。
LCD显示器负责对采集到的数据进行显示,USB存储单元用来存储接收到的大坝工作状况参数数据,监测人员可以通过对接收到的大量历史数据查询和分析,为后期的工作决策提供参考。
4 系统软件设计
本系统的软件框架主要基于嵌入式Linux操作系统实现系统功能,包括嵌入式系统引导程序Bootloader,Linux系统内核,文件系统,应用程序。Bootloader主要完成初始化硬件设备、建立内存空间的映射图的任务,以便为最终调用操作系统内核准备好正确的环境。本方案选用较为成熟的U-boot作为Bootloader。它操作简便,同时提供了完备的命令体系,支持S3C2410处理器。Linux系统内核分为设备驱动程序,网络堆栈,内存管理,进程管理,虚拟文件系统,系统调用接口。文件系统分为系统文件系统,用户文件系统。接收终端的应用程序根据需求分为数据显示,历史数据查询,数据存储三个模块。整个软件结构如图3所示。
4.1 嵌入式Linux操作系统
嵌入式Linux(Embedded Linux)是指对Linux经过裁剪小型化后,可固化在存储器或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究已经成为目前操作系统领域的一个热点。与其他嵌入式操作系统相比,Linux的特点如表1所示。
4.2 设备驱动程序开发
在Linux操作系统下有两类主要的设备文件类型,一类是字符设备,另一类是块设备。字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则是利用一块系统内存作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待。
本系统主要是对ZigBee模块的串口驱动,属于字符设备驱动程序。主要包括open,close,read,write,ioctl等函数,把它们统一定义在结构体file operations中。
4.3 应用程序设计
接收终端的应用程序开发根据系统功能的需求采用模块化的设计方案,具体有如下几个主要功能模块:数据收发模块、数据存储模块、数据查询模块、系统界面模块。
手持接收终端软件采用多线程实现模块化,主要包括主程序、数据收发线程、数据显示线程。系统上电后,主程序首先执行,完成系统硬件初始化,配置ZigBee模块参数,然后创建收发线程、显示线程两个线程,如图4所示。线程任务都结束后,如无系统命令,则ZigBee模块进入节电模式,主程序退出。收发线程先要调用CreateFile函数打开串口,设置串口参数,通过ZigBee模块发送控制指令与采集前端建立无线通信,然后调用writeFile函数接收并存储数据,数据读写完毕后关闭串口退出线程。显示线程负责将接收到的数据经过处理器二次处理后,通过人机交互界面显示到LCD上。
5 结论
基于ZigBee的大坝监测接收终端,利用低功耗的ZigBee技术将前端采集模块获得的大坝结构应力应变、裂缝、渗流渗压等重要状态参数,接收并存储。分析人员可及时由接收终端获取大坝的参数信息,为大坝的安全评判提供了一种方便可靠的方法。
该技术比传统方法维护简单,监测灵活,具有很强的实践价值。接收终端基于ARM9硬件平台,嵌入式Linux操作系统软件平台和ZigBee无线通信技术,通过无线方式发送接收各种参数,并对数据进行分析、存储、查询等操作。工作人员通过人机交互界面可以直观获取当前大坝状态参数信息,并通过历史数据的分析对比,得出大坝状态参数的变化趋势,从而满足对大坝进行长期实时监测的要求。