为节省MCU的I/O资源,RS-485自动收发型收发器经常会被使用,但该类收发器或多或少会遇到一些应用问题,这一类问题该如何解决?本文将从工作原理为你揭晓。
自动收发电路简介及应用简析自动收发电路原理
常见的RS-485自动收发电路如图1所示,电路的逻辑真值表如表1所示。
- 当TXD为低电平时,DE和RE为高电平,RS-485收发器处于发送状态,AB处于低电平,即向其他节点发送低电平信号;当TXD由低电平变为高电平时,DE和RE变为低电平,RS-485收发器处于接收状态,此时AB引脚处于高阻状态,R3将B引脚拉至GND,R4将A引脚拉至VCC,此时AB为高电平,即向其他节点发送高电平信号。
由于TXD为高电平时,RS-485收发器处于接收状态,因此只需将TXD保持为高电平即可接收数据,即自动收发电路发送高电平时同时也是接收状态。
图1 RS-485自动收发示意图
表1 自动收发电路示意图
自动收发电路常见应用问题及解决方案
1. 通信速度较慢
RS-485自动收发通信速度较慢的原因主要有两个:
1.1 若使用图1所示的自动收发电路,三极管的关断时间较长(主要是由于三极管关断时的存储时间较长),图1中所示参数的三极管反相电路,开启延时时间如图2所示为10.2ns,关断延时时间如图3所示为1.14μs,因此若TXD发送低电平,DE&RE引脚较长时间后才会升至高电平,发送低电平的延时时间较长,图1所示电路发送低电平信号延时时间如图4所示为1.468μs。
图2 开启延时时间
图3 关断延时时间
图4 发送低电平信号延时
1.2 自动收发电路发送高电平是通过外部上下拉电阻驱动的,上升沿较缓慢,波形如图5所示,可以看出,发送高电平的上升沿较为缓慢,限制了高速通信的应用。
图5 发送高电平上升时间
2. 高波特率通信时存在通讯异常风险
如图6所示,TXD变为高电平,DE&RE引脚降为低电平,AB差分电压缓慢上升,由于此时RS-485收发器已经处于接收状态,在AB差分电压上升至RS-485收发器门限电平前RXD引脚会出现到一段时间的低电平信号,例如门限电平为-200mV~-50mV的收发器,AB差分电压上升至-50mV前RS-485收发器均可输出低电平,此低电平信号的时间与AB差分电压上升时间和RS-485收发器的接收延时有关。
由于串口一般是将每个位分成16份,检测中间的3份的电平信号从而确定此位的信号高低,因此若此低电平信号保持至每个位的信号检测时,则会使MCU接收到一个起始位,从而接收到错误的数据,因此这个问题同样限制了高速通信的应用并且降低了通信的可靠性。
图6 TXD发送高电平信号,RXD接收到一段低电平信号
针对此类问题,可选用ZLG致远电子的隔离RS-485收发器RSM485MG,该模块通信速度高达500kbps,并且不会出现发送高电平时接收到一段时间低电平信号的现象,通信波形如图7所示,极大地提高了通信可靠性。
隔离RS-485收发器 RSM485MG
• Mini小体积或标准模块化封装
• 低电磁辐射和高抗电磁干扰性
• 有效提升总线通信防护等级
参考价格:29元
图7 RSM485MG通信波形
在高静电或浪涌环境下,需要增加外围保护电路来保护RS-485收发器,若RS-485总线上所加保护电路的结电容较大,则会影响通信波形的质量甚至导致通信异常,使用高结电容保护电路的通信波形如图8所示,通信波形畸变严重,影响了通信质量。
图8 受高结电容影响的波形
针对此类问题,可选用ZLG致远电子RSM485MG,根据数据手册中提供的如所示的保护电路图9,可全面提升RS-485总线的防护能力,EMC防护能力上可以达到静电接触±8kV,浪涌共模±4kV,差模±2kV,符合绝大多数工业现场应用需求。
图9 低结电容保护电路
图10 增加保护电路后通信波形
4. 驱动能力较弱远距离通讯存在风险
自动收发电路发送高电平时总会有一段时间或全部时间是由上下拉电阻进行驱动的,若要提高发送高电平信号的驱动能力,需要使用较小阻值的上下拉电阻,由于RS-485收发器本身驱动能力的限制,上下拉电阻也不能选择太小,一般总线上所有节点的上下拉电阻并联值不能小于375欧,因此自动收发电路发送高电平信号的驱动能力非常有限。RS-485总线增加终端电阻后,发送高电平的AB差分电压是由终端电阻与上下拉电阻分压所得,所以此时发送的高电平信号幅值很低,因此使用自动收发RS-485收发器时,尽量不要使用终端电阻。
由于自动收发电路驱动能力有限,其应用的通信距离也受到了限制。使用长度为8m和200m的双绞线的通信波形如图11和图12所示,通信距离8m时,通信波形良好且通信正常,通信距离为200m时已经不能正常通信。因此在通信距离较长时,可在自动收发RS-485收发器外部加上下拉电阻和终端电阻来改善通信波形,增加后的通信波形如图13所示,波形得到很大的改善,可以正常通信,但发送高电平的信号幅值仍旧较低。
图11 通过8m双绞线通信波形
图12 通过200m双绞线通信波形
图13 外部加1k上下拉电阻且RS-485总线首尾加终端电阻
若对通信距离有较高要求,不推荐使用自动收发模块,可选用ZLG致远电子具有收发控制功能的隔离RS-485收发器RSM485ECHT或RSM3485ECHT,通信距离可达1200m。通信速度500kbp,通信距离1200m,总线首尾各加120欧终端电阻的通信波形如图14所示,此时RSM485ECHT发送信号的幅值可达2.6V,极大地提高了通信的可靠性。
图14 通信距离1200m,总线首尾加终端电阻,RSM485ECHT发送波形
总结
自动收发RS-485收发器可以节省MCU的 IO口,降低编写程序的工作量,但常规的自动收发电路具有通信速度慢,发送高电平信号时RXD会接收到一段低电平信号等问题,因此若需使用自动收发,推荐使用自动收发隔离RS-485收发器RSM485MG,通信的可靠性大大提高,配合RSM485MG推荐的低结电容保护电路,可以承受更高的静电和浪涌等级,提高产品的可靠性。在通信距离较长时,推荐使用增强型隔离RS-485收发器RSM485ECHT/RSM3485ECHT,通信距离可达1200m。
表2 产品推荐应用情况说明
隔离CAN收发器 RSM3485ECHT
• 3.15~3.45VDC
• 高速型
• 24mA静态电流
参考价格:29元