艾 紅 鄧大偉 鄺 野
(北京信息科技大學自動化學院,北京 100192)
遠程數(shù)據(jù)采集與監(jiān)測系統(tǒng)研究
艾 紅 鄧大偉 鄺 野
(北京信息科技大學自動化學院,北京 100192)
為了解決遠程數(shù)據(jù)傳輸問題,針對地理條件比較復雜的區(qū)域如山體滑坡監(jiān)測區(qū)域,研究了通過無線方式傳輸信息的方法,從而實現(xiàn)遠程數(shù)據(jù)采集與監(jiān)測功能。以ARM處理器為核心,采用多種模塊構(gòu)建山體滑坡遠程數(shù)據(jù)采集與監(jiān)測系統(tǒng)。介紹了數(shù)據(jù)采集功能實現(xiàn)方法和驅(qū)動程序的設計思想,設計了加速度傳感器與ARM處理器的連接電路以及傳感器采集程序。試驗驗證表明,系統(tǒng)接收多點數(shù)據(jù)信息正確,能夠及時反映數(shù)據(jù)采集實時值,并提供報警信息。
ARM 遠程數(shù)據(jù)采集 監(jiān)測 線程 GPRS 驅(qū)動程序
山體滑坡是嚴重的地質(zhì)災害之一,它會毀壞工程設施,造成巨大的經(jīng)濟損失。為了防患于未然,需要及時、快速地監(jiān)測山體的滑動情況,實現(xiàn)滑坡危害的預報。對山體滑坡進行監(jiān)測的目的在于對滑坡的穩(wěn)定性做出判斷,并對可能發(fā)生的滑動做出預測。通過相對位置的變化判斷各個監(jiān)測點的滑動情況,滑坡監(jiān)測對減災防災意義重大[1-2]。在滑坡變形監(jiān)測中,GPRS等先進技術(shù)將發(fā)揮積極作用,實現(xiàn)對監(jiān)測區(qū)域的遠程實時監(jiān)測,并通過對采集數(shù)據(jù)的分析和處理,實現(xiàn)對山體滑坡的預警。
遠程數(shù)據(jù)采集與監(jiān)測系統(tǒng)由三軸加速度傳感器、嵌入式處理器ARM、電源模塊和GPRS模塊等構(gòu)成。系統(tǒng)監(jiān)測采集加速度傳感器的數(shù)據(jù),與鍵盤設定的上限值進行比較,GPRS模塊以短信方式發(fā)送監(jiān)測信息和報警信息。當采集的加速度值超過一定上限時,蜂鳴器發(fā)聲起到報警功能。遠程數(shù)據(jù)采集與監(jiān)測系統(tǒng)構(gòu)成如圖1所示。
圖1 系統(tǒng)構(gòu)成圖Fig.1 Architecture of the system
ARM處理器S3C2410內(nèi)置1個8通道的10位模數(shù)轉(zhuǎn)換器ADC。采用ADC控制器寄存器系統(tǒng)可以同時外接8位的模擬量輸入,最大轉(zhuǎn)換速率可達500 kS/s。S3C2410的引腳AIN[7]和AIN[5]用于連接觸摸屏的模擬信號輸入。ARM處理器S3C2410有ADC控制寄存器和ADC觸摸屏控制器,其通過程序設計配置寄存器控制ADC的工作模式,并編寫應用程序讀取ADC轉(zhuǎn)換值。ADC觸摸屏控制寄存器ADCTSC配置成普通工作模式。對于S3C2410處理器,在使用觸摸屏時,引腳AIN[7]和AIN[5]用于測量觸摸屏X、Y的電平,引腳AIN[6]、AIN[4:0]用于一般的ADC輸入。當有觸摸屏驅(qū)動加載時,ADC轉(zhuǎn)換器工作在觸摸屏模式。因此,ADC轉(zhuǎn)換和觸摸屏驅(qū)動不能同時啟用[3-4]。使用ADC的步驟如下。
①設置ADC控制寄存器ADCCON,選擇輸入通道,設置ADC轉(zhuǎn)換器的時鐘,A/D時鐘=PCLK/(PRSCVL+1),其中,PRSCVL為ADC轉(zhuǎn)換器預分頻器數(shù)值。
②設置ADC觸摸屏寄存器ADCTSC,對于普通ADC,設置 ADCTSC 位[2]為0。
③設置ADC控制寄存器ADCCON,啟動A/D轉(zhuǎn)換。如果設置ADCCON中的READ_START位為1,則讀取ADC轉(zhuǎn)換數(shù)據(jù)寄存器ADCDATA0時即啟動下一次轉(zhuǎn)換,也可以設置ADC控制寄存器ADCCON中的ENABLE_START位啟動A/D轉(zhuǎn)換。
④轉(zhuǎn)換結(jié)束時,讀取ADC轉(zhuǎn)換數(shù)據(jù)寄存器ADCDATA0值。
一個硬件的驅(qū)動程序,通常指一個驅(qū)動模塊。對于一個硬件的驅(qū)動,Linux下可以有兩種方式:一種是直接加載到內(nèi)核代碼中,啟動內(nèi)核時就會驅(qū)動此硬件設備;另一種是以模塊方式編譯生成一個獨立文件,當應用程序需要時再加載到內(nèi)核空間運行。加載驅(qū)動是正常運行設備的必要條件,缺少驅(qū)動程序,將無法進行正常操作。驅(qū)動程序包含有各種定義,如S3C2410管腳的定義、對應的地址映射等。GPRS驅(qū)動、A/D驅(qū)動和鍵盤驅(qū)動這3個驅(qū)動分別關(guān)系到通信、采集和參數(shù)設定3大方面,這3個驅(qū)動也可以理解為操作系統(tǒng)中的設備。設備驅(qū)動的角色就是將這些調(diào)用映射到作用于實際硬件和設備相關(guān)的操作上。驅(qū)動可以與內(nèi)核的其他部分分開建立,需要的時候在運行時“插入”。
在滑坡發(fā)生過程中,對象的加速度、速度和位移等矢量均發(fā)生變化。在山體監(jiān)測區(qū)域安放大量的傳感器,以測量山體位移和加速度值。本文采用加速度傳感器MMA7260QT測量各個軸的加速度值,以便及時檢測災害。如果物體沿著某一個方向運動,或者受到重力作用,傳感器輸出值就會根據(jù)其運動方向和設定的傳感器靈敏度而改變。系統(tǒng)采用ARM處理器的A/D轉(zhuǎn)換器讀取此輸出信號。三軸加速度傳感器測量時,量程可有以下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引腳在芯片的內(nèi)部被下拉為低電平。圖2中g(shù)-select1引腳和g-selec2引腳懸空,芯片的工作靈敏度為800 mV/g。當傳感器工作在休眠模式時,SleepMode引腳可不接,將其懸空即可。Xout、Yout和Zout分別為X軸、Y軸、Z軸方向的輸出電壓。當采集的加速度值超過一定上限時,蜂鳴器發(fā)聲,同時通過手機發(fā)出報警信息,實現(xiàn)報警功能。加速度傳感器采集程序如下所示。
①打開ADC設備文件
②設置A/D分頻比和通道號
在此定義了一個結(jié)構(gòu)體。該結(jié)構(gòu)體包含的元素分別為A/D轉(zhuǎn)換的通道號和分頻比。其通過write函數(shù)寫入設備文件。結(jié)構(gòu)體如下所示。
③讀取轉(zhuǎn)換數(shù)據(jù):read(fd,&data,sizeof(data))==sizeof(data)。read函數(shù)的參數(shù)分別為設備文件的標志符、數(shù)據(jù)被讀入的地址和讀取數(shù)據(jù)的長度。
④數(shù)據(jù)換算:d=((float)data*3.3)/1 024.0。read讀取的是10位二進制數(shù)據(jù),必須將其轉(zhuǎn)換為對應的電壓值。電壓最大值為3.3 V。
本文采用Simcom公司的SIM300 GPRS模塊,通過發(fā)送AT指令完成信息的傳送。初始化GPRS模塊后,需要設定發(fā)送短信的模式。GPRS模塊功能函數(shù)需要兩個入口參數(shù),一個是發(fā)送短信的號碼,另一個是短信的內(nèi)容,實現(xiàn)將指定內(nèi)容發(fā)送到指定號碼上的功能。
通道監(jiān)測線程分別將3個通道的數(shù)值動態(tài)更新于result全局數(shù)組中。開辟的3個監(jiān)視線程可以分別動態(tài)監(jiān)測,如通道0對result[0]中的數(shù)據(jù)進行動態(tài)監(jiān)測。同時,利用while循環(huán)實現(xiàn)循環(huán)監(jiān)測,它的退出條件也就是系統(tǒng)的退出條件,保證了監(jiān)測線程的全局性。同時,在這個循環(huán)中對通道的3種狀態(tài)進行逐一分析。通道的3種狀態(tài)分別為通道測量值超過預定的上限值、通道測量值超過預定的下限值和通道測量值為正常值。如果超出報警限值,應發(fā)送提示信息。
開啟一個線程,循環(huán)判斷系統(tǒng)結(jié)束標志位和暫停標志位是否全部為1,如果是,則退出線程;如果不是,則按系統(tǒng)給定的時間發(fā)送當前3個通道的數(shù)據(jù)。采集數(shù)據(jù)發(fā)送線程流程圖如圖3所示。
圖3 采集數(shù)據(jù)發(fā)送線程流程圖Fig.3 Flowchart of sending thread of the acquired data
在監(jiān)測系統(tǒng)現(xiàn)場,往往根據(jù)其不同條件,利用鍵盤進行參數(shù)修改。設計了更改A/D上、下限值和監(jiān)測手機電話號碼的功能。以“*”號鍵作為進入系統(tǒng)的中斷鍵,為鍵盤開啟一個實時監(jiān)測函數(shù)。當按下“*”號鍵時,A/D采集暫停,并進行更改系統(tǒng)相關(guān)參數(shù)的設定;待設定完畢后,恢復A/D的采集[5]。
ARM擁有更快的處理速度和更大的內(nèi)存空間支持操作系統(tǒng)的移植,同時也引入了文件系統(tǒng)的概念,以支持進程、線程的調(diào)用。主函數(shù)流程圖如圖4所示。
圖4 主函數(shù)流程圖Fig.4 Flowchart of main function
在主函數(shù)中,需要初始化GPRS驅(qū)動、A/D驅(qū)動和鍵盤驅(qū)動,將數(shù)據(jù)采集功能放入主函數(shù)中,利用循環(huán)實現(xiàn)實時監(jiān)測。循環(huán)的退出條件也就是系統(tǒng)的退出條件。在Linux操作系統(tǒng)中,程序結(jié)束前必須回收所建立的線程,否則線程會一直占用系統(tǒng)資源,系統(tǒng)最終會因為各種死鎖或內(nèi)存溢出而崩潰。循環(huán)監(jiān)測中的while循環(huán)實現(xiàn)參數(shù)修改時暫停數(shù)據(jù)采集的功能,以避免不必要的線程阻塞或死鎖。
通過無線方式傳輸信息,能夠解決布設有線監(jiān)測系統(tǒng)的缺陷,適用于偏遠山區(qū)滑坡災害監(jiān)測[6]。在山體的不同位置放置相應的傳感器,利用無線傳輸技術(shù),將采集到的多點數(shù)據(jù)和報警信息通過手機方式發(fā)送給控制中心,實現(xiàn)對環(huán)境和參數(shù)的遠程監(jiān)測[7]。本文將嵌入式系統(tǒng)應用于滑坡災害監(jiān)測系統(tǒng),基于ARM處理器、加速度傳感器和GPRS模塊設計了山體滑坡遠程監(jiān)測系統(tǒng),實現(xiàn)了遠程數(shù)據(jù)采集、監(jiān)測與無線傳輸,對探索預防山體滑坡將起到積極作用。
[1]袁生貴,方東,李小凱.基于GPRS監(jiān)測技術(shù)在災區(qū)山體滑坡中的應用探討[J].自動化技術(shù)與應用,2010,29(10):69-70.
[2]邱健壯,孫克強,趙立中.GPS監(jiān)測山體滑坡方法的研究[J].山東農(nóng)業(yè)大學學報,2008,39(4):577-578.
[3]陳鐵軍,陳華方,胡揚超.基于CC2480的山體滑坡檢測系統(tǒng)[J].計算機工程與設計,2010,31(20):4512-4513.
[4]吳錚,周劍利.智能測溫儀表的研究與實現(xiàn)[J].儀器儀表與分析監(jiān)測,2007(3):30-31.
[5]徐德琴,王民慧,卞維新.基于ARM嵌入式WEB服務器的研究[J].貴州工業(yè)大學學報,2006(2):11-14.
[6]張積紅,吳強.嵌入式linux研究及其在ARM上的移植[J].電腦知識與技術(shù),2005(8):55-56.
[7]王洪濤.基于ARM&Linux的嵌入式遠程監(jiān)控系統(tǒng)[J].儀表技術(shù)與傳感器,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
北京市教委會科技發(fā)展計劃基金資助項目(編號:KM200910772008)。
修改稿收到日期:2011-08-31。
艾紅(1962-),女,1989年畢業(yè)于天津大學自動化儀表專業(yè),獲碩士學位,副教授;主要從事自動化儀表方面的研究。