|
| 采购元器件好去处--维库电子市场网推荐 |
| 技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
GPRS数传时的出错及判断? |
| 来源:21ic 作者:上善若水 栏目:通信技术 |
| GPRS数传时的出错及判断? 汽车电子“在SIMCOM廉价GPRS模块,在车载终端中高效传输数据之经验(GPS/GYRO)”中提到: “在通讯过程中,一旦超时,即主动断线,重拨,……” 因为实测的机会比较少,所以想问: 1、如何知道GPRS数传超时的呢?是模块有相应的返回值提示,还是在通讯协议中自己约定了握手机制:即:终端上传一个包,服务器返回一个握手信号,以此来实时检测系统的链路状态? 2、在利用GPRS数传时,当自封装了协议的GPRS模块与远端服务器成功建立了数传链路后,就可以在模块与服务器之间进行透明的数传,当上位机关闭对端口的监听时,模块的握手信号得不到回应,模块将返回以下字符串: Ok_Info_SocketClosed OK 指示套接字关闭。但是当GPRS网络信号比较差时,模块的返回值是什么呢? 3、都有哪些情况能造成GPRS数传链路的意外断开? 请大家解答。 |
| 1楼: | >>参与讨论 |
| 作者: wends 于 2006-5-31 22:27:00 发布:
Re: 根据我的经验先来开个头,后面大家补充: 1、在使用TCP协议时,TCP提供握手和超时控制机制,在使用UDP协议时,需要握手和超时控制的话,才需要终端和服务器之间定义一套应答机制,不过一般工程实践中,考虑到系统兼容性,不管是采用TCP协议还是UDP协议,在应用层都定义一套包含应答机制的通信规约; 2、在使用TCP协议时,上位机软件在关闭时,会发起一个拆除TCP连接的请求,GPRS模块能够识别被动断开连接,在使用UDP协议时只能通过定时握手不成功识别。 3、情况比较多,例如在APN使用CMNET时,空闲时间太长,移动会主动断开数据链路,但GPRS还可以在线;服务器负荷过重;现场GPRS信号不稳定;终端软件bug;GPRS电源不可靠等 |
|
| 2楼: | >>参与讨论 |
| 作者: 上善若水 于 2006-6-1 8:09:00 发布:
谢谢wends细致的回答。 还有几个问题: 1、对于自封装了TCP协议的GPRS模块,在发送超时,或者网络断开时,是否会自动返回提示字符串? 2、“应用层都定义一套包含应答机制的通信规约”中,上位机是否需要每接收到终端的一个数据包就返回一个握手包? 3、“在APN使用CMNET时,空闲时间太长,移动会主动断开数据链路,”请问这个时间有多长?我每半小时发送一次心跳包好像没出问题。 |
|
| 3楼: | >>参与讨论 |
| 作者: wends 于 2006-6-1 11:55:00 发布:
Re: 1、跟具体的模块有关,我用过的几种模块都是有提示的 2、如果没有行业规范,可以结合具体应用来做,既要保证可靠,又要控制系统流量 3、这个时间各地不一致,我还没有碰到半小时还能正常通信的地区。我们把GPRS终端发送到服务器的算上行数据的话,一般情况下移动断开数据连接,并不是断开GPRS,这样有上行数据的时候,移动可以重新分配通道给你,但是下行数据没有办法重新分配通道。在我这里测试的情况是,只有下行数据情况下,使用UDP协议时,空闲超过1分钟时GPRS终端就收不到下行数据了;在使用TCP协议时,空闲5分钟左右,移动会给GPRS终端和服务器每端都丢一个TCP连接复位报文。在我的认识中,GPRS终端跟服务器之间的通信是通过移动GGSN所提供的一种动态映射通道来实现的,在使用专用APN时才是用路由的。 |
|
| 4楼: | >>参与讨论 |
| 作者: 上善若水 于 2006-6-1 15:20:00 发布:
wends说得好! 我的问题具体了,我手头用的是WAVECOM Q2406B,我跑了很多地方,周围的GPRS信号出奇的好,一直没法观察断线。该如何人为制造信号差的故障呢?拔天线都不起作用。 大家能否提示一下,这款模块在各种情况造成断线时的返回值各是什么? |
|
|
|
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |