內(nèi)置TCP/IP協(xié)議的GPRS模塊的應用
關鍵詞 GPRS SIM100 AT指令
引 言
隨著GPRS技術在無線通信領域中的發(fā)展,GPRSmodem作為GPRS在Internet上的PC機終端己獲得了越來越廣泛的應用。相應地,在單片機系統(tǒng)中運用GPRSmodem實現(xiàn)Internet接入也開始為人們所重視。GPRS具有永遠在線、快速登錄、按流量計費等優(yōu)勢。如果無線傳輸?shù)膬H僅是低速數(shù)據(jù),則用成本較高的PC機來控制成本過高。目前,大部分使用的都是沒有內(nèi)置TCP/IP協(xié)議的GPRS模塊(如西門子公司的MC35),這就需要在系統(tǒng)中另外加入TCP/IP協(xié)議。一般的做法是自己編寫,或者使用操作系統(tǒng)再加入?yún)f(xié)議。
本文使用的SIMl00是Simcom公司推出的內(nèi)嵌TCP/IP協(xié)議的GPRS模塊。相對于沒有內(nèi)置TCP/IP協(xié)議的模塊,SIMl00使用起來更方便,并且可以縮短開發(fā)周期。
1 SIMl00模塊的接口
SIMl00模塊為用戶提供了功能完備的系統(tǒng)接口,在較短的研發(fā)周期內(nèi),就可以集成自己的應用系統(tǒng)。用戶的工作主要集中在控制系統(tǒng)和人機界面方面。SIMl00模塊與應用系統(tǒng)的連接接口主要提供外部電源、RS-232串口、SIM接口和音頻接口。
1.1 電源接口
SIMl00模塊使用鋰電池、鎳氫電池或者其他外部直流電潭供電,電源電壓為3.3~4.6 V,電源應該具有至少2 A的峰值電流輸出能力。EXT電壓用于保證模塊與外部數(shù)字接口的電平匹配,VAVA則用于給音頻電路提供電源。其電源參考電路如圖1所示。
1.2 串行接口
SIMl00提供標準的RS-232串行接口,用戶可以通過串行口使用AT命令完成對模塊的操作。
在應用設計中,當MCU需要通過串口與模塊進行通信時,可以只用3個引腳:TXD、RXD和GND;但當需要通過模塊上網(wǎng)時,應該盡量使用全部的串口信號引腳,包括DTR、RTS、DCD、CTS、TXD、RXD、RI和GND。其中,RI變化表示有來電呼入,可以連到MCU的中斷引腳或者其他輸入引腳供MCU查詢其狀態(tài)。當模塊與PC通信時需要電平轉換,與PC機類標準串行口的參考接口電路如圖2所示。
1.3 SIM卡接口
模塊支持外部SIM卡,可以直接與3.0V SIM卡或者1.8V SIM仁連接,并自動監(jiān)測和適應SIM卡類型。SIM卡引腳功能如表l所列。
SIM卡連接的參考電路如圖3所示。
另外,SIMl00還提供許多其他接口,用戶可以根據(jù)系統(tǒng)的配置來增加功能,如輸入/輸出接口、網(wǎng)絡指示燈、SPILCD接口、蜂鳴器、音頻通道和鍵盤等。
2 AT指令控制SIMl00接入GPRS
2.1 AT指令簡介
AT指令集一般指專門用來控制調(diào)制解調(diào)器的指令集。該指令集最初由美國Hayes公司推出,專門用于數(shù)據(jù)傳輸通信領域,目前己成為全球通用的標準,任何與Hayes兼容的調(diào)制解調(diào)器都可使用這些指令。
AT指令是以AT開頭、<CR><LF>結尾的特定字符串,AT后面緊跟的字母和數(shù)字表明AT指令的具體功能。AT指令具有以下特點:
①幾乎所有的AT指令(除了“A/”及“+++”兩個指令外)都以一個特定的命令前綴開始,以一個命令結束標志符結束。命令前綴一般由AT兩個字符組成,命令結束符通常為<CR><LF>。
②每一條AT指令執(zhí)行完后,調(diào)制解調(diào)器都會返回一個結果,以對接收到的命令作出應答。
指令集分成標準AT指令集(Standard V.25ter ATCommands)、AT增強指令集(AT Commands for En-hanced Functions)和傳真指令集(AT Commands forFAX)等。根據(jù)具體的產(chǎn)品,不同的廠商還會設計特殊的指令集供設置使用,例如奉系統(tǒng)中使用的無線GSM模塊,根據(jù)ETSI-GSM07.07和ETSI-GSM07.05協(xié)議,給調(diào)制解調(diào)器增加了一些擴充指令。
2.2 建立GPRS連接
在本系統(tǒng)中,需要利用TCP/UDP協(xié)議來完成GPRS業(yè)務數(shù)據(jù)的裝幀和拆幀。SIMl00 GSM/GPRS模塊內(nèi)置TCP/UDP協(xié)議,微處理器向該模塊直接發(fā)送AT指令可建立TCP/IP連接實現(xiàn)數(shù)據(jù)傳輸。下面是模塊的一些初始設置。
①置通信波特率??梢允褂谩癆T+IPR=115200”命令,把波特率設為115 200 bps或者其他速率。SIMCOM模塊默認為ll5200 bps。
②置接入網(wǎng)關。通過“AT+CGDCONT=1”、“IP”、“CMNET”命令,設置GPRS接入網(wǎng)關為移動夢網(wǎng)。
③設置移動終端的類別。通過AT+CGCLASS=“B”設置移動終端的類別為B類,即同時監(jiān)控多種業(yè)務,但只能運行一種業(yè)務。也就是說,在同一時間只能使用GPRS上網(wǎng),或者使用GSM的語音通信。
④測試GPRS服務是否開通。使用“AT+CGACT=1,1”命令激活GPRS功能。如果返回OK,則表示GPRS連接成功;如果返回ERROR,則意味著GPRS失敗,應檢查一下SIM卡的GPRS業(yè)務是否已開通,GPRS模塊天線是否安裝正確等問題。
2.3 TCP/UDP連接舉例
(1)通過TCP的連接
發(fā)送數(shù)據(jù)程序流程如圖4所示。
3 SIMlD0的典型應用
SIMl00模塊可以應用于很多的遠程監(jiān)控系統(tǒng)中,下面的例子是其在遠程家居電器控制中的應用。
此系統(tǒng)的控制思路是客戶機通過SIMl00接收來自Internet的控制數(shù)據(jù),通過串口傳送給AT89C5[3-4];單片機分析數(shù)據(jù)來源,如果合法(包括來源合法和數(shù)據(jù)結構合法),則驅動執(zhí)行機構來控制家中電器或反饋電器的狀態(tài)信息。其系統(tǒng)結構框圖如圖5所示。
接收執(zhí)行程序流程如圖6所示。
發(fā)送數(shù)據(jù)程序流程可以參考圖4。整個系統(tǒng)由于采用了SIMl00模塊,大大減小了系統(tǒng)資源的開銷,因此可以根據(jù)應用的實際要求來構建系統(tǒng),而不必為實現(xiàn)TCP/IP協(xié)議選用性能和價格都更高的微處理器甚至是存儲器。軟件部分的工作重心主要放在控制部分,以縮短研發(fā)周期。
4 總 結
市場上有根多GPRS模塊可供選擇,有的適用于工業(yè)及車載高可靠場合,當然價格也更高;但在一般的工業(yè)及車載應用中,如果用戶對成本較敏感,則可以選用Simcom公司的SIMl00。其在功能、性能和價格三方面做了很好的折中。尤其是內(nèi)置了TCP/IP協(xié)議,使得軟件部分的工作量減??;對于不需要操作系統(tǒng)的簡單應用十分適合,可以有效地降低成本,縮短研發(fā)周期。