艾 紅 鄧大偉 鄺 野
(北京信息科技大學自動化學院,北京 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年畢業于天津大學自動化儀表專業,獲碩士學位,副教授;主要從事自動化儀表方面的研究。