【RS-485收发切换】使用RS-485要注意的一个问题

单片机]RS-485半双工延时问题 http://www.chinafix.com.cn/thread-137012-1-1.html

 

 

RS485半双工切换为什么要加延时(非尾字不能发的问题)?

http://bbs.21ic.com/icview-317805-1-1.html

 


使用RS-485要注意的一个问题

为了让主机可以比较“从容”地切换到接收状态,从机接收到报文后不应该马上回答,而要至少等待双方约定的一个时间(比如2-5ms),这其实也应当是RS-485通信的一个参数。

使用全双工RS-422就没有这个问题。

有一些RS232到RS485的接口转换器需要用RTS信号来控制发送和接收状态切换,由于PC机很难像单片机那样精确地判断最后一位从移位寄存器发出去了(单片机对有的UART可以用中断,或者笨笨地定时+查询标志等方法),所以经常发生下位机收不好最后一个字节或者上位机收不好第一各字节的情况。有人采取上位机正常报文后面加无用字符(比如0xFF)的办法来凑合。

虽然现在有RS232到RS485的收发自动切换的转接器,但它内部其实是用单稳态触发器来实现的,为了适应不同波特率,切换仍然有一个延迟,波特率较高的时候下位机回答太快仍然有可能第一个字节出错。

所说的20ms只是一个举例,根据波特率等情况当然可以适当改变。但是,正规的RS485规约应该要规定这个帧间空闲间隔的(比如IEC870-5规定是33bit)。

实际通信的实时性主要由轮询的间隔以及超时的处理来决定,附加几毫秒的延时并不很重要。实际使用RS485通信最常遇到倒就是收发切换的问题,要想解决好,一是上位机从发到收的切换要尽量快(尽可能使用UART硬件自动控制RTS、发送完成中断或者精确定时),二是下位机要略位“宽容”一点。

 

 

RS485半双工切换为什么要加延时(非尾字不能发的问题)? [复制链接]   未结帖(20)

lzwujucong 当前离线
最后登录
2012-7-8
在线时间
4小时0分
注册时间
2011-2-21
阅读权限
10
精华
0
积分
6
帖子
2
本月在线
0小时0分
查看详细资料
实习生, 积分 6, 距离下一级还需 44 积分
积分
6
帖子
2
本月在线
0小时0分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:0%

电梯直达
1#
【RS-485收发切换】使用RS-485要注意的一个问题 lzwujucong 发表于 2012-3-19 18:47:30 | 只看该作者 | 倒序浏览 | 返回版面
【RS-485收发切换】使用RS-485要注意的一个问题 0
在网上看到很多即时切换的原理图,这个需要硬件的支持,我现在在试RS485通讯,等待最后一个字发完后,切换成接收,这里必需要有2~5ms的延时时间才正确,按我的理解脚位设置低电频后应该已经退出总线了。这个延时到底是总线上的需要还是哪里的需要?
sxiaoguang 当前离线
最后登录
2012-3-23
在线时间
6小时15分
注册时间
2007-3-22
阅读权限
20
精华
0
积分
890
帖子
281
本月在线
0小时0分
查看详细资料
初级技术员, 积分 890, 距离下一级还需 -790 积分
积分
890
帖子
281
本月在线
0小时0分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:0%

2#
【RS-485收发切换】使用RS-485要注意的一个问题 sxiaoguang 发表于 2012-3-19 20:39:26 | 只看该作者 | 返回版面
检测停止位???

举报

lzwujucong 当前离线
最后登录
2012-7-8
在线时间
4小时0分
注册时间
2011-2-21
阅读权限
10
精华
0
积分
6
帖子
2
本月在线
0小时0分
查看详细资料
实习生, 积分 6, 距离下一级还需 44 积分
积分
6
帖子
2
本月在线
0小时0分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:0%

