RS-485串行接口的基础教程

时间:2023-02-03
    RS-485
    RS-485 是一种串行接口标准,用于通过双绞线以相对较高的速度传输数据。它使用差分信号。RS-485 通信可以提供比 RS-232 更远的距离和更好的抗噪性。RS-485 通常用于只有一个发射器和多个接收器的配置中。RS-485 还具有灵活的多点功能,总线上可以有多个发射器(只能发射一个)。
    由于典型的 RS-485 系统没有单独的发送和接收线路,如果使用这种多点功能,RS-485 需要在协议中实施特殊的流量控制机制。也有通过 4 线接口使用 RS-485 接口的系统,其中一根线是从主机发送数据,另一对是多点数据线,将数据从从机传回主机。
    RS-485 标准仅定义了总线系统的电气特性。实际协议和通信速度(通常在 20 kbps 和 12 Mbps 之间)因应用程序而异。
    在一些基本应用中,使用类似于 RS-232 的异步信号(只是 RS-485 电信号电平),或者对其进行一些轻微的修改。例如像 Profibus 和 DMX-512 这样的系统就使用这种方法。在一些多点网络实现中,协议携带 9 位数据字,其中第九位(奇偶校验)位将每个字标识为地址或数据。还有 RS-485 网络使用的数据格式与“普通串行通信”完全不同。
    RS-485 接口用于很多控制网络应用(包括例如 Profibus)。RS-485 是一种总线型网络。它可用于连接到由一对线组成的总线的许多设备之间的双向通信。EIA-485-A(通常称为 RS485)是一种使用差分信号的平衡系统。信号电压在 2 条数据线之间(我们在这里称它们为 A 和 B)。A 和 B 线电压之间的差异是重要的:数据高(数字 1)表示引脚 B 的电压高于引脚 A,数据低(数字 0)表示引脚 A 的电压高于引脚 B . 通常,引脚 A 和 B 处于 +5 或 0 伏,但 RS485 限制为 +12 和 -7 伏。换句话说,数据通过双绞线传输。传输设备有一个连接到 A 和 B 线的 RS485 驱动器(发射器),传输使用相对于传输设备接地的 +5 和 0 伏电平。A 线和 B 线之间必须至少有 200mV 的电压差,才能可靠地检测到逻辑状态。在接收器侧,电线 A 和 B 需要相对于接收器 0V 参考电压在几伏内。RS485 接收器引脚相对于信号接地可以承受 -7V 至 +12V,但您必须连接信号接地作为参考,否则电压很容易浮动到此范围之外并炸毁 RS485 芯片(这在现实生活中经常发生,因为人们认为引脚 1 上的公共连接只是一个屏幕,不要连接它)。传输使用相对于传输设备接地的 +5 和 0 伏电平。A 线和 B 线之间必须至少有 200mV 的电压差,才能可靠地检测到逻辑状态。在接收器侧,电线 A 和 B 需要相对于接收器 0V 参考电压在几伏内。RS485 接收器引脚相对于信号接地可以承受 -7V 至 +12V,但您必须连接信号接地作为参考,否则电压很容易浮动到此范围之外并炸毁 RS485 芯片(这在现实生活中经常发生,因为人们认为引脚 1 上的公共连接只是一个屏幕,不要连接它)。传输使用相对于传输设备接地的 +5 和 0 伏电平。A 线和 B 线之间必须至少有 200mV 的电压差,才能可靠地检测到逻辑状态。在接收器侧,电线 A 和 B 需要相对于接收器 0V 参考电压在几伏内。RS485 接收器引脚相对于信号接地可以承受 -7V 至 +12V,但您必须连接信号接地作为参考,否则电压很容易浮动到此范围之外并炸毁 RS485 芯片(这在现实生活中经常发生,因为人们认为引脚 1 上的公共连接只是一个屏幕,不要连接它)。B 需要在相对于接收器 0V 参考的几伏内。RS485 接收器引脚相对于信号接地可以承受 -7V 至 +12V,但您必须连接信号接地作为参考,否则电压很容易浮动到此范围之外并炸毁 RS485 芯片(这在现实生活中经常发生,因为人们认为引脚 1 上的公共连接只是一个屏幕,不要连接它)。B 需要在相对于接收器 0V 参考的几伏内。RS485 接收器引脚相对于信号接地可以承受 -7V 至 +12V,但您必须连接信号接地作为参考,否则电压很容易浮动到此范围之外并炸毁 RS485 芯片(这在现实生活中经常发生,因为人们认为引脚 1 上的公共连接只是一个屏幕,不要连接它)。
    差分信号的辐射低于单端信号,并且在嘈杂的环境中工作得更好。如果差分对的两个互补信号完全平衡,则总线之间的间距决定了场抵消的程度。如果两个互补信号不是完全平衡的,则可达到的场抵消程度被限制为由差分对的共模平衡确定的值。由于大多数数字驱动器的共模平衡不是特别好,差分对通常在共模中比在差模中辐射更多的功率。在接收端,接收器设计用于消除共模信号,
    RS-485 总线电缆的两端应使用与所用介质(双绞线)的阻抗相匹配的合适的终端电阻进行端接。端接的目的是防止数据在电缆末端反射,建议为此端接使用 120 欧姆电阻。它与常用的双绞线通信电缆匹配良好(它们通常具有 100-140 欧姆的阻抗)。有了这个终端电阻,RS-485 系统可以很好地与阻抗为 100-120 欧姆的双绞线电缆(如典型的电话线、CAT5 线、一些屏蔽双绞线电缆)配合使用。如果网络上没有活动的驱动程序,可以使用故障安全电路强制线路进入已知的空闲状态。这个故障安全电路由一个下拉电阻器和一个上拉电阻器补充。当没有站正在传输时(在空闲期间),该补充将差模电压(即导体之间的电压)强制为明确定义的值。如果没有此电路,线路很可能会拾取噪声并错误地触发接收器,从而导致通信出现问题。
    通常构建 RS-485 系统,以便存在承载信号的差分对和一些接地(通常是电缆上的屏蔽层,也可以是电源接地)。通常需要接地以将公共电压保持在限制范围内(接收器中的信号必须在+12和-7V之间)并连接到接收器。从理论上讲,您可以通过平均线路电压(2 个电阻器和一个电容)然后减去 2.5V 为接收芯片重新创建虚拟 0V 参考来获得相同的效果,这将允许使用简单的 2 线,但我不知道任何人这样做。)
    请记住,RS-485 只是电气规范,可以以各种速度运行各种通信协议。在简单的应用程序中,您通常可以只使用在 rs-232 端口上使用的标准串行协议,就可以了。RS-232 比 RS-485 更容易受到噪声的影响,RS-485 仅可用于在比 RS-232 更远的距离上移动相同的协议。如果您在同一总线上有许多发射器和接收器,您有时可能需要简单的串行通信之外的其他东西来管理这种情况。
    在许多 RS-485 通信中,您只需获得一个 RS-232 到 RS-485 转换器,然后编写代码来打开串行端口并执行串行操作,就像使用 RS-232 一样。使用 RS-232 至 RS-422/485 转换器时,务必记住 RS-485 驱动器有时必须进入三态或成为接收器。通常来自 RS-232 电路的 RTS 信号用于控制转换器的状态。为了正常工作,来自 RS-232 设备的 RTS 信号必须在数据传输期间保持高电平,并保持低电平以允许转换器接收任何返回的消息。如果此信号不可用,则有必要使用可以单独根据接收到的数据控制数据方向的转换器。如果您使用自动进行数据方向处理的转换器,请不要将其驱动得太快。这些转换器需要一些时间来切换方向(某些此类转换器需要大约 1/2 - 3/4 秒来切换方向)。除非您承认这一点,否则您可能会遇到问题。转换器的切换速度因转换器而异,但通常几乎所有转换器都会在超过 9600 时遇到切换问题。一些具有自动切换功能的 232-485 转换器非常糟糕。一个简单的 RS-232 到 RS4xx 转换器不应进行任何切换。但是,您必须使用 4 根线(2 对)而不是 3 根(RX、TX 和 GND)才能实现全双工通信。如果有人希望切换,则必须以某种方式对这种行为进行编程;通过 RTS 和遵守 CTS 或通过定时循环或以任何其他方式。智能外部转换器计算起始位之后的位数,以找出(一个)停止位结束的时间,然后禁用发送器,如果在前一个字符的一个停止位之后没有立即出现新的起始位。转换器需要知道线速度和字符长度(数据位数、奇偶校验位和停止位),以便知道字符何时完成。通常这些由 DIL 开关设置。快速而肮脏(不符合要求)的替代方法是通过 RS-232 TX 数据流直接控制 RTS(传输启用)引脚。只有当要发送空格(“0”)位时,发送器才被激活。当 RS-232 Tx 引脚处于标记(“1”)位状态时,RS-485 发送器被禁用并进入三态。上拉/下拉电阻会将线路设置为标记状态,接收器将检测到“1”位。这个技巧当然不符合 RS-485 标准,但它适用于许多情况。如果 RTS pin 没有禁用接收器,您可能必须在软件中执行自己的回声消除。使用 Windows(标准 NT 或 W2K - 无需扩展或其他 hack),您可以将 com 端口设置为在传输某些内容时激活 RTS,并在没有传输任何内容时停用它。与传输结束相比,我没有测量 RTS 信号中的抖动,但它似乎适用于许多应用程序。在设计此类系统时,我特意让从属设备在回复之前等待几毫秒,以应对轻微的抖动,但不会超过 10 毫秒。为了使这项工作顺利进行,您需要一个特殊的 UART,其中 Tx 移位寄存器空状态位直接控制 RTS 信号,然后控制发送启用/Rx 禁用引脚,使用外部智能 RS-232/485 控制器或使用三-状态技巧,不符合标准。使用正确的 RS-485 卡和正确的硬件握手是简单的解决方案。
    RS485 规范的名称是标准 ANSI/TIA/EIA-485-A-1998 用于平衡数字多点系统的发生器和接收器的电气特性。EIA-485-A 兼容:ISO/IEC 8482:1993 信息技术 - 系统间的电信和信息交换 - 双绞线多点互连。
    RS485 应用选择的传输线是双绞线。有为此目的制造的包含直对的同轴电缆(双轴),但与双绞线相比,它们的柔韧性较差、体积更大且成本更高。许多电缆制造商提供范围广泛的 120W 电缆,专为 RS485 应用而设计。传输线中的损耗是直流导体损耗、交流损耗(集肤效应)、泄漏和电介质中交流损耗的复杂组合。在 Belden 9841 等优质聚乙烯电缆中,导体损耗和介电损耗具有相同的数量级,导致总损耗相对较低(例如 100 kHz 时为 0.2 dB / 100 英尺,100 kHz 时为 0.6 dB / 100 英尺MHz 和 10 MHz 时大约 2 dB / 100 英尺)。使用低损耗电缆时,速度高达 100 kbit/s 可以使用长达 4 千英尺的电缆距离,当速度增加时,电缆距离也会随之下降,在 1 Mbit/s 时为 200 英尺,在 2.5 Mbit/s 时约为 40 英尺。这些数字可用作为给定数据速率选择线路长度的指南。使用质量较低的 PVC 电缆,介质损耗因数可能会差 1000 倍。PVC 双绞线在高数据速率 (>100kBs) 下具有可怕的损耗,并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆工作时具有 100 欧姆的阻抗,并且在系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。在 1 Mbit/s 时为 200 英尺,在 2.5 Mbit/s 时为 40 英尺左右。这些数字可用作为给定数据速率选择线路长度的指南。使用质量较低的 PVC 电缆,介质损耗因数可能会差 1000 倍。PVC 双绞线在高数据速率 (>100kBs) 下具有可怕的损耗,并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆的阻抗为 100 欧姆,当系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。在 1 Mbit/s 时为 200 英尺,在 2.5 Mbit/s 时为 40 英尺左右。这些数字可用作为给定数据速率选择线路长度的指南。使用质量较低的 PVC 电缆,介质损耗因数可能会差 1000 倍。PVC 双绞线在高数据速率 (>100kBs) 下具有可怕的损耗,并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆工作时具有 100 欧姆的阻抗,并且在系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。这些数字可用作为给定数据速率选择线路长度的指南。使用质量较低的 PVC 电缆,介质损耗因数可能会差 1000 倍。PVC 双绞线在高数据速率 (>100kBs) 下具有可怕的损耗,并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆的阻抗为 100 欧姆,当系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。这些数字可用作为给定数据速率选择线路长度的指南。使用质量较低的 PVC 电缆,介质损耗因数可能会差 1000 倍。PVC 双绞线在高数据速率 (>100kBs) 下具有可怕的损耗,并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆的阻抗为 100 欧姆,当系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆工作时具有 100 欧姆的阻抗,并且在系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。并大大减少了电缆长度。然而,在低数据速率下,它们是可以接受的并且更经济。专为 LAN 应用和结构化布线系统设计的双绞线电缆(CAT5、CAT5e、CAT6)适用于 RS-485 系统。这些电缆的阻抗为 100 欧姆,当系统端接匹配 100 欧姆时工作良好(通常可以与原始 120 欧姆端接一起工作)。
    电缆的正确端接非常重要。如果电缆没有以它的特性阻抗端接,就会产生失真的波形。在严重的情况下,会出现失真(错误)数据和空值。如果电缆负载过大(远低于 120 欧姆终端),信号初会遇到电缆的浪涌阻抗并跳到初始幅度。信号沿着电缆传播,由于端接不当而异相反射。当反射信号返回到驱动器时??,振幅将降低。基座的宽度等于电缆电气长度的两倍(约 1.5ns/英尺)。如果电缆负载较轻(远高于 120 欧姆终端或根本没有终端),信号同相反射并增加驱动器输出的振幅。您可以通过从 RS-485 驱动器向电缆馈送合适的方波信号并使用示波器查看线路上的信号波形来测试端接质量。30kHz 的输入频率足以测试长达 4000 英尺的电缆。
    电缆终端电阻器对于防止不需要的反射是必要的,但它们会消耗功率。当电缆端接两个 120W 电阻器时,驱动器的典型差分输出电压为 2V,当没有数据发送时,会导致 33mA 的直流电流在电缆中流动。在不能容忍这种损耗的情况下,消除不需要的电流的一种方法是通过交流耦合终端电阻。耦合电容必须允许高频能量流向终端,但阻止直流和低频。高频和低频之间的分界线取决于电缆的长度。耦合电容器必须通过高于该线代表电十分之一波长的点的频率。因此,对于 120W 电缆,耦合电容器的值应设置为每英尺电缆长度 16.3pF。耦合电容器就位后,功率仅在信号边沿消耗,而不是在驱动器输出闲置在 1 或 0 状态时消耗。一个 100nF 的电容器足以用于长达 4000 英尺的线路。一旦数据速率上升,节电开始减少。大多数现实生活中的 RS-485 系统都是直流端接的。
    接地对于任何 RS485 网络的可靠运行都是必不可少的。它也是容易被忽视和不了解的。差分信号不需要信号接地即可通信,但接地连接还有另一个重要用途。对于高达数千英尺的距离,接地电压水平可能存在显着差异。RS-485 网络大多可以提供正确的数据传输,电压差为 -7 至 +12 伏。如果接地电压相差大于此值,数据可能会丢失并且端口可能会损坏。
    正确的方法是通过信号电缆屏蔽层进行信号接地。电缆中的信号接地连接将每个节点的信号接地连接到一个公共接地。使用屏蔽电缆并将屏蔽层连接到两端的信号接地是方法。它通常提供接地参考和 EMC 性能。
    通常,将 RS485 网络接地的简单方法是简单地使用“地球”作为返回路径。尽管这很简单,但这可能不是将您的应用接地的方法,因为从设备泄漏的电流、静电放电 (ESD) 和闪电都会驱动电流通过此路径,从而导致高噪声含量。噪声水平增加的原因是“大地”接地电阻相对较高。RS485 设计为在 +/- 7 伏的地电位差下正常运行。在正常操作期间,这通常不是问题,但是在故障情况或雷击期间,甚至在 ? 英里地面电位差可以达到数百伏,在某些情况下甚至可以达到数千伏。这很可能会导致 RS-485 网络上的一台或多台设备损坏或出现故障。如果信号地的差异超标,光隔离是的选择。
    许多 RS485 产品都受到 ESD 瞬变保护(例如,使用人体模型 100pF + 1.5kohm 时高达 2kV)。但是,某些应用程序需要更多保护。通常的保护方法是连接双向 TransZorb?从每个线路侧引脚接地。TransZorb 是一种硅瞬态电压抑制器,具有出色的浪涌处理能力、快速响应时间和低串联电阻。
上一篇:串行接口是 RS-232详细教程
下一篇:使用微型 LCD

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料