《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于GPRS/GSM和ARM的數(shù)據(jù)完整性傳輸終端設(shè)計與實現(xiàn)
基于GPRS/GSM和ARM的數(shù)據(jù)完整性傳輸終端設(shè)計與實現(xiàn)
2014年微型機與應(yīng)用第17期
邵俊杰,曾獻輝
東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620
摘要: 為提高數(shù)據(jù)傳輸過程中完整性,提出了一種結(jié)合嵌入式技術(shù)和GPRS/GSM無線通信技術(shù)的數(shù)據(jù)傳輸方案。設(shè)計了基于GPRS和GSM短信服務(wù)混合通信的嵌入式數(shù)據(jù)采集傳輸終端,用于在惡劣的環(huán)境下對數(shù)據(jù)的實時采集,并通過GPRS/GSM網(wǎng)絡(luò)上傳至監(jiān)控中心。在高峰時期或傳輸網(wǎng)絡(luò)出現(xiàn)異常時,嵌入式終端將采取GSM的SMS方式進行數(shù)據(jù)傳輸。
Abstract:
Key words :

  摘 要: 為提高數(shù)據(jù)傳輸過程中完整性,提出了一種結(jié)合嵌入式技術(shù)和GPRS/GSM無線通信技術(shù)的數(shù)據(jù)傳輸方案。設(shè)計了基于GPRS和GSM短信服務(wù)混合通信的嵌入式數(shù)據(jù)采集傳輸終端,用于在惡劣的環(huán)境下對數(shù)據(jù)的實時采集,并通過GPRS/GSM網(wǎng)絡(luò)上傳至監(jiān)控中心。在高峰時期或傳輸網(wǎng)絡(luò)出現(xiàn)異常時,嵌入式終端將采取GSM的SMS方式進行數(shù)據(jù)傳輸。

  關(guān)鍵詞遠程測控終端;GPRS/GSM;嵌入式技術(shù),數(shù)據(jù)完整性

  隨著工業(yè)的發(fā)展,很多設(shè)備在惡劣環(huán)境中工作,需要定時采集數(shù)據(jù),例如電力系統(tǒng)中自動抄表,自來水廠對水質(zhì)監(jiān)測,農(nóng)業(yè)中對土壤的監(jiān)測等。環(huán)境惡劣或路途遙遠等會導(dǎo)致用人工現(xiàn)場采集數(shù)據(jù)有很大的困難。遠程測控終端[1](RTU)在工業(yè)數(shù)據(jù)采集中應(yīng)用非常廣泛。為此,設(shè)計一款基于GPRS/GSM混合通信的RTU,將GPRS與GSM的SMS方式進行優(yōu)勢互補, 來滿足用戶對遠程數(shù)據(jù)采集所面臨的數(shù)據(jù)傳輸?shù)耐暾院蛯崟r性需求。本文研究了一種運用ARM處理器和Linux操作系統(tǒng)嵌入式數(shù)據(jù)采集裝置,添加GPRS/GSM數(shù)據(jù)傳輸模塊來傳輸數(shù)據(jù)。將無線通信技術(shù)和嵌入式系統(tǒng)結(jié)合,外加 Internet通信,將數(shù)據(jù)傳輸?shù)奖O(jiān)控中心,監(jiān)控中心將采集到的數(shù)據(jù)進行實時分析、存儲,并在監(jiān)測指標出現(xiàn)異常時報警,做到遠端無人值守。

1 系統(tǒng)設(shè)計

  1.1 GPRS/GSM技術(shù)

  GPRS作為現(xiàn)有GSM網(wǎng)絡(luò)向第三代移動通信演變的過渡技術(shù)(2.5G),其具有下列特點。

  (1) GPRS作為無線通信技術(shù),已經(jīng)非常普遍,基本在全國范圍內(nèi)都能進行GPRS通信,而且它的速度和建設(shè)成本以及方便性都非常適合。

 ?。?)傳輸速率高,GPRS數(shù)據(jù)傳輸?shù)乃俣入m然不是非常高,但一般能夠滿足正常的數(shù)據(jù)傳輸要求,一般都有30 kb/s,已經(jīng)完全能夠滿足本設(shè)計需求。

 ?。?)按流量計費,如手機,用了多少流量算多少錢,而且當(dāng)流量需求量過大時,還可以與移動公司合作,進行包月流量5元30 MB,這樣對于數(shù)據(jù)傳輸量比較大的用戶也能夠滿足他們的需求。

  1.2 系統(tǒng)結(jié)構(gòu)設(shè)計

  本文采用GPRS/GSM為數(shù)據(jù)傳輸平臺,系統(tǒng)主要分為監(jiān)控中心、RTU和數(shù)傳模塊三大模塊,如圖1所示[1]。

