基于GPRS的遠(yuǎn)程數(shù)據(jù)采集模塊
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é)議為T(mén)CP/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ù)交付,但開(kāi)銷(xiāo)較小發(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)容來(lái)選取傳輸協(xié)議。
為了方便上層程序調(diào)用相關(guān)的協(xié)議進(jìn)行通信,可以建立一個(gè)數(shù)據(jù)結(jié)構(gòu),將本地和遠(yuǎn)程的IP地址、端口號(hào)以及通信狀態(tài)封裝起來(lái)構(gòu)成一個(gè)Socket,并提供相應(yīng)的API函數(shù)供應(yīng)用程序調(diào)用,這就是應(yīng)用層接口。
3 MC35i驅(qū)動(dòng)及AT指令的編寫(xiě)
3.1 MC35i的開(kāi)關(guān)機(jī)及初始化
MC35i的開(kāi)關(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指令操作都必須在開(kāi)機(jī)狀態(tài)下才能執(zhí)行。
開(kāi)機(jī)后還要對(duì)MC35i進(jìn)行初始化來(lái)實(shí)現(xiàn)單片機(jī)對(duì)模塊的控制:首先要測(cè)試模塊串口的連接狀況,通過(guò)發(fā)送AT指令,等待模塊的回復(fù),返回OK則連接成功,沒(méi)有響應(yīng)則表示模塊連接存在問(wèn)題;接著還要向模塊發(fā)送ATEO指令來(lái)關(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”開(kāi)頭,以回車(chē)>換行>結(jié)束,絕大多數(shù)指令被執(zhí)行后都有返回參數(shù)。
常見(jiàn)的AT指令有:
設(shè)置通信波特率:使用AT+IPR=19200命令,把波特率設(shè)為19 200 b/s;
設(shè)置接入網(wǎng)關(guān):通過(guò)AT+CGD CONT=1,“IP”?!癈MNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng);
設(shè)置移動(dòng)終端的類別:通過(guò)AT+CGCLASS=“B”設(shè)置移動(dòng)終端的類別為B類,即同時(shí)監(jiān)控多種業(yè)務(wù),但只能運(yùn)行一種業(yè)務(wù),即在同一時(shí)間只能使用GPRS上網(wǎng),或者使用GSM的語(yǔ)音通信;
測(cè)試GPRS服務(wù)是否開(kāi)通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,則GPRS連接成功;如果返回ERROR,則意味著GPRS失敗。中國(guó)移動(dòng)在GPRS與Internet網(wǎng)中間建立了許多的網(wǎng)關(guān)支持節(jié)點(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ò)為基礎(chǔ),GSM網(wǎng)絡(luò)的語(yǔ)音通信優(yōu)先級(jí)較高,當(dāng)GPRS長(zhǎng)時(shí)間在線但不產(chǎn)生流量時(shí),數(shù)據(jù)業(yè)務(wù)的優(yōu)先級(jí)會(huì)自動(dòng)降低,GGSN服務(wù)器則會(huì)為了節(jié)省線路帶寬斷開(kāi)其網(wǎng)絡(luò)連接,此時(shí)對(duì)于GPRS模塊來(lái)說(shuō),雖說(shuō)IP地址還在,但已無(wú)法進(jìn)行數(shù)據(jù)傳輸。為了防止這種情況導(dǎo)致網(wǎng)絡(luò)的中斷,可在系統(tǒng)中設(shè)定“心跳”功能,通過(guò)單片機(jī)的定時(shí)器來(lái)實(shí)現(xiàn),每隔一段時(shí)間向服務(wù)器發(fā)送一個(gè)TCP數(shù)據(jù)包,以保證系統(tǒng)的網(wǎng)絡(luò)連接不斷線。“心跳”頻率應(yīng)根據(jù)實(shí)際情況來(lái)設(shè)定,頻率不宜過(guò)高,以免產(chǎn)生過(guò)高的額外流量。
由于GPRS無(wú)線網(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ì)于受干擾掉線的問(wèn)題則可定時(shí)測(cè)試網(wǎng)絡(luò)連通狀況,向遠(yuǎn)程數(shù)據(jù)終端發(fā)送ICMP回顯請(qǐng)求(即ping命令),根據(jù)終端的應(yīng)答情況來(lái)判斷網(wǎng)絡(luò)狀況。當(dāng)多次請(qǐng)求未回應(yīng)時(shí)即啟動(dòng)GPRS模塊重新連接。
當(dāng)數(shù)據(jù)采集模塊處于電磁干擾特別強(qiáng)烈的電力變壓器、電力整流器、電力開(kāi)關(guān)產(chǎn)生的火花等環(huán)境中時(shí),GPRS模塊和SIM卡運(yùn)行時(shí)間長(zhǎng)了偶爾會(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ù)則說(shuō)明模塊運(yùn)行正常,沒(méi)有死機(jī);如果沒(méi)有返回,則模塊出現(xiàn)問(wèn)題,此時(shí)用單片機(jī)控制關(guān)閉模塊電源,幾秒鐘后再打開(kāi)電源,重新啟動(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é) 語(yǔ)
本套數(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ú)線網(wǎng)絡(luò)通信的速度與可靠性將有變革性的提高,相信隨著新一代通信技術(shù)的發(fā)展,基于無(wú)線網(wǎng)絡(luò)的數(shù)據(jù)采集系統(tǒng)將有著更為廣闊的應(yīng)用前景。
評(píng)論