你好 世界
全部博文(181)
2016年(181)
分类: LINUX
2016-06-04 16:07:01
原文地址:GPRS模块通过TCP/IP方式发送数据流程 作者:andyluo324324
作者:赵孝强,华清远见嵌入式培训中心讲师。
首先介绍一下GPRS的接入方式,在中国有CMWAP和CMNET两种方式。CMWAP 和 CMNET 只是中国移动人为划分的两个GPRS接入方式。前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在实现方式上并没有任何差别,但因为定位不同,所以和CMNET相比,CMWAP便有了部分限制,资费上也存在差别。
1.开启
at+csq
+CSQ: 30,99
OK
at+cpin?
+CPIN: READY
OK
at+cgreg?
+CGREG: 0,1
OK
//以上是确认当前的网络和模块状态
at+cgdcont=1,"ip","cmnet" //设置APN 无线接入点
OK
at%etcpip="","" //进行ppp拨号
OK
at%etcpip? //检查获得本地IP地址,以及DNS服务器的地址
%ETCPIP:1,"10.213.1.45",,"211.136.20.203","211.136.20.203"
OK
//以下是单连接发送数据,多连接AT命令有不同,请参考手册
AT%IPOPEN="TCP","61.144.177.202",3000
CONNECT
AT%IPSEND="683100310068c90896060000027400000100e416"
%IPSEND:15 //注意:这个返回的buffer序号,每发送一包数据不管大小,都占用一个buffer空间。总计16个。如果返回的buffer 序号在减小,表示当前的网络传送受阻,如果增加表示最前端序号的数据包已发出。数据都堆积在模块的buffer 内。模块会自动重试。
OK
%IPDATA:20,"683100310068C90896060000027400000100E416"
//收到网络的数据。
AT%IPSEND="683100310068c90896060000027400000100e416"
%IPSEND:15
OK
%IPDATA:20,"683100310068C90896060000027400000100E416"
at%ipopen? // 查询链路状态,链路断开时模块会自动返回%IPCLOSE: 1
%IPOPEN:" TCP ",""61.144.177.202",3000,8192,0
OK
2.关闭
at%ipclose=1 //关闭TCP SOCKET连接,返回OK需要7-10s左右,请设计超时等待时注意。
%IPCLOSE: 1
OK
at%ipclose=5 // AT%IPCLOSE=1关闭成功后,才能AT%IPCLOSE=5。
// 否则可能出现TCP连接异常断开,造成中心余留客户端IP地址。
OK