RS485通信总线详解

news2024/11/23 21:42:07

RS485 总线详解

RS-485 是美国电子工业协会(EIA)在 1983 年批准了一个新的平衡传输标准(Balanced Transmission Standard)也称作差分,EIA 刚开始将 RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,将 RS 改为 EIA/TIA,所以目前该标准的名称为 TIA-485,但目前工程师们依旧习惯继续沿用 RS-485 作为该总线标准的名称。

1. 前言

RS-485 属于电气标准,该标准定义了接口的物理层标准例如电压,阻抗等等,而不对软件协议,通信时序,通信数据给予定义。而是由用户或通用软件协议来定义。目前可以使用 RS-485 作为物理层的通用标准协议(纯软件协议)有工业 HART 总线,Modbus 协议和 Profibus DP 协议。

2. 电气特性

(1) RS485 有两线制和四线制两种接线,四线制只能实现点对点的通信方式(一个主机连接一个从机),现很少采用,多采用的是两线制接线(A 线,B 线)方式,这种接线方式为总线式拓扑结构,总线多采用屏蔽双绞线传输数据,在同一总线上最多可以挂接 32 个节点,即一个主机可以连接多个从机。

(2) RS-485 以两线间的电压差为 +2V 到 +6V 表示逻辑 1 ,以两线间的电压差为 -2V 到 -6V 表示逻辑 0 。接口信号电平比 RS-232 更低(RS232 为 -15V 到 +15V),所以相比 RS-232 更不易损坏接口芯片,同时 RS-485 电平与 TTL 电平兼容,可方便与 TTL 电路连接。

(3) RS-485 采用差分信号传输,减少了潜在的电磁干扰 EMI,差分信号的值很大程度上与 GND 的精确值无关,所以能够抵抗电源的干扰。

(4) 符合 RS-485 标准的驱动器能够提供不小于 1.5V 的差分输出(在 54 Ohm 负载下),RS-485 最小差分电压容限 200mV,也就是说接收端在差分电压低于 200mV 时就无法正确识别逻辑 0和逻辑 1

请添加图片描述
(5) RS-485 的数据最高传输速率为 10Mbps ,即 每秒可传输 10M 位数据,而 RS-232 传输速率仅为 20Kbps。

(6) RS-485 理论上最大可传输距离为 3000米,在实际操作中极限距离仅达 1200 米。

(7) RS-485 仅支持半双工通信,因为通信双方需要共用一对差分信号线传输数据,但是一对差分信号线无法同时传输双方的数据,因此由于通信线路制约无法支持全双工通信。

2.1 理解单端/差分传输

(1) 单端传输(非平衡传输):在传输过程中,使用一根导线,在这根导线上传输对地(GND)之间的电位差,利用电位差来表示数据逻辑 01,传输的信号叫单端信号。

(2) 差分传输(平衡传输):差分传输是使用两根线进行传输信号,这两根线上的信号振幅相等,相位相差 180 度,极性相反。在这两根线上传输的信号就是差分信号,信号接收端比较这两个信号的电位差来判断发送端发送数据的逻辑 0 和逻辑 1

2.2 差分传输抗干扰原理

单端传输方式,因为地并不会被干扰,而输出信号产生干扰后,输出信号与地的电位差发生变化,导致污染原始信号,噪声最终与输出信号共同输出。

请添加图片描述
差分传输方式,则源端发出的 + 信号与 - 信号的相位是相反的,而对于共模噪声而言在 +/- 两条线上都会存在,理想情况噪声是等幅同相的,而接收端,相当于一个减法器,有用信号由于相位相反则经过减法器仍然保留,而噪声则会被抵消。

请添加图片描述

3. 时序

RS-485 在时序上非常简单,没有诸如 SPII2C 的同步时钟线,由于是差分数据线所以不需要我们编写程序以控制时序,在时序上没有太多可解读的内容,但是我们还是需要了解一下 RS-485 的时序,如下图。

请添加图片描述不过差分数据线可以使用双通道示波器解读数据,例如示波器通道一接入 RS-485 的 A 线,通道二接入 RS-485 的 B 线,开启示波器的 Math 功能使用通道一减去通道二即可得到实际的数据波形。

4. 收发器

在 RS485 通信网络中,每个总线节点设备通常会使用 RS-485 收发器来转换节点设备的 TTL 逻辑电平到 RS-485 差分电平。

RS-485 通信需要结合使用单片机,DSP 处理器的 UART 接口,通过 UART 将数据发送到 RS-485 收发器,再由 RS-485 对数据电平进行转换并发送给数据接收端。

如果使用 FPGA 使用 RS-485 则需要实现一个支持串口收发的 IP 模块。甚至也可以使用 GPIO 模拟 UART 时序与 RS-485 收发器通信,只不过这需要占用大量 CPU 资源以实现底层数据位的收发。

5. 匹配电阻

在设备少,距离短的情况下即使不使用终端负载电阻整个网络也能很好的工作,但伴随着距离的递增通信质量,性能逐渐降低。

理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国 MAXIM 公司提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的 3 倍以上时就可以不加匹配电阻。