001.jpg

 ?。?)遠程測控終端RTU。為環(huán)境惡劣中的數(shù)據(jù)采集裝置,RTU將采集的數(shù)據(jù)通過自己內(nèi)部定義的協(xié)議打包,通過GPRS/GSM和Internet傳輸?shù)奖O(jiān)控中心。在RTU不止一個的情況下,需給每個RTU設(shè)置不同的ID號。

 ?。?)監(jiān)控中心。監(jiān)控中心直接與Internet相連,通常與RTU采用一對一或一對多的應(yīng)用模式。監(jiān)控中心獲取到從RTU傳來的數(shù)據(jù)后,進行協(xié)議解析,還原用戶數(shù)據(jù),如果傳來的數(shù)據(jù)不在預(yù)設(shè)的正常區(qū)間內(nèi),將產(chǎn)生報警信號,同時監(jiān)控中心對RTU 進行控制。

 ?。?)數(shù)據(jù)傳輸模塊。數(shù)據(jù)傳輸模塊由于要進行數(shù)據(jù)傳輸,需內(nèi)嵌TCP/IP 協(xié)議,而且要實現(xiàn)與Internet的連接。核心板與GPRS 模塊通過串口進行數(shù)據(jù)交互,使用AT 指令實現(xiàn)對GPRS 模塊的控制[1]。

  1.3 RTU硬件設(shè)計


002.jpg

  RTU的硬件結(jié)構(gòu)圖如圖2所示[2],以三星S3C2440為嵌入式處理器核心,外擴SDRAM/Nand Flash模塊用于數(shù)據(jù)存儲,GPRS/GSM模塊用于數(shù)據(jù)傳輸,JTAG為調(diào)試接口,RS-232為串口通信接口。

 ?。?)S3C2440處理器。是三星公司開發(fā)的基于ARM920T內(nèi)核32位RISC微處理器,適用于低成本、低功耗、高性能的設(shè)備。

 ?。?)Nand Flash:Nand Flash芯片為Samsung廠商生產(chǎn)的,數(shù)據(jù)存儲容量為64 MB,采用塊頁式存儲管理。

 ?。?)SDRAM。S3C2440的SDRAM內(nèi)存應(yīng)該焊接在Bank6~Bank7上,最大支持內(nèi)存256 MB。

 ?。?)JTAG調(diào)試接口。該接口是在研發(fā)過程中對芯片內(nèi)部進行的一些調(diào)試、編程等操作。

  (5)RS-232串行接口。數(shù)據(jù)采集裝置通過串口將采集的數(shù)據(jù)傳輸給核心板,核心板通過串口將數(shù)據(jù)發(fā)送到GPRS/GSM模塊。

  (6)GPRS/GSM模塊。采用內(nèi)嵌TCP/IP 協(xié)議的數(shù)據(jù)傳輸GPRS/GSM模塊,用于實現(xiàn)終端登錄無線網(wǎng)絡(luò)。

  1.4 RTU軟件設(shè)計

  對于RTU的軟件設(shè)計,從功能上來分,可以分為3個的部分。(1)Linux系統(tǒng)的核心程序的移植,即操作系統(tǒng)移植,它負責(zé)系統(tǒng)的工作控制、存儲管理、功能設(shè)置、通信等;(2)設(shè)備驅(qū)動程序,負責(zé)操作系統(tǒng)與硬件設(shè)備之間的交互;(3)應(yīng)用程序,它負責(zé)對數(shù)據(jù)的操作,如數(shù)據(jù)的采集、現(xiàn)場處理、存儲、打包以及傳輸。

  1.4.1 Linux操作系統(tǒng)的移植[3]

  Linux系統(tǒng)的移植分為Bootloader移植、內(nèi)核移植和文件系統(tǒng)移植。

  (1)Bootloader移植[4]:Bootloader是操作系統(tǒng)運行前執(zhí)行的一段程序。本文系統(tǒng)選用U-Boot 作為硬件板的Bootloader。

 ?。?)內(nèi)核移植:核心板采用Linux2.6.8 內(nèi)核。從官網(wǎng)上下載Linux2.6.8.tar.bz2壓縮包解壓,對其中部分文件進行修改。設(shè)置PATH環(huán)境變量,Nand Flash分區(qū),內(nèi)核通過U-boot燒寫到Nand Flash中。

 ?。?)文件系統(tǒng)移植:本系統(tǒng)采用的是CRAMFS文件系統(tǒng),需要添加自己的相應(yīng)程序,編譯生成鏡像文件后,將文件燒寫進 Flash中。

  1.4.2 設(shè)備驅(qū)動

  在Linux操作系統(tǒng)下,用戶看到的只是應(yīng)用程序,而要實現(xiàn)應(yīng)用程序和底層硬件的通信,就需要操作系統(tǒng)和驅(qū)動程序的幫助。這里主要是處理和編寫網(wǎng)絡(luò)設(shè)備的驅(qū)動。在完成驅(qū)動程序開發(fā)后,通過open ( ) 、close ( )、read ( )和write ( ) 等操作來實現(xiàn)對硬件的操作。

  1.4.3 應(yīng)用程序設(shè)計


