GPRSsim800c

gprs数据模式.

教程中使用网络调试工具,构造发送包.   AT+CIPSEND   直接发送,不带数据字节长度.  可以走通.发送完数据后  使用0x1a结束.

                           cipsend之后 error问题,是因为没有发送换行.  0x1a十六进制发送方法: serial.write(0x1a)  而不是serial.print(0x1a,HEX)

arduino程序中,使用AT+CPISEND=245  类似这样的方式,最后不需要0x1A十六进制发送.最终也可以成功.  以POST报文为例实现.


常识整理,转载

GSM07.10:关于多路复用的协议
GSM07.07:GSM的GPRS AT指令集协议
GSM07.05:GSM的短信息和广播服务协议

1心跳功能

1.1 防止掉线。运营商为了防止终端挂在网上不传数据,在一定时间(一般为2分钟)内检测到有终端没有传输数据时,将会把终端踢下线。
1.2实现远程监控,可以知道终端的在线情况。

2、在线时间设置
目前应用中,一般使用40-60秒。

3、工作模式
3.1永远在线。则终端必须通过心跳,来维持,否则会因为(1.1)被踢下线。即需要一定的流量维持DTU在线。
3.2定时收发。1、中心呼叫方式:可以使用电路呼叫(即拨打电话),或者使用短信的方式,激活DTU上线。
                    2、当终端需要发送数据时,DTU建立连接发送数据。

GPRS DTU:相当于MCU+Gprs Modem通过MCU控制Modem实现了,网络的永久在线。也实现了PPP连接,这里一般是MCU
GPRS Modem:一般都是带有TCP/IP协议栈的,但是没有PPP协议即链路层协议。

http://company.mcuol.com/tjfelick/ProductDetail_76614.htm
GTM900c的一些参数,
http://wm.sim.com/product.aspx?id=1007
Simcom900a的一些参数

/*---------------------------------------------------------------------------------------------------------*/
2012-12-12
GPRS(General Package Radio Service),通用分组业务。利用数据分组交换原理。当传送数据时,首先把数据打成一个个包,然后利用某个信道的一个时隙来传送数据。不传送不占信道,所以是按流量收费,而不是按占用信道的时间收费。
GPRS服务类型有CLASS A, CLASS B, CLASS C三种。A可以同时使用网络和电话功能;B在上网东风时候,会将电话功能屏蔽,当有电话进来时会自动奇幻网络;C则是单纯的网络应用,没有电话功能。
GPRS的速度有29种标准(即不同的上传和下载速度的组合),国内常用的是CLASS 8和CLASS 10两种,原理上为“4+1”和“4+2”,即4为下载速度为4倍的通道时槽速度,一条信道的速率为13.4kbps,理论速度为13.4*4=53.6Kbps,1和2是上传的速度,即CLASS 8 为13.4kbps。

GPRS缺点:
1、相对于无线专网成本不低,性价比优势不大;通信协议比专网复杂很多,入门有难度,不如无线专用简单易用。
2、受公网业务开通状况及i型您好覆盖范围的影响较大,能否在某处使用,完全取决于运行商的系统建设情况,不如无线专网灵活。
3、运行费用较高,GPRS按流量计费,通过网络的无用流量也会被计费。
4、实时性差,尤其是节假日系统的负荷,系统及网络阻塞严重,信息不畅,不能及时发送或者收到有用信息,会误事。
5、系统安全性较差,公网的安全性远不如专网。

GPRS可能出现的问题:
1、模块开机连接激战的时间长,要达到40秒左右。
2、天气不好时,连接GPRS时间长,大概要20秒作于,而且模块对命令回复正常,但是很多时候,服务器没有收到连接请求。
3、数据延迟,可能一段时间后,服务器才会收到之前GPRS模块发出的数据。造成模块判断失败。
解决的思路:
1、模块返回OK,说明命令成功到达模块且格式正确,并不表示连接基站收到数据处理了相应的任务。
2、由1,对于命令要判断OK之后的状态信息,对于没有状态信息的命令,就没有办法这样做。
3、应用层的心跳是必须的。用来判断是否还处于连接。

