摘 要: 為提高數據傳輸過程中完整性,提出了一種結合嵌入式技術和GPRS/GSM無線通信技術的數據傳輸方案。設計了基于GPRS和GSM短信服務混合通信的嵌入式數據采集傳輸終端,用于在惡劣的環境下對數據的實時采集,并通過GPRS/GSM網絡上傳至監控中心。在高峰時期或傳輸網絡出現異常時,嵌入式終端將采取GSM的SMS方式進行數據傳輸。
關鍵詞: 遠程測控終端;GPRS/GSM;嵌入式技術,數據完整性
隨著工業的發展,很多設備在惡劣環境中工作,需要定時采集數據,例如電力系統中自動抄表,自來水廠對水質監測,農業中對土壤的監測等。環境惡劣或路途遙遠等會導致用人工現場采集數據有很大的困難。遠程測控終端[1](RTU)在工業數據采集中應用非常廣泛。為此,設計一款基于GPRS/GSM混合通信的RTU,將GPRS與GSM的SMS方式進行優勢互補, 來滿足用戶對遠程數據采集所面臨的數據傳輸的完整性和實時性需求。本文研究了一種運用ARM處理器和Linux操作系統嵌入式數據采集裝置,添加GPRS/GSM數據傳輸模塊來傳輸數據。將無線通信技術和嵌入式系統結合,外加 Internet通信,將數據傳輸到監控中心,監控中心將采集到的數據進行實時分析、存儲,并在監測指標出現異常時報警,做到遠端無人值守。
1 系統設計
1.1 GPRS/GSM技術
GPRS作為現有GSM網絡向第三代移動通信演變的過渡技術(2.5G),其具有下列特點。
(1) GPRS作為無線通信技術,已經非常普遍,基本在全國范圍內都能進行GPRS通信,而且它的速度和建設成本以及方便性都非常適合。
(2)傳輸速率高,GPRS數據傳輸的速度雖然不是非常高,但一般能夠滿足正常的數據傳輸要求,一般都有30 kb/s,已經完全能夠滿足本設計需求。
(3)按流量計費,如手機,用了多少流量算多少錢,而且當流量需求量過大時,還可以與移動公司合作,進行包月流量5元30 MB,這樣對于數據傳輸量比較大的用戶也能夠滿足他們的需求。
1.2 系統結構設計
本文采用GPRS/GSM為數據傳輸平臺,系統主要分為監控中心、RTU和數傳模塊三大模塊,如圖1所示[1]。
(1)遠程測控終端RTU。為環境惡劣中的數據采集裝置,RTU將采集的數據通過自己內部定義的協議打包,通過GPRS/GSM和Internet傳輸到監控中心。在RTU不止一個的情況下,需給每個RTU設置不同的ID號。
(2)監控中心。監控中心直接與Internet相連,通常與RTU采用一對一或一對多的應用模式。監控中心獲取到從RTU傳來的數據后,進行協議解析,還原用戶數據,如果傳來的數據不在預設的正常區間內,將產生報警信號,同時監控中心對RTU 進行控制。
(3)數據傳輸模塊。數據傳輸模塊由于要進行數據傳輸,需內嵌TCP/IP 協議,而且要實現與Internet的連接。核心板與GPRS 模塊通過串口進行數據交互,使用AT 指令實現對GPRS 模塊的控制[1]。
1.3 RTU硬件設計
RTU的硬件結構圖如圖2所示[2],以三星S3C2440為嵌入式處理器核心,外擴SDRAM/Nand Flash模塊用于數據存儲,GPRS/GSM模塊用于數據傳輸,JTAG為調試接口,RS-232為串口通信接口。
(1)S3C2440處理器。是三星公司開發的基于ARM920T內核32位RISC微處理器,適用于低成本、低功耗、高性能的設備。
(2)Nand Flash:Nand Flash芯片為Samsung廠商生產的,數據存儲容量為64 MB,采用塊頁式存儲管理。
(3)SDRAM。S3C2440的SDRAM內存應該焊接在Bank6~Bank7上,最大支持內存256 MB。
(4)JTAG調試接口。該接口是在研發過程中對芯片內部進行的一些調試、編程等操作。
(5)RS-232串行接口。數據采集裝置通過串口將采集的數據傳輸給核心板,核心板通過串口將數據發送到GPRS/GSM模塊。
(6)GPRS/GSM模塊。采用內嵌TCP/IP 協議的數據傳輸GPRS/GSM模塊,用于實現終端登錄無線網絡。
1.4 RTU軟件設計
對于RTU的軟件設計,從功能上來分,可以分為3個的部分。(1)Linux系統的核心程序的移植,即操作系統移植,它負責系統的工作控制、存儲管理、功能設置、通信等;(2)設備驅動程序,負責操作系統與硬件設備之間的交互;(3)應用程序,它負責對數據的操作,如數據的采集、現場處理、存儲、打包以及傳輸。
1.4.1 Linux操作系統的移植[3]
Linux系統的移植分為Bootloader移植、內核移植和文件系統移植。
(1)Bootloader移植[4]:Bootloader是操作系統運行前執行的一段程序。本文系統選用U-Boot 作為硬件板的Bootloader。
(2)內核移植:核心板采用Linux2.6.8 內核。從官網上下載Linux2.6.8.tar.bz2壓縮包解壓,對其中部分文件進行修改。設置PATH環境變量,Nand Flash分區,內核通過U-boot燒寫到Nand Flash中。
(3)文件系統移植:本系統采用的是CRAMFS文件系統,需要添加自己的相應程序,編譯生成鏡像文件后,將文件燒寫進 Flash中。
1.4.2 設備驅動
在Linux操作系統下,用戶看到的只是應用程序,而要實現應用程序和底層硬件的通信,就需要操作系統和驅動程序的幫助。這里主要是處理和編寫網絡設備的驅動。在完成驅動程序開發后,通過open ( ) 、close ( )、read ( )和write ( ) 等操作來實現對硬件的操作。
1.4.3 應用程序設計
應用程序為用戶層程序,通過應用層可以對遠程現場數據進行操作,包括數據的采集、處理、存儲和發送等,如圖3所示。在給遠程RTU上電后,需通過應用程序對系統進行一系列的初始化并與網絡建立通信,設置采樣周期,周期采集數據。當檢測采集的數據達到1 KB時,首先進行GPRS傳輸數據。正常情況下,當數據傳輸結束時,結束傳輸,進入下一個周期[5]。而當GPRS傳輸數據失敗時,系統則自動切換到SMS短消息傳輸數據,數據傳輸結束后,進入下一個傳輸周期。
2 數據完整性傳輸
2.1 采用多線程機制
RTU的應用程序需要實現的功能主要有:通過撥號來建立GPRS連接,并與服務器連通;在遠處惡劣環境下對數據進行采集,對數據分析處理,將處理好的數據傳輸給監控中心,且在監控中心發出控制命令時作出相應的操作。為了提高程序運行效率,考慮使用多線程編程[6]。給數據采集和數據處理分別新建一個線程,由于這兩線程對象是同一數據,需要注意采集和處理線程之間的同步問題。當采集線程數據到1 KB時,數據處理線程開始工作,本文利用信號量實現。由于GPRS撥號需要一定的時間,如果不新建一個線程,必然會導致主線程阻塞,本文為GPRS撥號連接也新建一個線程,如圖4所示。
2.2 傳輸協議的設計[1]
為了能夠使得數據通信的完整性和實時性有更大的提高,需要對傳輸協議有個很好的制訂。如發送的數據包過大,不能夠使得數據在一個通道中傳輸,需要對數據進行分割,在不同的通道中進行傳輸,這必然導致傳輸延遲,同時也增加了數據完整性傳輸的風險,因此,RTU數據傳輸協議的數據格式一定要做得非常精簡,才能更好地實現數據的傳輸。數據傳輸格式如表1所示。
ID:為RTU的ID號,使得監控中心分辨傳來的數據的地址。
Data:為經過模數轉換器轉換得到的數據。
IO:為當前I/O的輸入輸出狀態。
校驗位:保證數據傳輸過程中的有效性。
RTU 將按照以上協議數據包格式對采集的數據進行打包。利用GPRS傳輸模塊和網絡發送數據包至監控中心。監控中心按照協議解析數據包,根據用戶的要求進行顯示。同時監控中心還會對數據進行分析,發現數據異常,將進行報警,同時監控中心根據用戶需求可以對RTU進行相應的下行控制。
2.3 GPRS/GSM數據傳輸功能試驗
在實驗室條件下,通過手機給RTU發送短信的方式來測試RTU數據傳輸功能,當把GPRS傳輸模塊的緩沖區設置得比較小時,而短信的內容又比較多時,將導致RTU上傳數據出現錯誤,不能夠完整地傳輸數據。通過多次試驗,發現增加GPRS模塊接收緩沖區的長度,就可以解決由于短信量過大而導致數據溢出、數據傳輸不完整的問題。
另外,通過撥打RTU的SIM 卡號碼,使得語音信道占用數據信道,這樣來模擬GPRS網絡擁堵的情況。在語音信道一直占用數據信道的情況下,RTU嘗試3次建立GPRS 網絡均不成功,從而轉向GSM的SMS方式來傳輸數據。這里就驗證了在GPRS傳輸出現異常的情況下,GSM的SMS可以傳輸數據,從而使得數據在傳輸過程中不容易丟包,且傳輸的實時性得到提高。通過對RTU進行672次測試,GPRS和GSM的SMS傳輸次數、丟包率及誤碼率,測試結果如表2所示。
試驗結果表明,采用GPRS/GSM方式能夠實現對數據的完整性傳輸。 當GPRS傳輸遇到異常情況時,系統會自動切換到GSM的SMS方式進行傳輸,實驗結果表明,采用混合通信的方式,基本上可以達到丟包率為0。
3 監控中心軟件設計
監控中心管理軟件主要完成用戶現場的監視性操作及上位機通信功能及數據實時收發、存儲、顯示和統計分析等,如圖5所示。
系統管理:主要工作是對要實施監控的對象,監控頻率,和監控的時間進行配置。
通信管理:負責上位機和下位機之間的通信,主要是接收下位機發送來的數據,和發送命令到下位機去執行。
數據管理:由于采集的數據是一包一包的,需進行解析后存儲。
統計分析:對數據進行分析,檢查數據是否有異常狀況。
實驗結果表明,在網絡擁堵的情況下,采用GPRS/GSM 混合通信可以保證數據傳輸的完整性與實時性。采用多線程編程可以提高系統工作的效率;設計一個良好的協議,可以使得數據在傳輸過程中完整性和實時性得到更好的保障;把GPRS和GSM的SMS技術相結合傳輸數據,使得傳輸的丟包率基本為0。因此,該系統可以滿足用戶對于現場數據采集上傳的完整性、實時性需求。
參考文獻
[1] 陳琦,丁天懷,李成,等. 基于GPRS/GSM的低功耗無線遠程測控終端設計[J].清華大學學報:自然科學版,2009,49(2):223-225.
[2] 韓曉冰,韓冰,孫弋. 基于嵌入式系統的GPRS數據終端設計與實現[J].儀器儀表學報,2006,27(21):675-677.
[3] 呂盛林,林子杰,陳立定. 基于ARM9的無線環境監控系統的實現[J].信息技術,2009(12):17-22.
[4] 韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2012.
[5] 陳天華,唐海濤. 基于ARM 和GPRS的遠程土壤墑情監測預報系統[J].農業工程學報,2012,28(3):162-166.
[6] 伊嘉鵬. 無線遠程數據采集系統軟件設計與實現[D].大連:大連理工大學,2013.