首页 > 其他分享 >如何快速解决RS-485组网通讯异常?

如何快速解决RS-485组网通讯异常?

时间:2024-10-30 10:47:05浏览次数:5  
标签:AB 电阻 RS 收发器 电压 485 组网

RS-485总线的好处大家都知道,用隔离模块能让通信更稳定。但实际用的时候,可能会遇到通信不了、出错或者收发器坏掉的问题。本文将深度剖析RS-485组网问题。



应用问题

当出现通信错误或者不能通信时首先判断应用是否符合表1中的应用情况。

表1 RS-485总线应用情况

c2fd7f7f2ce38e7131e2fcfc91cc9477.jpeg

表1中三种应用情况分别属于终端电阻、上下拉电阻、控制脚以及逻辑输入侧电平的问题,下面对其进行详细分析。

1. 终端电阻问题

若RS-485总线上接有终端电阻,且所用RS-485收发器门限电平是±200mV,则可能出现表2中所述的异常现象。

表2 终端电阻导致的异常现象

2f70105b47ef0e0c37e737c461619f51.jpeg

b005905bb768013a22e1e3205b12f639.jpeg

图1 RS232/485双向转换器

终端电阻导致异常的原因: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,处于门限电平范围之内,有可能出现通信错误。


11840dce3830345e932a810d09915449.jpeg

图2 AB间加两个120Ω电阻,并增加RS-232/485双向转换器

01a19ca3526998573af6d195eecbf001.jpeg

图3 AB间只加两个120Ω电阻

解决方法主要有三种,具体如表3:

表3 终端电阻问题解决方法

bffa9385eef642c0a6c5c4f99c1f8a98.jpeg

2. 上下拉电阻问题
上下拉电阻并联值过小可能引起的现象如表4所示。

表4 上下拉电阻导致的异常现象74ceec1671db7f192cf8e2dce8bad2cd.jpeg

上述问题是所加上下拉电阻值较小导致的问题,超过了芯片可以驱动的负载能力。RSM485PCHT在AB之间加两个120Ω电阻后,所加上下拉电阻值与输出差分电压低电平的关系如表 5所示,当上下拉电阻并联值小于51Ω时,虽然芯片可以正常输出,但是输出信号已大于-200mV,此时可能出现通信错误或完全不能通信。上下拉电阻过小会导致RS-485收发器在功耗过大,发热严重,有可能导致收发器过热保护或者损坏,因此为了保证通信的可靠性,上下拉电阻阻值不宜过小,一般上拉或下拉电阻的并联值应大于375Ω。

表5 不同上下拉电阻值驱动电压

27691396aeca6ace4e9522c9cc6b573c.jpeg

3. 控制脚以及逻辑输入侧的问题

由于收发切换需要一定的延时,因此应在发送或者接收数据前增加一段延时(例如RSM485PCHT,需要增加至少25μs)来保证RS-485收发器已经处于发送或者接收状态。MCU电平应与RS-485收发器输入逻辑电平匹配,即MCU为5V逻辑电平,应使用供电为5V的RSM系列隔离模块。38c38b25887973a2becb01f514fc36e8.jpeg

隔离RS-485收发器 RSM485PCHT

• Mini 小体积或标准模块化封装

• 低电磁辐射和高磁干扰性

• 有效提升总线通信防护等级


波形测试方法

由于RS-485总线应用非常广泛,应用问题不仅仅只是上面几种,当排除上面的问题后,可以通过测试总线波形的方法来找到通信异常的位置,判断异常原因。

1. 检查RS-485收发器发送功能

在通信异常时,测量RS-485总线AB差分电压与模块TXD、RXD引脚之间波形的对应关系可以判断异常位置。使用图4所示的测试方法得到如图5所示波形,TXD为高电平时,A-B为高电平,TXD为低电平时,A-B为低电平,并且模块输出电平正常,可以判断出模块发送功能正常。


dd9bddba281de64e293f2db598ec929c.jpeg图4 测试发送功能是否正常

40ced17ae9e23a87dea9d5e0ad669427.jpeg

图5 发送功能测试正常波形

2. 检查RS-485收发器接收功能

使用图6所示的测试方法得到如图7所示波形,A-B为高电平时,RXD为高电平,A-B为低电平时,RXD为低电平,并且模块RXD输出电平正常,可以判断模块接收功能正常。


272c872f7a28e4e2210373e412121b72.jpeg

图6 测试接收功能是否正常

2a38a021baf1f1e6277c5d79a3bbed39.jpeg

图7 接收功能测试正常波形

3. 检查RS-485收发器控制引脚与TXD、RXD逻辑关系

使用如图8所示的方法分别测试TXD、RXD与CON逻辑关系,得到图9和图10所示波形,对于RSM485PCHT,发送或接收信号前,CON引脚应至少提前25μs置为低电平或高电平,并且数据发送或接收完成后再切换收发状态。


e5ac803a73f13f0f1556fda1e08a5550.jpeg

图8 TXD与CON测试

663939933675cbdef3d3ce38a11d9b5b.jpeg

图9 发送数据CON波形

bc0c348294d2775b192a66a1ad02fb4b.jpeg

图10 接收数据CON波形


收发器损坏

1. 模块AB引脚超过共模电压范围导致的损坏

RS-485收发器AB引脚的共模电压范围一般要求在-7V~+12V范围内,当超过此范围内时会造成芯片损坏。由于工业现场大地经常会流过瞬时大电流,若收发器RGND引脚连接不当,则AB引脚的共模电压会超过其可承受的共模电压范围,导致模块损坏。下面以RSM485PCHT为例进行分析。


8c15f5b1b8951cc6b44b71d482e4da38.jpeg

图11 RGND多点接大地示意图(错误连接)

当U1发送高电平时,以RSM485PCHT为例:

