首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > Wireless >

GPRS拨号上网,加分ing.该怎么解决

2012-02-12 
GPRS拨号上网,加分ing....用的TC35模块,用AT指令呼叫拨号atOKAT+CGMR533c09gg.2C2 1752988 062802 17:21OK

GPRS拨号上网,加分ing....
用的TC35模块,用AT指令呼叫拨号

at 
OK 
AT+CGMR  
533c09gg.2C2 1752988 062802 17:21 

OK 
AT+CGCLASS="B"  
OK 
AT+CGDCONT=1,"IP","CMNET"  
OK 
AT+CSQ 
+CSQ: 30,0 

OK 

AT+CGACT=1,1  
OK 
AT+CGREG?  
+CGREG: 0, 5 //查了很多资料说“0,1”为正常 ,但是我呼叫的一致时0,5不知道是什么意思?请教!

OK 

ATD*99# //之后收固定的乱码大约6,7行样子,就NO CARRIER了,呼叫*99***1#结果是一样的

请教下,为什么?怎么才能让GPRS网络连接上不断呢?是不是我的AT指令有问题?


[解决办法]
GPRS模块在Linux平台上ppp拨号上网总结与心得

http://blog.chinaunix.net/u2/76263/showart_1870934.html
[解决办法]
只通过超级终端拨号是不能成功的,因为在你ATD*99#以后,网络会给你发送过来一系列的握手信息,你必须要及时回应网络,否则就会给你发送NO CARRIER了。这些握手动作可以由具体的协议来支持,如果你想拨号并建立连接,那就要自己调用TAPI来编程实现了,比如lineConfigDialogEdit这些函数,或者更上一层的话,调用RAS来建立连接,不知楼主采用的是哪一款操作系统呢?我以上是按CE的方法来说的。
[解决办法]
你这里使用ATD*99#和ATD*99***1#其实在程序中实现是一样的.
出现NO CARRIER的原因是进行PPP协商时,串口这边未给网络端回复PPP协商包。
你可以使用调制解调器创建一个拨号连接来实现拨号上网;
或者可以使用AT命令建立链接,向服务器端发送和接收数据。
[解决办法]
不好意思,我在TC35的AT指令集中没有找到相关的命令.
各模块厂家在这块还是有比较大的差异的。
[解决办法]
TC35I不带TCP/IP协议栈,必须自己写。
拨号指令ATD后,要自己写PPP协议进行握手联网。
PPP协议有3个主要的部分:
1.完成链路建立,配置的数据链路控制协议(LCP)。 
2.用户认证(PAP/CHAP) 
3.为网络层协议族配置不同的网络层协议的网络控制协议(NCP/IPCP)。

获取移动内部网络IP 10.x.x.x后完成PPP协商。这时就可以进行TCP/IP操作了。

具体协议参考RFC文档:RFC1661、RFC1994、RFC1332、TCP-IP详解卷1

[解决办法]
要实现拨号上网,不能用串口敲AT命令的方式实现。
必须用已有软件,或者自写软件,当AT返回连接成功时,立即以符合TCP/IP协议的网络接口来进行通讯。

如果不想用已有软件或自写软件,那么就需要寻找内建TCP/IP协议栈的模块,国内的龙旗、展讯等都有。
[解决办法]
可以参考一下PPP协议.

热点排行