一、RS485总线介绍
RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。在一些要求通信距离为几十米到上千米的时候,RS485总线是一种应用最为广泛的总线。而且在多节点的工作系统中也有着广泛的应用。
二、RS485总线典型电路介绍
RS485电路总体上可以分为隔离型与非隔离型。隔离型比非隔离型在抗干扰、系统稳定性等方面都有更出色的表现,但有一些场合也可以用非隔离型。
我们就先讲一下非隔离型的典型电路,非隔离型的电路非常简单,只需一个RS485芯片直接与MCU的串行通讯口和一个I/O控制口连接就可以。如图1所示:
图1、典型485通信电路图(非隔离型)
当然,上图并不是完整的485通信电路图,我们还需要在A线上加一个4.7K的上拉偏置电阻;在B线上加一个4.7K的下拉偏置电阻。中间的R16是匹配电阻,一般是120Ω,当然这个具体要看你传输用的线缆。(匹配电阻:485整个通讯系统中,为了系统的传输稳定性,我们一般会在第一个节点和最后一个节点加匹配电阻。所以我们一般在设计的时候,会在每个节点都设置一个可跳线的120Ω电阻,至于用还是不用,由现场人员来设定。当然,具体怎么区分第一个节点还是最后一个节点,还得有待现场的专家们来解答呵。)TVS我们一般选用6.8V的,这个我们会在后面进一步的讲解。
RS-485标准定义信号阈值的上下限为±200mV。即当A-B>200mV时,总线状态应表示为“1”;当A-B<-200mV时,总线状态应表示为“0”。但当A-B在±200mV之间时,则总线状态为不确定,所以我们会在A、B线上面设上、下拉电阻,以尽量避免这种不确定状态。
三、隔离型RS485总线典型电路介绍
在某些工业控制领域,由于现场情况十分复杂,各个节点之间存在很高的共模电压。虽然RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压,即大于+12V或小于-7V时,接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备。
解决此类问题的方法是通过DC-DC将系统电源和RS-485收发器的电源隔离;通过隔离器件将信号隔离,彻底消除共模电压的影响。实现此方案的途径可分为:
(1)传统方式:用光耦、带隔离的DC-DC、RS-485芯片构筑电路;
(2)使用二次集成芯片,如ADM2483、ADM2587E等。
传统光电隔离的典型电路:(如图2所示)
图2、光电隔离RS485典型电路
图3、隔离型RS485芯片ADM2483应用图
ADM2483是ADI推出的隔离型485芯片,SOW-16封装,内部集成了一个三通道的磁隔离器件和一个半双工485收发器,2500V隔离电压、传输速率500K、共模电压抑制能力25KV/μS。但此电路仍需双电源供电,因此也会在一定程度上存在电路体积过大的问题。(一般我们会在7脚接4.7K--10K的上拉电阻)
完全隔离型RS485器件实现隔离传输:(如图4所示)
图4、完全隔离型RS485/422芯片ADM2587E应用图
ADM2587E是ADI继ADM2483之后,推出的单电源隔离型485芯片。SOW-20封装,2500V隔离电压,全/半双工、传输速率500K、共模电压抑制能力25KV/μS、±15KV的ESD保护。适合用于工控、电力、仪表、安防等各种485隔离场合。
四、RS485总线保护电路
隔离虽然能有效的抑制高共模电压,但总线上还会存在浪涌冲击、电源线与485线短路、雷击等潜在危害,所以我们一般会在总线端采取一定的保护措施。
一般我们会在VA、VB上各串接一个4~10Ω的PTC电阻,并在VA、VB各自对地端接6、8V的TVS管,当然也可用普通电阻与稳压二极管代替。更多的还可以加热保险丝、防雷管,不过并不是说这些加的越多越好,具体要看实际应用,如果这些保护太多的话,也会影响到整个系统的节点数,与通信稳定性。
五、485应用的一些小经验
1、收发时序不匹配:
485是半双工的通信,收发转换是需要一定的时间的,所以一般在收发转换之间,和每发送完一帧数据之后,都要有相应的延时,如果出现收发不正常、或第一帧数据之后就出现误码现象,则可以适当的增加一下延时时间,以观问题是否解决。
2、R0接上拉电阻:
异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触发RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ上拉电阻。
3、合理选用芯片。
例如,对外置设备为防止强电磁(雷电)冲击,建议选用TI的75LBC184等防雷击芯片,对节点数要求较多的可选用SIPEX的SP485R。此外经我们实验发现,ADI的非隔离型485芯片ADM487E、隔离型芯片ADM2483、ADM2587在多节点、防雷击方面也有着很好的表现。
六、维护RS-485的常用方法
1)若出现系统完全瘫痪,大多因为某节点芯片的VA、VB对电源击穿,使用万用表测VA、VB间差模电压为零,而对地的共模电压大于3V,此时可通过测共模电压大小来排查,共模电压越大说明离故障点越近,反之越远;
5)因MCU故障导致TC端处于长发状态而将总线拉死一片。提醒读者不要忘记对TC端的检查。尽管RS-485规定差模电压大于200mV即能正常工作。但实际测量:一个运行良好的系统其差模电压一般在1.2V左右(因网络分布、速率的差异有可能使差模电压在0.8~1.5V范围内)。
要用在RS-485端口的防护组件必须同时符合三项要求:第一、气体放电管(LT-B3D090L)的反应时间要快,脉冲击穿电压要低;第二、协同式保护方案两极之间的退偶隔离器件电阻要功率足够大,耐受能力好;第三、也是最重要的,保护方案在感应雷脉冲过电压事件发生期间所提供的钳制电压必须要够低,不能造成传输数据芯片的损坏。以上三项要求缺一不可,只要缺一,RS-485数据端口就无法被完善地保护。