GPRS常见故障:
一、GPRS网络共享硬件故障:
1、信号强度低,措施:使用外置天线,馈线长1.5m。
2、电源功率余量小,措施:使用电流较大的电源,因为GPRS模块不拨号时工作电流为50ma,拨号时持续电流为200-1000ma,在留有余量的情况下,使用2A的电源适配器。
二、GPRS网络共享硬件故障:
1、不能连接,措施:需要重新连接,优势需要多次启动才能解决问题。GPRS网络是在无宽带连接的情况下的备用选择。因为,无线信号,共享服务稳定性,系统网络配置等都会影响其使用的稳定性。

GPRS网络共享白天或深夜一般比较正常。但是在通话高峰时段如(晚7:00-10:00)卡的现象较严重,因为在这些时段,移动基站的容量有限,且话音业务优先分配,当话务量接近饱和时GPRS的物理信道(时隙)分配给话音业务。造成GPRS连接拒绝和数据丢包率,出现掉线。
因为语音和GPRS占用相同的信道(时隙),所以在语音通话时,GPRS必然断开,当结束后要重新连接GPRS。

常用的几个GPRS模块:
1、GPRS DTU(GPRS数传单元,常称GPRS透传模块)
2、GPRS/GSM Modem(纯的GPRS/GSM调制解调器, 常称GPRS猫)
3、带TCP/IP协议栈的GPRS Modem(将Modem和TCP/IP协议栈封装在一起)

GPRS DTU(GPRS数据终端单元)内部封装完整的TCP/IP等协议栈,为无线传输提供透明的TCP/IP通道。
GPRS Modem是接入GPRS分组网络的一个物理通道,需要借助于外部的控制来完成DTU的功能。即DTU是使用Modem+MCU的组合。

DTU的四个核心功能:
1、内部集成TCP/IP协议栈;
2、提供串口数据双向的转换功能;
3、支持自动心跳保持永久在线;
4、支持参数配置,永久保存。

Modem的功能:
带TCP/IP协议栈的Modem在操作上还和普通的Gprs modem很类似,即:对所有的模块的操作时能用AT命令,尤其是发送和结束数据都要通过专用的AT命令。(这里就要自己实现串口的读写程序)
/*----------------------------------------------------------------------------------------------------------*/
2012-12-13
http://bbs.csdn.net/topics/210057079
GPRS 建立连接的过程中的一些注意事项。
http://bbs.csdn.net/topics/210029689
用AT指令操作GPRS模块时的一些概念

现在的理解,
关于AT指令建立了和网络的连接,相当于路由器,
但是和PC端的交互之间的协议
是PPP,
所以这个PPP需要PC端来执行,
同理将控制GPRS模块的MCU看做PC,这里就需要PC实现PPP来操作才可以。

是依靠模块自己建立GPRS网络连接,
还是自己使用PPP协议实现网络连接,

又似乎里边使用AT指令建立的网络连接是模块自己调用PPP完成的。

链路层:
硬件链路层
数据链路层

使用AT指令,这里的网络建立是有模块来维持的,
对于MCU只是收发数据而已。
GTM900C连接流程:
http://bbs.gongkong.com/Details/200906/2009061320384200001-1.shtml
查询SIM:AT%TSIM
 AT+COPS?
查询信号质量:AT+CSQ?
对数据进行转换:AT%IOMODE=1,1,0
注册网关:AT+CGDCONT=1,“IP”,“CMNET”
查询GPRS网络:AT+CGREG?
GPRS初始化:AT%ETCPIP=“user”,“gprs” 注册用户名,密码
          AT%ETCPIP?
设置连接类型,地址,端口:AT%IPOPEN=“TCP”,"222.12.44.49",7002
发送数据:AT%IPSEND=“XXX”
读取数据:AT%IPDR

你可能感兴趣的:(TCP/IP网络应用,arduino)