注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

deisp的博客

 
 
 

日志

 
 

提高RS-485总线可靠性的几种方法及常见故障处理  

2008-02-18 00:36:31|  分类: 舞台灯 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

  在MCU之间中长距离通信的诸多方案中,RS-485因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动报测等领域。但RS-485总线在抗干扰、自适应、通信效率等方面仍存在缺陷,一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障,因此提高RS-485总线的运行可靠性至关重要。

一、RS-485接口电路的硬件设计

1、总线匹配

  总线匹配有两种方法,一种是加匹配电阻,如图1a所示。位于总线两端的差分端口VA与VB之间应跨接120Ω匹配电阻,以减少由于不匹配而引起的反射、吸收噪声,有效地抑制了噪声干扰。但匹配电阻要消耗较大电流,不适用于功耗限制严格的系统。

 

  另外一种比较省电的匹配方案是RC 匹配(图2 )利用一只电容C 隔断直流成分,可以节省大部分功率,但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。除上述两种外还有一种采用二极管的匹配方案(图3),这种方案虽未实现真正的匹配,但它利用二极管的钳位作用,迅速削弱反射信号达到改善信号质量的目的,节能效果显著。

 

2、RO及DI端配置上拉电阻

  异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触发RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ上拉电阻。

3、保证系统上电时的RS-485芯片处于接收输入状态

  对于收发控制端TC建议采用MCU引脚通过反相器进行控制,不宜采用MCU引脚直接进行控制,以防止MCU上电时对总线的干扰,如图4所示。

 

4、总线隔离

  RS-485总线为并接式二线制接口,一旦有一只芯片故障就可能将总线“拉死”,因此对其二线口VA、VB与总线之间应加以隔离。通常在VA、VB与总线之间各串接一只4~10Ω的PTC电阻,同时与地之间各跨接5V的TVS二极管,以消除线路浪涌干扰。如没有PTC电阻和TVS二极管,可用普通电阻和稳压管代替。

5、合理选用芯片

  例如,对外置设备为防止强电磁(雷电)冲击,建议选用TI的75LBC184等防雷击芯片,对节点数要求较多的可选用SIPEX的SP485R。

二、RS-485网络配置

1、网络节点数

  网络节点数与所选RS-485芯片驱动能力和接收器的输入阻抗有关,如75LBC184标称最大值为64点,SP485R标称最大值为400点。实际使用时,因线缆长度、线径、网络分布、传输速率不同,实际节点数均达不到理论值。例如75LBC184运用在500m分布的RS-485网络上节点数超过50或速率大于9.6kb/s时,工作可靠性明显下降。通常推荐节点数按RS-485芯片最大值的70%选取,传输速率在1200~9600b/s之间选取。通信距离1km以内,从通信效率、节点数、通信距离等综合考虑选用4800b/s最佳。通信距离1km以上时,应考虑通过增加中继模块或降低速率的方法提高数据传输可靠性。

2、节点与主干距离

  理论上讲,RS-485节点与主干之间距离(T头,也称引出线)越短越好。T头小于10m的节点采用T型,连接对网络匹配并无太大影响,可放心使用,但对于节点间距非常小(小于1m,如LED模块组合屏)应采用星型连接,若采用T型或串珠型连接就不能正常工作。RS-485是一种半双工结构通信总线,大多用于一对多点的通信系统,因此主机(PC)应置于一端,不要置于中间而形成主干的T型分布。

三、提高RS-485通信效率

  RS-485通常应用于一对多点的主从应答式通信系统中,相对于RS-232等全双工总线效率低了许多,因此选用合适的通信协议及控制方式非常重要。

1、总线稳态控制(握手信号)

  大多数使用者选择在数据发送前1ms将收发控制端TC置成高电平,使总线进入稳定的发送状态后才发送数据;数据发送完毕再延迟1ms后置TC端成低电平,使可靠发送完毕后才转入接收状态。据笔者使用TC端的延时有4个机器周期已满足要求;

2、为保证数据传输质量,对每个字节进行校验的同时,应尽量减少特征字和校验字

  惯用的数据包格式由引导码、长度码、地址码、命令码、数据、校验码、尾码组成,每个数据包长度达20~30字节。在RS-485系统中这样的协议不太简练。推荐用户使用MODBUS协议,该协议已广泛应用于水利、水文、电力等行业设备及系统的国际标准中。

 四、RS-485接口电路的电源、接地

  对于由MCU结合RS-485微系统组建的测控网络,应优先采用各微系统独立供电方案,最好不要采用一台大电源给微系统并联供电,同时电源线(交直流)不能与RS-485信号线共用同一股多芯电缆。RS-485信号线宜选用截面积0.75mm2以上双绞线而不是平直线。对于每个小容量直流电源选用线性电源LM7805比选用开关电源更合适。当然应注意LM7805的保护:

