RS-485和RS-422电路设计指南

2024-04-09 13:52
文章标签 rs 指南 电路设计 485 422

本文主要是介绍RS-485和RS-422电路设计指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

0 引言

1 为何使用差分传输

2 RS485 和 RS422的对比

3 半双工 RS-485     

4 全双工 RS-485

5 端接

5.1 无端接

5.2 并联端接

5.3 交流终端

6 短截线(Stub) 长度

7 数据速率和电缆长度

8 故障安全偏置

8.1 接收机的差分输入阈值电压

8.2 使用故障保护电路

8.3 真正的故障安全接收器

9 隔离

10 瞬态过电压应力保护

11 总结


0 引言

        RS-485/RS-422在工业和仪器仪表应用(I&I)中被广泛采用,场景包括:过程控制网络、工业自动化、远程终端、建筑自动化、安全系统、电机控制、运动控制等等。

        TIA/EIA-485-A是电信行业使用最广泛的传输线标准,描述了RS-485接口的物理层,通常与更高级别的协议一起使用,如Profibus、Interbus、Modbus或BACnet。这允许在相对长的距离上进行稳健的数据传输。在TIA/EIA-422-B中描述了RS-422物理层。TIA/EIA-485-A标准与TIA/EIA/422-B中描述的标准相似,并且指定了TIA/EIA-485-A标准用于定义驱动器和接收器的值,使得其能够同时满足这两个标准。

1 为何使用差分传输

        TIA/EIA-485-A将该差分对中的两条线指定为A和B。如果在发送器的输入端上接收到逻辑高(DI=1),则驱动器输出端上的线A比线B的电压高(VOA>VOB)。如果在发送器的输入端接收到逻辑低(DI=0),则驱动器输出端上的线A比线B的电压低(VOA<VOB)。与此同时,如果接收器输入上的线路A比线路B的电压高(VIA-VIB>200 mV),则接收器输出为逻辑高(RO=1)。如果接收器输入上的线路B比线路A电压高(VIB-VIA>200 mV),则接收器输出为逻辑低(RO=0)。

        图1显示了差分信号接口电路由具有差分输出的驱动器和具有差分输入的接收器组成。该电路可以有效提高噪声抑制性能,因为耦合到系统中的噪声在两个信号上是等幅反向的,电磁场可以相互抵消,从而减少了系统的电磁干扰(EMI)。

图1 差分收发器

2 RS485 和 RS422的对比

        RS-422 被指定为单工多点标准,这意味着只有1个驱动器和最多10个接收器可以连接到同一总线。如果同一总线上需要连接多个驱动器,则建议使用RS-485。RS-485被指定为多点标准,这意味着在同一总线上最多可以连接32个收发器。图2显示了一个典型的RS-422接口电路。尽管RS-485电路可能看起来很相似,但主要区别在于总线架构。图3显示了一个典型的RS-485应用电路。

图2 典型的RS-422电路拓扑
图3 半双工的RS-485电路拓扑

 

        RS-422 标准规定了高达10Mbps的数据速率和高达4000英尺的线路长度,共模电压(VCM) 被定义为A和B端子相对于信号地的平均电压(VCM=(VIA+VIB)/2),RS-422接收器可以承受±7V的共模电压(VCM)。当所有 10个接收器都放置在总线上时,会出现最大负载条件。RS-422接收器的输入阻抗必须大于或等于4kΩ。

        RS-485接收器的输入阻抗规定为大于或等于12kΩ,该阻抗被定义为具有一个单位负载(UL), RS-485 规范规定了最多支持32个UL的能力。

        某些RS-485 接收器被指定为具有1/4UL 或1/8UL。指定具有1/4UL的接收器意味着接收器仅以标准 UL的1/4负载运行,因此,将可以扩展到拥有4倍数量的接收器连接到总线(4x32=128个节点)。类似地,如果RS-485接收器被指定为具有1/8UL,则接收器仅以标准 UL的1/8负载运行,因此,将可以扩展到拥有8倍数量的接收器连接到总线(8x32=256个节点)。有关UL和接收器输入阻抗的详细信息,请参见表1。

表1 接收器输入阻抗

        RS-485收发器的许多特性与RS-422相同。RS-485的共模电压范围扩展到-7V到+12 V,RS-485收发器必须在三态(高、地、与总线断开)时承受此共模电压范围。

        RS-485系统必须有一个驱动器,当特定节点不进行传输时,该节点上的驱动器可以与传输线断开。当DE=1时,RS-485收发器上的DE(RTS)引脚启用驱动器,当DE=0时,会使驱动器处于三态状态。这有效地断开了该驱动器与总线的连接,并允许其他节点通过同一双绞线进行传输。

        RS-485收发器还有一个RE引脚,用于启用/禁用接收器。DE和RE引脚的组合允许一些RS485收发器进入低功率关闭模式,这对于电池供电的应用非常重要。