003.jpg

  應(yīng)用程序為用戶層程序,通過應(yīng)用層可以對遠程現(xiàn)場數(shù)據(jù)進行操作,包括數(shù)據(jù)的采集、處理、存儲和發(fā)送等,如圖3所示。在給遠程RTU上電后,需通過應(yīng)用程序?qū)ο到y(tǒng)進行一系列的初始化并與網(wǎng)絡(luò)建立通信,設(shè)置采樣周期,周期采集數(shù)據(jù)。當(dāng)檢測采集的數(shù)據(jù)達到1 KB時,首先進行GPRS傳輸數(shù)據(jù)。正常情況下,當(dāng)數(shù)據(jù)傳輸結(jié)束時,結(jié)束傳輸,進入下一個周期[5]。而當(dāng)GPRS傳輸數(shù)據(jù)失敗時,系統(tǒng)則自動切換到SMS短消息傳輸數(shù)據(jù),數(shù)據(jù)傳輸結(jié)束后,進入下一個傳輸周期。

2 數(shù)據(jù)完整性傳輸

  2.1 采用多線程機制

  RTU的應(yīng)用程序需要實現(xiàn)的功能主要有:通過撥號來建立GPRS連接,并與服務(wù)器連通;在遠處惡劣環(huán)境下對數(shù)據(jù)進行采集,對數(shù)據(jù)分析處理,將處理好的數(shù)據(jù)傳輸給監(jiān)控中心,且在監(jiān)控中心發(fā)出控制命令時作出相應(yīng)的操作。為了提高程序運行效率,考慮使用多線程編程[6]。給數(shù)據(jù)采集和數(shù)據(jù)處理分別新建一個線程,由于這兩線程對象是同一數(shù)據(jù),需要注意采集和處理線程之間的同步問題。當(dāng)采集線程數(shù)據(jù)到1 KB時,數(shù)據(jù)處理線程開始工作,本文利用信號量實現(xiàn)。由于GPRS撥號需要一定的時間,如果不新建一個線程,必然會導(dǎo)致主線程阻塞,本文為GPRS撥號連接也新建一個線程,如圖4所示。

004.jpg

  2.2 傳輸協(xié)議的設(shè)計[1]

  為了能夠使得數(shù)據(jù)通信的完整性和實時性有更大的提高,需要對傳輸協(xié)議有個很好的制訂。如發(fā)送的數(shù)據(jù)包過大,不能夠使得數(shù)據(jù)在一個通道中傳輸,需要對數(shù)據(jù)進行分割,在不同的通道中進行傳輸,這必然導(dǎo)致傳輸延遲,同時也增加了數(shù)據(jù)完整性傳輸?shù)娘L(fēng)險,因此,RTU數(shù)據(jù)傳輸協(xié)議的數(shù)據(jù)格式一定要做得非常精簡,才能更好地實現(xiàn)數(shù)據(jù)的傳輸。數(shù)據(jù)傳輸格式如表1所示。

