相关热词搜索:
摘要:为了解决远程数据传输问题,针对地理条件比较复杂的区域如山体滑坡监测区域,研究了通过无线方式传输信息的方法,从而实现远程数据采集与监测功能。以ARM处理器为核心,采用多种模块构建山体滑坡远程数据采集与监测系统。介绍了数据采集功能实现方法和驱动程序的设计思想,设计了加速度传感器与ARM处理器的连接电路以及传感器采集程序。试验验证表明,系统接收多点数据信息正确,能够及时反映数据采集实时值,并提供报警信息。关键词:ARM 远程数据采集监测线程GPRS驱动程序。
0 引言
山体滑坡是严重的地质灾害之一,它会毁坏工程设施,造成巨大的经济损失。为了防患于未然,需要及时、快速地监测山体的滑动情况,实现滑坡危害的预报。对山体滑坡进行监测的目的在于对滑坡的稳定性做出判断,并对可能发生的滑动做出预测。通过相对位置的变化判断各个监测点的滑动情况,滑坡监测对减灾防灾意义重大。在滑坡变形监测中,GPRs等先进技术将发挥积极作用,实现对监测区域的远程实时监测,并通过对采集数据的分析和处理,实现对山体滑坡的预警。
1 远程数据采集与监测系统构成
远程数据采集与监测系统由j轴加速度传感器、嵌入式处理器ARM、电源模块和GPRs模块等构成。系统监测采集加速度传感器的数据,与键盘设定的上限值进行比较,GPRs模块以短信方式发送监测信息和报警信息。当采集的加速度值超过一定上限时,蜂鸣器发声起到报警功能。远程数据采集与监测系统构成如图1所示。
2数据采集与驱动程序设计
2.1 ADC转换功能实现
ARM处理器S3C2410内置1个8通道的10位模数转换器ADC。采用ADC控制器寄存器系统可以同时外接8位的模拟墩输入.最大转换速率可达500kS/s。S3C2410的引脚AlN[7]和AIN[5]用于连接触摸屏的模拟信号输入。ARM处理器S3C2410有ADc控制寄存器和ADc触摸屏控制器,其通过程序设计配置寄存器控制ADc的T作模式,并编写应用程序读取ADc转换值。ADC触摸屏控制寄存器ADCTSC配置成普通工作模式。对于S3C2410处理器,在使用触摸屏时,引脚AIN[7]和AIN[5]用于测量触摸屏x、Y的电平,引脚AIN[6]、AIN[4:0]用于一般的ADC输入。当有触摸屏驱动加载时,ADC转换器工作在触摸屏模式。因此,ADC转换和触摸屏驱动不能同时启用一“1。使用ADC的步骤如下。
①设置舡)C控制寄存器ADCCON,选择输入通道,设置ADc转换器的时钟,A/D时钟=PcUy(PRsCVL+1),其中,Ht5汇VL为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值。
2.2驱动程序设计
一个硬件的驱动程序,通常指一个驱动模块。对于一个硬件的驱动。Linux下可以有两种方式:一种是直接加载到内核代码中,启动内核时就会驱动此硬件设备;另一种是以模块方式编译生成一个独立文件,当应用程序需要时再加载到内核空间运行。加载驱动是正常运行设备的必要条件,缺少驱动程序,将无法进行正常操作。驱动程序包含有各种定义,如s3c2410管脚的定义、对应的地址映射等。GPRs驱动、A/D驱动和键盘驱动这3个驱动分别关系到通信、采集和参数设定3大方面,这3个驱动也可以理解为操作系统中的设备。设备驱动的角色就是将这些调用映射到作用于实际硬件和设备相关的操作上。驱动可以与内核的其他部分分开建立,需要的时候在运行时“插入”。
3传感器模块设计
在滑坡发生过程中,对象的加速度、速度和位移等矢量均发生变化。在山体监测区域安放大量的传感器,以测量山体位移和加速度值。本文采用加速度传感器MMA7260QT测量各个轴的加速度值,以便及时检测灾害。如果物体沿着某一个方向运动,或者受到重力作用,传感器输出值就会根据其运动方向和设定的传感器灵敏度而改变。系统采用ARM处理器的A/D转换器读取此输出信号。三轴加速度传感器测量时,量程可有以下4种形式:①在1.5g量程下,信号灵敏度为800mV/g;②在2g量程下,信号灵敏度为600mv/g;⑧在4g量程下,信号灵敏度为300mV/g;
④在6g量程下,信号灵敏度为200mV/g。加速度传感器与ARM处理器的硬件连接图如图2所示。
图2加速度传感器与ARM处理器的连接
g-select,引脚和g・selec:引脚用来选择传感器的灵敏度,有4个灵敏度可供选择。g—select。引脚和g—selec:引脚在芯片的内部被下拉为低电平。图2中g—selectl引脚和g—selec:引脚悬空,芯片的工作灵敏度为800mV/g。当传感器工作在休眠模式时,SleepMode引脚可不接,将其悬空即可。x。。、Y。。和z。。分别为x轴、y轴、z轴方向的输出电压。当采集的加速度值超过一定上限时,蜂鸣器发声,同时通过手机发出报警信息,实现报警功能。加速度传感器采集程序如下所示。
①打开ADC设备文件
fd=open(PATH,0一RDWR);
if(fd<O)
{pnd(”Failed
to open
ad-ddver/n”);
exit(1);}
②设置A/D分频比和通道号
adc-infor.pmscale=49;
adc—infbr.channel=i;
write(fd,(void・)&adc-infor。sizeof(adc-iIr))==
sizeof(stuct ADC—DEV);
在此定义了一个结构体。该结构体包含的元素分别为A/D转换的通道号和分频比。其通过write函数写入设备文件。结构体如下所示。
static stuct ADc—DEV
{int channel;
int prescale;
}adc-infor;
③读取转换数据:read(fd,&data,size of (data))==
Size of(data).read函数的参数分别为设备文件的标志符、数据被读入的地址和读取数据的长度。
④数据换算:d=((float)data*3.3)/1024.0. read读取的是lO位二进制数据,必须将其转换为对应的电压值。电压最大值为3.3V
4 线程设计与GPl塔模块功能
本文采用SIMCOM公司SIM300 GPRS模块,通过发送AT指令完成信息的传送。初始化GPRS模块后,需要设定发送短信的模式。GPRS模块功能函数需要两个入口参数,一个是发送短信的号码,另一个是短信的内容,实现将指定内容发送到指定号码上的功能。
4.1通道监测线程设计
通道监测线程分别将3个通道的数值动态更新于result全局数组中。开辟的3个监视线程可以分别动态监测,如通道0对result[0]中的数据进行动态监测。同时,利用WHILE循环实现循环监测,它的退出条件也就是系统的退出条件,保证了监测线程的全局性。同时,在这个循环中对通道的3种状态进行逐一分析。通道的3种状态分别为通道测量值超过预定的上限值、通道量值超过预定的下限值和通道测量值为正常值。如果超出报警限值,应发送提示信息。
4.2采集数据发送线程设计
开启一个线程,循环判断系统结束标志位和暂停标志位是否全部为l,如果是,则退出线程;如果不是,则按系统给定的时间发送当前3个通道的数据。采集数据发送线程流程图如图3所示。
4.3键盘监测线程设计
在监测系统现场,往往根据其不同条件,利用键盘进行参数修改。设计了更改A/D上、下限值和监测手机电话号码的功能。以“*”号键作为进入系统的中断键.为键盘开启一个实时监测甬数。当按下“*”号键时,A/D采集暂停,并进行更改系统相关参数的设定;待设定完毕后,恢复A/D的采集。
5主函数的设计与分析
ARM拥有更快的处理速度和更大的内存空间支持操作系统的移植,同时也引入了文件系统的概念,以支持进程、线程的调用。主函数流程图如图4所示。
图4主函数流程图
在主函数中,需要初始化GPRS驱动、A/D驱动和键盘驱动,将数据采集功能放入主函数中,利用循环实现实时监测。循环的退出条件也就是系统的退出条件。在“nux操作系统中,程序结束前必须回收所建立的线程,否则线程会一直占用系统资源,系统最终会因为各种死锁或内存溢出而崩溃。循环监测中的while循环实现参数修改时暂停数据采集的功能,以避免不必要的线程阻塞或死锁。
6结束语
通过无线方式传输信息,能够解决布设有线监测系统的缺陷,适用于偏远山区滑坡灾害监测。在山体的不同位置放置相应的传感器,利用无线传输技术,将采集到的多点数据和报警信息通过手机方式发送给控制中心,实现对环境和参数的远程监测。本文将嵌入式系统应用于滑坡灾害监测系统,基于ARM处理器、加速度传感器和CPRs模块设计了山体滑坡远程监测系统,实现了远程数据采集、监测与无线传输,对探索预防山体滑坡将起到积极作用。
参考文献
[1]袁生贵,方东,李小凯.基于GPRs监测技术在灾区山体滑坡中的应用探讨[J].自动化技术与应用,2010,”(10):69—70.
[2]邱健壮。孙克强,赵立中.GPS监测山体滑坡方法的研究[J].山东农业大学学报,2008。39(4):577—578.
[3]陈铁军,陈华方.胡扬超.基于cc2480的山体滑坡检测系统[J].计算机工程与设计.2010,3l(20):4512—4513.
[4]吴铮,周剑利.智能测温仪表的研究与实现[J]。仪器仪表与分析监测.2007(3):30—31.
[5]徐德琴.王民慧,卞维新.基于ARM嵌入式wEB服务器的研究[J].贵州1:业大学学报.20015(2):ll—14.
[6]张积红.吴强.嵌入式linux研究及其在ARM上的移植[J].电脑知识与技术.2005(8):55—56.
[7]王洪涛.基于ARM&“nux的嵌入式远程监控系统[J].仪表技术与传感器,2009(5):8—9.