联通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 0:disable network registration unsolicited result code ,
1:registered, 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成功,可以发送数据 |
此时为什么还是建立不了TCP连接? |
A:原因是在上次建立连接的时候没有成功,但是整个建立连接的过程就会停止在那里。当你重新附着GPRS网络,想再发起别的连接,就会导致出现连接失败。所以在上次连接失败后一定要用AT+CIPSHUT将失败的连接任务彻底结束。
问题二:激活PDP上下文(AT+CGACT)与连接分离GPRS(AT+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+CGACT和AT+CGDCONT都是不需要做的。这两条命令在做PPP的时候才会用到。