AT指令控制上网

转载 2012年03月22日 14:05:43

联通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的时候才会用到。

 

举报

相关文章推荐

WAP上网 AT+CGDCONT=1,"IP","cmwap" 命令详解

通过在modem的高级–额外的初始化命命中加入AT+CGDCONT=1,”IP”,”cmwap”来上wap网。 AT+CGDCONT=1,”IP”,”cmwap” 命令相信很多人都在使用 at...

基于SIM900A-GPRS模块的远程文件传输实例

基于SIM900A-GPRS模块的远程文件传输, 普通模式和透传模式。

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

SIM900AAT指令GPRS部分学习笔记

AT+CIPSHUT    AT+CGCLASS="B" AT+CGDCONT=1,"IP","UNINET" AT+CGATT=1 AT+CIPCSGP=1,...
  • Phashh
  • Phashh
  • 2014-09-23 09:00
  • 2277

GPRS的AT指令解析

玩过GPRS模块的朋友一般都知道常见的模块都是以"\r\n"两个字节为结束符,本人工作以前从事过GRPS项目开发过,当时还是刚毕业不久,对于AT指令集解析老是老大难,当时也没借鉴网上代码,都是自己硬头...

Ubuntu15.10 下配置有人USR-G401t 4G模块上网说明

Ubuntu15.10 下配置有人USR-G401t 4G模块上网

AT 指令控制GSM/GPRS 模块

万分注意: 拿到一个GPRS模块,一般都有一个串口,而且大部分都是母口,电脑上的都是公口。 在没有仔细了解电路的基础上,千万不要以为这样的电路可以直接相连。能相连固然好,当连上以后,电脑上的超级终...

AT指令操作GPRS Modem实现网络传输

GPRS Moderm实现TCP连接的AT指令主要操作步骤:    AT\r    AT+ccid\r //检测是否装有SIM 卡    AT+cgmr\r //检测软件版本,5.0 以...
  • xjbclz
  • xjbclz
  • 2016-07-14 20:47
  • 1130
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)