用AT命令建立/调试SIM800C的GPRS连接

建立GPRS连接的过程

序号 步骤 AT命令 正常返回 执行后的正常状态 异常处理
1 查询波特率 AT+IPR? +IPR: 0 1 AT+IPR=0 [CR][LF] AT&W //保存自动识别波特率的设置
2 设置固定波特率 2 AT+IPR=rate //rate为当前使用的波特率 OK
3 检查SIM卡是否准备好 AT+CPIN? +CPIN: READY 若返回SIM PIN,则发送AT+CPIN=pin //pin是卡的密码。发送后等待5s
4 检查GSM信号质量 AT+CSQ +CSQ: r,b //r>15 若r<15,检查天线,更换设备位置
5 检查是否注册到GSM AT+CREG? +CREG: n,s // s=1或5 找运营商解决
6 检查是否注册到GPRS AT+CGREG? +CGREG: n,s // s=1或5 找运营商解决
7 检查是否采用GPRS连接 3 AT+CIPCSGP? +CIPCSGP: 1,”CMNET”,”“,”“ AT+CIPCSGP=1,”CMNET”
8 检查是否单IP连接 AT+CIPMUX? +CIPMUX: 0 在关断全部IP连接和GPRS应用后,AT+CIPMUX=0
9 (在IP INITIAL或IP STATUS状态下4,)建立TCP连接 AT+CIPSTART=”TCP”,”xxx.xxx.xxx.xxx”,port OK [CR][LF]CONNECT OK 5 CONNECT OK
10 (在连接状态下)进入发送状态 AT+CIPSEND 发送0x1a或0x1b退出发送状态

获取本机IP

序号 步骤 AT命令 正常返回 执行后的正常状态
1 (在IP INITIAL状态下,)启动任务 AT+CSTT OK IP START
2 (在IP START状态下,)激活GPRS连接 AT+CIICR OK //等待85s IP GPRSACT
3 (在PDP上下文被激活后6,)获取本机地址 AT+CIFSR IP address 7 8

常用调试命令

目的 AT命令 正常返回 执行后的正常状态 异常处理
(在GPRS上下文激活后9,)发出PING请求 AT+CIPPING=xxx.xxx.xxx.xxx 10
查询运营商 AT+COPS? +COPS:m,f,oper //当f=0时, oper=”CHN-UNICOM” 或 “CHINA MOBILE”; 当f=1时, oper=”UNICOM” 或 “CMCC”; 当f=2时, oper=”46001”或”46000”
查询接入点、用户名、口令 AT+CSTT? +CSTT:”CMNET”,name,password
查询PDP上下文 AT+CGDCONT? +CGDCONT:1,”IP”,”CMNET”,”xxx.xxx.xxx.xxx”,0,0 AT+CGDCONT=1,”IP”,”CMNET”
查询是否连接到GPRS 11 AT+CGATT? +CGATT:1 AT+CGATT=1 //等待10s
查询连接状态 AT+CIPSTATUS OK [CR][LF] STATE:state
模块复位 AT+CFUN=1,1 OK 12
关闭GPRS(PDP上下文去激活) AT+CIPSHUT SHUT OK IP INITIAL
关闭TCP连接 AT+CIPCLOSE CLOSE OK IP CLOSED

状态转换方法

当前状态 下一状态 AT命令
CONNECT OK IP CLOSED AT+CIPCLOSE
CONNECT OK IP INITIAL AT+CIPSHUT
IP INITIAL CONNECT OK AT+CIPSTART=
IP INITIAL IP START AT+CSTT
IP START IP GPRSACT AT+CIICR
IP STATUS CONNECT OK AT+CIPSTART=
PDP DEACT IP INITIAL AT+CIPSHUT
X IP INITIAL AT+CFUN=1,1

  1. 保存的波特率设置为自动识别,便于建立开机后的串口通讯。
  2. 设为固定波特率,便于稳定的、可靠的工作。
  3. 如果不是GPRS连接,可能是CSD连接,速率和费用与GPRS相差太多。
  4. 实测在 TCP CLOSED状态下,也可以用此命令建立TCP连接。
  5. 至此,可以接收对方发来的数据了。
  6. PDP上下文激活状态包括:IP GPRSACT, TCP/UDP CONNECTING, CONNECT OK, IP CLOSE. 我把GPRS上下文就理解为PDP上下文。我在IP STATUS 状态下仍然可以执行,why?
  7. 在IP INITIAL状态下,返回 ERROR。但仍然可以用AT+CIPSTART=建立TCP连接。
  8. 如果IP GPRSACT,则转为IP STATUS。否则不影响。
  9. PDP上下文激活状态包括:IP GPRSACT, TCP/UDP CONNECTING, CONNECT OK, IP CLOSE. 我把GPRS上下文就理解为PDP上下文。我在IP STATUS 状态下仍然可以执行,why?
  10. 用–表示读、写命令不影响状态。
  11. 准确地说,是否附着GPRS还是影响连接的。只不过即使写AT+CGATT=0去附着,发送AT+CIPSTART=连接后,用AT+CGATT?查看,又附着了。
  12. 当模块保存的波特率是固定波特率时,启动中有启动成功提示。当模块保存的波特率是自动波特率时,无启动成功提示。

猜你喜欢

转载自blog.csdn.net/aLife2P6/article/details/82704371