当前位置: 代码迷 >> Wireless >> 怎么利用AT指令访问Internet
  详细解决方案

怎么利用AT指令访问Internet

热度:7089   发布时间:2013-02-26 00:00:00.0
如何利用AT指令访问Internet
/*我现在用的是SIM900模块,上电后利用超级终端依次输入如下AT命令*/ 
输入:AT 
返回:OK 
输入:AT+CCID 
返回:89860**************9432 
返回:OK 
输入:AT+CIPMUX=0 
返回:OK
/*220.181.111.148是百度服务器的IP地址吧,我打算用百度首页做下测试*/ 
输入:AT+CIPSTART="TCP","220.181.111.148",80 
返回:OK 
返回:CONNECT OK 
输入:AT+CIPSEND 
返回:> 
输入:GET /INDEX.HTML /HTTP/1.1 <ctrl+z> 
返回:SEND OK 
/*问题出现了,此时我应该收到服务器发送给我的数据吧,但是我却什么也收不到,之后再向服务器发数据,命令却不让用了*/ 
输入:AT+CIPSEND 
返回:ERROR 
/*我想关闭连接都不行*/ 
输入:AT+CIPCLOSE 
返回:ERROR 
/*请教高手,我要利用AT指令访问百度首页,改如何实现呢?*/

------解决方案--------------------------------------------------------
AT+CIPSEND后应该跟发送内容的长度
------解决方案--------------------------------------------------------
下述指令是测试 SIM 卡各种状态,如果成功,才可连接 GPRS
-----------------------------------------------------------------------------------------
1.
CMD: AT 
REP: OK

2.
CMD: ATE0
REP: OK

3.检查注册状态
CMD: AT+CREG?
REP: 0,5
OK

说明: 0,5 表示 0(参数):禁用网络注册非请求结果码,5(状态码):已注册,漫游-即该 sim 卡可以使用


4.检查信号质量
CMD: AT+CSQ
REP: 25,99
OK

说明: 25,99 表示 25(信号状态):2-30 正常,31 信号最强,0,1 不合法,99 不可 测
99( ber ): 99 表示不可测


5.检查 GPRS 状态
CMD: AT+CGREG?
REP: 0,5
OK

说明: 0(参数): 禁用网络注册非请求结果码+CGREG:
5(状态): 已注册,漫游

6.检查 GPRS GPRS附着和分离
CMD: AT+CGATT?
REP: 1
OK

说明: 1(状态): 说明已经与 GPRS 连接 (0表示没有连接)


连接 GPRS 指令
-----------------------------------------------------------------------------------------
1. 设置数据模式命令( 这个非常关键,要细看,它关系到发送及接收数据的内容及格式及转换)
CMD: AT%IOMODE=1,2,1 (MEEGO: AT%IOMODE=1,1,0
REP: OK

参数: [n]=1 : 模块对输入输出数据进入数据转换
0 : 模块不对输入输出数据进入数据转换

[<link_flag>]=1 : 当前使用单链接AT 命令
2 : 当前使用多链接AT命令

<buffer_flag>=0: 使用接收缓存
1: 不使用接收缓存

2.定义 PDP 上下文定义参数

CMD: AT+CGDCONT=1,"IP","CMNET"
REP: OK

[CID]=1 数值型参数;用于指定PDP上下文标识。该参数对TE-MT接口而言是本地参数,并且可用于其他PDP上下文分组数据协议类型)
[PDPTYPE]="IP" : 仅支持 IP
[APN]="CMNET" : 接入点名称;表示一个字符串参数,用于选择该参数取值为空或省略,则需要请求签. 中国电信,联通(uninte)不同

3.实现PDP激活和TCP/IP的初始

CMD: AT%ETCPIP="USER","GPRS"
REP: OK
[USERNAME]="USER":用户名
[PASSWORD]="GPRS":密码
[CID]=1: 同使用 CGDCONT 的 CID 参数

4.查看本地 IP

CMD: AT%ETCPIP?
REP: 1,"10.64.112.197",,"221.179.38.7","120.196.165.7"
OK
[state]=1 : 1 表示 TCP/IP 初始化完成,0:表示 tcp/ip 初始化失败
[ip]="10.64.112.197"
[gateway]=空
[dns1]="221.179.38.7"
[dns2]="120.196.165.7"

5.用 TCP 连接到网上某台服务器(你要自己架服务器,并且完成一个 TCP SERVER, 用其它人的可能是不行的)

CMD: AT%IPOPENX=3,"TCP","114.92.183.14",5102 (MEEGO: AT%IPOPEN="UDP","114.92.183.14",5102)
REP: CONNECT

参数:[linknum]=3 : 连接号,取1-3
[type]="UDP" UDP 或 TCP
[dest_ip]:="114.92.183.14"
[dest_port]:=5102 端口

6. 发送数据

CMD: AT%IPSENDX=3,"303342023883" (MEEGO:AT%IPSEND="31323334354142" ="12345AB"
REP: OK

参数: [linknum]=3: 连接号,取 1-3
[data]=在%IOMODE=1 包数据不超过 2048 字节, %IOMODE=0 1024 字节

6.1读取数据

CMD: AT%IPDR
REP: ERROR

6.2 查询是否有数据
CMD: AT%IPDQ

7.关闭连接

CMD: AT%IPCLOSE
REP: OK
  相关解决方案