一般终端匹配采用终端电阻方法,RS-485 应在总线电缆的开始和末端都并接终端电阻。终端电阻在 RS-485 网络中取 120 Ohm。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100Ohm-120Ohm。

终端匹配方法简单有效,唯一的缺点是匹配电阻需要消耗较大功率,对于功耗限制比较严格的系统不太适用。另外一种比较省电的匹配方式是 RC 匹配。利用一只电容 C 隔断直流成分可以节省大部分功率。但电容 C 的取值是个难点,需要在功耗和匹配质量间进行折中。还有一种采用二极管的匹配方法,这种方案虽未实现真正的匹配,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的,节能效果显著。

6. 接口设计

RS-485 收发器是大部分芯片公司都涉及的产品,比如 TI,Microchip 等厂商都有,选择接口芯片的时候需要考虑芯片的供电电压输入逻辑是否与使用的处理器,DSP的电平兼容,另外 RS-485 收发器接收电路的阻抗是否是符合 RS-485 标准输入阻抗。

接口电路设计的时候还需要考虑 EMC 要求,在一些设备现场真的有很强的干扰,比如电网上有大功率电机等感性负载运行,这些负载可能干扰设备,另外也可能存在空间辐射干扰,这时候可以考虑采用屏蔽双绞线。

7. 隔离设计

在很多工业现场可能有大电流开关设备,电机感性设备等,噪声很有可能通过通讯的接地耦合进设备。尤其在工业设备中,一般都会设计成带隔离的接口电路。为了降低接地噪声要设计隔离接口,可以考虑选择具有隔离功能的芯片,比如 ADI 的

iCoupler 技术产品 ADM2481,ADM2485。当然也可以采用光耦加普通 RS-485 收发器的方式。唯一需要注意的是需要设计一个带隔离的电源,给隔离两侧电路分别供电。

8. ESD 保护

在工业应用中雷击,电源波动,静电放电都会产生较大的瞬变电压并对 RS-485 收发器造成损害,所以需要在 RS-485 端口处设置保护电路。

保护电路可以使用外部钳位器件(例如 TVS 二极管)。TVS 将总线上的电压钳位到 RS-485 收发器的共模电压范围(-7V–12V)。对于更高的电压瞬变,可在受保护器件与输入引脚之间串联电阻(10-20 Ohm)来加强保护。

9. 共地问题

由于 RS-485 采用 差分 的方式传输,因此抗干扰能力更强,通信距离也比 RS-232 更远。RS-485 通信一般是半双工的,仅需要 2 根信号线,如果是全双工的,则需要 4 根信号线。

实际上 RS485 需要三根线分别是 A,B 和 GND,GND 用于通信双方设备接地。但由于 RS485 使用差分传输,所以一般会认为 GND 不重要,经常省略甚至使用两芯线或者用视频线来传输 RS485 信号。虽然如果不接地线,在很多场合是能正常工作的,但可能会产生以下两个问题:

(1) 共模干扰问题: RS-485 接口采用差分方式传输信号,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差即可。但是 RS-485 收发器有一定的共模电压范围,一般电压范围为 -7V 到 +12V,只有满足上述条件,整个网络才能正常工作。如果总线上有很多的节点,当网络线路中共模电压超出该范围就会影响通信的稳定性。

(2) EMI 电磁兼容性问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有信号地这样低阻的返回通道,信号中的共模部分就会以辐射的形式返回源端,总线会像天线一样向外辐射电磁波。

以上就是关于 RS-485 的技术细节,在实际硬件接口设计需要 RS-485 收发器配合使用,常用的 RS-485 收发器有 SN75176BDR,其原理图如下:

请添加图片描述实际使用时注意设计接口保护电路,防止损坏收发芯片。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文解决Rust字符串:String,str,String,str,CString,CStr

一、str和&str和String的区别 1.存放位置,可变不可变: str来源于Rust本身的数据类型,而String类型来自于标准库。首先看一下str 和 String之间的区别:String是一个可变的、堆上分配的UTF-8的字节缓冲区。而str是一个不可变的…

前端零基础入门-002-集成开发环境

本篇目标 了解市面上常用的前端集成开发环境(ide)掌握 HBuiberX 的使用:下载安装,新建项目、网页、运行网页。 内容摘要 本篇介绍了市面上流行的几款前端集成开发环境(ide),并介绍了 Hbuilde…

华为OD机试 - 按索引范围翻转文章片段(Java) | 机试题算法思路 【2023】

使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12201821.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 按索引范围翻转文章…

【黄啊码】什么是ElasticSearch?它会替代MySQL成为主流吗?如何优化?TP5如何接入ElasticSearch?

什么是ElasticSearch? Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析 引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。 Elasticsearch 的实现原理主要分…

「TCG 规范解读」第8章 TPM工作组 TPM 1.2中 SHA1的使用

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

Windows Server 2008 R2安装onlyoffice【docker】

目录 前言 准备工作 安装docker 安装onlyoffice 常见问题 前言 目前docker for windows只能在windows10/11上安装,其他的windows版本只能使用Docker Toolbox来安装,使用该工具安装的docker其实是借助了Oracle VM VirtualBox虚拟机来运行的&a…

