您的位置:控制工程论坛网论坛 » 工业以太网 » 怎样提高485总线的可靠性

lj7071

lj7071   |   当前状态:离线

总积分:3110  2025年可用积分:0

注册时间: 2007-03-21

最后登录时间: 2008-02-13

空间 发短消息加为好友

怎样提高485总线的可靠性

lj7071  发表于 2007/12/13 11:00:13      3314 查看 2 回复  [上一主题]  [下一主题]

手机阅读

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

1楼 0 0 回复
  • bjmonsoon

    bjmonsoon   |   当前状态:在线

    总积分:1206  2025年可用积分:0

    注册时间: 2007-05-16

    最后登录时间: 2011-06-13

    空间 发短消息加为好友

    bjmonsoon   发表于 2007/12/13 0:54:47

    一、关于485总线的几个概念:


    1485总线的通讯距离可以达到1200


        根据485总线结构理论,在理想环境的前提下,485总线传输距离可以达到1200。其条件是通讯线材优质达标,波特率为9600,只负载一台485设备,才能使得通讯距离达到1200,所以通常485总线实际的稳定的通讯距离往往达不到1200。如果负载485设备多,线材阻抗不合乎标准,线径过细,转换器品质不良,设备防雷保护复杂和波特率的提高等等因素都会降低通讯距离。


    2485总线可以带128台设备进行通讯。


        其实并不是所有485转换器都能够带128台设备的,要根据485转换器内芯片的型号和485设备芯片的型号来判断,只能按照指标较低的芯片来确定其负载能力。一般485芯片负载能力有三个级别――32台、128台和256台。。此外理论上的标称往往实际上是达不到的,通讯距离越长、波特率越高、线径越细、线材质量越差、转换器品质越差、转换器电能供应不足(无源转换器)、防雷保护越强,这些都会降低真实负载数量。


    3485总线是一种最简单、最稳定、最成熟的工业总线结构


        这种概念是错误的。485总线是一种用于设备联网的、经济型的、传统的工业总线方式。。其通讯质量需要根据施工经验进行调试和测试采可以得到保证。485总线虽然简单,但也必须严格按照安装施工规范进行布线。


    二、必须严格按照施工规范施工


        485总线系统施工时必须严格按照施工规范施工,特别应注意下面几点。


    1485+485-数据线一定要互为双绞。
    2
    、布线一定要布多股屏蔽双绞线。多股是为了备用,屏蔽是为了便于出现特殊情况时调试,双绞是因为485通讯采用差模通讯原理,双绞的抗干扰性较好。不采用双绞线是错误的。
    3
    485总线一定要用手牵手式的总线结构,坚决避免星型连接和分叉连接。
    4
    、设备供电的交流电及机箱一定要真实接地,而且接地良好。有很多地方表面上有三角插座,其实根本没有接地,接地良好可以防止设备被雷击、浪涌冲击。静电累积时可以配合设备的防雷设计较好地释放能量,保护485总线设备和相关芯片不受伤害。
    5
    、为避免强电对其干扰,485总线应避免和强电走在一起。


    三、推荐几种调试方法:


        在调试前首先要确保设备接线正确,且施工合乎规范。可以根据遇到的问题采用下面几种调试方法。


    1、共地法: 1条线或者屏蔽线将所有485设备的GND地连接起来,这样可以避免所有设备之间存在影响通讯的电势差。
    2
    、终端电阻法: 在最后一台485设备的485+485-上并接120欧姆的终端电阻来改善通讯质量。
    3
    、中间分段断开法: 通过从中间断开来检查是否设备负载过多、通讯距离过长、某台设备对整个通讯线路的影响等。
    4
    、单独拉线法: 单独简易拉一条线到设备,这样可以用来排除是否是布线引起了通讯故障。
    5
    、更换转换器法: 随身携带几个转换器,这样可以排除是否是转换器质量问题影响了通讯质量。
    6
    、笔记本调试法: 先保证自己随身携带的电脑笔记本是通讯正常的设备,用它来替换客户电脑进行通讯,如果正常,则表明客户的电脑的串口有可能被损害或者受伤。


    四、建议和忠告


        采用485总线结构常见的几种通讯故障有下面几种。


    1、通讯不上,无反应。
    2
    、可以上传数据,但不可以下载数据。
    3
    、通讯时系统提示受到干扰,或者不通讯时通讯指示灯也不停地闪烁。
    4
    、有时能通讯上,有时通讯不上,有的指令可以通,有的指令不可以通。
    为减少通信故障提出下面几条建议和忠告供参考。
    1
    、建议用户使用和购买门禁厂家提供的485转换器或者厂家指定推荐品牌的485转换器。
    2
    、门禁厂家会对与其配套的485转换器做大量的测试工作,并且会要求485转换器生产厂家按照其固定的性能参数进行生产和品质检测,所以它与门禁设备具备较好的兼容性。千万不要贪图便宜购买杂牌厂家的485转换器。
    3
    、严格按照485总线的施工规范进行施工,杜绝任何侥幸心理。
    4
    、对线路较长、负载较多的485总线工程采用科学的、有预留的解决方案。
    5
    、如果通讯距离过长, 如超500,建议采用中继器或485HUB来解决。
    6
    、如果负载数过多,如一条总线上超过30台,建议采用485HUB来解决问题。
    7
    、现场调试带齐调试设备。现场调试一定要随身携带几个可以接长距离和多负载的转换器、一台常用的电脑笔记本、测试通路断路的万用表,几个120欧姆的终端电阻。


    深圳市天地华杰科技有限公司北京公司               http://www.tdhj.com.cn


    邮箱:61305608@163.com

    2楼 回复本楼

    引用 bjmonsoon 2007/12/13 0:54:47 发表于2楼的内容

  • evid_cao

    evid_cao   |   当前状态:离线

    总积分:111  2025年可用积分:0

    注册时间: 2007-12-12

    最后登录时间: 2012-08-10

    空间 发短消息加为好友

    evid_cao   发表于 2007/12/13 11:00:13

        在安防系统总会用到RS-854总线,尤其是在门禁系统,所以给大家列出提高RS-485总线可靠性的几种方法及常见故障处理,希望对大家有所帮助。


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


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


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


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


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


    3)保证系统上电时的RS-485芯片处于接收输入状态。对于收发控制端TC建议采用MCU引脚通过反相器进行控制,不宜采用MCU引脚直接进行控制,以防止MCU上电时对总线的干扰,如图4所示。   


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


    5)合理选用芯片。例如,对外置设备为防止强电磁(雷电)冲击,建议选用TI75LBC184等防雷击芯片,对节点数要求较多的可选用SIPEXSP485R


          2 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型分布。 


            3 提高RS-485通信效率   


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


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


    2.为保证数据传输质量,对每个字节进行校验的同时,应尽量减少特征字和校验字。惯用的数据包格式由引导码、长度码、地址码、命令码、数据、校验码、尾码组成,每个数据包长度达20~30字节。在RS-485系统中这样的协议不太简练。推荐用户使用MODBUS协议,该协议已广泛应用于水利、水文、电力等行业设备及系统的国际标准中。


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


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


    当然应注意LM7805的保护:   


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


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


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


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


           5 光电隔离   


        在某些工业控制领域,由于现场情况十分复杂,各个节点之间存在很高的共模电压。虽然RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压,即大于+12V或小于-7V时,接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备。    解决此类问题的方法是通过DC-DC将系统电源和RS-485收发器的电源隔离;通过光耦将信号隔离,彻底消除共模电压的影响。


           实现此方案的途径可分为:


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


    2)使用二次集成芯片,如PS1480MAX1480等。


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


        RS-485是一种低成本、易操作的通信系统,但是稳定性弱同时相互牵制性强,通常有一个节点出现故障会导致系统整体或局部的瘫痪,而且又难以判断。故向读者介绍一些维护RS-485的常用方法。     1)若出现系统完全瘫痪,大多因为某节点芯片的VAVB对电源击穿,使用万用表测VAVB间差模电压为零,而对地的共模电压大于3V,此时可通过测共模电压大小来排查,共模电压越大说明离故障点越近,反之越远;


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


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


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


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


        上面的文章,希望对大家有所帮助,可以自行解决在使用RS-8-485总结遇到的问题。

    3楼 回复本楼

    引用 evid_cao 2007/12/13 11:00:13 发表于3楼的内容

总共 , 当前 /