APP下载

基于嵌入式数据库的分布式大坝监测数据汇聚器设计

2011-07-02戴瑜兴

电子技术应用 2011年5期
关键词:监测仪器上位大坝

沈 雁,戴瑜兴,汤 睿

(湖南大学 电气与信息工程学院,湖南 长沙410082)

随着水利资源的运用日益广泛及成熟,对于大坝的安全性进行监测便成了其中的重要部分,因为大坝在投入使用之后始终存在着安全隐患,随时都有可能威胁到下游人民的生命财产安全。电子及计算机技术的不断发展,使得对大坝的自动化监测成为可能。笔者从分布式的角度出发,引入嵌入式数据库[1],设计开发大坝安全监测所用的数据汇聚器,为自动化的大坝监测系统提供有力的支持。

1 数据汇集器的系统结构

1.1 分布式大坝监测系统结构

大坝监测安全采用分布式设计,由上位监测机、局域网或互联网、数据汇聚器、RS-485总线、DAM数据模块、监测仪器组成,如图1所示。各种监测仪器使用传感器将采集的信号如电流、电压等经过处理后变成可以识别和计算的数字量[2]。监测仪器可直接与数据汇聚器相连,也可以将多个仪器接至DAM数据模块后再与数据汇聚器相连。数据汇聚器作为一个总的数据采集装置,将众多监测仪器采集的数据进行汇聚并存储,可为上位监测机提供实时的或以往的监测数据,由于数据分布于各个数据汇聚器,提高了系统的可靠性及数据的共享性。数据汇聚器与上位监测可以是局域网,一般应用于对一个单独的大坝进行监测,也可以将数据汇聚器接入互联网,使得可以通过远程访问或对多个大坝进行统一的监测。在数据汇聚器与监测仪器之间采用带有屏蔽层的RS-485同缆电缆,从而保证了在大坝复杂环境下数据的正常传输。

图1 大坝监测系统结构

1.2 数据汇集器的硬件结构

数据汇集器是整个大坝监测系统的数据存储中心,同时还具有TCP到RS-485的转换功能,使得上位监测机在需要时可以直接对监测仪器进行操作,其结构框图如图2所示。为保证系统的可靠性,硬件的微处理器采用工业级ARM9芯片AT91SAM9261,在工作频率为190 MHz时可达到210 MIPS,ARM9的核心系统除了包含AT91SAM9261处理器之外,还有 32 MB SDRAM、1 GB Nand Flash、4 MB Data Flash及 AT91SAM9261。Data Flash用来存放Bootstrap、Uboot以及 Linux的内核,而大容量的Nand Flash用于实现Linux所需的基本文件系统[3]。以太网芯片采用DM9000A与局域网及互联网通信。所有的数据均采用SD卡存储,因此设计了SD卡的接口,可以实现数据SD卡的随时更改及存档。设计了简单的按键及液晶,用来实现对RS485参数及TCP/IP参数的配置操作。数据汇集器所接的设备可以达到16个,所以AT91SAM9261自身提供的串口远远不够,通过采用ALTERA公司的EPxxxx型FPGA来完成UART功能接口的扩展,将串口接口扩展至16个。

图2 数据汇集器硬件结构

2 应用SQLite的数据汇聚器软件设计

2.1 软件平台架构

数据汇聚器在软件上采用Linux作为操作系统平台,Linux是优秀的开源操作系统,具有性能稳定、内核可裁剪、支持众多硬件等优点,非常适合在嵌入式设备中使用。数据汇聚器所使用的软件平台架构如图3所示。Linux内核之下加载了众多的驱动程序来实现对各种硬件接口的统一文件操作。内核提供了一系列复杂的系统调用函数,基于此实现了功能丰富的函数库来满足不同的功能需要,如openssl库是基于TCP的安全网络通信协议库。由于需要数据库的操作,在此加入了SQLite的函数库。另外,数据汇集器所连接的监测仪器各种各样且由不同厂商生产,所使用的串口通信协议不尽相同,这就需要为不同种类的仪器编写各自的函数库,输出统一规范的数据。

2.2 数据库设计

图3 软件平台架构