简历的专业技能怎么写?排版需要注意的事项

一、简历的专业技能怎么写? 首先,先问一下你自己会什么,然后看看你意向的公司需要什么。一般HR可能并不太懂技术,所以他在筛选简历的时候可能就盯着你专业技能的关键词来看。对于公司有要求而你不会的技能,你可以花几 天时间学习一下,然后在简历上可以写上自己了解这个技…

使用sshdo限制incoming ssh只能执行指定命令

前言系统管理员经常面临一个问题,如何将用户的incoming ssh限制在一个命令白名单里,达到安全的目的。本文介绍sshdo工具,来实现该功能。仓库地址https://github.com/wanlinwang/sshdo安装tar xzf sshdo-1.1.tar.gz #如果是直接clone仓库则无需…

JVM学习笔记六:运行时数据区之堆

目录 概述 堆空间内部结构 JDK7版本 JDK8版本 堆空间的内存划分 堆空间大小设置参数 概述 Java堆是虚拟机所管理的内存中最大的一块,其在JVM启动时即被创建,并且空间大小也被确定(这里是不考虑Java8之后以本地内存来实现的元空间&…

连续时间信号与离散时间信号

前言 《信号与系统》是一门很难的课,也是许多学校考研要考的专业课,由于每周只有两节课,所以每次上完都要及时的去复习,这里参考的教材是奥本海姆著作,刘海棠译,北京:电子工业出版社&#xff0…

实践数据湖iceberg 第四十课 iceberg的sql运维方式(合并文件、合并元数据、清理历史快照)

系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql方式从kafka读数据到iceberg 实践数据湖iceberg 第四课 在sqlclient中,以sql方式从kafka读数据到…

只因小黑子:SVG

小黑子的SVG复习SFV画布1. 初始SVG2. SVG绘制矩形、圆形和椭圆形2.1 rect 矩形2.2 circle 圆形2.3 ellipse 椭圆4. SVG绘制线条、多边形和多线条4.1 line 线条4.2 polygon 多边形4.3 polyline 多线条5. SVG绘制文本 text6. SVG绘制路径 path7. SVG描边属性8. SVG 模糊和阴影效果…

MySQL安装配置教程(超级详细、保姆级)

一、 下载MySQL Mysql官网下载地址:https://downloads.mysql.com/archives/installer/ 选择想要安装的版本,点击Download下载 本篇文章选择的是5.7.31版本 二、 安装MySQL 选择设置类型 双击运行mysql-installer-community-5.7.31.0.msi,…

车载以太网 - 测试用例设计 - 时间参数 - 11

前面已经介绍过DoIP相关的时间参数信息,然而对于时间参数信息相关的测试用例该如何设计呢?个人认为这是用例中最好设计的一类,这类的用例只需要按照定义去设计写测试用例即可,难的是自动化脚本开发和手动测试执行。毕竟时间参数一般都是毫秒级的验证,就算是秒级的我们也很…

【项目管理】对管理的认识与思考

在进入职场一段时间后,我们不免会对管理有一些接触,可能会自己带团队、可能会到管理岗位等等;做管理重要的就是对于不同层级的管理。 管理是一门艺术,在谈到管理时,我们首先想到的应该是管人、带团队或者是一个部门或公…

matplotlib学习笔记(持续更新中…)

目录 1. 安装,导入 2. figure,axes(图形,坐标图形) 2.1 figure对象 2.2 axes对象 2.3 代码演示 2.3 subplot() 方法 3. 图表的导出 3.1 savefig() 方法 3.2 代码演示 1. 安装,导入 pip install m…

Python —— Windows10下配置Pytorch环境(完整流程)

最终效果 配置流程 一、下载安装显卡驱动 1、查看设备管理器显卡是否为NVIDIA,并确定显卡型号 2、根据显卡型号然后NVIDIA官网下载安装显卡驱动 下载完成后,双击一步一步执行即可。 3、安装完成驱动后,打开cmd终端输入"nvidia-smi"…

JVM学习笔记五:运行时数据区之本地方法栈

目录 概述 本地方法(Native Method) 使用本地方法的原因 本地方法栈 执行流程 概述 如果要了解本地方法栈的作用,首先需要了解本地方法库和本地方法接口。 本地方法接口是Java代码调用其他非Java代码的接口,本地方法库是其他…

观看课程领奖品!Imagination中国区技术总监全面解读 IMG DXT GPU

此前,我们发布了一系列关于 IMG DXT GPU 的介绍,为了让更多读者了解其背后的技术及应用方向,我们特别邀请 Imagination 中国区技术总监艾克录制全新在线课程,为大家全面解读IMG DXT GPU。 点击这里,马上注册观看&…

函数的栈帧的创建和销毁

文章目录本章主题:一.什么是函数栈帧1.什么是栈2.什么是函数栈帧二.理解函数栈帧能解决什么问题呢?三.函数栈帧的创建和销毁解析1.预备知识(1) 认识相关寄存器和汇编指令(2)栈帧空间的维护2.解析函数栈帧的…