引 言
随着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开头、<CR><LF>结尾的特定字符串,AT后面紧跟的字母和数字表明AT指令的具体功能。AT指令具有以下特点:
①几乎所有的AT指令(除了“A/”及“+++”两个指令外)都以一个特定的命令前缀开始,以一个命令结束标志符结束。命令前缀一般由AT两个字符组成,命令结束符通常为<CR><LF>。
②每一条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[3-4];单片机分析数据来源,如果合法(包括来源合法和数据结构合法),则驱动执行机构来控制家中电器或反馈电器的状态信息。其系统结构框图如图5所示。
接收执行程序流程如图6所示。
发送数据程序流程可以参考图4。整个系统由于采用了SIMl00模块,大大减小了系统资源的开销,因此可以根据应用的实际要求来构建系统,而不必为实现TCP/IP协议选用性能和价格都更高的微处理器甚至是存储器。软件部分的工作重心主要放在控制部分,以缩短研发周期。
4 总 结
市场上有根多GPRS模块可供选择,有的适用于工业及车载高可靠场合,当然价格也更高;但在一般的工业及车载应用中,如果用户对成本较敏感,则可以选用Simcom公司的SIMl00。其在功能、性能和价格三方面做了很好的折中。尤其是内置了TCP/IP协议,使得软件部分的工作量减小;对于不需要操作系统的简单应用十分适合,可以有效地降低成本,缩短研发周期。