OpenEdv-开源电子网

标题: 关于gprs数据传输问题,用的是TCP协议 [打印本页]

作者: 和田风    时间: 2017-1-4 15:31
标题: 关于gprs数据传输问题,用的是TCP协议
     我用SIM900A模块进行GPRS数据传输,从花生壳里获取一个域名。每次传输数据后将模块关机(为了节能),需要传输数据时在进行开机。用的是PIC单片机。
     现在问题:进行五十次传输数据,其中有3~5次数据传输失败。请问可能是什么原因?现在一头雾水,望大神带。需要了解更多状况请回帖。



















作者: lvkanger    时间: 2017-1-4 15:31
你用的什么模式进行传输的?TCP?UDP?FTP?传输失败的原因很多,有些事主观原因,有些是客观原因,但是传输失败后你要有重传机制才可以。
作者: 和田风    时间: 2017-1-6 11:27
用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八十,加了重传机制成功率为百分之九十五左右。其中发送不成功时都是与电脑连接失败。有没有可能会是模块原因?或着程序不完善、花生壳不稳定、网络不稳?
作者: 和田风    时间: 2017-1-6 11:28
lvkanger 发表于 2017-1-6 09:28
你用的什么模式进行传输的?TCP?UDP?FTP?传输失败的原因很多,有些事主观原因,有些是客观原因,但是传 ...

用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八十,加了重传机制成功率为百分之九十五左右。其中发送不成功时都是与电脑连接失败。有没有可能会是模块原因?或着程序不完善、花生壳不稳定、网络不稳?

作者: lvkanger    时间: 2017-1-6 12:02
和田风 发表于 2017-1-6 11:28
用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八 ...

连接时候多久发送一次数据?如果间隔时间长的话有没有心跳包呢?
作者: 和田风    时间: 2017-1-6 14:31
因为是电池供电,连接成功立即发送数据,发送完数据(一百多个字节)后再关机GSM模块。没有心跳包。需要发送数据时在开机GSM模块。一个星期最多需要发数据十次。
作者: lvkanger    时间: 2017-1-8 20:07
和田风 发表于 2017-1-6 14:31
因为是电池供电,连接成功立即发送数据,发送完数据(一百多个字节)后再关机GSM模块。没有心跳包。需要发 ...

发送完之后肯定有等待上位机的回应,不然你不会有重传机制。按道理讲只要你TCP连接成功了,那么就不会丢数据了。能否分辨出来:是下位机未发送成功or下位机发送成功,上位机没有接收到?
作者: 和田风    时间: 2017-1-9 17:30
lvkanger 发表于 2017-1-8 20:07
发送完之后肯定有等待上位机的回应,不然你不会有重传机制。按道理讲只要你TCP连接成功了,那么就不会丢 ...

可以,我在里面加了代码:如果TCP连接不成功通过无线串口返回“.......”。并且在绝大部分情况下都是TCP连接不成功导致。只有一两次是下位机发送成功,但上位机没有收到。
发送大致流程


TCP连接域名
监测当前状态
while(当前没有连接)
{
       TCP连接域名
       监测当前状态
       i++;(一开始是0)
       if(i==1)  break;
}
发送数据
while(没有发送成功(因为是TCP连接,发送成功可认为是电脑已经就接受到数据))
{
       关闭连接
       TCP连接域名
        监测当前状态
        while(当前没有连接)
       {
             TCP连接域名
             监测当前状态
              i++;(一开始是0)
             if(i==1)  break;
       }
       发送数据
}
关闭连接
作者: lvkanger    时间: 2017-1-9 17:57
和田风 发表于 2017-1-9 17:30
可以,我在里面加了代码:如果TCP连接不成功通过无线串口返回“.......”。并且在绝大部分情况下都是TCP ...

下位机建立TCP连接失败的情况我也遇到过,有很多原因会导致这个问题,比如上位机服务器异常,网络信号不好,或者电池电压低,还有SIM卡检测失败。也做了很多工作避免这种情况,但是还是不能完全避免。建议你加上补发机制。就是本次发送不成功,把数据保存起来,等下次发送数据成功后,把存起来的数据也一起发出去!
作者: 和田风    时间: 2017-1-9 22:37
好的,谢
作者: 和田风    时间: 2017-1-10 08:28
lvkanger 发表于 2017-1-9 17:57
下位机建立TCP连接失败的情况我也遇到过,有很多原因会导致这个问题,比如上位机服务器异常,网络信号不 ...

谢谢指导。
作者: lvkanger    时间: 2017-1-10 08:50
和田风 发表于 2017-1-10 08:28
谢谢指导。

客气了!
作者: 乐学    时间: 2017-1-10 10:41
和田风 发表于 2017-1-6 11:28
用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八 ...

免费的花生壳是存在不稳定的,不是每次都能连到的
作者: 和田风    时间: 2017-1-11 14:08
乐学 发表于 2017-1-10 10:41
免费的花生壳是存在不稳定的,不是每次都能连到的

谢谢,现在正准备弄付费版的。就等着老总来付钱。
作者: 一抹    时间: 2017-3-27 14:52
你好,在pic单片机调试gprs模块时能激活移动场景,但是不能连接到服务器,可能出现的原因有哪些,,,,能请教下你吗?谢谢





欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com/) Powered by Discuz! X3.4