006.jpg

  ID:為RTU的ID號,使得監(jiān)控中心分辨?zhèn)鱽淼臄?shù)據(jù)的地址。

  Data:為經(jīng)過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換得到的數(shù)據(jù)。

  IO:為當(dāng)前I/O的輸入輸出狀態(tài)。

  校驗位:保證數(shù)據(jù)傳輸過程中的有效性。

  RTU 將按照以上協(xié)議數(shù)據(jù)包格式對采集的數(shù)據(jù)進行打包。利用GPRS傳輸模塊和網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包至監(jiān)控中心。監(jiān)控中心按照協(xié)議解析數(shù)據(jù)包,根據(jù)用戶的要求進行顯示。同時監(jiān)控中心還會對數(shù)據(jù)進行分析,發(fā)現(xiàn)數(shù)據(jù)異常,將進行報警,同時監(jiān)控中心根據(jù)用戶需求可以對RTU進行相應(yīng)的下行控制。

  2.3 GPRS/GSM數(shù)據(jù)傳輸功能試驗

  在實驗室條件下,通過手機給RTU發(fā)送短信的方式來測試RTU數(shù)據(jù)傳輸功能,當(dāng)把GPRS傳輸模塊的緩沖區(qū)設(shè)置得比較小時,而短信的內(nèi)容又比較多時,將導(dǎo)致RTU上傳數(shù)據(jù)出現(xiàn)錯誤,不能夠完整地傳輸數(shù)據(jù)。通過多次試驗,發(fā)現(xiàn)增加GPRS模塊接收緩沖區(qū)的長度,就可以解決由于短信量過大而導(dǎo)致數(shù)據(jù)溢出、數(shù)據(jù)傳輸不完整的問題。

  另外,通過撥打RTU的SIM 卡號碼,使得語音信道占用數(shù)據(jù)信道,這樣來模擬GPRS網(wǎng)絡(luò)擁堵的情況。在語音信道一直占用數(shù)據(jù)信道的情況下,RTU嘗試3次建立GPRS 網(wǎng)絡(luò)均不成功,從而轉(zhuǎn)向GSM的SMS方式來傳輸數(shù)據(jù)。這里就驗證了在GPRS傳輸出現(xiàn)異常的情況下,GSM的SMS可以傳輸數(shù)據(jù),從而使得數(shù)據(jù)在傳輸過程中不容易丟包,且傳輸?shù)膶崟r性得到提高。通過對RTU進行672次測試,GPRS和GSM的SMS傳輸次數(shù)、丟包率及誤碼率,測試結(jié)果如表2所示。

007.jpg

  試驗結(jié)果表明,采用GPRS/GSM方式能夠?qū)崿F(xiàn)對數(shù)據(jù)的完整性傳輸。 當(dāng)GPRS傳輸遇到異常情況時,系統(tǒng)會自動切換到GSM的SMS方式進行傳輸,實驗結(jié)果表明,采用混合通信的方式,基本上可以達到丟包率為0。

3 監(jiān)控中心軟件設(shè)計

  監(jiān)控中心管理軟件主要完成用戶現(xiàn)場的監(jiān)視性操作及上位機通信功能及數(shù)據(jù)實時收發(fā)、存儲、顯示和統(tǒng)計分析等,如圖5所示。

005.jpg

  系統(tǒng)管理:主要工作是對要實施監(jiān)控的對象,監(jiān)控頻率,和監(jiān)控的時間進行配置。

  通信管理:負責(zé)上位機和下位機之間的通信,主要是接收下位機發(fā)送來的數(shù)據(jù),和發(fā)送命令到下位機去執(zhí)行。

  數(shù)據(jù)管理:由于采集的數(shù)據(jù)是一包一包的,需進行解析后存儲。

  統(tǒng)計分析:對數(shù)據(jù)進行分析,檢查數(shù)據(jù)是否有異常狀況。

  實驗結(jié)果表明,在網(wǎng)絡(luò)擁堵的情況下,采用GPRS/GSM 混合通信可以保證數(shù)據(jù)傳輸?shù)耐暾耘c實時性。采用多線程編程可以提高系統(tǒng)工作的效率;設(shè)計一個良好的協(xié)議,可以使得數(shù)據(jù)在傳輸過程中完整性和實時性得到更好的保障;把GPRS和GSM的SMS技術(shù)相結(jié)合傳輸數(shù)據(jù),使得傳輸?shù)膩G包率基本為0。因此,該系統(tǒng)可以滿足用戶對于現(xiàn)場數(shù)據(jù)采集上傳的完整性、實時性需求。

參考文獻

  [1] 陳琦,丁天懷,李成,等. 基于GPRS/GSM的低功耗無線遠程測控終端設(shè)計[J].清華大學(xué)學(xué)報:自然科學(xué)版,2009,49(2):223-225.

  [2] 韓曉冰,韓冰,孫弋. 基于嵌入式系統(tǒng)的GPRS數(shù)據(jù)終端設(shè)計與實現(xiàn)[J].儀器儀表學(xué)報,2006,27(21):675-677.

  [3] 呂盛林,林子杰,陳立定. 基于ARM9的無線環(huán)境監(jiān)控系統(tǒng)的實現(xiàn)[J].信息技術(shù),2009(12):17-22.

  [4] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2012.

  [5] 陳天華,唐海濤. 基于ARM 和GPRS的遠程土壤墑情監(jiān)測預(yù)報系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報,2012,28(3):162-166.

  [6] 伊嘉鵬. 無線遠程數(shù)據(jù)采集系統(tǒng)軟件設(shè)計與實現(xiàn)[D].大連:大連理工大學(xué),2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。