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

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

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

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

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

  1.1 GPRS/GSM技術(shù)

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

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

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

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

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

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

001.jpg

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

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

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

  1.3 RTU硬件設(shè)計(jì)


002.jpg

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

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

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

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

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

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

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

  1.4 RTU軟件設(shè)計(jì)

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

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

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

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

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

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

  1.4.2 設(shè)備驅(qū)動(dòng)

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

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


003.jpg

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

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

  2.1 采用多線程機(jī)制

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

004.jpg

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

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

006.jpg

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

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

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

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

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

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

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

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

007.jpg

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

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

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

005.jpg

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

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

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

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

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

參考文獻(xiàn)

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

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

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

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

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

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


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