3 半双工 RS-485     

        半双工RS-485链路在同一信号路径上具有多个驱动器和接收器,这就是为什么RS-485 收发器必须具有驱动器/接收器启用引脚,以便一次仅允许一个驱动器发送数据的原因。半双工总线配置见图3这种配置允许在两个方向上进行数据传输,但同一时间只能在一个方向上进行。

4 全双工 RS-485

        图4显示了在全双工配置中的RS-485总线的示例,这种配置允许主节点和从节点之间双向同时通信。

图4 全双工的RS485电路拓扑

 

5 端接

        在传输线中,有两条导线,一条用于将电流从驱动器传输到接收器,另一条用于将电流从接收器返回到驱动器。RS-485链路有点复杂,因为它们有两条信号线,并且共享一个终端和一个接地回路。

        为了实现可靠的RS-485 和RS-422通信,传输线中的反射尽可能小是至关重要的,这只能通过适当的电缆端接来完成。

        反射在信号转换期间和之后发生得非常快。在长线上,反射更有可能持续足够长的时间,导致接收器误读逻辑电平;在短线上,反射发生得更快,并且对接收到的逻辑电平没有影响。在RS-422应用中,总线上只有一个驱动器,如果要使用端接,则必须将其放置在靠近最后一个接收器的电缆末端;RS-485应用则需要在主节点和离主节点最远的从节点处端接。表2展示了不同端接技术的比较。

表2 不同端接技术的对比

5.1 无端接

        物理上长的导线具有较长的传播时间,而短的导线具有较短的传播时间。当传播时间相对于数据比特持续时间更短时,对信号质量的影响被最小化。如果信号上升时间是电缆传播延迟的四倍以上时,则不再将电缆视为传输线,因此,是否使用端接,取决于信号质量是否受到影响以及是否将电缆看作传输线。

5.2 并联端接

        当两个或多个驱动器共享一对导线时,链路的每一端都有一个等于电缆特性阻抗的终端电阻器。无论连接了多少节点,网络中的端接电阻器都不应超过两个。

图5 并联端接

        在半双工配置中,电缆的两端必须端接(见图3);在全双工配置中,只有主接收机和大多数远端从接收机需要端接。

5.3 交流终端

        AC端接用于减少空闲链路的功耗以及减少电压振铃,然而,负面影响是电缆长度和比特率的减少。电阻器和电容器可以串联放置在总线上(A和B之间),如图6所示。

图6 AC端接

         电容器CT的选择采用以下公式:

6 短截线(Stub) 长度

        短截线长度应远小于比特位周期所对应的频率波长的1/4

7 数据速率和电缆长度

        当使用高数据速率时,仅限于较短的电缆应用,当使用低数据速率时,可以使用更长的电缆。这是因为,电缆的直流电阻随着电缆中电压降的增加而增加,从而限制了低数据速率应用的电缆长度;当使用高数据速率时,电缆的交流效应限制了信号质量,并将电缆长度限制在短距离内。
对于RS-422,数据速率和电缆长度组合的示例从4000英尺时的 90kbps到15英尺时的10Mbps 不等。图7可以作为电缆长度与数据速率的保守设计指南。

图7 电缆长度与数据速率的关系

8 故障安全偏置

        图8显示了无故障安全偏置的主/从RS-485网络的配置。异步数据传输通常用于这样的配置中:起始位指示比特序列的开始,并且在从高到低的转变发生时被检测到。起始位后面跟着八个数据位和一个奇偶校验位。此序列后面跟着一个可以是一位或两位长的停止位。紧接着是另一个起始位。当发送最后一个字符时,线路应保持高位直到下一个起始位。当连接在总线上的收发器同时处于接收模式时,这会在多点应用中造成问题。这被称为总线空闲状态,在这种情况下,总线上的差分电压(VOA-VOB)为0V,接收器输出(RO)不受RS-485 标准的定义,因此,接收器输出可以产生随机数据,从而导致系统操作错误。

图8 没有故障安全偏置电路的RS485网络

