10207|9

256

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

485通信,中间数据丢失问题。 [复制链接]

小弟最近遇到一个问题,主机A与8个从机485通信,但是出现一个问题,主机发送数据的时候,主机的232数据没有问题(232和485同时连接到MCU串口),但是485总线数据数据出现丢失混乱的现象,并且收尾数据都正确,中间出现了问题。最开始以为是485收发使能信号有问题,最终做了一个测试程序,发现最终问题不是这个,问题是程序的分时的时间基准为250US,改为1MS就解决啦,虽然问题找见啦,但是怎样影响的,实质还是没有解决,求大神帮忙。
此帖出自51单片机论坛

最新回复

我的处理方式跟你不太一样,我的是收到数后先放到一个buffer里面。等我 需要的时候再去取数处理,这样就存在溢出的问题了。还有就是波特率较高的话中断也可能处理不过来。你这个应该不存在这个情况。   详情 回复 发表于 2014-9-21 09:55
点赞 关注
 

回复
举报

1万

帖子

140

TA的资源

版主

沙发
 
485总线方向切换后要有个稳定时间,不能立刻发送。该时间取1ms即可。
此帖出自51单片机论坛

点评

但是我做了一个测试程序,只发送数据,发送使能端始终有效,还是会出现中间数据丢失的情况。  详情 回复 发表于 2014-9-17 17:03
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

256

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
chunyang 发表于 2014-9-16 16:09
485总线方向切换后要有个稳定时间,不能立刻发送。该时间取1ms即可。

但是我做了一个测试程序,只发送数据,发送使能端始终有效,还是会出现中间数据丢失的情况。
此帖出自51单片机论坛

点评

如此,检查波特率的精度。  详情 回复 发表于 2014-9-17 21:37
 
 
 

回复

1万

帖子

140

TA的资源

版主

4
 
huzi741 发表于 2014-9-17 17:03
但是我做了一个测试程序,只发送数据,发送使能端始终有效,还是会出现中间数据丢失的情况。

如此,检查波特率的精度。
此帖出自51单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

5
 
还有一个就是协议处理的问题了。我前两天也做485通讯,中间也有短的,情况跟楼主的类似,延时长一些就会好,最终发现是发送过程中缓冲区溢出导致的,协议处理上没有对这个做限制,从而发错了也不知道。
说到485我有一个收发自适应的电路,好像在论坛里贴出来过,感兴趣的话可以看看哦。可以免去控制线
此帖出自51单片机论坛

点评

数据缓冲区溢出,是值得是SBUF吗,我要发送的数据时存储在数组里面的,应该没有溢出,并且发送数据是前一个数据发送完成以后,TI =1 之后再发送的数据。大神能否给个详细的说明,让小弟也多学习学习。  详情 回复 发表于 2014-9-20 17:02
 
 
 

回复

377

帖子

0

TA的资源

纯净的硅(中级)

6
 
程序的分时的时间基准为250US,改为1MS就解决啦

你用的是时间片?
此帖出自51单片机论坛

点评

恩啦对的,把时间片的时间改为1ms就正常啦  详情 回复 发表于 2014-9-20 16:49
 
 
 

回复

256

帖子

0

TA的资源

一粒金砂(中级)

7
 
huayuliang 发表于 2014-9-19 15:27
你用的是时间片?

恩啦对的,把时间片的时间改为1ms就正常啦
此帖出自51单片机论坛
 
 
 

回复

256

帖子

0

TA的资源

一粒金砂(中级)

8
 
jishuaihu 发表于 2014-9-18 23:23
还有一个就是协议处理的问题了。我前两天也做485通讯,中间也有短的,情况跟楼主的类似,延时长一些就会好 ...

数据缓冲区溢出,是值得是SBUF吗,我要发送的数据时存储在数组里面的,应该没有溢出,并且发送数据是前一个数据发送完成以后,TI =1 之后再发送的数据。大神能否给个详细的说明,让小弟也多学习学习。
此帖出自51单片机论坛

点评

我的处理方式跟你不太一样,我的是收到数后先放到一个buffer里面。等我 需要的时候再去取数处理,这样就存在溢出的问题了。还有就是波特率较高的话中断也可能处理不过来。你这个应该不存在这个情况。  详情 回复 发表于 2014-9-21 09:55
 
 
 

回复

377

帖子

0

TA的资源

纯净的硅(中级)

9
 
时间片得根据整个系统的时间开销来找出最小值。不能太小,俺一般都用5ms以上的。
最好是对不同的任务分个优先级。
此帖出自51单片机论坛
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

10
 
huzi741 发表于 2014-9-20 17:02
数据缓冲区溢出,是值得是SBUF吗,我要发送的数据时存储在数组里面的,应该没有溢出,并且发送数据是前一 ...

我的处理方式跟你不太一样,我的是收到数后先放到一个buffer里面。等我 需要的时候再去取数处理,这样就存在溢出的问题了。还有就是波特率较高的话中断也可能处理不过来。你这个应该不存在这个情况。
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表