同族专利例子:485半双工延时问题
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 13:46:01
学习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总线电缆固有的特性?
本贴被 yzz163 编辑过,最后修改时间:2008-03-17,00:03:12.
我觉得在半双工状态下 485 帧的收发和 总线的收发状态切换延时问题 对485总线长期稳定的工作有很大影响。彻底搞懂这个问题 对了解误码产生、数据丢失、总线的稳定性、可靠性都有重要意义。
以下来源laoguo 21ic的文章 整理后:
1、每一帧收发停止位(或第9位)的延时问题
在RS-485半双工通讯中,一般以单片机的TI,RI信号作收发切换控制信号,发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能,接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送。因此,必须控制端RE*,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。
从上面的时序图可知:单片机在串行口发送数据时,只要将8位数据位传送完毕,TI标志即建立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这时关闭发送控制,势必造成发送帧数据不完整。
接收数据时也同样如此,单片机在接收完8个数据位后就建立起RI信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。
总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。
注:延时T秒的取值
(1) 传送地址帧时,T>2X(1/波特率),可以选取T=2.5X(1/波特率)。
(2) 传送数据帧时,T>1X(1/波特率),可以选取T=1.5X(1/波特率)。
实际的软件流程:
问题:(【5楼】以解决)
可看到软件流程并没有在 每一帧收发停止位(或第9位)后实现延时,而是在(数据包的)最后一个字节(帧)上延时。这样能保障数据帧的正确(完整性)和稳定性吗?
2、半双工总线收发切换延时问题
为了可靠的工作,在485总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。
问题:
这里的 1ms是如何计算的? 485总线收、发状态切换时需要做适当延时,是指 485芯片的收发切换需要延时还是 485总线电缆固有的特性?
本贴被 yzz163 编辑过,最后修改时间:2008-03-17,00:03:12.
双工 半双工 全双工
什么是全双工??什么是半双工??
全双工 和半双工 是什么 意思??
全双工、半双工是什么意思呀?
怎么区分半双工 全双工
电话是半双工还是全双工?
关于网卡双工的问题?
单工通信,半双工通信,全双工通信
怎样设置网卡的 全双工 半双工 详解
游戏 传奇世界 延时问题
网络延时问题
网络延时的问题
聊天延时问题
魔兽世界游戏延时问题.
N70短信延时问题
fifa06延时问题
请教下网卡全双工的问题!!!
网速和网络延时问题?
网速和网络延时问题?
exchange邮件延时的问题
触摸式延时开关的问题
delphi一个延时的问题
迅雷自动登陆延时问题?
半双工和单全工有什么区