8.1 接收机的差分输入阈值电压

        接收器的差分输入阈值电压(VTH)是接收器输入允许电压,在该电压下保证接收器输出的转变(低到高或高到低)。典型的RS-485收发器的差分输入阈值电压为±200mV,这意味着,当差分输入大于或等于200mV(VIA-VIB≥200mV)时,接收器输出保证为高(RO=1)。当差分输入小于或等于-200mV(VIA-VIB<-200mV)时,接收器输出保证为低(RO=0)。接收器的真值表见表3。

表3 差分接收器真值表

8.2 使用故障保护电路

        总线空闲状态所带来的随机数据错误接收问题可以通过将上拉电阻器和下拉电阻器的组合放置在总线上来解决,图9显示了偏置电路,计算R1和R2的示例如下所示(假设RT=120Ω):

图9 故障安全偏置电路

        根据上述公式,如果使用较低的R值,则可以在系统中获得更大的噪声裕度。有关总线状态和差分输入电压的图形表示,请参见图10。

图10 常规的差分输入电压和接收机输出状态

8.3 真正的故障安全接收器

        新一代RS-485收发器具有改进的功能,包括真正的故障安全接收器输入。这消除了对外置上拉/下拉电阻器的需求。如果指定收发器具有真正的故障保护功能,这意味着差分输入阈值电压(VTH)已从±200mV调整到-200mV--30mV(见图11)。

图11 输入阈值电压的变化

        在总线空闲状态下,VIA-VIB=0,因此大于-30mV,导致接收器输出高(RO=1)。这意味着,如果连接到总线的所有收发器都具有真正的故障安全功能,则始终定义接收器输出。有关总线状态和差分输入电压的图表,请参见图12。

图12 故障安全偏置下的差分输入电压和接收机输出状态

9 隔离

        在RS-485应用中,通常存在长链路,这会导致总线上不同节点的接地电位略有不同。这导致接地电流可能流过公共接地或接地线的最小电阻路径。如果使用相同的电气系统将所有节点的电源连接到相同的接地,则接地连接可以降低噪声,即便如此,电机、开关和其他电气噪声设备仍会将接地噪声引入系统。

        当不同的节点位于不同的建筑物中时,需要不同的电力系统,这可能会增加接地的阻抗。来自于本系统以外的接地电流将更有可能进入链路的地线,隔离链路可以减少甚至消除这些问题,如果不能保证系统中不同节点的接地电位在收发器的共模范围内,则电流隔离是一个完美的解决方案,同时,电流隔离允许信号流动,但阻止电流流动(见图13)。

图13 隔离允许信息流动,同时防止接地电流流动

        信号线和电源必须隔离,其中,电源隔离通过隔离的DC-DC电源实现,如图14所示,展示了使用ADM2485实现信号和电源隔离的示例。

图14 使用ADM2485进行信号和电源隔离

10 瞬态过电压应力保护

        在I&I应用中,雷击、电源波动、感应开关和静电放电会产生较大的瞬态电压,从而对RS-485收发器造成损坏,以下ESD 保护、EFT保护和浪涌保护规范与RS-485应用相关:

        IEC 61000-4-2 ESD protection

        IEC 61000-4-4 EFT protection

        IEC 61000-4-5 surge protection

        当使用诸如 TVS二极管之类的外部箝位器件时,可以进一步提高器件保护级别。TVS二极管通常用于保护硅器件,如RS-485收发器免受瞬态影响。通过PN结的低阻抗雪崩击穿将电压尖峰箝位到极限来实现保护。TVS二极管是理想的开路器件,TVS二极管可以被建模为在低于其击穿电压的情况下工作时与一些电容并联的大电阻,当产生瞬态并且浪涌电压大于 TVS 的击穿电压时,TVS 的电阻减小以将脉冲箝位到不会损坏其保护的设备的水平,钳位过程在一瞬间完成(<1ns),从而保证破坏电流从受保护装置及时分流(见图15)。

图15 瞬态电压抑制器

        RS-485应用中TVS的功能是将总线上的电压箝位到RS-485收发器的共模电压范围(-7V到+12V)。一些TVS 设备是专门为RS-485应用而设计的。如图15和图16所示,对于更高功率瞬态,可以通过在受保护设备和输入引脚之间添加电阻器RS (在10Ω和20Ω之间)来增加保护。

图16 TVS应用电路

11 总结

        本文主要讨论RS-485/RS-422在工业环境中的应用实现,虽然相比于其它的高速 IP,RS-485/RS-422 的传输速率不值一提,但是,其多变的拓扑结构、长距离的链路通信、共模噪声的抑制、ESD 的保护等方面,依然需要设计者多加关注。

这篇关于RS-485和RS-422电路设计指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888327

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke