您的位置 首页 汽车

关于RS485接纳发送数据的时序评论

学习485总线时,遇到延时问题,困扰很久。通过学习知道了485半双工收发时必须延时,以保证系统的稳定性、可靠性。好多资料都介绍了485防

学习485总线时,遇到延时问题,困扰好久。经过学习知道了485半双工收发时有必要延时,以确保体系的安稳性、牢靠性。很多材料都介绍了485 防静电、抗干扰电路。只有没提 每一帧收发中止位(或第9位)的延时和 半双工总线收发切换延时 问题。
我觉得在半双工状况下 485 帧的收发和总线的收发状况切换延时问题 对485总线长时刻安稳的作业有很大影响。彻底搞懂这个问题对了解误码产生、数据丢掉、总线的安稳性、牢靠性都有重要意义。

以下来历laoguo 21ic的文章 收拾后:

1、每一帧收发中止位(或第9位)的延时问题
在RS-485半双工通讯中,一般以单片机的TI,RI信号作收发切换操控信号,发送时,检测TI是否树立起来,当TI为高电平后封闭发送功用转为接纳功用,接纳时,检测RI是否树立起来,当RI为高电平后,接纳完毕,又能够转为发送。因而,有必要操控端RE*,DE的信号的有用脉宽应该大于发送或接纳一帧信号的宽度。

1

从上面的时序图可知:单片机在串行口发送数据时,只要将8位数据位传送完毕,TI标志即树立,但此刻应发送的第九位数据位(若发送地址帧时)和中止位没有宣布。如果在这时封闭发送操控,必然形成发送帧数据不完整。
接纳数据时也相同如此,单片机在接纳完8个数据位后就树立起RI信号,但此刻还未接纳到第九位数据位(若接纳地址帧时)和中止位。所以,接纳端有必要延时大于2位数据位的时刻(1位数据位时刻=1/波特率),再作应对,不然会产生总线抵触。
总归,发送和接纳操控信号应该满足宽,以确保完整地接纳一帧数据,恣意两个单机的发送操控信号在时刻上彻底分隔,防止总线争端。

注:延时T秒的取值
(1) 传送地址帧时,T>2X(1/波特率),能够选取T=2.5X(1/波特率)。
(2) 传送数据帧时,T>1X(1/波特率),能够选取T=1.5X(1/波特率)。

实践的软件流程:
1

问题:(【5楼】以处理)
可看到软件流程并没有在每一帧收发中止位(或第9位)后完成延时,而是在(数据包的)最终一个字节(帧)上延时。这样能保证数据帧的正确(完整性)和安稳性吗?

2、半双工总线收发切换延时问题
为了牢靠的作业,在485总线状况切换时需求做恰当延时,再进行数据的收发。详细的做法是在数据发送状况下,先将操控端置“1”,延时1ms左右的时刻,再发送有用的数据,一包数据发送完毕后再延时1ms后,将操控端置“0”。这样的处理会使总线在状况切换时,有一个安稳的作业进程。

问题:
这儿的 1ms是怎么核算的? 485总线收、发状况切换时需求做恰当延时,是指 485芯片的收发切换需求延时仍是 485总线电缆固有的特性?

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/234993.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部