1、LM7805输入端与地应跨接220~1000μF电解电容;

2、LM7805输入端与输出端反接1N4007二极管;

3、LM7805输出端与地应跨接470~1000μF电解电容和104pF独石电容并反接1N4007二极管;

4、输入电压以8~10V为佳,最大允许范围为6.5~24V。可选用TI的PT5100替代LM7805,以实现9~38V的超宽电压输入。

  五、光电隔离

  在某些工业控制领域,由于现场情况十分复杂,各个节点之间存在很高的共模电压。虽然RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压,即大于+12V或小于-7V时,接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备。

  解决此类问题的方法是通过DC-DC将系统电源和RS-485收发器的电源隔离;通过光耦将信号隔离,彻底消除共模电压的影响。实现此方案的途径可分为:

1、用光耦、带隔离的DC-DC、RS-485芯片构筑电路;

2、使用二次集成芯片,如PS1480、MAX1480等。

 六、RS-485系统的常见故障及处理方法

  RS-485是一种低成本、易操作的通信系统,但是稳定性弱同时相互牵制性强,通常有一个节点出现故障会导致系统整体或局部的瘫痪,而且又难以判断。故向读者介绍一些维护RS-485的常用方法。

1、若出现系统完全瘫痪,大多因为某节点芯片的VA、VB对电源击穿,使用万用表测VA、VB间差模电压为零,而对地的共模电压大于3V,此时可通过测共模电压大小来排查,共模电压越大说明离故障点越近,反之越远;

2、总线连续几个节点不能正常工作。一般是由其中的一个节点故障导致的。一个节点故障会导致邻近的2~3个节点(一般为后续)无法通信,因此将其逐一与总线脱离,如某节点脱离后总线能恢复正常,说明该节点故障;

3、集中供电的RS-485系统在上电时常常出现部分节点不正常,但每次又不完全一样。这是由于对RS-485的收发控制端TC设计不合理,造成微系统上电时节点收发状态混乱从而导致总线堵塞。改进的方法是将各微系统加装电源开关然后分别上电;

4、系统基本正常但偶尔会出现通信失败。一般是由于网络施工不合理导致系统可靠性处于临界状态,最好改变走线或增加中继模块。应急方法之一是将出现失败的节点更换成性能更优异的芯片;

