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