基于GPRS的遠程數據采集模塊
GPRS模塊與網(wǎng)絡(luò )服務(wù)器連接成功后便可以進(jìn)行數據通信。網(wǎng)際層實(shí)現了ICMP協(xié)議與IP協(xié)議。IC―MP協(xié)議是網(wǎng)際控制報文協(xié)議,負責傳遞網(wǎng)絡(luò )狀況信息。IP協(xié)議為T(mén)CP/IP協(xié)議中最為核心的協(xié)議,它負責數據報路由的選擇,以及將上層協(xié)議傳輸的數據包加上IP報頭后傳送給下層協(xié)議,并將下層協(xié)議接收到的IP數據包剝離包頭檢驗信息后接收或是丟棄。
傳輸層實(shí)現了TCP和UDP協(xié)議。UDP是面向數據報的傳輸協(xié)議,不能保證可靠的數據交付,但開(kāi)銷(xiāo)較小發(fā)送數據的時(shí)延也相對少。如果對可靠性要求高,可以選擇TCP協(xié)議,TCP為不可靠的IP連接提供可靠的、具有流量控制的、端到端的數據傳輸,但對系統資源的要求相應增加。實(shí)際應用時(shí)可根據傳輸數據的內容來(lái)選取傳輸協(xié)議。
為了方便上層程序調用相關(guān)的協(xié)議進(jìn)行通信,可以建立一個(gè)數據結構,將本地和遠程的IP地址、端口號以及通信狀態(tài)封裝起來(lái)構成一個(gè)Socket,并提供相應的API函數供應用程序調用,這就是應用層接口。
3 MC35i驅動(dòng)及AT指令的編寫(xiě)
3.1 MC35i的開(kāi)關(guān)機及初始化
MC35i的開(kāi)關(guān)機需要在模塊的0N/OFF引腳上加上脈寬1 s以上的低電平。當模塊處于關(guān)機狀態(tài)檢測到0N/OFF引腳的下降沿并持續1 s以上的低電平時(shí)啟動(dòng)整個(gè)模塊,同理,當模塊啟動(dòng)后檢測到持續1 s以上的低電平,則延時(shí)8 s關(guān)機。所有的AT指令操作都必須在開(kāi)機狀態(tài)下才能執行。
開(kāi)機后還要對MC35i進(jìn)行初始化來(lái)實(shí)現單片機對模塊的控制:首先要測試模塊串口的連接狀況,通過(guò)發(fā)送AT指令,等待模塊的回復,返回OK則連接成功,沒(méi)有響應則表示模塊連接存在問(wèn)題;接著(zhù)還要向模塊發(fā)送ATEO指令來(lái)關(guān)閉回顯?;仫@功能主要用于串口調試,具體應用時(shí)應關(guān)閉該功能,防止回顯字符和返回參數混合。
3.2 MC35i的AT控制指令
MC35i模塊是采用AT指令集進(jìn)行控制的,采用AT指令集可以實(shí)現模塊參數的設置,數據的發(fā)送與接收。AT指令集是調制解調器通信接口的工業(yè)標準,指令由ASCII字符組成,除“A/”、“+++”指令外,所有指令都是以”AT”開(kāi)頭,以回車(chē)>換行>結束,絕大多數指令被執行后都有返回參數。
常見(jiàn)的AT指令有:
設置通信波特率:使用AT+IPR=19200命令,把波特率設為19 200 b/s;
設置接入網(wǎng)關(guān):通過(guò)AT+CGD CONT=1,“IP”?!癈MNET”命令設置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng);
設置移動(dòng)終端的類(lèi)別:通過(guò)AT+CGCLASS=“B”設置移動(dòng)終端的類(lèi)別為B類(lèi),即同時(shí)監控多種業(yè)務(wù),但只能運行一種業(yè)務(wù),即在同一時(shí)間只能使用GPRS上網(wǎng),或者使用GSM的語(yǔ)音通信;
測試GPRS服務(wù)是否開(kāi)通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,則GPRS連接成功;如果返回ERROR,則意味著(zhù)GPRS失敗。中國移動(dòng)在GPRS與Internet網(wǎng)中間建立了許多的網(wǎng)關(guān)支持節點(diǎn)(GGSN),以連接GPRS網(wǎng)與外部的Internet網(wǎng)絡(luò )。GPRS模塊可以通過(guò)撥“*99***1#”登錄到GGSN上,并通過(guò)PPP協(xié)議獲取動(dòng)態(tài)分配到In―ternet網(wǎng)的IP地址。
4 使用需注意的問(wèn)題
由于GPRS網(wǎng)絡(luò )通信是以GSM網(wǎng)絡(luò )為基礎,GSM網(wǎng)絡(luò )的語(yǔ)音通信優(yōu)先級較高,當GPRS長(cháng)時(shí)間在線(xiàn)但不產(chǎn)生流量時(shí),數據業(yè)務(wù)的優(yōu)先級會(huì )自動(dòng)降低,GGSN服務(wù)器則會(huì )為了節省線(xiàn)路帶寬斷開(kāi)其網(wǎng)絡(luò )連接,此時(shí)對于GPRS模塊來(lái)說(shuō),雖說(shuō)IP地址還在,但已無(wú)法進(jìn)行數據傳輸。為了防止這種情況導致網(wǎng)絡(luò )的中斷,可在系統中設定“心跳”功能,通過(guò)單片機的定時(shí)器來(lái)實(shí)現,每隔一段時(shí)間向服務(wù)器發(fā)送一個(gè)TCP數據包,以保證系統的網(wǎng)絡(luò )連接不斷線(xiàn)?!靶奶鳖l率應根據實(shí)際情況來(lái)設定,頻率不宜過(guò)高,以免產(chǎn)生過(guò)高的額外流量。
由于GPRS無(wú)線(xiàn)網(wǎng)絡(luò )受天氣環(huán)境影響較大,當出現雷雨等惡劣天氣或是信息擁塞時(shí)可能會(huì )發(fā)生數據包丟失、掉線(xiàn)等現象。為了防止丟包的現象發(fā)生,可以根據數據的重要性與否采取TCP或是UDP協(xié)議,TCP協(xié)議具有延時(shí)重發(fā)功能,對于UDP方式,則必須自行設計校驗和糾錯規則。對于受干擾掉線(xiàn)的問(wèn)題則可定時(shí)測試網(wǎng)絡(luò )連通狀況,向遠程數據終端發(fā)送ICMP回顯請求(即ping命令),根據終端的應答情況來(lái)判斷網(wǎng)絡(luò )狀況。當多次請求未回應時(shí)即啟動(dòng)GPRS模塊重新連接。
當數據采集模塊處于電磁干擾特別強烈的電力變壓器、電力整流器、電力開(kāi)關(guān)產(chǎn)生的火花等環(huán)境中時(shí),GPRS模塊和SIM卡運行時(shí)間長(cháng)了偶爾會(huì )出現死機的現象,因此要對GPRS模塊和SIM卡實(shí)時(shí)監測。
對GPRS模塊的監測:每隔一定的時(shí)間對模塊進(jìn)行AT指令測試,如果模塊有返回數據則說(shuō)明模塊運行正常,沒(méi)有死機;如果沒(méi)有返回,則模塊出現問(wèn)題,此時(shí)用單片機控制關(guān)閉模塊電源,幾秒鐘后再打開(kāi)電源,重新啟動(dòng)模塊。
對SIM卡的監測:在模塊測試完畢后接著(zhù)發(fā)送關(guān)于SIM卡的AT指令,如果返回OK則SIM卡工作正常,如果返回ERROR則SIM卡復位或者死機,此時(shí)可用AT指令重新啟動(dòng)模塊。
5 結 語(yǔ)
本套數據采集模塊采用GPRS方式接入Internet網(wǎng)絡(luò ),不受地點(diǎn)與空間的限制,克服了傳統的電力系統設備監控布線(xiàn)困難或是抄表系統效率低,可靠性差的缺點(diǎn),可廣泛應用于電力工礦等生產(chǎn)行業(yè)設備運行監控,居民生活區遠程抄表系統,甚至于各種遠程家居電器控制系統等小流量高實(shí)時(shí)性的通信系統中。隨著(zhù)3G網(wǎng)絡(luò )通信技術(shù)的成熟與應用,無(wú)線(xiàn)網(wǎng)絡(luò )通信的速度與可靠性將有變革性的提高,相信隨著(zhù)新一代通信技術(shù)的發(fā)展,基于無(wú)線(xiàn)網(wǎng)絡(luò )的數據采集系統將有著(zhù)更為廣闊的應用前景。
評論