SIM800系列模块GSM/GPRS建立TCP连接到远端服务器过程

from:http://blog.sina.com.cn/s/blog_b315f69b0102wowb.html

SIM800系列模块GSM/GPRS建立TCP连接到远端服务器过程

(2016-12-20 18:25:29)
转载
标签:

it

分类:技术笔记
SIM800模块 是全球领先的M2M模块及解决方案供应商芯讯通无线科技有限公司的一个产品系列,使用AT指令的GSM/GPRS无线通讯模块,就自己的使用过程记录下SIM800C系列模块 建立TCP连接到远端服务器过程,模块基本使用通用异步串口通讯,模块内部TCP/IP应用程序用于GPRS服务。
先对AT命令做一个简单介绍吧:
AT命令以AT开头,一回车符结束。 一个简单命令如:AT回车符, 模块对命令的响应为:回车符、换行符response回车符、换行符
AT命令大致可分为三类: 
1、基本AT命令:AT<><>或者AT&<><>,如:ATE1(打开串口回显),AT&D1(开启DTR低电平切换)。
2、S参数型AT命令:ATS<>=<>,如:ATS0=1(设置模块来电一声自动接起)。
3、扩展型AT命令(四种):
a)、AT+<>=?
用于查看此命令在模块中允许设置的参数范围,如发送命令:AT+CREG=?
正常时响应:+CREG:(0-2)
                 OK
b)、AT+<>?
用于查看此命令在模块中的当前设置值,如发送命令:AT+IPR?
正常时响应:+IPR:0
                 OK
c)、AT+<>=<>
用于设置当前AT命令x的参数值。如发送命令:AT+CMGF=0
正常时 响应:OK
d)、AT+<>
查看模块内部的一些状态值。如发送命令:AT+CSQ
正常时响应:+CSQ:29,0
                 OK

现在利用上述格式的一些命令描述模块建立TCP连接到远端服务器的过程,先介绍模块建立一路链接的过程,建立多路连接时,方法基本相同。 目前SIM800系列模块共支持6路链接。从模块开机到建立TCP链接过程如下:
1、等待模块开机后,向模块 串口 发送“AT”指令,让模块自适应主机串口波特率,设置成功时,返回:OK
2、向模块串口发送“AT+CPIN?”指令,检查SIM状态,SIM正常时,
    返回:+CPIN:READY
      OK
3、向模块串口发送“AT+CSQ”指令,检查网络信号强度,命令发送成功时,
     返回:+CSQ:29,0
       OK
4、 向模块串口发送“AT+CREG” 指令,检查GSM网络注册状态,发送成功时,
    返回:+CREG:0,1
     OK
   其中1代表已注册本网,若为2代表未注册。
5、 向模块串口发送“AT+CGREG” 指令,检查GPRS网络注册状态,发送成功时,
    返回:+CGREG:0,1
     OK
     其中1代表已注册本网,若为2代表未注册。
(若已设置命令“AT+CREG=1”和 “AT+CGREG=1”时,模块在注册GSM和PGRS网络成功或发生变化时,将主动上报其注册状态,如上报结果:+CREG:2或+CGREG:2。其中2表示GSM和GPRS网络未注册
6、(可选命令) 向模块串口发送“AT+CMGF=0” 指令,设置短消息为PDU模式,发送成功时, 返回: OK
7、 (可选命令) 向模块串口发送“AT+CNMI=2,1,0,0,0” 指令,设置新短消息URC上报格式,发送成功时, 返回:+CMTI:“SM”,1
    (此返回结果为收到新短消息,1为此新短消息在存储器中的序号)
8、 向模块串口发送“AT+CGATT=1” 指令,使模块附着GPRS网络,发送成功时, 返回: OK
    (此时模块内部TCP协议栈的状态为:IPIINITIAL)
9、 向模块串口发送“AT+CIPMODE=1” 指令,设置GPRS的TCP/IP透传模式,发送成功时, 返回: OK
   (其中1为透传模式,0为分透传模式,及命令模式)
10、 向模块串口发送“AT+CSTT="CMNET"” 指令,设置APN,发送成功时, 返回: OK
    ( 此时模块内部TCP协议栈的状态为:IP START
11、 向模块串口发送“AT+CIICR” 指令,激活移动场景,建立无线链路,发送成功时, 返回: OK
    ( 此时模块内部TCP协议栈的状态为:IP CONFIG或 IP GPRSACT
12、 向模块串口发送“AT+CIFSR” 指令,获取模块本地IP地址,发送成功时, 返回模块的本地IP地址,如:10,143,166,133
13、 向模块串口发送“AT+CIPSTART=“TCP”,“118.114.247.142”,“40006”” 指令,设置要连接的远端服务器类型,IP地址或域名,端口号。发送成功时,
     返回:CONNECT
       OK
14、若返回 CONNECT值以后,即连接远端服务器成功,并进入透传模式,可随意收发数据了。
一路链接的以上过程如图所示:
SIM800系列模块GSM/GPRS建立TCP连接到远端服务器过程_第1张图片

建立多路链接时:
1、需在10步命令前, 向模块串口发送“AT+CIPMUX=1” 指令,设置多链路模式,发送成功时, 返回: OK
2、第13步命令, 向模块串口发送“AT+CIPSTART=0,“TCP”,“118.114.247.142”,“40006”” 指令,指定在第0路建立TCP链接。发送成功时, 返回:CONNECT   OK
    若 第13步命令为, 向模块串口发送“AT+CIPSTART=1,“UDP”,“118.114.247.142”,“40007”” 指令,指定在第1路建立UDP链接。发送成功时, 返回:CONNECT   OK
3、若要通过第0路链接发送数据,则向模块串口发送“ AT+CIPSEND=0 ”命令。然后就可以随意收发数据了。
多路链接的以上过程如图所示:
SIM800系列模块GSM/GPRS建立TCP连接到远端服务器过程_第2张图片


你可能感兴趣的:(framework,wifi)