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设置上下拉电阻,尽量避免这种不确定状态。
在一些工业控制领域,由于现场非常复杂,每个节点之间的共模电压都很高。RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压大于 12V或小于-7V接收器再也没有了**经常工作,甚至烧毁芯片和仪器设备。
解决这类问题的方法是通过DC-DC和系统电源RS-485收发器的电源隔离;通过隔离器隔离信号,完全消除共模电压的影响。实现该方案的方法可分为:
(1)传统方法:光耦与隔离DC-DC、RS-485芯片构筑电路;
(2)使用二次集成芯片,如ADM2483、ADM2587E等。
典型的传统光电隔离电路:(如图2所示)
图2、光电隔离RS485典型电路
在图中,我们使用高速光耦6N以137为例(当然只是示意图)解释隔离型RS485电路。VDD与VCC485是两组不共用电源,一般采用隔离型DC-DC来实现。信号的隔离传输通过光耦隔离实现,ADM487与MCU完全隔离有效地抑制了高共模电压的产生,大大降低了485的损坏率,提高了系统的稳定性。但也存在电路体积过大、电路繁琐、分立器件过多、光电器件传输速率有限等缺点,对整个系统的稳定性也有一定的影响。
隔离型RS485器件来实现隔离传输:(如图3所示)
图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继ADM单电源隔离型485芯片在2483之后推出。SOW-20封装,2500V隔离电压,全/半双工,传输速率500K、共模电压抑制能力25KV/μS、±15KV的ESD保护。适用于工控、电力、仪表、安全等485隔离场合。
虽然隔离可以有效地抑制高共模电压,但总线上仍会有浪涌冲击、电源线和485线短路、雷击等潜在危害,因此我们通常在总线端采取一定的保护措施。
我们通常会在那里VA、VB各串联4~10Ω的PTC电阻,并在VA、VB各自对地端接6、8V的TVS当然,管道也可以用普通电阻和稳压二极管代替。更多的保险丝和防雷管也可以加热,但这并不意味着添加的越多越好。这取决于实际应用。如果这些保护过多,也会影响整个系统的节点数和通信稳定性。
1.收发时间不匹配:
485是半双工通信,收发转换需要一定的时间,所以一般在收发转换之间,每发送一帧数据,都有相应的延迟,如果收发异常,或第一帧数据错误,可以适当增加延迟时间,观察问题是否解决。
2、R0连接上拉电阻:
异步通信数据以字节的形式传输。在每个字节传输之前,握手应通过低电平起始位置实现。为干扰信号误触发RO(接收器输出)产生负跳变,使接收端MCU建议进入接收状态RO外接10kΩ上拉电阻。
合理选择芯片。
例如,建议选择外部设备,以防止强电磁(雷电)冲击TI的75LBC184等防雷芯片对节点数要求较高的可选SIPEX的SP485R。另外,我们的实验发现,ADI非隔离485芯片ADM487E、隔离型芯片ADM2483、ADM2587在多节点和防雷方面也表现良好。
1)如果系统完全瘫痪,主要是因为节点芯片VA、VB用万用表测量电源击穿VA、VB间差模电压为零,对地共模电压大于3V,此时可以通过测量共模电压来检查,共模电压越大,离故障点越近,反之亦然;
2)连续几个节点不能正常工作。它通常是由其中一个节点故障引起的。一个节点故障会导致相邻的2~3个节点(通常是后续的)无法通信,因此与总线逐一分离。如果总线在节点分离后恢复正常,则表明节点故障;
3)集中供电RS-485系统上电时经常出现一些节点异常,但每次都不完全一样。这是因为RS-485收发控制端TC设计不合理,导致微系统上电时节点收发状态混乱,导致总线堵塞。改进的方法是在每个微系统上安装电源开关,然后单独上电;
4)系统基本正常,但偶尔会出现通信失败。一般来说,由于网络建设不合理,系统可靠性处于临界状态。最好改变增加中继模块。其中一种应急方法是用更好的芯片替换失败的节点;
5)因MCU故障导致TC在长发状态下,拉死总线。提醒读者不要忘记对TC终端检查RS-485规定差模电压大于2000mV也就是说,它可以正常工作。但实际测量:运行良好的系统的差异电压一般为1.2V由于网络分布和速率的差异,差模电压可能为0.8~1.5V范围内)。