基于GPRS的遠程數據采集模塊
針對傳統的數據采集系統對系統構建的方便性與數據傳輸的可靠性的要求,提出了一種基于移動GPRS無線通信的遠程數據采集方案。該方案利用GPRS的Internet接入功能,通過移動公司的網絡來實現數據采集模塊與遠程主機之間的無線通信。分析了該數據采集模塊的原理與結構,嵌入式TCP/IP/PPP協議的實現,以及GPRS模塊的驅動設計。并由此研制出一臺基于Winbond單片機與c;PRS模塊的無線數據采集系統,測試結果證明了訪采集模塊的穩定性與可靠性。
關鍵詞:GPRS模塊;數據采集;TCP/IP/PPP協議;MC35i
0 引 言
??? 數據采集與工業生產和國民生活息息相關,大到電力部門各變電站的遠程監控、礦業生產單位的安全生產,小到社區居民的電表、水表抄表系統,因此數據采集與通信系統直接關系到人們生活質量的提高。傳統的電表、水表的數據采集多采取人工抄表的方式,不僅浪費了大量的人力物力,抄表精度也不高;當前的卡式預付費表由于要將付費額與消費量存入IC卡中,作為電表、水表與監控中心的通信媒介,安全性有待提高;工業生產中多采用Internet網絡通信或是RS 485總線來實現各監測點與監控中心的數據通信,對于采集點分布集中時尚可實現,但是像電力系統變電站等多分布在郊區且節點多的系統來說不僅通信線路的鋪設是一筆巨大的費用,受自然環境的影響也特別大,可靠性得不到保障。
??? GPRS無線上網技術的快速發展給數據采集技術的發展帶來了新的活力。GPRS(General Packet,RadioService)是當前GSM網絡通信向3G標準的過渡階段,即2.5G標準。GPRS在現有的GSM網絡的基礎上引入分組交換的功能,支持TCP/IP協議,可以與Inter—net直接相通,因此已在消費電子中得到了廣泛的應用。GPRS理論最高通信速率可達到171.2 Kb/s,且國內外各大通信公司均推出了各自的GPRS通信模塊,穩定性好,完全能夠滿足各種數據采集系統的需要,因此,GPRS無線通信技術的應用必將給數據采集系統的發展帶來巨大的變化。
l GPRS通信原理及數據采集模塊的整體結構
1.1 GPRS無線通信原理
??? 基于GPRS的無線網絡通信系統結構如圖1所示,主要由三部分構成:位于數據采集現場的GPRS數據采集模塊、網絡運營商提供GPRS網絡與遠程服務器。數據采集模塊位于各個數據采集現場,由于移動公司的通信范圍已覆蓋我國的絕大部分地區,各數據采集模塊可分散地安裝在各種復雜的地理環境中而不必考慮線路鋪設等復雜的問題。GPRS網絡是現場數據采集系統與遠程監控中心數據交換的橋梁。數據采集模塊與測量儀表進行數據通信,將測量儀表產生的檢測數據通過移動基站實時發送到GPRS網絡服務商所提供的GGSN(Gateway GPRS Support Node)服務器,GGSN分配給GPRS數據采集終端相應的IP地址,從而實現了數據采集終端與Internet的連接,再通過In—ternet網絡將采集的數據發送到位于監控中心的數據采集服務器。GPRS模塊可以是始終在線的,因此位于監控中心的工作人員可以實時了解到終端設備的工作情況并做出相應的工作指示。
1.2 數據采集模塊的結構
??? 數據采集模塊負責檢測儀器與遠程監測終端的無線數據傳輸,如圖2所示,模塊以Winbond的高性能單片機W77E58為控制核心,通過將串口采集到的數據經初步處理后傳送給GPRS模塊實現無線網絡通信。
W77E58是Winbond公司推出的一款快速8051兼容微控制器,它的內核經過重新設計,整體運行速度要比標準的8051快2.5倍。W77E58具有1 KB的片上外部數據存儲器和32 KB的FLASH EPROM,省去了外擴SRAM所需的I/O引腳,從而用來擴展鍵盤與液晶顯示屏。
??? W77E58較為突出的特性是它具有兩個增強型全雙工串行口,在數據采集模塊中可將一個串口采用RS 232協議與GPRS模塊進行數據通信,另外一個串口則采用RS 485協議接收檢測儀器發送的數據。RS 485是在工業檢測現場應用非常廣泛的現場總線,總線上一臺主機可以與多達32臺從機進行通信。在實際應用中可將一臺GPRS數據采集模塊與多臺檢測設備通過RS 485總線相連,提高通信模塊的利用率,這在電表、水表等低成本的檢測儀表無線通信應用中十分重要。
??? GPRS無線通信模塊負責整個系統的數據收發,GPRS無線網絡通信需要TCP/IP/PPP協議支持,當前常見的GPRS模塊可分為自帶TCP/IP協議棧與不帶協議棧的兩大類,自帶協議棧的模塊有Simcom的SIMl00,使用方便,用戶只需通過AT指令來控制數據傳輸就能實現無線通信,當然價格相對較高;而不帶協議棧的模塊還需用戶自己在單片機中實現嵌入式TCP/IP/PPP協議棧來實現數據傳輸。考慮到模塊的成本與W77E58高性能,這里選用了西門子的MC35i通信模塊。MC35i穩定性及性價比都比較高,接口簡單,AT指令完善,支持GPRS CLASS 10。使用時只需自行設計外圍電路,包括電源供電、RS 232通信、SIM卡接口電路以及通信天線。該模塊不帶TCP/IP/PPP協議,需要自己編寫,在單片機中實現。
2 TCP/IP/PPP協議的實現
??? 通常的Internet網絡通信只需實現TCP/IP協議簇,但是對于無線網絡的接入還需實現PPP協議。TCP/IP/PPP協議其實是一系列網絡通信協議的集合,為了能在資源有限的單片機中實現網絡數據傳輸,只能根據特定的功能來實現相應的協議,這包括PPP,IP,ICMP,UDP,TCP等協議,并在此基礎上構建應用程序的API接口。
??? 網絡協議采用分層結構,在GPRS無線通信模塊中采用了5層結構。如圖3所示,位于最底層的是網絡硬件驅動程序,也就是GPRS模塊的驅動,MC35i與GPRS網絡的連接、斷開以及數據通信都是通過一系列的AT指令來實現。
??? 接下來是數據鏈路層,數據鏈路層控制互聯網上主機之間數據鏈路的建立,該層實現了精簡的PPP(Point—to—Point Protoco1)點到點協議。GPRS模塊在撥號后首先要與GPRS網關進行通信鏈路的協商,即協商點到點的各種鏈路參數配置。協商過程遵守LCP(Link Control Protoco1),PAP(Password Authen—tication Protoco1)和IPCP(Internet Protocol ControlProtoco1)等協議。其中LCP協議用于建立、構造、測試鏈路連接;PAP協議用于處理密碼驗證部分;IPCP協議用于設置網絡協議環境,并分配IP地址。一旦協商完成,鏈路已經創建,IP地址已經分配就可以按照協商的標準進行IP報文的傳輸了。數據傳輸完成之后,單片機會向GGSN發送LCP的斷開連接報文,以終止網絡連接。
?GPRS模塊與網絡服務器連接成功后便可以進行數據通信。網際層實現了ICMP協議與IP協議。IC—MP協議是網際控制報文協議,負責傳遞網絡狀況信息。IP協議為TCP/IP協議中最為核心的協議,它負責數據報路由的選擇,以及將上層協議傳輸的數據包加上IP報頭后傳送給下層協議,并將下層協議接收到的IP數據包剝離包頭檢驗信息后接收或是丟棄。
??? 傳輸層實現了TCP和UDP協議。UDP是面向數據報的傳輸協議,不能保證可靠的數據交付,但開銷較小發送數據的時延也相對少。如果對可靠性要求高,可以選擇TCP協議,TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數據傳輸,但對系統資源的要求相應增加。實際應用時可根據傳輸數據的內容來選取傳輸協議。
??? 為了方便上層程序調用相關的協議進行通信,可以建立一個數據結構,將本地和遠程的IP地址、端口號以及通信狀態封裝起來構成一個Socket,并提供相應的API函數供應用程序調用,這就是應用層接口。
3 MC35i驅動及AT指令的編寫
3.1 MC35i的開關機及初始化
??? MC35i的開關機需要在模塊的0N/OFF引腳上加上脈寬1 s以上的低電平。當模塊處于關機狀態檢測到0N/OFF引腳的下降沿并持續1 s以上的低電平時啟動整個模塊,同理,當模塊啟動后檢測到持續1 s以上的低電平,則延時8 s關機。所有的AT指令操作都必須在開機狀態下才能執行。
??? 開機后還要對MC35i進行初始化來實現單片機對模塊的控制:首先要測試模塊串口的連接狀況,通過發送AT指令,等待模塊的回復,返回OK則連接成功,沒有響應則表示模塊連接存在問題;接著還要向模塊發送ATEO指令來關閉回顯。回顯功能主要用于串口調試,具體應用時應關閉該功能,防止回顯字符和返回參數混合。
3.2 MC35i的AT控制指令
??? MC35i模塊是采用AT指令集進行控制的,采用AT指令集可以實現模塊參數的設置,數據的發送與接收。AT指令集是調制解調器通信接口的工業標準,指令由ASCII字符組成,除“A/”、“+++”指令外,所有指令都是以”AT”開頭,以<回車><換行>結束,絕大多數指令被執行后都有返回參數。
??? 常見的AT指令有:
??? 設置通信波特率:使用AT+IPR=19200命令,把波特率設為19 200 b/s;
??? 設置接入網關:通過AT+CGD CONT=1,“IP”。“CMNET”命令設置GPRS接入網關為移動夢網;
??? 設置移動終端的類別:通過AT+CGCLASS=“B”設置移動終端的類別為B類,即同時監控多種業務,但只能運行一種業務,即在同一時間只能使用GPRS上網,或者使用GSM的語音通信;
??? 測試GPRS服務是否開通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,則GPRS連接成功;如果返回ERROR,則意味著GPRS失敗。中國移動在GPRS與Internet網中間建立了許多的網關支持節點(GGSN),以連接GPRS網與外部的Internet網絡。GPRS模塊可以通過撥“*99***1#”登錄到GGSN上,并通過PPP協議獲取動態分配到In—ternet網的IP地址。
4 使用需注意的問題
??? 由于GPRS網絡通信是以GSM網絡為基礎,GSM網絡的語音通信優先級較高,當GPRS長時間在線但不產生流量時,數據業務的優先級會自動降低,GGSN服務器則會為了節省線路帶寬斷開其網絡連接,此時對于GPRS模塊來說,雖說IP地址還在,但已無法進行數據傳輸。為了防止這種情況導致網絡的中斷,可在系統中設定“心跳”功能,通過單片機的定時器來實現,每隔一段時間向服務器發送一個TCP數據包,以保證系統的網絡連接不斷線。“心跳”頻率應根據實際情況來設定,頻率不宜過高,以免產生過高的額外流量。
??? 由于GPRS無線網絡受天氣環境影響較大,當出現雷雨等惡劣天氣或是信息擁塞時可能會發生數據包丟失、掉線等現象。為了防止丟包的現象發生,可以根據數據的重要性與否采取TCP或是UDP協議,TCP協議具有延時重發功能,對于UDP方式,則必須自行設計校驗和糾錯規則。對于受干擾掉線的問題則可定時測試網絡連通狀況,向遠程數據終端發送ICMP回顯請求(即ping命令),根據終端的應答情況來判斷網絡狀況。當多次請求未回應時即啟動GPRS模塊重新連接。
??? 當數據采集模塊處于電磁干擾特別強烈的電力變壓器、電力整流器、電力開關產生的火花等環境中時,GPRS模塊和SIM卡運行時間長了偶爾會出現死機的現象,因此要對GPRS模塊和SIM卡實時監測。
??? 對GPRS模塊的監測:每隔一定的時間對模塊進行AT指令測試,如果模塊有返回數據則說明模塊運行正常,沒有死機;如果沒有返回,則模塊出現問題,此時用單片機控制關閉模塊電源,幾秒鐘后再打開電源,重新啟動模塊。
??? 對SIM卡的監測:在模塊測試完畢后接著發送關于SIM卡的AT指令,如果返回OK則SIM卡工作正常,如果返回ERROR則SIM卡復位或者死機,此時可用AT指令重新啟動模塊。
5 結 語
??? 本套數據采集模塊采用GPRS方式接入Internet網絡,不受地點與空間的限制,克服了傳統的電力系統設備監控布線困難或是抄表系統效率低,可靠性差的缺點,可廣泛應用于電力工礦等生產行業設備運行監控,居民生活區遠程抄表系統,甚至于各種遠程家居電器控制系統等小流量高實時性的通信系統中。隨著3G網絡通信技術的成熟與應用,無線網絡通信的速度與可靠性將有變革性的提高,相信隨著新一代通信技術的發展,基于無線網絡的數據采集系統將有著更為廣闊的應用前景。
評論
查看更多