表1 RS-485总线应用情况
表1中三种应用情况分别属于终端电阻、上下拉电阻、控制脚以及逻辑输入侧电平的问题,下面对其进行详细分析。
1. 终端电阻问题
表2 终端电阻导致的异常现象
终端电阻导致异常的原因: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,处于门限电平范围之内,有可能出现通信错误。
解决方法主要有三种,具体如表3:
上述问题是所加上下拉电阻值较小导致的问题,超过了芯片可以驱动的负载能力。RSM485PCHT在AB之间加两个120Ω电阻后,所加上下拉电阻值与输出差分电压低电平的关系如表 5所示,当上下拉电阻并联值小于51Ω时,虽然芯片可以正常输出,但是输出信号已大于-200mV,此时可能出现通信错误或完全不能通信。上下拉电阻过小会导致RS-485收发器在功耗过大,发热严重,有可能导致收发器过热保护或者损坏,因此为了保证通信的可靠性,上下拉电阻阻值不宜过小,一般上拉或下拉电阻的并联值应大于375Ω。
表5 不同上下拉电阻值驱动电压
3. 控制脚以及逻辑输入侧的问题
1. 检查RS-485收发器发送功能
2. 检查RS-485收发器接收功能
图6 测试接收功能是否正常
3. 检查RS-485收发器控制引脚与TXD、RXD逻辑关系
RS-485收发器AB引脚的共模电压范围一般要求在-7V~+12V范围内,当超过此范围内时会造成芯片损坏。由于工业现场大地经常会流过瞬时大电流,若收发器RGND引脚连接不当,则AB引脚的共模电压会超过其可承受的共模电压范围,导致模块损坏。下面以RSM485PCHT为例进行分析。
当U1发送高电平时,以RSM485PCHT为例:
由于两个模块都直接连接至机壳或者大地,当机壳或大地中通过较大电流时,在U1和U2的RGND引脚之间产生了VEARTH电压差,当U1向U2发送数据时,U2的A引脚的电压为:
由于VA1发送时为5V,当VEARTH超过7V时就有可能导致损坏,因此在实际应用中,节点之间的RGND可以通过屏蔽双绞线的屏蔽层进行连接,屏蔽层通过阻容单点连接至大地,如图12所示。
图12 RGND推荐连接
2. 高等级的静电和浪涌造成模块损坏