AT指令控制上网

联通sim有些GPRS数据测试不了,因为GPRS运营商是移动通信。

At+cstt? 设置专网地址GPRS接入点名称,用户名称,密码

,移动有两个公网:cmwap网页浏览,20/月; cmnet其他数据传输,按流计费(可以打电话询问,一定要有这个功能,才能使用TCP/UDP传输数据)

At+cipstart: 建立TCP/UDP连接,设置IP地址,端口号

At+cipsend: 通过TCP/UDP传输数据

At+cipshut:断开TCP/UDP连接

At+cipclose: 关闭TCP/UDP连接

 

如果使用笔记本电脑模拟两端通信的话,要用两张移动的SIM卡。

方法一:使用笔记本电脑的串口与SIM模块508和测试版连接,一个用USB接口转串口线与另一个SIM模块508和测试版连接;设定其中一个为服务器(server)。另一个为客户端(client)。(使用两个超级终端通信)

方法二:  使用插入移动SIM卡的手机充当调制解调器建立服务器(server)。508模块设置为客户端(client)。(一台计算机,既作服务器,也作客户端)

方法三:使用可以上网的计算机作为服务器(server,模块作为客户端。(两台计算机,一台作客户端,一台作服务器(使用server软件))。

 

命令:

at+csq

+CSQ: 12,0 信号强度弱(31最强)

 

at+creg?

+CREG: 0,1      0disable network registration unsolicited result code

1registered, home network

 

AT+CGATT?

+CGATT: 1      覆盖到GPRS网络,如果返回值是零,则可能是SIM卡内没有钱了或者是覆盖不到GPRS网络。

 

*99#            拨外置modem时用。参照GPRS建立手册

 

Demonstration

Syntax

Expect Result

To establish a GPRS context

Setup modem driver

Setup dial up connection with *99#

Run internet explorer

Should be able to surf the web using Internet explorer

 

At+cipstart : 建立TCP/UDP的连接

首先选择建立连接的种类:TCP/UDP,然后输入外网的IP地址,再输入TCP/UDP的端口号。

For example:

AT+CIPSTART: “TCP”, “10.16.147.39”, “2020”可靠性高,可以回传数据,相对用的广泛

AT+CIPSTART: “UDP”, “10.16.147.39”, “3030”只能单方向传输

 

内网地址:192.168.1.5/192.168.1.8。。。

外网地址:当拨号上网时可以看到详细的信息,

外网地址加上建立连接的UDP/TCP的端口号就相当于可以访问到内网地址的计算机。

使用ADSL后外网地址自动获得每次不一样,可以进入网关网页查询

 

在超级终端里使用:

 

AT+CIPSTART=”TCP”,”221.223.40.34”,”5566”

OK

如果返回的是:

Connect OK , 则表示连接已经顺利建立

如果半天没有反应通常是连接建立不成功。

 

 

TCP/UDP成功建立后

At+cipsend (回车)

123456789 (要发送的数据内容)

Ctrl+z        (发送数据)

 

Send OK

如果建立的是TCP连接,可以在作为server的计算机上看到接收的数据,并且可以向模块发回数据。

 

选择 TCP/UDP的端口号,要与模块的端口号一致。

 

如果建立的是TCP连接,设置好后就可以在 send窗口里向模块发送数据了

 

使用: AT+CIFSR 可以查看模块的内网地址。

 

使用: AT+CIPSHUT 就可以断开连接了,完全断开,使用at+cifsr命令不能查询模块的内网地址。

使用: AT+CIPCLOSE 断开连接,但是使用at+cifsr命令仍旧可以查询模块的内网地址。

 

使用: AT+CIPSERVER 命令可以将一个模块设置成服务器。

如果设置成功,会返回

Server OK

 

使用: AT+CIPPORT?查询当前的TCP/UDP端口号

 

端口号一般5000以上可以随意设置,不要设置1~1000的端口号。(像端口号:80就是默认的HTTP传输模式)

 

如果已经设置为server ,不能够自己给自己发送数据。

 

建立TCP/UDP连接的问题:

设置与GPRS连接

此时不能建立TCP连接

设置后与GPRS分离

GPRD连接状态

建立TCP成功,可以发送数据

a

 


此时为什么还是建立不了TCP连接

问题一:如上图过程,为什么设置与GPRS分离后,不能建立TCP连接后,重新设置与GPRS的连接,仍不能建立TCP的连接?而重启模块后仍旧按直接使用AT+CIPSTART就能建立连接?

A:原因是在上次建立连接的时候没有成功,但是整个建立连接的过程就会停止在那里。当你重新附着GPRS网络,想再发起别的连接,就会导致出现连接失败。所以在上次连接失败后一定要用AT+CIPSHUT将失败的连接任务彻底结束。

 

问题二:激活PDP上下文(AT+CGACT)与连接分离GPRSAT+CGATT)的有什么关联?或是先后关系?

pdf文档中说:a.GPRS连接的状态变为分离态时,任何激活的PDP上下文将自动失效.

                     b.在激活上下文之前,MT必须通过完成自动的GPRS连接来连接GPRS网络

 

A:应用中基础条件就是要附着到GPRS网络,所以GPRS网络连接状态为分离时,PDP上下文就自动失效了。在PPP的时候,要激活上下文,必须保证已经附着到GPRS网络。

 

问题三:建立TCP/UDP连接的时候,按流程直接使用AT+CIPSTART就能建立连接,并发送数据,并已经试验成功。

        需不需要先问讯GPRS连接状态(AT+CGATT?还有激活PDP上下文(AT+CGACT?定义PDP上下文(AT+CGDCONT?

A:建立TCP/UDP的时候,首先要去查AT+CGATT?,是否附着到GPRS网络

如果附着到GPRS网络,那么接着就要确定是否使用模块默认的APN(默认为cmnet,如果不是,那就需要用AT+CSTT来更改APN。需要注意的是,在执行AT+CSTT更改APN的时候,模块将发起一次隐藏的连接任务。所以,在建立下一个连接之前,需要使用AT+CIPSHUT来结束这个任务。你提到的AT+CGACTAT+CGDCONT都是不需要做的。这两条命令在做PPP的时候才会用到。

你可能感兴趣的:(Android开发,移动通信)