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

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

使用条件变量实现线程同步:C++实战指南

使用条件变量实现线程同步:C++实战指南 在多线程编程中,线程同步是确保程序正确性和稳定性的关键。条件变量(condition variable)是一种强大的同步原语,用于在线程之间进行协调,避免数据竞争和死锁。本文将详细介绍如何在C++中使用条件变量实现线程同步,并提供完整的代码示例和详细的解释。 什么是条件变量? 条件变量是一种同步机制,允许线程在某个条件满足之前进入等待状态,并在条件满

Java 入门指南:Java 并发编程 —— 并发容器 ConcurrentLinkedDeque

文章目录 ConcurrentLinkedDeque特点构造方法常用方法使用示例注意事项 ConcurrentLinkedDeque ConcurrentLinkedDeque 是 Java 并发工具包(java.util.concurrent 包)中的一个线程安全的双端队列(Deque)实现,实现了 Deque 接口。它使用了链表结构,并且针对高并发环境进行了优化,非常适合

使用Nginx部署前端Vue项目的详细指南

在本文中,我们将详细介绍如何使用Nginx部署一个前端Vue项目。此过程涵盖Vue项目的构建、Nginx的安装与配置、以及最后的项目启动。下面是步骤的详细说明。 步骤 1: 准备你的Vue项目 确保你已经创建并构建了一个Vue项目。如果你尚未创建Vue项目,可以使用以下命令创建一个: # 安装Vue CLInpm install -g @vue/cli# 创建一个新的Vue项目vue c

入门指南 | Datavines 安装部署篇

摘要:本文主要介绍基于源码部署 Datavines 和执行检查作业,内容主要分为以下几个部分: 平台介绍快速部署运行数据质量检查作业 Datavines 的目标是成为更好的数据可观测性领域的开源项目,为更多的用户去解决元数据管理和数据质量管理中遇到的问题。在此我们真诚欢迎更多的贡献者参与到社区建设中来,和我们一起成长,携手共建更好的社区。 https://github.com/dat

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

LCP 485. 最大连续 1 的个数[lleetcode -11]

从今天起,我们的算法开始研究搜索,首先就是DFS深度优先搜索(depth-first seach,DFS)在搜索到一个新的节点时,立即对该新节点进行遍 历;因此遍历需要用先入后出的栈来实现,也可以通过与栈等价的递归来实现。对于树结构而言, 由于总是对新节点调用遍历,因此看起来是向着“深”的方向前进。 下面是一个一维的DFS算法 LCP 485. 最大连续 1 的个数 给定一个二进制数组 nu