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

2006-05-07 15:50:08来源: 互联网

485接口收发电路的特点,讨论RS-485总线在Polling和CSMA/CD通信方式中死锁检测和解除死锁的方法。该方法同样适用于RS-422接口。

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

在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光耦输出低电平拉低主站的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字节时间):

(1)INT1低电平持续时间>正常发送2字节时间,判为RS-485总线“1”死锁。

(2)RXD低电平持续时间>正常发送2字节时间,判为RS-485总线“0”死锁。

二、RS-485总线死锁解除

RS-485总线死锁往往是由于子站的微控制器程序跑飞,使得RS-485发送器的发送使能DE恒为高电平引起的。出现这种情况只需给相应的子站复位一下,让它重新执行初始化程序始可解决。在检测到RS-485总线死锁后,如果各子站的软/硬件无问题,可以采用复位程序跑飞的子站来解除死锁。以下介绍两类可以由主站自动复位子站的硬件电路。该电路适用于RST引脚高电平有效时复位的单片机,如国内广泛应用的51系列单片机。对于RST引脚低电平有效时复位的单片机则须将电路的逻辑取反。

1.有选择性地复位死锁子站电路

图3是具有选择性的复位死锁子站电路,是一种巧妙的解除通信总线死锁状态设计。它利用了RS-485总线死锁,则对应死锁子站的发送使能DE为“1”的特点,在子站中只用了少量的硬件开销(1个与非门、1个电阻和1只三极管),即实现了有选择性的复位死锁子站的电路。在正常工作时,主站的P1.1置为“0”,此时不管各个子站的DE为何状态,它们的与非门输出均为高电平,三极管T1截止,RST为低电平,不会复位任何子站。当检测到RS-485总线死锁时,主站只需将P1.1置为“1”,只有DE为“1”子站的与非门输出低电平,三极管T1导通,RST为高电平,相应的子站被复位。其它子站的与非门输出高电平,不会被错误地复位。

2.无选择性地复位所有子站电路

图4是一个无选择性复位子站的电路。它由主站的P1.1驱动,通过屏蔽电缆引到各子站的外复位电路T1的基极。正常运行时,主站置P1.1为“1”,此时它不影响各子站原有的复位功能。当主站检测到RS-485总线死锁或复位各子站时,只须将P1.1置为“0”,所有挂在复位总线上的T1均导通,RST输出高电平,各子站均被无条件复位。

结束语

单片机的复位电路是对干扰较为敏感的电路。施加在单片机的复位电路上一个ms级的微小毛刺干扰,就会对单片机造成极为严重的影响。若毛刺干扰持续时间大于单片机要求最小的可靠复位时间,单片机被复位;否则单片机还末完成复位过程,复位信号就被撤消,其内部寄存器将处于不确定状态,令单片机的应用中,为了可靠起见,一般不外引复位电路。在要文的应用中,需将复位电路外引,复位总线采用屏蔽线以提高抗干扰能力。

本文介绍的2种远方复位电路,各有优缺点。具有选择性的复位电路优点是:有选择性地复位锁RS-485总线的子站,而不影响其它正常的子站,满足解除RS-485总线死锁的要求。缺点是:当子站程序跑飞但并没有使得DE恒为高电平时,RS-485总线处于正常状态,主站可以和所有正常的子站通信,但主站对这个异常的子站无能为力。无选择性的复位电路优点是:主站可以复位任何类型的由于程序跑飞引起异常的子站,此外,在电路的实现上较有选择性的复位电路简单。缺点是:它的动作是无选择性的,不管子站是否异常,挂在复位总线上的所有子站均被无条件复位。

RS-422接口的电气参数要求与RS-485接口相同,主要差别在于RS-422是全双工接口,而RS-485是双工接口。本文介绍RS-485总线死锁检测方法,只需稍加修改,同样适用于RS-422总线系统,而解除死锁的方法无需任何修改即可直接应用于RS-422总线系统。

关键字:总线  死锁  死锁检测  检测

编辑: 引用地址:http://www.eeworld.com.cn/wltx/qtjs/200605/2862.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
总线
死锁
死锁检测
检测

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved