基于GPRS的遠(yuǎn)程數(shù)據(jù)采集模塊
針對(duì)傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)對(duì)系統(tǒng)構(gòu)建的方便性與數(shù)據(jù)傳輸?shù)目煽啃缘囊?,提出了一種基于移動(dòng)GPRS無線通信的遠(yuǎn)程數(shù)據(jù)采集方案。該方案利用GPRS的Internet接入功能,通過移動(dòng)公司的網(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ū)動(dòng)設(shè)計(jì)。并由此研制出一臺(tái)基于Winbond單片機(jī)與c;PRS模塊的無線數(shù)據(jù)采集系統(tǒng),測(cè)試結(jié)果證明了訪采集模塊的穩(wěn)定性與可靠性。
關(guān)鍵詞:GPRS模塊;數(shù)據(jù)采集;TCP/IP/PPP協(xié)議;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)控中心的通信媒介,安全性有待提高;工業(yè)生產(chǎn)中多采用Internet網(wǎng)絡(luò)通信或是RS 485總線來實(shí)現(xiàn)各監(jiān)測(cè)點(diǎn)與監(jiān)控中心的數(shù)據(jù)通信,對(duì)于采集點(diǎn)分布集中時(shí)尚可實(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,RadioService)是當(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é)議,可以與Inter—net直接相通,因此已在消費(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ā)展帶來巨大的變化。
l 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ù)采集模塊位于各個(gè)數(shù)據(jù)采集現(xiàn)場,由于移動(dòng)公司的通信范圍已覆蓋我國的絕大部分地區(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ù)采集模塊與測(cè)量儀表進(jìn)行數(shù)據(jù)通信,將測(cè)量儀表產(chǎn)生的檢測(cè)數(shù)據(jù)通過移動(dòng)基站實(shí)時(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的連接,再通過In—ternet網(wǎng)絡(luò)將采集的數(shù)據(jù)發(fā)送到位于監(jiān)控中心的數(shù)據(jù)采集服務(wù)器。GPRS模塊可以是始終在線的,因此位于監(jiān)控中心的工作人員可以實(shí)時(shí)了解到終端設(shè)備的工作情況并做出相應(yīng)的工作指示。
1.2 數(shù)據(jù)采集模塊的結(jié)構(gòu)
??? 數(shù)據(jù)采集模塊負(fù)責(zé)檢測(cè)儀器與遠(yuǎn)程監(jiān)測(cè)終端的無線數(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ù)存儲(chǔ)器和32 KB的FLASH EPROM,省去了外擴(kuò)SRAM所需的I/O引腳,從而用來擴(kuò)展鍵盤與液晶顯示屏。
??? W77E58較為突出的特性是它具有兩個(gè)增強(qiáng)型全雙工串行口,在數(shù)據(jù)采集模塊中可將一個(gè)串口采用RS 232協(xié)議與GPRS模塊進(jìn)行數(shù)據(jù)通信,另外一個(gè)串口則采用RS 485協(xié)議接收檢測(cè)儀器發(fā)送的數(shù)據(jù)。RS 485是在工業(yè)檢測(cè)現(xiàn)場應(yīng)用非常廣泛的現(xiàn)場總線,總線上一臺(tái)主機(jī)可以與多達(dá)32臺(tái)從機(jī)進(jìn)行通信。在實(shí)際應(yīng)用中可將一臺(tái)GPRS數(shù)據(jù)采集模塊與多臺(tái)檢測(cè)設(shè)備通過RS 485總線相連,提高通信模塊的利用率,這在電表、水表等低成本的檢測(cè)儀表無線通信應(yīng)用中十分重要。
??? GPRS無線通信模塊負(fù)責(zé)整個(gè)系統(tǒng)的數(shù)據(jù)收發(fā),GPRS無線網(wǎng)絡(luò)通信需要TCP/IP/PPP協(xié)議支持,當(dāng)前常見的GPRS模塊可分為自帶TCP/IP協(xié)議棧與不帶協(xié)議棧的兩大類,自帶協(xié)議棧的模塊有Simcom的SIMl00,使用方便,用戶只需通過AT指令來控制數(shù)據(jù)傳輸就能實(shí)現(xiàn)無線通信,當(dāng)然價(jià)格相對(duì)較高;而不帶協(xié)議棧的模塊還需用戶自己在單片機(jī)中實(shí)現(xiàn)嵌入式TCP/IP/PPP協(xié)議棧來實(shí)現(xiàn)數(shù)據(jù)傳輸??紤]到模塊的成本與W77E58高性能,這里選用了西門子的MC35i通信模塊。MC35i穩(wěn)定性及性價(jià)比都比較高,接口簡單,AT指令完善,支持GPRS CLASS 10。使用時(shí)只需自行設(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é)議簇,但是對(duì)于無線網(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ū)動(dòng)程序,也就是GPRS模塊的驅(qū)動(dòng),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 Protoco1)點(diǎn)到點(diǎn)協(xié)議。GPRS模塊在撥號(hào)后首先要與GPRS網(wǎng)關(guān)進(jìn)行通信鏈路的協(xié)商,即協(xié)商點(diǎn)到點(diǎn)的各種鏈路參數(shù)配置。協(xié)商過程遵守LCP(Link Control Protoco1),PAP(Password Authen—tication Protoco1)和IPCP(Internet Protocol ControlProtoco1)等協(xié)議。其中LCP協(xié)議用于建立、構(gòu)造、測(cè)試鏈路連接;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ī)會(huì)向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é)議。IC—MP協(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ù)的時(shí)延也相對(duì)少。如果對(duì)可靠性要求高,可以選擇TCP協(xié)議,TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數(shù)據(jù)傳輸,但對(duì)系統(tǒng)資源的要求相應(yīng)增加。實(shí)際應(yīng)用時(shí)可根據(jù)傳輸數(shù)據(jù)的內(nèi)容來選取傳輸協(xié)議。
??? 為了方便上層程序調(diào)用相關(guān)的協(xié)議進(jìn)行通信,可以建立一個(gè)數(shù)據(jù)結(jié)構(gòu),將本地和遠(yuǎn)程的IP地址、端口號(hào)以及通信狀態(tài)封裝起來構(gòu)成一個(gè)Socket,并提供相應(yīng)的API函數(shù)供應(yīng)用程序調(diào)用,這就是應(yīng)用層接口。
3 MC35i驅(qū)動(dòng)及AT指令的編寫
3.1 MC35i的開關(guān)機(jī)及初始化
??? MC35i的開關(guān)機(jī)需要在模塊的0N/OFF引腳上加上脈寬1 s以上的低電平。當(dāng)模塊處于關(guān)機(jī)狀態(tài)檢測(cè)到0N/OFF引腳的下降沿并持續(xù)1 s以上的低電平時(shí)啟動(dòng)整個(gè)模塊,同理,當(dāng)模塊啟動(dòng)后檢測(cè)到持續(xù)1 s以上的低電平,則延時(shí)8 s關(guān)機(jī)。所有的AT指令操作都必須在開機(jī)狀態(tài)下才能執(zhí)行。
??? 開機(jī)后還要對(duì)MC35i進(jìn)行初始化來實(shí)現(xiàn)單片機(jī)對(duì)模塊的控制:首先要測(cè)試模塊串口的連接狀況,通過發(fā)送AT指令,等待模塊的回復(fù),返回OK則連接成功,沒有響應(yīng)則表示模塊連接存在問題;接著還要向模塊發(fā)送ATEO指令來關(guān)閉回顯?;仫@功能主要用于串口調(diào)試,具體應(yīng)用時(shí)應(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”?!癈MNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng);
??? 設(shè)置移動(dòng)終端的類別:通過AT+CGCLASS=“B”設(shè)置移動(dòng)終端的類別為B類,即同時(shí)監(jiān)控多種業(yè)務(wù),但只能運(yùn)行一種業(yè)務(wù),即在同一時(shí)間只能使用GPRS上網(wǎng),或者使用GSM的語音通信;
??? 測(cè)試GPRS服務(wù)是否開通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,則GPRS連接成功;如果返回ERROR,則意味著GPRS失敗。中國移動(dòng)在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é)議獲取動(dòng)態(tài)分配到In—ternet網(wǎng)的IP地址。
4 使用需注意的問題
??? 由于GPRS網(wǎng)絡(luò)通信是以GSM網(wǎng)絡(luò)為基礎(chǔ),GSM網(wǎng)絡(luò)的語音通信優(yōu)先級(jí)較高,當(dāng)GPRS長時(shí)間在線但不產(chǎn)生流量時(shí),數(shù)據(jù)業(yè)務(wù)的優(yōu)先級(jí)會(huì)自動(dòng)降低,GGSN服務(wù)器則會(huì)為了節(jié)省線路帶寬斷開其網(wǎng)絡(luò)連接,此時(shí)對(duì)于GPRS模塊來說,雖說IP地址還在,但已無法進(jìn)行數(shù)據(jù)傳輸。為了防止這種情況導(dǎo)致網(wǎng)絡(luò)的中斷,可在系統(tǒng)中設(shè)定“心跳”功能,通過單片機(jī)的定時(shí)器來實(shí)現(xiàn),每隔一段時(shí)間向服務(wù)器發(fā)送一個(gè)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)雷雨等惡劣天氣或是信息擁塞時(shí)可能會(huì)發(fā)生數(shù)據(jù)包丟失、掉線等現(xiàn)象。為了防止丟包的現(xiàn)象發(fā)生,可以根據(jù)數(shù)據(jù)的重要性與否采取TCP或是UDP協(xié)議,TCP協(xié)議具有延時(shí)重發(fā)功能,對(duì)于UDP方式,則必須自行設(shè)計(jì)校驗(yàn)和糾錯(cuò)規(guī)則。對(duì)于受干擾掉線的問題則可定時(shí)測(cè)試網(wǎng)絡(luò)連通狀況,向遠(yuǎn)程數(shù)據(jù)終端發(fā)送ICMP回顯請(qǐng)求(即ping命令),根據(jù)終端的應(yīng)答情況來判斷網(wǎng)絡(luò)狀況。當(dāng)多次請(qǐng)求未回應(yīng)時(shí)即啟動(dòng)GPRS模塊重新連接。
??? 當(dāng)數(shù)據(jù)采集模塊處于電磁干擾特別強(qiáng)烈的電力變壓器、電力整流器、電力開關(guān)產(chǎn)生的火花等環(huán)境中時(shí),GPRS模塊和SIM卡運(yùn)行時(shí)間長了偶爾會(huì)出現(xiàn)死機(jī)的現(xiàn)象,因此要對(duì)GPRS模塊和SIM卡實(shí)時(shí)監(jiān)測(cè)。
??? 對(duì)GPRS模塊的監(jiān)測(cè):每隔一定的時(shí)間對(duì)模塊進(jìn)行AT指令測(cè)試,如果模塊有返回?cái)?shù)據(jù)則說明模塊運(yùn)行正常,沒有死機(jī);如果沒有返回,則模塊出現(xiàn)問題,此時(shí)用單片機(jī)控制關(guān)閉模塊電源,幾秒鐘后再打開電源,重新啟動(dòng)模塊。
??? 對(duì)SIM卡的監(jiān)測(cè):在模塊測(cè)試完畢后接著發(fā)送關(guān)于SIM卡的AT指令,如果返回OK則SIM卡工作正常,如果返回ERROR則SIM卡復(fù)位或者死機(jī),此時(shí)可用AT指令重新啟動(dòng)模塊。
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í)時(shí)性的通信系統(tǒng)中。隨著3G網(wǎng)絡(luò)通信技術(shù)的成熟與應(yīng)用,無線網(wǎng)絡(luò)通信的速度與可靠性將有變革性的提高,相信隨著新一代通信技術(shù)的發(fā)展,基于無線網(wǎng)絡(luò)的數(shù)據(jù)采集系統(tǒng)將有著更為廣闊的應(yīng)用前景。
評(píng)論
查看更多