eeb1cd290c91d31b9e9c7af956fd4547.jpeg

由于两个模块都直接连接至机壳或者大地,当机壳或大地中通过较大电流时,在U1和U2的RGND引脚之间产生了VEARTH电压差,当U1向U2发送数据时,U2的A引脚的电压为:

295ced8f123c227d9ee4bb02ec471668.jpeg

由于VA1发送时为5V,当VEARTH超过7V时就有可能导致损坏,因此在实际应用中,节点之间的RGND可以通过屏蔽双绞线的屏蔽层进行连接,屏蔽层通过阻容单点连接至大地,如图12所示。

050fa68c7c177d92e1bdc498bcd90c08.jpeg

图12 RGND推荐连接

2. 高等级的静电和浪涌造成模块损坏

在应用环境中有较高等级的静电和浪涌时,如果只是单纯使用RS-485收发器芯片或者模块,可能会导致模块损坏,此时就需要增加外围保护电路来保护收发器。但保护电路需要可靠地接地才能将静电和浪涌能量泄放。下面以进行共模浪涌测试为例,如图13所示,若保护电路未连接至大地,则浪涌能量(红色部分)通过隔离模块进行释放,较高的浪涌等级容易导致模块损坏;当保护电路接大地时,如图14所示,浪涌能量首先通过GDT泄放到大地,然后通过TVS和电容泄放,剩余很少的能量才会通过模块释放,可以起到保护的作用。

de1ef6ad72445208fd82ebbe17e989be.jpeg

图13 保护电路未接大地

5e3e6214c7bdfd9b1db5718e4c00438f.jpeg

图14 保护电路接大地

标签:AB,电阻,RS,收发器,电压,485,组网
From: https://blog.csdn.net/ZLG_zhiyuan/article/details/143357585

相关文章

  • How to use js to parse a url string to a url object All In One
    HowtousejstoparseaurlstringtoaurlobjectAllInOne如何利用js将url字符串解析为url对象demos//consturl=globalThis.window.location.href;//consturl=window.location.href;constautoConvertPageToRepo=(page=``)=>{if(!globalThis.wi......
  • 地平线 3D 目标检测 bev_sparse 参考算法-V1.0
    该示例为参考算法,仅作为在征程6上模型部署的设计参考,非量产算法01简介在自动驾驶视觉感知系统中,为了获得环绕车辆范围的感知结果,通常需要融合多摄像头的感知结果。目前更加主流的感知架构则是选择在特征层面进行多摄像头融合。其中比较有代表性的路线就是这两年很火的BE......
  • GPU 学习笔记三:GPU多机多卡组网和拓扑结构分析(基于数据中心分析)
    文章目录一、概述二、数据中心(DC)2.1数据中心简介2.2传统数据中心的网络模型2.3脊叶网络模型(Spine-Leaf)2.4Facebook的Fabric网络架构三、基于数据中心的多机多卡拓扑3.1Spine-Leaf架构网络规模测算方法3.2NVIDIA多机多卡组网防止遗忘和后续翻找的麻烦,记录下平......
  • Follow + WeWe RSS 订阅微信公众号
    使用https://github.com/cooderl/wewe-rss方案使用本地部署,但订阅后只有http,但在Follow上不能使用,方案排除使用rsshub,抓不到使用huggingface部署wewe-rss,可以导出https,能用执行使用Railway的免费额度部署mysql数据库访问https://railway.app/new,选择MySQL找到MY......
  • No.1 Rstudio初认识
    一、Rstudio的安装在安装Rstudio之前先安装R语言。可以同时安装多个R语言的版本。Rstudio是R语言专门的编译环境,目前也支持Python语言的执行。二、Rstudio的基本设置1.界面a:脚本文件区域b:控制台c:环境变量,历史记录d:文件系统、绘图、包,帮助 2.常规设置 代......
  • 【Omniverse Kit扩展开发】Omniverse Kit的应用创建新扩展及多人共享
    1、查看OmniverseKit扩展打开扩展管理器界面:Window->Extensions:此窗口显示所有找到的扩展,包括已启用、已禁用的扩展,以及本地和远程扩展。2、创建新的OminverseKit扩展项目按左上角的"+"按钮:将提示你选择要在其中创建项目的空文件夹。可以通过右键单击在此对话框中......
  • ImportError: DLL load failed while importing _errors: The specified procedure co
    importh5pyImportError:DLLloadfailedwhileimporting_errors:Thespecifiedprocedurecouldnotbefound. ImportError                              Traceback(mostrecentcalllast)CellIn[2],line1---->1importh5pyFile......
  • 【java】RSA前后端互通
    后端importjavax.crypto.Cipher;importjava.security.KeyFactory;importjava.security.PrivateKey;importjava.security.PublicKey;importjava.security.spec.PKCS8EncodedKeySpec;importjava.security.spec.X509EncodedKeySpec;importjava.util.Base64;publi......
  • DRF-Serializers序列化器组件源码分析及改编su
    1.源码分析注意:以下代码片段为方便理解已进行简化,只保留了与序列化功能相关的代码序列化的源码中涉及到了元类的概念,我在这里简单说明一下:元类(metaclass)是一个高级概念,用于定义类的创建行为。简单来说,元类是创建类的类,它决定了类的创建方式和行为。在Python中一切皆为对象,包......
  • Windows下使用PowerShell一键SVN迁移至Git脚本
    目录Git和SVN区别Git的服务端与客户端介绍Git客户端与SVN客户端选择迁移前的准备工作迁移脚本本脚本主要参考以下教程Git和SVN区别SVN是集中式的,只有中央仓库。Git是分布式的,有本地和远程两仓库SVN是按照文件存储,允许比较混乱的目录的目录结构,如果迁移前,不整理目录,会......