艾 红 邓大伟 邝 野
(北京信息科技大学自动化学院,北京 100192)
远程数据采集与监测系统研究
艾 红 邓大伟 邝 野
(北京信息科技大学自动化学院,北京 100192)
为了解决远程数据传输问题,针对地理条件比较复杂的区域如山体滑坡监测区域,研究了通过无线方式传输信息的方法,从而实现远程数据采集与监测功能。以ARM处理器为核心,采用多种模块构建山体滑坡远程数据采集与监测系统。介绍了数据采集功能实现方法和驱动程序的设计思想,设计了加速度传感器与ARM处理器的连接电路以及传感器采集程序。试验验证表明,系统接收多点数据信息正确,能够及时反映数据采集实时值,并提供报警信息。
ARM 远程数据采集 监测 线程 GPRS 驱动程序
山体滑坡是严重的地质灾害之一,它会毁坏工程设施,造成巨大的经济损失。为了防患于未然,需要及时、快速地监测山体的滑动情况,实现滑坡危害的预报。对山体滑坡进行监测的目的在于对滑坡的稳定性做出判断,并对可能发生的滑动做出预测。通过相对位置的变化判断各个监测点的滑动情况,滑坡监测对减灾防灾意义重大[1-2]。在滑坡变形监测中,GPRS等先进技术将发挥积极作用,实现对监测区域的远程实时监测,并通过对采集数据的分析和处理,实现对山体滑坡的预警。
远程数据采集与监测系统由三轴加速度传感器、嵌入式处理器ARM、电源模块和GPRS模块等构成。系统监测采集加速度传感器的数据,与键盘设定的上限值进行比较,GPRS模块以短信方式发送监测信息和报警信息。当采集的加速度值超过一定上限时,蜂鸣器发声起到报警功能。远程数据采集与监测系统构成如图1所示。
图1 系统构成图Fig.1 Architecture of the system
ARM处理器S3C2410内置1个8通道的10位模数转换器ADC。采用ADC控制器寄存器系统可以同时外接8位的模拟量输入,最大转换速率可达500 kS/s。S3C2410的引脚AIN[7]和AIN[5]用于连接触摸屏的模拟信号输入。ARM处理器S3C2410有ADC控制寄存器和ADC触摸屏控制器,其通过程序设计配置寄存器控制ADC的工作模式,并编写应用程序读取ADC转换值。ADC触摸屏控制寄存器ADCTSC配置成普通工作模式。对于S3C2410处理器,在使用触摸屏时,引脚AIN[7]和AIN[5]用于测量触摸屏X、Y的电平,引脚AIN[6]、AIN[4:0]用于一般的ADC输入。当有触摸屏驱动加载时,ADC转换器工作在触摸屏模式。因此,ADC转换和触摸屏驱动不能同时启用[3-4]。使用ADC的步骤如下。
①设置ADC控制寄存器ADCCON,选择输入通道,设置ADC转换器的时钟,A/D时钟=PCLK/(PRSCVL+1),其中,PRSCVL为ADC转换器预分频器数值。
②设置ADC触摸屏寄存器ADCTSC,对于普通ADC,设置 ADCTSC 位[2]为0。
③设置ADC控制寄存器ADCCON,启动A/D转换。如果设置ADCCON中的READ_START位为1,则读取ADC转换数据寄存器ADCDATA0时即启动下一次转换,也可以设置ADC控制寄存器ADCCON中的ENABLE_START位启动A/D转换。
④转换结束时,读取ADC转换数据寄存器ADCDATA0值。
一个硬件的驱动程序,通常指一个驱动模块。对于一个硬件的驱动,Linux下可以有两种方式:一种是直接加载到内核代码中,启动内核时就会驱动此硬件设备;另一种是以模块方式编译生成一个独立文件,当应用程序需要时再加载到内核空间运行。加载驱动是正常运行设备的必要条件,缺少驱动程序,将无法进行正常操作。驱动程序包含有各种定义,如S3C2410管脚的定义、对应的地址映射等。GPRS驱动、A/D驱动和键盘驱动这3个驱动分别关系到通信、采集和参数设定3大方面,这3个驱动也可以理解为操作系统中的设备。设备驱动的角色就是将这些调用映射到作用于实际硬件和设备相关的操作上。驱动可以与内核的其他部分分开建立,需要的时候在运行时“插入”。
在滑坡发生过程中,对象的加速度、速度和位移等矢量均发生变化。在山体监测区域安放大量的传感器,以测量山体位移和加速度值。本文采用加速度传感器MMA7260QT测量各个轴的加速度值,以便及时检测灾害。如果物体沿着某一个方向运动,或者受到重力作用,传感器输出值就会根据其运动方向和设定的传感器灵敏度而改变。系统采用ARM处理器的A/D转换器读取此输出信号。三轴加速度传感器测量时,量程可有以下4种形式:①在1.5 g量程下,信号灵敏度为800 mV/g;②在2 g量程下,信号灵敏度为600 mV/g;③在4 g量程下,信号灵敏度为300 mV/g;④在6 g量程下,信号灵敏度为200 mV/g。加速度传感器与ARM处理器的硬件连接图如图2所示。
图2 加速度传感器与ARM处理器的连接Fig.2 Connections between acceleration sensor and ARM processor
g-select1引脚和g-selec2引脚用来选择传感器的灵敏度,有4个灵敏度可供选择。g-select1引脚和g-selec2引脚在芯片的内部被下拉为低电平。图2中g-select1引脚和g-selec2引脚悬空,芯片的工作灵敏度为800 mV/g。当传感器工作在休眠模式时,SleepMode引脚可不接,将其悬空即可。Xout、Yout和Zout分别为X轴、Y轴、Z轴方向的输出电压。当采集的加速度值超过一定上限时,蜂鸣器发声,同时通过手机发出报警信息,实现报警功能。加速度传感器采集程序如下所示。
①打开ADC设备文件
②设置A/D分频比和通道号
在此定义了一个结构体。该结构体包含的元素分别为A/D转换的通道号和分频比。其通过write函数写入设备文件。结构体如下所示。
③读取转换数据:read(fd,&data,sizeof(data))==sizeof(data)。read函数的参数分别为设备文件的标志符、数据被读入的地址和读取数据的长度。
④数据换算:d=((float)data*3.3)/1 024.0。read读取的是10位二进制数据,必须将其转换为对应的电压值。电压最大值为3.3 V。
本文采用Simcom公司的SIM300 GPRS模块,通过发送AT指令完成信息的传送。初始化GPRS模块后,需要设定发送短信的模式。GPRS模块功能函数需要两个入口参数,一个是发送短信的号码,另一个是短信的内容,实现将指定内容发送到指定号码上的功能。
通道监测线程分别将3个通道的数值动态更新于result全局数组中。开辟的3个监视线程可以分别动态监测,如通道0对result[0]中的数据进行动态监测。同时,利用while循环实现循环监测,它的退出条件也就是系统的退出条件,保证了监测线程的全局性。同时,在这个循环中对通道的3种状态进行逐一分析。通道的3种状态分别为通道测量值超过预定的上限值、通道测量值超过预定的下限值和通道测量值为正常值。如果超出报警限值,应发送提示信息。
开启一个线程,循环判断系统结束标志位和暂停标志位是否全部为1,如果是,则退出线程;如果不是,则按系统给定的时间发送当前3个通道的数据。采集数据发送线程流程图如图3所示。
图3 采集数据发送线程流程图Fig.3 Flowchart of sending thread of the acquired data
在监测系统现场,往往根据其不同条件,利用键盘进行参数修改。设计了更改A/D上、下限值和监测手机电话号码的功能。以“*”号键作为进入系统的中断键,为键盘开启一个实时监测函数。当按下“*”号键时,A/D采集暂停,并进行更改系统相关参数的设定;待设定完毕后,恢复A/D的采集[5]。
ARM拥有更快的处理速度和更大的内存空间支持操作系统的移植,同时也引入了文件系统的概念,以支持进程、线程的调用。主函数流程图如图4所示。
图4 主函数流程图Fig.4 Flowchart of main function
在主函数中,需要初始化GPRS驱动、A/D驱动和键盘驱动,将数据采集功能放入主函数中,利用循环实现实时监测。循环的退出条件也就是系统的退出条件。在Linux操作系统中,程序结束前必须回收所建立的线程,否则线程会一直占用系统资源,系统最终会因为各种死锁或内存溢出而崩溃。循环监测中的while循环实现参数修改时暂停数据采集的功能,以避免不必要的线程阻塞或死锁。
通过无线方式传输信息,能够解决布设有线监测系统的缺陷,适用于偏远山区滑坡灾害监测[6]。在山体的不同位置放置相应的传感器,利用无线传输技术,将采集到的多点数据和报警信息通过手机方式发送给控制中心,实现对环境和参数的远程监测[7]。本文将嵌入式系统应用于滑坡灾害监测系统,基于ARM处理器、加速度传感器和GPRS模块设计了山体滑坡远程监测系统,实现了远程数据采集、监测与无线传输,对探索预防山体滑坡将起到积极作用。
[1]袁生贵,方东,李小凯.基于GPRS监测技术在灾区山体滑坡中的应用探讨[J].自动化技术与应用,2010,29(10):69-70.
[2]邱健壮,孙克强,赵立中.GPS监测山体滑坡方法的研究[J].山东农业大学学报,2008,39(4):577-578.
[3]陈铁军,陈华方,胡扬超.基于CC2480的山体滑坡检测系统[J].计算机工程与设计,2010,31(20):4512-4513.
[4]吴铮,周剑利.智能测温仪表的研究与实现[J].仪器仪表与分析监测,2007(3):30-31.
[5]徐德琴,王民慧,卞维新.基于ARM嵌入式WEB服务器的研究[J].贵州工业大学学报,2006(2):11-14.
[6]张积红,吴强.嵌入式linux研究及其在ARM上的移植[J].电脑知识与技术,2005(8):55-56.
[7]王洪涛.基于ARM&Linux的嵌入式远程监控系统[J].仪表技术与传感器,2009(5):8-9.
Research on the Remote Data Acquisition and Monitoring System
In order to solve the issue of remote data transmission,aiming at areas with complicated geography conditions,such as the area needs monitoring for landslides,the method of wireless information transmission is researched to realize the functions of remote data acquisition and monitoring.For constructing the remote data acquisition and monitoring system for landslides,ARM processor is used as the kernel,and multiple kinds of modules are composed.The implementation of data acquisition function and the design concept of the drive programs are introduced.The connection circuit between acceleration sensor and ARM processor,and the sensor acquisition program are designed.The test results show that the
multi-point data are correct,the data acquired can be reflected in real time,and the alarm information can also be provided.
ARM Remote data collection Monitoring Thread GPRS Drive program
TH771
A
北京市教委会科技发展计划基金资助项目(编号:KM200910772008)。
修改稿收到日期:2011-08-31。
艾红(1962-),女,1989年毕业于天津大学自动化仪表专业,获硕士学位,副教授;主要从事自动化仪表方面的研究。