OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4879|回复: 14

关于gprs数据传输问题,用的是TCP协议

[复制链接]

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
发表于 2017-1-4 15:31:15 | 显示全部楼层 |阅读模式
5金钱
     我用SIM900A模块进行GPRS数据传输,从花生壳里获取一个域名。每次传输数据后将模块关机(为了节能),需要传输数据时在进行开机。用的是PIC单片机。
     现在问题:进行五十次传输数据,其中有3~5次数据传输失败。请问可能是什么原因?现在一头雾水,望大神带。需要了解更多状况请回帖。


















最佳答案

查看完整内容[请看2#楼]

你用的什么模式进行传输的?TCP?UDP?FTP?传输失败的原因很多,有些事主观原因,有些是客观原因,但是传输失败后你要有重传机制才可以。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7206
金钱
7206
注册时间
2016-11-30
在线时间
622 小时
发表于 2017-1-4 15:31:16 | 显示全部楼层
你用的什么模式进行传输的?TCP?UDP?FTP?传输失败的原因很多,有些事主观原因,有些是客观原因,但是传输失败后你要有重传机制才可以。
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-6 11:27:48 | 显示全部楼层
用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八十,加了重传机制成功率为百分之九十五左右。其中发送不成功时都是与电脑连接失败。有没有可能会是模块原因?或着程序不完善、花生壳不稳定、网络不稳?
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-6 11:28:19 | 显示全部楼层
lvkanger 发表于 2017-1-6 09:28
你用的什么模式进行传输的?TCP?UDP?FTP?传输失败的原因很多,有些事主观原因,有些是客观原因,但是传 ...

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

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7206
金钱
7206
注册时间
2016-11-30
在线时间
622 小时
发表于 2017-1-6 12:02:34 | 显示全部楼层
和田风 发表于 2017-1-6 11:28
用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八 ...

连接时候多久发送一次数据?如果间隔时间长的话有没有心跳包呢?
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-6 14:31:20 | 显示全部楼层
因为是电池供电,连接成功立即发送数据,发送完数据(一百多个字节)后再关机GSM模块。没有心跳包。需要发送数据时在开机GSM模块。一个星期最多需要发数据十次。
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7206
金钱
7206
注册时间
2016-11-30
在线时间
622 小时
发表于 2017-1-8 20:07:31 | 显示全部楼层
和田风 发表于 2017-1-6 14:31
因为是电池供电,连接成功立即发送数据,发送完数据(一百多个字节)后再关机GSM模块。没有心跳包。需要发 ...

发送完之后肯定有等待上位机的回应,不然你不会有重传机制。按道理讲只要你TCP连接成功了,那么就不会丢数据了。能否分辨出来:是下位机未发送成功or下位机发送成功,上位机没有接收到?
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-9 17:30:44 | 显示全部楼层
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;
       }
       发送数据
}
关闭连接
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7206
金钱
7206
注册时间
2016-11-30
在线时间
622 小时
发表于 2017-1-9 17:57:52 | 显示全部楼层
和田风 发表于 2017-1-9 17:30
可以,我在里面加了代码:如果TCP连接不成功通过无线串口返回“.......”。并且在绝大部分情况下都是TCP ...

下位机建立TCP连接失败的情况我也遇到过,有很多原因会导致这个问题,比如上位机服务器异常,网络信号不好,或者电池电压低,还有SIM卡检测失败。也做了很多工作避免这种情况,但是还是不能完全避免。建议你加上补发机制。就是本次发送不成功,把数据保存起来,等下次发送数据成功后,把存起来的数据也一起发出去!
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-9 22:37:50 来自手机 | 显示全部楼层
好的,谢
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-10 08:28:16 | 显示全部楼层
lvkanger 发表于 2017-1-9 17:57
下位机建立TCP连接失败的情况我也遇到过,有很多原因会导致这个问题,比如上位机服务器异常,网络信号不 ...

谢谢指导。
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7206
金钱
7206
注册时间
2016-11-30
在线时间
622 小时
发表于 2017-1-10 08:50:09 | 显示全部楼层

客气了!
回复

使用道具 举报

13

主题

105

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
16874
金钱
16874
注册时间
2012-10-20
在线时间
48 小时
发表于 2017-1-10 10:41:59 | 显示全部楼层
和田风 发表于 2017-1-6 11:28
用的是TCP传输,传输失败后会断开连接,然后重新连接发送数据,循环3次。之前没有重传机制成功率百分之八 ...

免费的花生壳是存在不稳定的,不是每次都能连到的
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2016-10-15
在线时间
12 小时
 楼主| 发表于 2017-1-11 14:08:37 | 显示全部楼层
乐学 发表于 2017-1-10 10:41
免费的花生壳是存在不稳定的,不是每次都能连到的

谢谢,现在正准备弄付费版的。就等着老总来付钱。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2019-10-23
在线时间
10 小时
发表于 2017-3-27 14:52:19 | 显示全部楼层
你好,在pic单片机调试gprs模块时能激活移动场景,但是不能连接到服务器,可能出现的原因有哪些,,,,能请教下你吗?谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表