摘 要: 為提高數(shù)據(jù)傳輸過程中完整性,提出了一種結(jié)合嵌入式技術(shù)和GPRS/GSM無線通信技術(shù)的數(shù)據(jù)傳輸方案,。設(shè)計(jì)了基于GPRS和GSM短信服務(wù)混合通信的嵌入式數(shù)據(jù)采集傳輸終端,,用于在惡劣的環(huán)境下對(duì)數(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)程測(cè)控終端,;GPRS/GSM,;嵌入式技術(shù),數(shù)據(jù)完整性
隨著工業(yè)的發(fā)展,,很多設(shè)備在惡劣環(huán)境中工作,,需要定時(shí)采集數(shù)據(jù),例如電力系統(tǒng)中自動(dòng)抄表,,自來水廠對(duì)水質(zhì)監(jiān)測(cè),,農(nóng)業(yè)中對(duì)土壤的監(jiān)測(cè)等。環(huán)境惡劣或路途遙遠(yuǎn)等會(huì)導(dǎo)致用人工現(xiàn)場(chǎng)采集數(shù)據(jù)有很大的困難,。遠(yuǎn)程測(cè)控終端[1](RTU)在工業(yè)數(shù)據(jù)采集中應(yīng)用非常廣泛,。為此,設(shè)計(jì)一款基于GPRS/GSM混合通信的RTU,將GPRS與GSM的SMS方式進(jìn)行優(yōu)勢(shì)互補(bǔ), 來滿足用戶對(duì)遠(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)測(cè)指標(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)非常普遍,,基本在全國(guó)范圍內(nèi)都能進(jìn)行GPRS通信,,而且它的速度和建設(shè)成本以及方便性都非常適合。
?。?)傳輸速率高,,GPRS數(shù)據(jù)傳輸?shù)乃俣入m然不是非常高,但一般能夠滿足正常的數(shù)據(jù)傳輸要求,,一般都有30 kb/s,,已經(jīng)完全能夠滿足本設(shè)計(jì)需求。
?。?)按流量計(jì)費(fèi),,如手機(jī),用了多少流量算多少錢,,而且當(dāng)流量需求量過大時(shí),,還可以與移動(dòng)公司合作,進(jìn)行包月流量5元30 MB,,這樣對(duì)于數(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]。
?。?)遠(yuǎn)程測(cè)控終端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采用一對(duì)一或一對(duì)多的應(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)控中心對(duì)RTU 進(jìn)行控制,。
(3)數(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)對(duì)GPRS 模塊的控制[1]。
1.3 RTU硬件設(shè)計(jì)
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è)備。
?。?)Nand Flash:Nand Flash芯片為Samsung廠商生產(chǎn)的,,數(shù)據(jù)存儲(chǔ)容量為64 MB,采用塊頁(yè)式存儲(chǔ)管理,。
?。?)SDRAM。S3C2440的SDRAM內(nèi)存應(yīng)該焊接在Bank6~Bank7上,,最大支持內(nèi)存256 MB,。
?。?)JTAG調(diào)試接口。該接口是在研發(fā)過程中對(duì)芯片內(nèi)部進(jìn)行的一些調(diào)試,、編程等操作,。
(5)RS-232串行接口,。數(shù)據(jù)采集裝置通過串口將采集的數(shù)據(jù)傳輸給核心板,,核心板通過串口將數(shù)據(jù)發(fā)送到GPRS/GSM模塊。
?。?)GPRS/GSM模塊,。采用內(nèi)嵌TCP/IP 協(xié)議的數(shù)據(jù)傳輸GPRS/GSM模塊,用于實(shí)現(xiàn)終端登錄無線網(wǎng)絡(luò),。
1.4 RTU軟件設(shè)計(jì)
對(duì)于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é)對(duì)數(shù)據(jù)的操作,,如數(shù)據(jù)的采集、現(xiàn)場(chǎng)處理,、存儲(chǔ),、打包以及傳輸。
1.4.1 Linux操作系統(tǒng)的移植[3]
Linux系統(tǒng)的移植分為Bootloader移植,、內(nèi)核移植和文件系統(tǒng)移植,。
(1)Bootloader移植[4]:Bootloader是操作系統(tǒng)運(yùn)行前執(zhí)行的一段程序,。本文系統(tǒng)選用U-Boot 作為硬件板的Bootloader,。
(2)內(nèi)核移植:核心板采用Linux2.6.8 內(nèi)核,。從官網(wǎng)上下載Linux2.6.8.tar.bz2壓縮包解壓,,對(duì)其中部分文件進(jìn)行修改。設(shè)置PATH環(huán)境變量,,Nand Flash分區(qū),,內(nèi)核通過U-boot燒寫到Nand Flash中,。
(3)文件系統(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)對(duì)硬件的操作,。
1.4.3 應(yīng)用程序設(shè)計(jì)
應(yīng)用程序?yàn)橛脩魧映绦颍ㄟ^應(yīng)用層可以對(duì)遠(yuǎn)程現(xiàn)場(chǎng)數(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)檢測(cè)采集的數(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)境下對(duì)數(shù)據(jù)進(jìn)行采集,,對(duì)數(shù)據(jù)分析處理,,將處理好的數(shù)據(jù)傳輸給監(jiān)控中心,且在監(jiān)控中心發(fā)出控制命令時(shí)作出相應(yīng)的操作,。為了提高程序運(yùn)行效率,,考慮使用多線程編程[6],。給數(shù)據(jù)采集和數(shù)據(jù)處理分別新建一個(gè)線程,由于這兩線程對(duì)象是同一數(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所示,。
2.2 傳輸協(xié)議的設(shè)計(jì)[1]
為了能夠使得數(shù)據(jù)通信的完整性和實(shí)時(shí)性有更大的提高,,需要對(duì)傳輸協(xié)議有個(gè)很好的制訂。如發(fā)送的數(shù)據(jù)包過大,,不能夠使得數(shù)據(jù)在一個(gè)通道中傳輸,,需要對(duì)數(shù)據(jù)進(jìn)行分割,在不同的通道中進(jìn)行傳輸,,這必然導(dǎo)致傳輸延遲,,同時(shí)也增加了數(shù)據(jù)完整性傳輸?shù)娘L(fēng)險(xiǎn),因此,,RTU數(shù)據(jù)傳輸協(xié)議的數(shù)據(jù)格式一定要做得非常精簡(jiǎn),,才能更好地實(shí)現(xiàn)數(shù)據(jù)的傳輸。數(shù)據(jù)傳輸格式如表1所示,。
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ù)包格式對(duì)采集的數(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ì)對(duì)數(shù)據(jù)進(jìn)行分析,,發(fā)現(xiàn)數(shù)據(jù)異常,將進(jìn)行報(bào)警,,同時(shí)監(jiān)控中心根據(jù)用戶需求可以對(duì)RTU進(jìn)行相應(yīng)的下行控制,。
2.3 GPRS/GSM數(shù)據(jù)傳輸功能試驗(yàn)
在實(shí)驗(yàn)室條件下,通過手機(jī)給RTU發(fā)送短信的方式來測(cè)試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ū)的長(zhǎng)度,就可以解決由于短信量過大而導(dǎo)致數(shù)據(jù)溢出,、數(shù)據(jù)傳輸不完整的問題,。
另外,通過撥打RTU的SIM 卡號(hào)碼,,使得語(yǔ)音信道占用數(shù)據(jù)信道,這樣來模擬GPRS網(wǎng)絡(luò)擁堵的情況,。在語(yǔ)音信道一直占用數(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í)性得到提高,。通過對(duì)RTU進(jìn)行672次測(cè)試,GPRS和GSM的SMS傳輸次數(shù),、丟包率及誤碼率,,測(cè)試結(jié)果如表2所示。
試驗(yàn)結(jié)果表明,,采用GPRS/GSM方式能夠?qū)崿F(xiàn)對(duì)數(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)場(chǎng)的監(jiān)視性操作及上位機(jī)通信功能及數(shù)據(jù)實(shí)時(shí)收發(fā),、存儲(chǔ)、顯示和統(tǒng)計(jì)分析等,,如圖5所示,。
系統(tǒng)管理:主要工作是對(duì)要實(shí)施監(jiān)控的對(duì)象,監(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ì)分析:對(duì)數(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)可以滿足用戶對(duì)于現(xiàn)場(chǎng)數(shù)據(jù)采集上傳的完整性、實(shí)時(shí)性需求,。
參考文獻(xiàn)
[1] 陳琦,,丁天懷,李成,,等. 基于GPRS/GSM的低功耗無線遠(yuǎn)程測(cè)控終端設(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ā)完全手冊(cè)[M].北京:人民郵電出版社,,2012.
[5] 陳天華,唐海濤. 基于ARM 和GPRS的遠(yuǎn)程土壤墑情監(jiān)測(cè)預(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.