3#
【RS-485收发切换】使用RS-485要注意的一个问题 lzwujucong 发表于 2012-3-20 13:41:26 | 只看该作者 | 返回版面
可以确定停止位已经发送完成,软件控制收发切换的,必需有个时间延时,实际上测试如果不加切换延时会造成接收都是乱码,弄不明白为什么需要这个延时。

举报

精华达人奖章欢快之小溪七世轮回技术奇才奖章

sjnh 当前离线
最后登录
2013-2-26
在线时间
609小时40分
注册时间
2004-6-21
阅读权限
90
精华
0
积分
2351
帖子
388
本月在线
3小时30分
查看详细资料
初级工程师, 积分 2351, 距离下一级还需 649 积分
积分
2351
帖子
388
本月在线
3小时30分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:100%

4#
【RS-485收发切换】使用RS-485要注意的一个问题 sjnh 发表于 2012-3-21 13:23:47 | 只看该作者 | 返回版面
不用加延时,我一直这样用了10年了,没出现问题
你说的延时是不是这个原因:
如S3C44B0X没有移位完成中断,只有缓冲区空中断,产生中断时,还有一个字节的数据在移位寄存器中正在输出,所以要加延时判断是否完成输出,只有完成最后一个位后才能切换方向
而这个延时时间根据bps能计算出来

举报

永恒之光奖章坚毅之洋流十世金身技术领袖奖章

chunyang 当前离线
最后登录
2013-2-26
在线时间
1905小时10分
注册时间
2002-11-26
阅读权限
150
精华
25
积分
139608
帖子
28442
本月在线
5小时0分
查看个人网站 查看详细资料
积分
139608
帖子
28442
本月在线
5小时0分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:98%

5#
【RS-485收发切换】使用RS-485要注意的一个问题 chunyang 发表于 2012-3-21 23:13:53 | 只看该作者 | 返回版面
最好加延时,因为485内电路切换本身需要时间,总线上的分布电容会延长这一时间,特别是对那些总线没有静态偏置或偏置量不足时的情况。
二姨家最好的广告位招租啦

有技术问题请在论坛里发帖,站内信、QQ、邮件等仅供业务或私人用途使用,不对技术问题单独解答。


欢迎访问 春阳频道

举报

精华达人奖章欢快之小溪七世轮回技术奇才奖章

sjnh 当前离线
最后登录
2013-2-26
在线时间
609小时40分
注册时间
2004-6-21
阅读权限
90
精华
0
积分
2351
帖子
388
本月在线
3小时30分
查看详细资料
初级工程师, 积分 2351, 距离下一级还需 649 积分
积分
2351
帖子
388
本月在线
3小时30分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:100%

6#
【RS-485收发切换】使用RS-485要注意的一个问题 sjnh 发表于 2012-3-22 09:07:24 | 只看该作者 | 返回版面
最好加延时,因为485内电路切换本身需要时间,总线上的分布电容会延长这一时间,特别是对那些总线没有静态偏置或偏置量不足时的情况。
chunyang 发表于 2012-3-21 23:13


你说的延时是接收设备接收完数据然后返回时加延时吧?这个是要加的
不然按你说的切换需要时间,如果再加延时不更慢了

举报

涓涓之细流经常做客技术高手奖章

jeaper 当前离线
最后登录
2013-2-5
在线时间
45小时20分
注册时间
2008-8-29
阅读权限
50
精华
0
积分
338
帖子
108
本月在线
0小时15分
查看详细资料
资深技术员, 积分 338, 距离下一级还需 162 积分
积分
338
帖子
108
本月在线
0小时15分

专家等级: 【RS-485收发切换】使用RS-485要注意的一个问题

结帖率:100%

7#
【RS-485收发切换】使用RS-485要注意的一个问题 jeaper 发表于 2012-3-30 13:03:35 | 只看该作者 | 返回版面
这个延时应该是由发送到接收状态切换时加的。因为485总线默认在接收状态,发送只是在需要的时候进行。

posted on 2022-10-04 01:31  bdy  阅读(465)  评论(0编辑  收藏  举报

导航