作为分布式的监测系统,在数据汇聚中的数据存储非常关键。单个数据汇聚器可以直接连接16台监测仪器,如果采用DAM数据模块,则可以连接到最多达128台监测仪器。若以单个仪器单次测量最大数据量为100 B,同时每隔5 min测量一次,则一天的测量数据可达到3.5 MB,一年的数据量可为1.25 GB。对这样大量的数据的插入、查询等操作就必需使用数据库进行管理。

SQLite是一款优秀的数据库,其具有零配置、无需安装、数据库存储与机器字节顺序无关、速度快等特点[4],同时也是开源软件,其全部源代码约为3万多行C代码,并且可以嵌入到程序当中。因此采用SQLite作为数据汇聚器的数据库系统

为了避免采用一个数据库文件来存储所有的监测数据信息,使用在对查询某时间段的数据时因为一张大的数据库表而造成速度上的减慢。系统采用分割文件的形式来存放测量数据,为每一个月所存数据形成一个数据库文件,数据库的结构如表1。

表1 监测数据库结构

另有一个数据库文件用来存放监测仪器的相关信息,结构如表2。

表2 仪器数据库结构

2.3 软件实现

数据汇聚器的软件运行流程如图4所示,当设备上电启动之后进入系统的初始化阶段。在初始化阶段包括了 AT91系列特有的 BootStrap程序、U-boot以及 Linux的内核,它们分别是一级引导另一级的系统的启动[5]。到最后的Linux内核启动后,就会加载在Nand Flash中的基本文件系统,从“/app/”目录中加载数据汇聚器的守护程序,从而进入不断运行的调度中心。

图4 软件运行流程

为了保证系统的可靠性及稳定性,防止程序意外地进入死循环,使用了看门狗技术,每隔30 s必须执行一次喂狗操作。当意外错误发生并导致整个系统崩溃后,看门狗便自动复位系统,防止设备因一次故障而无法再次工作。

在调度中心,从仪器数据库中加载每一个连接仪器对应的采集配置,主要是提取其采集周期,使得程序可以可靠并定时地对各监测仪器进行自动数据采集。数据采集模块根据仪器的类型调用对应的仪器操作函数库通过RS485接口与仪器进行通信,并获得仪器所测量到的数据,得到数据后会将其分别存储到数据库及缓冲区中。

同时,调度中心还会一直侦听上位监测机的数据请求,从而在SQLite数据库或存取缓冲区中提取所需要的测量数据。存取缓冲区存放了最近一个小时内所有仪器的测量数据,当上位监测机所请求的数据是在这一范围内时,则会从存取缓冲区中提供,从而提高了响应的速度。

文中论述了分布式大坝监测系统的组织结构及数据汇聚器在其中的作用。嵌入式数据库的引入,可以提高对监测数据存储、查询的效率以及可靠性,通过与分布式的存储方式及互联网相结合,方便地实现了多监测上位机的数据共享,同时在一定程度上简化了大坝监测系统的复杂度。

[1]沈振中,陈允平,王成.大坝安全实时监控和预警系统的研制和开发[J].水利水电科技进展,2010,30(6):68-69.

[2]叶慧聪,戴瑜兴,刘玉芳.分布式大坝安全监测数据采集系统设计[J].仪表技术与传感器,2010(5):44-45.

[3]梁志刚.基于 AT91SAM9261的嵌入式 Linux的移植及其应用研究[D].浙江工业大学,2009.

[4]万玛宁,关永,韩相军.嵌入式数据库典型技术 SQLite和Berkeley DB的研究[J].微计算机信息,2006(1-2).

[5]黄深喜,樊晓平,刘利方.基于AT91SAM926X的嵌入式LINUX引导程序设计[J].微计算机应用,2009,30(10):69-71.

猜你喜欢

监测仪器上位大坝
特斯拉 风云之老阿姨上位
看广东
大坝:力与美的展现
对建筑工程中基坑工程监测方法的论述
一种低功耗地下水位监测仪器的设计与实现
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
北京突发地灾监测预警系统一期工程建成主汛期前投入使用
正式挡水的马来西亚沐若大坝