5、因MCU故障导致TC端处于长发状态而将总线拉死一片。提醒读者不要忘记对TC端的检查。尽管RS-485规定差模电压大于200mV即能正常工作。但实际测量:一个运行良好的系统其差模电压一般在1.2V左右(因网络分布、速率的差异有可能使差模电压在0.8~1.5V范围内

 

 

 

 

另外一篇(大虾电子:挑战者)

 

提高485总线的可靠性

摘  要:就485总线应用中易出现的问题,分析了产生的原因并给出解决问题的软硬件方案和措施。
关键词:RS-485总线、串行异步通信


--------------------------------------------------------------------------------

1 问题的提出

    在应用系统中,RS-485半双工异步通信总线是被各个研发机构广泛使用的数据通信总线,它往往应用在集中控制枢纽与分散控制单元之间。系统简图如图1所示。

图1. RS-485系统示意图

    由于实际应用系统中,往往分散控制单元数量较多,分布较远,现场存在各种干扰,所以通信的可靠性不高,再加上软硬件设计的不完善,使得实际工程应用中如何保障RS-485总线的通信的可靠性成为各研发机构的一块心病。

   在使用RS-485总线时,如果简单地按常规方式设计电路,在实际工程中可能有以下两个问题出现。一是通信数据收发的可靠性问题;二是在多机通信方式下,一个节点的故障(如死机),往往会使得整个系统的通信框架崩溃,而且给故障的排查带来困难。

    针对上述问题,我们对485总线的软硬件采取了具体的改进措施

2 硬件电路的设计

   现以8031单片机自带的异步通信口,外接75176芯片转换成485总线为例。其中为了实现总线与单片机系统的隔离,在8031的异步通信口与75176之间采用光耦隔离。电路原理图如图2所示。


图 2 改进后的485通信口原理图

    充分考虑现场的复杂环境,在电路设计中注意了以下三个问题。

2.1 SN75176 485芯片DE控制端的设计

    由于应用系统中,主机与分机相隔较远,通信线路的总长度往往超过400米,而分机系统上电或复位又常常不在同一个时刻完成。如果在此时某个75176的DE端电位为“1”,那么它的485总线输出将会处于发送状态,也就是占用了通信总线,这样它的分机就无法与主机进行通信。这种情况尤其表现在某个分机出现异常情况下(死机),会使整个系统通信崩溃。因此在电路设计时,应保证系统上电复位时75176的DE端电位为“0”。由于8031在复位期间,I/O口输出高电平,故图2电路的接法有效地解决复位期间分机“咬”总线的问题。

2.2 隔离光耦电路的参数选取

    在应用系统中,由于要对现场情况进行实时监控及响应,通信数据的波特率往往做得较高(通常都在4800波特以上)。限制通信波特率提高的“瓶颈”,并不是现场的导线(现场施工一般使用5类非屏蔽的双绞线),而是在与单片机系统进行信号隔离的光耦电路上。此处采用TIL117。电路设计中可以考虑采用高速光耦,如6N137、6N136等芯片,也可以优化普通光耦电路参数的设计,使之能工作在最佳状态。例如:电阻R2、R3如果选取得较大,将会使光耦的发光管由截止进入饱和变得较慢;如果选取得过小,退出饱和也会很慢,所以这两只电阻的数值要精心选取,不同型号的光耦及驱动电路使得这两个电阻的数值略有差异,这一点在电路设计中要特别慎重,不能随意,通常可以由实验来定。

2.3 485总线输出电路部分的设计

    输出电路的设计要充分考虑到线路上的各种干扰及线路特性阻抗的匹配。由于工程环境比较复杂,现场常有各种形式的干扰源,所以485总线的传输端一定要加有保护措施。在电路设计中采用稳压管D1、D2组成的吸收回路,也可以选用能够抗浪涌的TVS瞬态杂波抑制器件,或者直接选用能抗雷击的485芯片(如SN75LBC184等)。

    考虑到线路的特殊情况(如某一台分机的485芯片被击穿短路),为防止总线中其它分机的通信受到影响,在75176的485信号输出端串联了两个20Ω的电阻R10、R11。这样本机的硬件故障就不会使整个总线的通信受到影响。

    在应用系统工程的现场施工中,由于通信载体是双绞线,它的特性阻抗为120Ω左右,所以线路设计时,在RS-485网络传输线的始端和末端各应接1只120Ω的匹配电阻(如图2中R8),以减少线路上传输信号的反射。

    由于RS-485芯片的特性,接收器的检测灵敏度为± 200mV,即差分输入端VA-VB ≥+200mV,输出逻辑1,VA-VB  ≤-200mV,输出逻辑0;而A、B端电位差的绝对值小于200mV时,输出为不确定。如果在总线上所有发送器被禁止时,接收器输出逻辑0,这会误认为通信帧的起始引起工作不正常。解决这个问题的办法是人为地使A端电位高于B两端电位,这样RXD的电平在485总线不发送期间(总线悬浮时)呈现唯一的高电平,8031单片机就不会被误中断而收到乱字符。通过在485电路的A、B输出端加接上拉、下拉电阻R7、R9,即可很好地解决这个问题。

3 软件的编程

    485芯片的软件编程对产品的可靠性也有很大影响。由于485总线是异步半双工的通信总线,在某一个时刻,总线只可能呈现一种状态,所以这种方式一般适用于主机对分机的查询方式通信,总线上必然有一台始终处于主机地位的设备在巡检其它的分机,所以需要制定一套合理的通信协议来协调总线的分时共用。这里采用的是数据包通信方式。通信数据是成帧成包发送的,每包数据都有引导码、长度码、地址码、命令码、内容、校验码等部分组成。

       其中引导码是用于同步每一包数据的引导头;长度码是这一包数据的总长度;命令码是主机对分机(或分机应答主机)的控制命令;地址码是分机的本机地址号;“内容”是这一包数据里的各种信息;校验码是这一包数据的校验标志,可以采用奇偶校验、和校验等不同的方式。

    在485芯片的通信中,尤其要注意对485控制端DE的软件编程。为了可靠的工作,在485总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。

4 结论

    经过以上的软硬件共同处理,RS-485总线在应用系统工程中的可靠性大大提高,在通常的环境条件下,24小时连续开机,系统的通信始终处于正常状态,整机性能满足了现场工程的需要。

    但是RS-485总线仍然只是一种常规的通信总线,它不能够做总线的自动仲裁,也就是不能够同时发送数据以避免总线竞争,所以整个系统的通信效率必然较低,数据的冗余量较大,对于速度要求高的应用场所不适宜用RS-485总线。同时由于RS-485总线上通常只有一台主机,所以这种总线方式是典型的集中-分散型控制系统。一旦主机出现故障,会使整个系统的通信陷于瘫痪状态,因此做好主机的在线热备份是一个重要措施。

    尽管RS-485总线存在这样那样的问题,但由于它的线路设计简单、价格低廉、控制方便,只要合理的使用在某些场所仍然能发挥良好的作用。

 
  评论这张
 
阅读(451)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017