RS-485 总线优点众所皆知,并且为保证通信的稳定性,都会使用隔离 RS-485 模块进行信号隔离。但在 RS-485 实际组网时,或多或少会遇到不能通信、通信出错、RS-485 收发器损坏等情况,其中究竟为何?本文将深度剖析 RS-485 组网问题。

 

1、应用问题;

当出现通信错误或者不能通信时首先判断应用是否符合表 1 中的应用情况。

 

表 1 RS-485 总线应用情况

 

 

表 1 中三种应用情况分别属于终端电阻、上下拉电阻、控制脚以及逻辑输入侧电平的问题,下面对其进行详细分析。

 

1)终端电阻问题

若 RS-485 总线上接有终端电阻,且所用 RS-485 收发器门限电平是±200mV,则可能出现表 2 中所述的异常现象。

 

表 2 终端电阻导致的异常现象

 

 

图 1 RS232/485 双向转换器

 

终端电阻导致异常的原因:RS-485 收发器接收门限电平为±200mV,即 AB 之间差分电压大于+200mV,输出高电平;AB 之间差分电压小于 -200mV,输出低电平;AB 之间电压在±200mV 之间时,输出状态不确定,即有可能输出高电平(此时表现为通信正常),有可能输出低电平(此时表现为通信异常),因此若总线空闲状态时 AB 差分电压处于门限电平之内,则会出现一定概率的异常问题。

 

表 2 现象 1 分析:单板可以正常通信,组网后由于 RS-485 总线上接有终端电阻,导致空闲状态时总线差分电压处于门限电平之内,出现通信异常。当出现上述情况时,首先需确认总线上是否存在终端电阻。

 

表 2 现象 2 分析:单板测试时,单板或与之通信的设备接有终端电阻,此时 AB 之间差分电压处于门限电平之内时,有一定概率出现通信异常。

 

表 2 现象 3 分析:此现象同样是由于终端电阻导致的,由于 RS-232/485 双向转换器(如图 1)内部 AB 引脚一般会设置小阻值的上下拉 电阻(例如 560Ω),若用 RS-232/485 双向转换器通信,由于 RS-485 总线空闲状态时的电压是由上下拉电阻与终端电阻分压得到,此时空闲状态的 AB 差分电压会大于 200mV,使 RS-485 收发器输出一个确定的高电平,不会引起通信错误,如图 3 为两个 RSM485PCHT 进行通信,AB 之间加 60Ω并且增加 RS-232/485 双向转换器的测试波形,空闲状态的电压为 520mV,不会引起错误。图 2 为两个 RSM485PCHT 进行通信,AB 之间加 60Ω测试的波形,可以看出空闲状态 AB 差分电压为 40mV,处于门限电平范围之内,有可能出现通信错误。

 

图 2 AB 间加两个 120Ω电阻,并增加 RS-232/485 双向转换器

 

图 3 AB 间只加两个 120Ω电阻

 

解决方法主要有三种,具体如表 3:

表 3 终端电阻问题解决方法

 

 

2)上下拉电阻问题

上下拉电阻并联值过小可能引起的现象如表 4 所示。

 

表 4 上下拉电阻导致的异常现象

 

 

上述问题是所加上下拉电阻值较小导致的问题,超过了芯片可以驱动的负载能力。RSM485PCHT 在 AB 之间加两个 120Ω电阻后,所加上下拉电阻值与输出差分电压低电平的关系如表 5 所示,当上下拉电阻并联值小于 51Ω时,虽然芯片可以正常输出,但是输出信号已大于 -200mV,此时可能出现通信错误或完全不能通信。上下拉电阻过小会导致 RS-485 收发器在功耗过大,发热严重,有可能导致收发器过热保护或者损坏,因此为了保证通信的可靠性,上下拉电阻阻值不宜过小,一般上拉或下拉电阻的并联值应大于 375Ω。

 

表 5 不同上下拉电阻值驱动电压

 

 

3)控制脚以及逻辑输入侧的问题

由于收发切换需要一定的延时,因此应在发送或者接收数据前增加一段延时(例如 RSM485PCHT,需要增加至少 25μs)来保证 RS-485 收发器已经处于发送或者接收状态。

 

MCU 电平应与 RS-485 收发器输入逻辑电平匹配,即 MCU 为 5V 逻辑电平,应使用供电为 5V 的 RSM 系列隔离模块。

 

2、波形测试方法;

由于 RS-485 总线应用非常广泛,应用问题不仅仅只是上面几种,当排除上面的问题后,可以通过测试总线波形的方法来找到通信异常的位置,判断异常原因。