伍連明 陳世元
摘 要:針對傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)對系統(tǒng)構(gòu)建的方便性與數(shù)據(jù)傳輸?shù)目煽啃缘囊?提出了一種基于移動GPRS無線通信的遠(yuǎn)程數(shù)據(jù)采集方案。該方案利用GPRS的Internet接入功能,通過移動公司的網(wǎng)絡(luò)來實(shí)現(xiàn)數(shù)據(jù)采集模塊與遠(yuǎn)程主機(jī)之間的無線通信。分析了該數(shù)據(jù)采集模塊的原理與結(jié)構(gòu),嵌入式TCP/IP/PPP協(xié)議的實(shí)現(xiàn),以及GPRS模塊的驅(qū)動設(shè)計(jì)。并由此研制出一臺基于Winbond單片機(jī)與GPRS模塊的無線數(shù)據(jù)采集系統(tǒng),測試結(jié)果證明了該采集模塊的穩(wěn)定性與可靠性。
關(guān)鍵詞:GPRS模塊;數(shù)據(jù)采集;TCP/IP/PPP協(xié)議;MC35i
中圖分類號:TN914文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2009)03-025-04
Remote Data Acquisition System Based on GPRS Communication
WU Lianming,CHEN Shiyuan
(College of Electric Engineering,South China University of Technology,Guangzhou,510640,China)
Abstract:According to traditional data acquisition system′s demand of easy build and reliable data transmission,a program based on GPRS is introduced in this paper.The system communicates wireless with remote server through the GPRS net.This paper mainly analyzes the structure of the system,the realization of embedded TCP/IPP/PPP stack,and the use of GPRS module.At last a wireless communication module is developed on a Winbond Single chip computer,and the result shows the performance of this module is very excellent.
Keywords:GPRS module;data acquisition;TCP/IP/PPP protocol;MC35i
0 引 言
數(shù)據(jù)采集與工業(yè)生產(chǎn)和國民生活息息相關(guān),大到電力部門各變電站的遠(yuǎn)程監(jiān)控、礦業(yè)生產(chǎn)單位的安全生產(chǎn),小到社區(qū)居民的電表、水表抄表系統(tǒng),因此數(shù)據(jù)采集與通信系統(tǒng)直接關(guān)系到人們生活質(zhì)量的提高。傳統(tǒng)的電表、水表的數(shù)據(jù)采集多采取人工抄表的方式,不僅浪費(fèi)了大量的人力物力,抄表精度也不高;當(dāng)前的卡式預(yù)付費(fèi)表由于要將付費(fèi)額與消費(fèi)量存入IC卡中,作為電表、水表與監(jiān)控中心的通信媒介,安全性有待提高[1];工業(yè)生產(chǎn)中多采用Internet網(wǎng)絡(luò)通信或是RS 485總線來實(shí)現(xiàn)各監(jiān)測點(diǎn)與監(jiān)控中心的數(shù)據(jù)通信,對于采集點(diǎn)分布集中時尚可實(shí)現(xiàn),但是像電力系統(tǒng)變電站等多分布在郊區(qū)且節(jié)點(diǎn)多的系統(tǒng)來說不僅通信線路的鋪設(shè)是一筆巨大的費(fèi)用,受自然環(huán)境的影響也特別大,可靠性得不到保障。
GPRS無線上網(wǎng)技術(shù)的快速發(fā)展給數(shù)據(jù)采集技術(shù)的發(fā)展帶來了新的活力。GPRS(General Packet Radio Service)是當(dāng)前GSM網(wǎng)絡(luò)通信向3G標(biāo)準(zhǔn)的過渡階段,即2.5G標(biāo)準(zhǔn)。GPRS在現(xiàn)有的GSM網(wǎng)絡(luò)的基礎(chǔ)上引入分組交換的功能,支持TCP/IP協(xié)議,可以與Internet直接相通,因此已在消費(fèi)電子中得到了廣泛的應(yīng)用。GPRS理論最高通信速率可達(dá)到171.2 Kb/s,且國內(nèi)外各大通信公司均推出了各自的GPRS通信模塊,穩(wěn)定性好,完全能夠滿足各種數(shù)據(jù)采集系統(tǒng)的需要,因此,GPRS無線通信技術(shù)的應(yīng)用必將給數(shù)據(jù)采集系統(tǒng)的發(fā)展帶來巨大的變化[2]。
1 GPRS通信原理及數(shù)據(jù)采集模塊的整體結(jié)構(gòu)
1.1 GPRS無線通信原理
基于GPRS的無線網(wǎng)絡(luò)通信系統(tǒng)結(jié)構(gòu)如圖1所示,主要由三部分構(gòu)成:位于數(shù)據(jù)采集現(xiàn)場的GPRS數(shù)據(jù)采集模塊、網(wǎng)絡(luò)運(yùn)營商提供GPRS網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器。
數(shù)據(jù)采集模塊位于各個數(shù)據(jù)采集現(xiàn)場,由于移動公司的通信范圍已覆蓋我國的絕大部分地區(qū),各數(shù)據(jù)采集模塊可分散地安裝在各種復(fù)雜的地理環(huán)境中而不必考慮線路鋪設(shè)等復(fù)雜的問題。GPRS網(wǎng)絡(luò)是現(xiàn)場數(shù)據(jù)采集系統(tǒng)與遠(yuǎn)程監(jiān)控中心數(shù)據(jù)交換的橋梁。數(shù)據(jù)采集模塊與測量儀表進(jìn)行數(shù)據(jù)通信,將測量儀表產(chǎn)生的檢測數(shù)據(jù)通過移動基站實(shí)時發(fā)送到GPRS網(wǎng)絡(luò)服務(wù)商所提供的GGSN(Gateway GPRS Support Node)服務(wù)器,GGSN分配給GPRS數(shù)據(jù)采集終端相應(yīng)的IP地址,從而實(shí)現(xiàn)了數(shù)據(jù)采集終端與Internet的連接,再通過Internet網(wǎng)絡(luò)將采集的數(shù)據(jù)發(fā)送到位于監(jiān)控中心的數(shù)據(jù)采集服務(wù)器。GPRS模塊可以是始終在線的,因此位于監(jiān)控中心的工作人員可以實(shí)時了解到終端設(shè)備的工作情況并做出相應(yīng)的工作指示。
1.2 數(shù)據(jù)采集模塊的結(jié)構(gòu)
數(shù)據(jù)采集模塊負(fù)責(zé)檢測儀器與遠(yuǎn)程監(jiān)測終端的無線數(shù)據(jù)傳輸,如圖2所示,模塊以Winbond的高性能單片機(jī)W77E58為控制核心,通過將串口采集到的數(shù)據(jù)經(jīng)初步處理后傳送給GPRS模塊實(shí)現(xiàn)無線網(wǎng)絡(luò)通信。
W77E58是Winbond公司推出的一款快速8051兼容微控制器,它的內(nèi)核經(jīng)過重新設(shè)計(jì),整體運(yùn)行速度要比標(biāo)準(zhǔn)的8051快2.5倍。W77E58具有1 KB的片上外部數(shù)據(jù)存儲器和32 KB的FLASH EPROM,省去了外擴(kuò)SRAM所需的I/O引腳,從而用來擴(kuò)展鍵盤與液晶顯示屏。
W77E58較為突出的特性是它具有兩個增強(qiáng)型全雙工串行口,在數(shù)據(jù)采集模塊中可將一個串口采用RS 232協(xié)議與GPRS模塊進(jìn)行數(shù)據(jù)通信,另外一個串口則采用RS 485協(xié)議接收檢測儀器發(fā)送的數(shù)據(jù)。RS 485是在工業(yè)檢測現(xiàn)場應(yīng)用非常廣泛的現(xiàn)場總線,總線上一臺主機(jī)可以與多達(dá)32臺從機(jī)進(jìn)行通信。在實(shí)際應(yīng)用中可將一臺GPRS數(shù)據(jù)采集模塊與多臺檢測設(shè)備通過RS 485總線相連,提高通信模塊的利用率,這在電表、水表等低成本的檢測儀表無線通信應(yīng)用中十分重要。
GPRS無線通信模塊負(fù)責(zé)整個系統(tǒng)的數(shù)據(jù)收發(fā),GPRS無線網(wǎng)絡(luò)通信需要TCP/IP/PPP協(xié)議支持,當(dāng)前常見的GPRS模塊可分為自帶TCP/IP協(xié)議棧與不帶協(xié)議棧的兩大類,自帶協(xié)議棧的模塊有Simcom的SIM100,使用方便,用戶只需通過AT指令來控制數(shù)據(jù)傳輸就能實(shí)現(xiàn)無線通信,當(dāng)然價格相對較高;而不帶協(xié)議棧的模塊還需用戶自己在單片機(jī)中實(shí)現(xiàn)嵌入式TCP/IP/PPP協(xié)議棧來實(shí)現(xiàn)數(shù)據(jù)傳輸??紤]到模塊的成本與W77E58高性能,這里選用了西門子的MC35i通信模塊。MC35i穩(wěn)定性及性價比都比較高,接口簡單,AT指令完善,支持GPRS CLASS 10[3]。使用時只需自行設(shè)計(jì)外圍電路,包括電源供電、RS 232通信、SIM卡接口電路以及通信天線。該模塊不帶TCP/IP/PPP協(xié)議,需要自己編寫,在單片機(jī)中實(shí)現(xiàn)。
2 TCP/IP/PPP協(xié)議的實(shí)現(xiàn)
通常的Internet網(wǎng)絡(luò)通信只需實(shí)現(xiàn)TCP/IP協(xié)議簇,但是對于無線網(wǎng)絡(luò)的接入還需實(shí)現(xiàn)PPP協(xié)議。TCP/IP/PPP協(xié)議其實(shí)是一系列網(wǎng)絡(luò)通信協(xié)議的集合,為了能在資源有限的單片機(jī)中實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸,只能根據(jù)特定的功能來實(shí)現(xiàn)相應(yīng)的協(xié)議,這包括PPP,IP,ICMP,UDP,TCP等協(xié)議,并在此基礎(chǔ)上構(gòu)建應(yīng)用程序的API接口。
網(wǎng)絡(luò)協(xié)議采用分層結(jié)構(gòu),在GPRS無線通信模塊中采用了5層結(jié)構(gòu)。如圖3所示,位于最底層的是網(wǎng)絡(luò)硬件驅(qū)動程序,也就是GPRS模塊的驅(qū)動,MC35i與GPRS網(wǎng)絡(luò)的連接、斷開以及數(shù)據(jù)通信都是通過一系列的AT指令來實(shí)現(xiàn)。
接下來是數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層控制互聯(lián)網(wǎng)上主機(jī)之間數(shù)據(jù)鏈路的建立,該層實(shí)現(xiàn)了精簡的PPP(Point-to-Point Protocol)點(diǎn)到點(diǎn)協(xié)議。GPRS模塊在撥號后首先要與GPRS網(wǎng)關(guān)進(jìn)行通信鏈路的協(xié)商,即協(xié)商點(diǎn)到點(diǎn)的各種鏈路參數(shù)配置。協(xié)商過程遵守LCP(Link Control Protocol),PAP(Password Authentication Protocol)和IPCP(Internet Protocol Control Protocol)等協(xié)議。其中LCP協(xié)議用于建立、構(gòu)造、測試鏈路連接;PAP協(xié)議用于處理密碼驗(yàn)證部分;IPCP協(xié)議用于設(shè)置網(wǎng)絡(luò)協(xié)議環(huán)境,并分配IP地址。一旦協(xié)商完成,鏈路已經(jīng)創(chuàng)建,IP地址已經(jīng)分配就可以按照協(xié)商的標(biāo)準(zhǔn)進(jìn)行IP報(bào)文的傳輸了。數(shù)據(jù)傳輸完成之后,單片機(jī)會向GGSN發(fā)送LCP的斷開連接報(bào)文,以終止網(wǎng)絡(luò)連接。
GPRS模塊與網(wǎng)絡(luò)服務(wù)器連接成功后便可以進(jìn)行數(shù)據(jù)通信。網(wǎng)際層實(shí)現(xiàn)了ICMP協(xié)議與IP協(xié)議。ICMP協(xié)議是網(wǎng)際控制報(bào)文協(xié)議,負(fù)責(zé)傳遞網(wǎng)絡(luò)狀況信息。IP協(xié)議為TCP/IP協(xié)議中最為核心的協(xié)議,它負(fù)責(zé)數(shù)據(jù)報(bào)路由的選擇,以及將上層協(xié)議傳輸?shù)臄?shù)據(jù)包加上IP報(bào)頭后傳送給下層協(xié)議,并將下層協(xié)議接收到的IP數(shù)據(jù)包剝離包頭檢驗(yàn)信息后接收或是丟棄。
傳輸層實(shí)現(xiàn)了TCP和UDP協(xié)議。UDP是面向數(shù)據(jù)報(bào)的傳輸協(xié)議,不能保證可靠的數(shù)據(jù)交付,但開銷較小發(fā)送數(shù)據(jù)的時延也相對少。如果對可靠性要求高,可以選擇TCP協(xié)議,TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數(shù)據(jù)傳輸,但對系統(tǒng)資源的要求相應(yīng)增加。實(shí)際應(yīng)用時可根據(jù)傳輸數(shù)據(jù)的內(nèi)容來選取傳輸協(xié)議。
為了方便上層程序調(diào)用相關(guān)的協(xié)議進(jìn)行通信,可以建立一個數(shù)據(jù)結(jié)構(gòu),將本地和遠(yuǎn)程的IP地址、端口號以及通信狀態(tài)封裝起來構(gòu)成一個Socket,并提供相應(yīng)的API函數(shù)供應(yīng)用程序調(diào)用,這就是應(yīng)用層接口[4]。
3 MC35i驅(qū)動及AT指令的編寫
3.1 MC35i的開關(guān)機(jī)及初始化
MC35i的開關(guān)機(jī)需要在模塊的ON/OFF引腳上加上脈寬1 s以上的低電平。當(dāng)模塊處于關(guān)機(jī)狀態(tài)檢測到ON/OFF引腳的下降沿并持續(xù)1 s以上的低電平時啟動整個模塊,同理,當(dāng)模塊啟動后檢測到持續(xù)1 s以上的低電平,則延時8 s關(guān)機(jī)。所有的AT指令操作都必須在開機(jī)狀態(tài)下才能執(zhí)行。
開機(jī)后還要對MC35i進(jìn)行初始化來實(shí)現(xiàn)單片機(jī)對模塊的控制:首先要測試模塊串口的連接狀況,通過發(fā)送AT指令,等待模塊的回復(fù),返回OK則連接成功,沒有響應(yīng)則表示模塊連接存在問題;接著還要向模塊發(fā)送ATEO指令來關(guān)閉回顯?;仫@功能主要用于串口調(diào)試,具體應(yīng)用時應(yīng)關(guān)閉該功能,防止回顯字符和返回參數(shù)混合。
3.2 MC35i的AT控制指令
MC35i模塊是采用AT指令集進(jìn)行控制的,采用AT指令集可以實(shí)現(xiàn)模塊參數(shù)的設(shè)置,數(shù)據(jù)的發(fā)送與接收。AT指令集是調(diào)制解調(diào)器通信接口的工業(yè)標(biāo)準(zhǔn),指令由ASCII字符組成,除“A/”、“+++”指令外,所有指令都是以”AT”開頭,以<回車><換行>結(jié)束,絕大多數(shù)指令被執(zhí)行后都有返回參數(shù)。
常見的AT指令有:
設(shè)置通信波特率:使用AT+IPR=19200命令,把波特率設(shè)為19 200 b/s;
設(shè)置接入網(wǎng)關(guān):通過AT+CGD CONT=1,“IP”,“CMNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動夢網(wǎng);
設(shè)置移動終端的類別:通過AT+CGCLASS=“B”設(shè)置移動終端的類別為B類,即同時監(jiān)控多種業(yè)務(wù),但只能運(yùn)行一種業(yè)務(wù),即在同一時間只能使用GPRS上網(wǎng),或者使用GSM的語音通信;
測試GPRS服務(wù)是否開通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,則GPRS連接成功;如果返回ERROR,則意味著GPRS失敗。
中國移動在GPRS與Internet網(wǎng)中間建立了許多的網(wǎng)關(guān)支持節(jié)點(diǎn)(GGSN),以連接GPRS網(wǎng)與外部的Internet網(wǎng)絡(luò)。GPRS模塊可以通過撥“*99***1#”登錄到GGSN上,并通過PPP協(xié)議獲取動態(tài)分配到Internet網(wǎng)的IP地址[5]。
4 使用需注意的問題
由于GPRS網(wǎng)絡(luò)通信是以GSM網(wǎng)絡(luò)為基礎(chǔ),GSM網(wǎng)絡(luò)的語音通信優(yōu)先級較高,當(dāng)GPRS長時間在線但不產(chǎn)生流量時,數(shù)據(jù)業(yè)務(wù)的優(yōu)先級會自動降低,GGSN服務(wù)器則會為了節(jié)省線路帶寬斷開其網(wǎng)絡(luò)連接,此時對于GPRS模塊來說,雖說IP地址還在,但已無法進(jìn)行數(shù)據(jù)傳輸。為了防止這種情況導(dǎo)致網(wǎng)絡(luò)的中斷,可在系統(tǒng)中設(shè)定“心跳”功能,通過單片機(jī)的定時器來實(shí)現(xiàn),每隔一段時間向服務(wù)器發(fā)送一個TCP數(shù)據(jù)包,以保證系統(tǒng)的網(wǎng)絡(luò)連接不斷線?!靶奶鳖l率應(yīng)根據(jù)實(shí)際情況來設(shè)定,頻率不宜過高,以免產(chǎn)生過高的額外流量。
由于GPRS無線網(wǎng)絡(luò)受天氣環(huán)境影響較大,當(dāng)出現(xiàn)雷雨等惡劣天氣或是信息擁塞時可能會發(fā)生數(shù)據(jù)包丟失、掉線等現(xiàn)象。為了防止丟包的現(xiàn)象發(fā)生,可以根據(jù)數(shù)據(jù)的重要性與否采取TCP或是UDP協(xié)議,TCP協(xié)議具有延時重發(fā)功能,對于UDP方式,則必須自行設(shè)計(jì)校驗(yàn)和糾錯規(guī)則。對于受干擾掉線的問題則可定時測試網(wǎng)絡(luò)連通狀況,向遠(yuǎn)程數(shù)據(jù)終端發(fā)送ICMP回顯請求(即ping命令),根據(jù)終端的應(yīng)答情況來判斷網(wǎng)絡(luò)狀況。當(dāng)多次請求未回應(yīng)時即啟動GPRS模塊重新連接[6]。
當(dāng)數(shù)據(jù)采集模塊處于電磁干擾特別強(qiáng)烈的電力變壓器、電力整流器、電力開關(guān)產(chǎn)生的火花等環(huán)境中時,GPRS模塊和SIM卡運(yùn)行時間長了偶爾會出現(xiàn)死機(jī)的現(xiàn)象,因此要對GPRS模塊和SIM卡實(shí)時監(jiān)測。
對GPRS模塊的監(jiān)測:每隔一定的時間對模塊進(jìn)行AT指令測試,如果模塊有返回?cái)?shù)據(jù)則說明模塊運(yùn)行正常,沒有死機(jī);如果沒有返回,則模塊出現(xiàn)問題,此時用單片機(jī)控制關(guān)閉模塊電源,幾秒鐘后再打開電源,重新啟動模塊。
對SIM卡的監(jiān)測:在模塊測試完畢后接著發(fā)送關(guān)于SIM卡的AT指令,如果返回OK則SIM卡工作正常,如果返回ERROR則SIM卡復(fù)位或者死機(jī),此時可用AT指令重新啟動模塊。
5 結(jié) 語
本套數(shù)據(jù)采集模塊采用GPRS方式接入Internet
網(wǎng)絡(luò),不受地點(diǎn)與空間的限制,克服了傳統(tǒng)的電力系統(tǒng)設(shè)備監(jiān)控布線困難或是抄表系統(tǒng)效率低,可靠性差的缺點(diǎn),可廣泛應(yīng)用于電力工礦等生產(chǎn)行業(yè)設(shè)備運(yùn)行監(jiān)控,居民生活區(qū)遠(yuǎn)程抄表系統(tǒng),甚至于各種遠(yuǎn)程家居電器控制系統(tǒng)等小流量高實(shí)時性的通信系統(tǒng)中。隨著3G網(wǎng)絡(luò)通信技術(shù)的成熟與應(yīng)用,無線網(wǎng)絡(luò)通信的速度與可靠性將有變革性的提高,相信隨著新一代通信技術(shù)的發(fā)展,基于無線網(wǎng)絡(luò)的數(shù)據(jù)采集系統(tǒng)將有著更為廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]楊瑞霞.基于GPRS電力無線抄表系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電測與儀表,2007,44(12):30-32.
[2]黃承安,張躍,云懷中.基于GPRS的遠(yuǎn)程儀表監(jiān)控系統(tǒng)[J].電測與儀表,2003,40(8):42-45.
[3]楊永立,張保平.嵌入式系統(tǒng)中GPRS模塊的應(yīng)用方法[J].計(jì)算機(jī)技術(shù)與自動化,2006,25(4):193-196.
[4]秦大興,劉建,鄭喜鳳.基于GPRS模塊MC35i的監(jiān)測系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2007(2):20-22.
[5]杜垚,李波.內(nèi)置TCP/IP協(xié)議的GPRS模塊的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng),2006(10):41-43.
[6]魯涵,齊文新,孫慶虎.GPRS模塊設(shè)計(jì)和應(yīng)用中的若干問題[J].計(jì)算機(jī)與數(shù)字工程,2006(8):26-28.
[7]溫泉,李炳煜,焦毅.基于GPRS的無線數(shù)據(jù)傳輸系統(tǒng)解決方案.現(xiàn)代電子技術(shù),2006,29(23):15-17.
作者簡介 伍連明 男,湖北黃石人,碩士研究生。研究方向?yàn)樘胤N電機(jī)及其控制。
陳世元 男,遼寧省遼陽人,教授。主要從事特種電機(jī)及其控制,電機(jī)的交流繞組理論、電磁場、熱交換和CAD等方面的研究。