認識和選用常用的幾種 GPRS模塊
我在這里把常見的GPRS模塊分成3種:
(1)GPRS DTU(GPRS數(shù)傳單元,常稱GPRS透傳模塊)
(2)GPRS/GSM modem (這是一種純的GPRS/GSM調(diào)制解調(diào)器,常稱為GPRS貓)
(3) 包含tcp/ip協(xié)議棧的GPRS modem (其將GPRS/GSM modem和tcpip協(xié)議棧封裝在一起,內(nèi)部有cpu,flash,ram,控制單元等硬件,和dtu功能類似)
GPRS DTU的理解及應(yīng)用
GPRS DTU內(nèi)部封裝了完善的TCP/IP等協(xié)議棧,可為無線傳輸傳輸提供透明的TCP/IP通道。主要應(yīng)用于工業(yè)領(lǐng)域,而GPRSmodem通常要完成類似的功能必須借助于PC機的軟件和硬件資源,如CPU、Memory和TCP/IP協(xié)議棧等,所以我們經(jīng)??梢钥吹絇C接一個無線的Modem來連接到外部的數(shù)據(jù)網(wǎng)。
采用了GPRS的微控制器系統(tǒng)可以實現(xiàn)無線數(shù)傳輸領(lǐng)域的復(fù)雜應(yīng)用,在遠程抄表、工業(yè)控制、遙感測、智能交通領(lǐng)域都得到了廣泛的應(yīng)用,下面是一個典型的應(yīng)用:
在使用了RFID技術(shù)的公交領(lǐng)域,非接觸卡得到了普便的應(yīng)用,乘客的刷卡交易數(shù)據(jù)通常都存儲在車載的讀卡機具中,如果采用特定設(shè)備依次對每輛車的數(shù)據(jù)提取是一個非常繁雜的工作,而采用無線傳輸方式的優(yōu)勢顯然是不言而喻的,通過車載無線設(shè)備,可以以靈活的方式將乘客的交易數(shù)據(jù)傳輸?shù)綌?shù)據(jù)中心進行統(tǒng)一處理,此外還可以實現(xiàn)遠程的公交調(diào)度控制以及公交車電子站牌GPRS信息發(fā)布的發(fā)布等等。
當(dāng)然,采用GPRS進行無線傳輸仍然存在一些問題需要更好地解決,比如傳輸?shù)目煽啃詥栴}、傳輸速率等,目前GPRS的理論帶寬是171.2Kbps,實際應(yīng)用帶寬在40Kbps左右。
GPRS無線設(shè)備連接到外部數(shù)據(jù)網(wǎng)兩種方法的比較!
我們使用GPRS無線設(shè)備做數(shù)傳的時候,在連接到外部數(shù)據(jù)網(wǎng)時通常有兩種方法:
( I ).撥號上網(wǎng):常見的如撥ATD *99***#
( II).指定Server的IP地址、Port端口號,使用特定的AT指令來連接到外部的數(shù)據(jù)網(wǎng),也即internet
例如:Simcom的GPRS模塊SIM300C采用的指令為:
AT+CIPSTART ="TCP","211.247.26.252","3030",即可連接具有公網(wǎng)IP地址為211.247.26.252,TCP端口號為3030的Server。
兩種方式各有特點:撥號上網(wǎng)的方式采用的是外部的協(xié)議棧,需要用戶自己來實現(xiàn)PPP、TCP、UDP等協(xié)議棧,而第二種方式則采用模塊自帶的協(xié)議棧,用戶的底層應(yīng)用程序不需要實現(xiàn)上述較為復(fù)雜的協(xié)議棧。所以,早期的GPRS無線模塊多不帶協(xié)議棧,常用第一種方式做數(shù)傳。而自身帶有通訊協(xié)議棧的GPRS模塊多采用第二種方式。
當(dāng)然,二者各有優(yōu)缺點,采用第一種方式,實現(xiàn)起來較為復(fù)雜,但是使用靈活,用戶的數(shù)據(jù)封裝比較靈活,可以適應(yīng)用戶的特殊應(yīng)用。采用第二種方式,由于自身帶有完備的通訊協(xié)議棧,所以用戶實現(xiàn)起來較為簡單,但成本較高,數(shù)據(jù)的封裝格式也較為固定。
GPRS DTU和GPRSMODEM有什么區(qū)別?
GPRSDTU全稱GPRS數(shù)據(jù)終端單元,在軟件設(shè)計上,它封裝了協(xié)議棧內(nèi)容并且具有嵌入式操作系統(tǒng),硬件上可看作是嵌入式PC加無線接入部分的結(jié)合,用于串口數(shù)據(jù)可靠傳輸;
GPRSMODEM是接入GPRS分組網(wǎng)絡(luò)的一個物理通道,它本身不具有操作系統(tǒng),必須依附于計算機(在功能類似與有線MODEM),在計算機操作系統(tǒng)之上才能進行PPP撥號連接,通常是與PC結(jié)合使用,實現(xiàn)撥號上網(wǎng)。
從某種角度來說,GPRS DTU是嵌入式PC與GPRS MODEM的結(jié)合。
GPRSDTU的四個核心功能:
1)內(nèi)部集成TCP/IP協(xié)議棧
GPRS DTU內(nèi)部封裝了PPP撥號協(xié)議以及TCP/IP協(xié)議棧并且具有嵌入式操作系統(tǒng),從硬件上,它可看作是嵌入式PC與無線GPRSMODEM的結(jié)合;它具備GPRS撥號上網(wǎng)以及TCP/IP數(shù)據(jù)通信的功能。
2)提供串口數(shù)據(jù)雙向轉(zhuǎn)換功能
GPRS DTU提供了串行通信接口,包括RS232,RS485,RS422等都屬于常用的串行通信方式,而且GPRSDTU在設(shè)計上大都將串口數(shù)據(jù)設(shè)計成“透明轉(zhuǎn)換”的方式,也就是說GPRSDTU可以將串口上的原始數(shù)據(jù)轉(zhuǎn)換成TCP/IP數(shù)據(jù)包進行傳送,而不需要改變原有的數(shù)據(jù)通信內(nèi)容。因此,GPRSDTU可以和各種使用串口通信的用戶設(shè)備進行連接,而且不需要對用戶設(shè)備作改動。
3)支持自動心跳,保持永久在線
GPRS通信網(wǎng)絡(luò)的優(yōu)點之一就是支持GPRS終端設(shè)備永久在線,因此典型的GPRSDTU在設(shè)計上都支持永久在線功能,這就要求DTU包含了上電自動撥號、采用心跳包保持永久在線(當(dāng)長時間沒有數(shù)據(jù)通信時,移動網(wǎng)關(guān)將斷開DTU與中心的連接,心跳包就是DTU與數(shù)據(jù)中心在連接被斷開之前發(fā)送一個小數(shù)據(jù)包,以保持連接不被斷開)、支持?jǐn)嗑€自動重連、自動重撥號等特點。
4)支持參數(shù)配置,永久保存
GPRSDTU作為一種通信設(shè)備,其應(yīng)用場合十分廣泛。在不同的應(yīng)用中,數(shù)據(jù)中心的IP地址及端口號,串口的波特率等都是不同的。因此,GPRSDTU都應(yīng)支持參數(shù)配置,并且將配置好的參數(shù)保存內(nèi)部的永久存儲器件內(nèi)(一般為FLASH或EEPROM等)。一旦上電,就自動按照設(shè)置好的參數(shù)進行工作。
GPRS DTU的擴展功能:
較為專業(yè)的GPRSDTU還提供一些擴展功能,主要包括:支持?jǐn)?shù)據(jù)中心域名解析、支持遠程參數(shù)配置/遠程固件升級、支持遠程短信/電話喚醒、支持本地串口固件升級、提供短信通道、提供DTU在線/離線電平指示等。這些擴展功能可以增強系統(tǒng)的可靠性,以及方便用戶的使用及維護。
在工作方式上,GPRS DTU于GPRS MODEM的最大區(qū)別就是GPRSDTU內(nèi)部CPU在主動進行控制撥號和處理TCP/IP協(xié)議包.而GPRSMODEM則是被動的,需要外部設(shè)備來進行撥號和進行TCP/IP協(xié)議包處理.
使用時該如何選擇?
如果是要求數(shù)據(jù)長期可靠傳輸, 那么應(yīng)當(dāng)采用GPRSDTU,通過GPRS網(wǎng)絡(luò)平臺,實現(xiàn)與監(jiān)控中心端的數(shù)據(jù)通信。
即便現(xiàn)場是計算機,可以設(shè)置撥號網(wǎng)絡(luò), 但是在無人值守的情況要進行自動傳輸,也建議使用GPRSDTU,因為普通計算機的操作系統(tǒng)(如Windows)的撥號網(wǎng)絡(luò)主要是針對普通用戶的上網(wǎng)業(yè)務(wù)(如瀏覽網(wǎng)頁,收發(fā)Email等)設(shè)計的,而不是針對數(shù)據(jù)可靠收發(fā)應(yīng)用來設(shè)計的.
例如,對于斷線重撥的處理上,Windows操作系統(tǒng)最多是提示網(wǎng)絡(luò)斷線,而并不進行自動重撥.而對于無人值守的應(yīng)用領(lǐng)域,自動重撥應(yīng)該是最基本的要求.而專業(yè)的GPRSDTU在這些方面處理都是非常完善的.
因此,在需要數(shù)據(jù)長期可靠傳輸?shù)念I(lǐng)域,都應(yīng)選擇使用GPRS DTU.如果只是用于無線上網(wǎng),則可以選擇GPRS MODEM.
下面來說說GPRS DTU和帶tcpip協(xié)議棧的gprsmodem的區(qū)別:GPRSDTU上面已經(jīng)說的很清楚了,帶tcpip協(xié)議棧的gprs modem與它的差別在于,它在操作上還和普通的gprsmodem很相似,即:所有對模塊的操作只能用AT命令,尤其是發(fā)送和接收數(shù)據(jù)都要通過專用的AT命令。(注:這一點很不方便,你需要在自己的客戶端編寫讀寫串口設(shè)備的程序,讀寫的實質(zhì)就是想串口讀數(shù)據(jù)和寫如AT命令,不能發(fā)揮帶操作系統(tǒng)嵌入式系統(tǒng)的作用,而且有的時候會有副作用,本文最后說明。所以,建議如果嵌入式系統(tǒng)采用的cpu是單片機的話,因為單片機資源有限建議使用gprsdtu或者帶協(xié)議棧的gprs modem,你要用純gprsmodem的話,將非常麻煩,你自己需要實現(xiàn)tcpip協(xié)議棧,難度很大。如果是使用像嵌入式linux操作系統(tǒng)的嵌入式無線上網(wǎng),可以買個純的gprs/gsmMODEM,成本也低)對于帶tcpip協(xié)議棧的gprs modem它們都有自己的一套專用的tcpipat命令,所有使用它要看對應(yīng)的at命令手冊,在使用前,需要在minicom等類似串口操作工具上測試,模塊的好壞。下面是我的帶tcpip協(xié)議棧的gprsmodem
(huawei gtm900B)在minicom下的測試記錄:
AT+CGDCONT=1,"IP","CMNET"
OK
AT+CSQ
+CSQ: 11,0
上面的測試記錄記錄了兩種IO模式(黑體部分為設(shè)置IO模式的參數(shù)),第二種方式(等號后第一參數(shù)為1):模塊對輸入輸出數(shù)據(jù)進行轉(zhuǎn)換(ascii和十六進制數(shù)進行轉(zhuǎn)化,比如:想發(fā)送0x1A 到對方,需要把0x1A轉(zhuǎn)成2字節(jié):0x31,0x41,也就是可顯字符’1’和’A’。發(fā)送的時候,發(fā)送的為字符串:”1A”,即:AT%IPSEND=”1A”。當(dāng)模塊收到用戶這樣的輸入,在內(nèi)部會把數(shù)據(jù)還原成有效數(shù)據(jù)0x1A。(注:模塊中字符之間的轉(zhuǎn)化是自動的,代碼固化在里面)同樣當(dāng)?shù)忍柡蟮谝粎?shù)為1的時候,模塊收到TCP/UDP連接方的數(shù)據(jù),比如0x1A,會轉(zhuǎn)換成相應(yīng)的字符串"1A"輸出。),這個時候用戶也要對輸入和輸出數(shù)據(jù)進行相應(yīng)轉(zhuǎn)換(用戶在自己客戶端編程實現(xiàn)字符之間的轉(zhuǎn)換,上面一大堆16進制數(shù)就沒有轉(zhuǎn)換的結(jié)果)。
第一種方式(等號后第一參數(shù)為0),不需要對輸入的數(shù)據(jù)進行編碼,但這個時候用戶一定要確保輸入的數(shù)據(jù)為可顯字符且不能為分號(;)、引號("),推薦使用模式1。上面顯示的telnet南京大學(xué)bbs后顯示的結(jié)果,能正確顯示Ascii的字符。
注意:HUAWEIGTM900B可以用我的《GPRS模塊在Linux平臺上ppp撥號上網(wǎng)總結(jié)與心得》中第1和3種方式撥號成功,用第2種方式,可能由于帶tcpip協(xié)議棧的副作用,使得一直出現(xiàn)"LCP:timeout sending Config-Requests" LCP配置報文發(fā)送超時而失敗, 不能成功撥號!
愛華網(wǎng)



