位置:51电子网 » 技术资料 » 接口电路

RS-485总线的死锁检测与解除

发布时间:2008/5/27 0:00:00 访问次数:1428

        作者:(广州)增城市电力局

     黄沛芳 来源:《单片机与嵌入式系统应用》

     摘要:针对rs-485接口收发电路的特点,讨论rs-485总线在polling和csma/cd通信方式中死锁检测和解除死锁的方法。该方法同样适用于rs-422接口。

    

    

     关键词:rs-485接口

     死锁检测 死锁解除

     rs-485总线传送距离远、速度快、抗干扰能力强,是工业现场广泛应用的数字通信标准。rs-485总线是一种半双工通信标准,支持总线方式多点互连,使其成为集散控制系统和现场总线控制系统中采用最多的通信和组网方法。采用rs-485总线连接的多个站点,任一时刻只能有一个站点在“说”,其它站点只能处于“听”状态。如果有多个1个的站点在“说”,数据将在通信总线上碰撞,结果是处于接收状态的站点不能收到正确的数据。在rs-485总线通信网中,必须控制好每个站点的“听、说”状态,即收发状态,以保证能及时、正确地传输数据。

     图1是最常见的rs-485接口。在rs-485总线通信系统中,挂在总线上的收发电路一般大于2个。使用图1所示接收电路,如果系统中的某一个站点死机或出了问题,可能使单片机的p1.0口恒为“1”。其发送器将长期占用通信总线,产生称为rs-485总线“死锁”的状态,其它所有站点的均无法使用通信总线进行通信,这将导致整个通信系统崩溃。为了说明方便,把rs-485总线a线对地电压为称为va,b线对地电压为称为vb;va>vb时的死锁称为“1”死锁,va<vb时的死锁称为“0”死锁。如果2个站点失控,其中一个是“1”死锁,另一个是“0”死锁,而系统无法及时解除该死锁状态,不但各站点间无法正常通信而且会烧坏锁站点的rs-485接口芯片,引发更大的故障。

     在rs-485总线通信系统中,通常设有个功能强、工作可靠的站点作为主站,其它的作为子站。主站除了完成它的相关工作任务外,通常它还负责管理挂在rs-485总线上的其它子站。程序跑飞是所有基于微处理器系统均需面对的普遍问题。在工业测控系统中,可靠、稳定地工作是第一位的。若同时赋予主站rs-485总线死锁检测与解除的软/硬件和在所有的子站中配置相关硬件,将可以有效解决由于子站程序跑飞而引发的rs-485总线死锁问题。

     一、rs-485总线死锁检测

     1.查询方式的rs-485总线死锁检测

     rs-485总线在发送数据时,允许同时接收刚发送的数据。rs-485总线通信系统如果工作于查询方式,主站将不断地每隔一定时间轮询各个子部。只要轮询时间不太长,如轮询时间间隔<1min,则只须软件开锁就可以满足rs-485总线死锁检测要求。主站在轮询过程中,若检测到以下两种情况,就可以初步判为rs-485死锁:

     (1)主站发送的数据与接收到的不相同;

     (2)在轮询某个子站时,无响应或响应的数据不正确(可能是rs-485总线死锁或子站死机,也有可能孩子站已退出运行)。

     2.工作于csma/cd方式的rs-485总线死锁检测

     采用csma/cd通信方式的rs-485总线,主站一般不主动轮询每个子站。此方式下,主站可以采用图2所示硬件来检测rs-485总线的死锁状态。在rs-485总线空闲时,要求信号线a至少比信号线b高0.2v以上。只要使rs-485总线空闲时0.2v<va-vb<3v,图2所示电路就可以正常检测rs-485总线死锁。当rs-485总线发生“1”死锁时,va-vb约等于5v,光耦输出低电平拉低主站的int1引脚。对于“0”死锁检测,只需依靠主站的rs-485接口电路就可实现。在“0”死锁时,rs-485接口电路输出低电平拉低主站的rxd引脚。rs-485总线空闲时,int1及rxd引脚为稳定的高电平状态。正常收发数据地,int1及rxd引脚在一个字节内至少出现一次高低电平交替交化;“1”死锁时,int1长期处于低电平状态,“0”死锁时,rxd长期处于低电平状态。根据以上特点只需用软件检测int1和rxd的低电平持续时间就可判断rs-485总线的状态。

     检测到int1或rxd低电平后,通过软件用以下两个软件之一来判断rs-485总线“1”死锁或“0”死锁(假定启动发送数据后,两字节间的空隙时间小于发送1字节时间):<

        作者:(广州)增城市电力局

     黄沛芳 来源:《单片机与嵌入式系统应用》

     摘要:针对rs-485接口收发电路的特点,讨论rs-485总线在polling和csma/cd通信方式中死锁检测和解除死锁的方法。该方法同样适用于rs-422接口。

    

    

     关键词:rs-485接口

     死锁检测 死锁解除

     rs-485总线传送距离远、速度快、抗干扰能力强,是工业现场广泛应用的数字通信标准。rs-485总线是一种半双工通信标准,支持总线方式多点互连,使其成为集散控制系统和现场总线控制系统中采用最多的通信和组网方法。采用rs-485总线连接的多个站点,任一时刻只能有一个站点在“说”,其它站点只能处于“听”状态。如果有多个1个的站点在“说”,数据将在通信总线上碰撞,结果是处于接收状态的站点不能收到正确的数据。在rs-485总线通信网中,必须控制好每个站点的“听、说”状态,即收发状态,以保证能及时、正确地传输数据。

     图1是最常见的rs-485接口。在rs-485总线通信系统中,挂在总线上的收发电路一般大于2个。使用图1所示接收电路,如果系统中的某一个站点死机或出了问题,可能使单片机的p1.0口恒为“1”。其发送器将长期占用通信总线,产生称为rs-485总线“死锁”的状态,其它所有站点的均无法使用通信总线进行通信,这将导致整个通信系统崩溃。为了说明方便,把rs-485总线a线对地电压为称为va,b线对地电压为称为vb;va>vb时的死锁称为“1”死锁,va<vb时的死锁称为“0”死锁。如果2个站点失控,其中一个是“1”死锁,另一个是“0”死锁,而系统无法及时解除该死锁状态,不但各站点间无法正常通信而且会烧坏锁站点的rs-485接口芯片,引发更大的故障。

     在rs-485总线通信系统中,通常设有个功能强、工作可靠的站点作为主站,其它的作为子站。主站除了完成它的相关工作任务外,通常它还负责管理挂在rs-485总线上的其它子站。程序跑飞是所有基于微处理器系统均需面对的普遍问题。在工业测控系统中,可靠、稳定地工作是第一位的。若同时赋予主站rs-485总线死锁检测与解除的软/硬件和在所有的子站中配置相关硬件,将可以有效解决由于子站程序跑飞而引发的rs-485总线死锁问题。

     一、rs-485总线死锁检测

     1.查询方式的rs-485总线死锁检测

     rs-485总线在发送数据时,允许同时接收刚发送的数据。rs-485总线通信系统如果工作于查询方式,主站将不断地每隔一定时间轮询各个子部。只要轮询时间不太长,如轮询时间间隔<1min,则只须软件开锁就可以满足rs-485总线死锁检测要求。主站在轮询过程中,若检测到以下两种情况,就可以初步判为rs-485死锁:

     (1)主站发送的数据与接收到的不相同;

     (2)在轮询某个子站时,无响应或响应的数据不正确(可能是rs-485总线死锁或子站死机,也有可能孩子站已退出运行)。

     2.工作于csma/cd方式的rs-485总线死锁检测

     采用csma/cd通信方式的rs-485总线,主站一般不主动轮询每个子站。此方式下,主站可以采用图2所示硬件来检测rs-485总线的死锁状态。在rs-485总线空闲时,要求信号线a至少比信号线b高0.2v以上。只要使rs-485总线空闲时0.2v<va-vb<3v,图2所示电路就可以正常检测rs-485总线死锁。当rs-485总线发生“1”死锁时,va-vb约等于5v,光耦输出低电平拉低主站的int1引脚。对于“0”死锁检测,只需依靠主站的rs-485接口电路就可实现。在“0”死锁时,rs-485接口电路输出低电平拉低主站的rxd引脚。rs-485总线空闲时,int1及rxd引脚为稳定的高电平状态。正常收发数据地,int1及rxd引脚在一个字节内至少出现一次高低电平交替交化;“1”死锁时,int1长期处于低电平状态,“0”死锁时,rxd长期处于低电平状态。根据以上特点只需用软件检测int1和rxd的低电平持续时间就可判断rs-485总线的状态。

     检测到int1或rxd低电平后,通过软件用以下两个软件之一来判断rs-485总线“1”死锁或“0”死锁(假定启动发送数据后,两字节间的空隙时间小于发送1字节时间):<

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!