【资料分享】RS-485 串行接口说明

news2024/11/26 2:43:48

面对大量可用的串行接口,可能很难理解它们之间的差异以及何时使用它们。正如我最喜欢的工程学教授经常说的那样,“标准的美妙之处在于有很多标准可供选择。” 今天的编码器比以往任何时候都更智能、更先进,要求工程师放弃更简单的正交增量传感器并采用带串行接口的高速绝对值编码器。对于工业领域的应用,并非所有串行接口都是一样的。符合高速和工业稳健性的要求,RS-485 串行接口已成为广泛实施的接口旋转编码器和其他运动控制设备。

什么是 RS-485?

RS-485 是一种工业规范,它定义了电气设备点对点通信的电气接口和物理层。RS-485 标准允许在电气噪声环境中进行长距离布线,并且可以支持同一总线上的多个设备。
在这里插入图片描述

何时、为何以及在何处使用 RS-485?

RS-485 早在 1998 年标准创建时就已广泛用于计算机自动化系统。标准允许多点(同一总线上的多个设备)和长电缆长度,很容易了解其在工业和自动化领域的频繁使用。RS-485 也可以在剧院应用中找到,在这些应用中,许多设备分布在一个巨大的空间中。
此外,RS-485 标准提供的抗噪能力使该接口非常通用。工程师们不仅将它用于长距离布线,而且还将其应用到汽车行业等应用中,在这些应用中,不确定最终应用会遇到什么样的噪声。RS-485 能够在高速、长电缆、电气噪声环境以及同一总线上的多个设备上使用,这使其成为大多数需要串行接口的应用的智能实现。

RS-485 标准

RS-485,也称为 TIA-485 或 EIA-485,是定义通信协议的驱动器和接收器的电气特性的标准。开放系统互连 (OSI) 模型试图描述通信系统的各个层,从最终应用程序到电气层,最后到物理层,图 1。
在这里插入图片描述

OSI 模型的物理层

OSI 模型的物理层负责在设备和物理传输介质之间传输原始数据。它处理电信号到数字数据的转换,同时定义电压、时序、数据速率等。
RS-485 使用两条信号线,“A”和“B”,它们必须是平衡的和差分的。
平衡信号是在双绞线电缆中共用一对的两条线,每条线的阻抗相同。除了线路的匹配阻抗外,接收器和发射器的阻抗也必须匹配。
图 2 显示了一个典型的多点 RS-485 网络,其中每个设备都有一个差分 RS-485 收发器,设备之间的链路由双绞线和终端电阻组成。
请注意,有多种拓扑结构可用于布置设备,因为并非所有网络都是平等创建的,端接要求以及设备布置会有所不同。例如,在下面的图 2 中,端接仅用于电缆的开头和结尾。
在这里插入图片描述
平衡布线可在使用差分信号时降低噪声。这些信号“A”和“B”称为差分对;其中一个信号与原始信号匹配,而另一个则完全反转,这就是为什么它有时被称为互补信号的原因。
在单端接口中,接收器将信号参考到地,并根据预定电压电平(这些被称为逻辑电平,因为它们确定信号是逻辑高电平还是逻辑低电平)解析信号状态。然而,在电压趋于下降和转换率下降的长电缆距离上,信号错误经常发生。
在差分应用中,主机生成原始单端信号,然后发送到差分发送器。该发射器创建差分对以通过电缆发送出去。生成两个信号后,接收器不再将电压电平参考到地,而是将信号相互参考。
这意味着接收器始终在寻找差异,而不是寻找特定的电压水平两个信号之间。然后,差分接收器将这对信号重构回一个单端信号,主机设备可以使用主机所需的适当逻辑电平来解释该信号,图 3。
这种类型的接口还允许不同电压电平的设备运行通过差分收发器之间的通信方式在一起。所有这些共同作用,克服了单端应用在长距离布线时可能发生的信号衰减。
在这里插入图片描述
信号衰减并不是长布线距离出现的唯一问题。系统内的布线越长,电气噪声和干扰进入电缆并最终进入电气系统的可能性就越大。
当噪声耦合到电缆上时,它表现为不同幅度的电压,但使用平衡双绞线电缆的好处是噪声在每条线路上均等地耦合到电缆上。例如,正 1 伏尖峰将导致 A 上 +1 V,B 上 +1 V。由于差分接收器将信号相互减去以获得重建信号,因此它会忽略两条线上同样显示的噪声,图 4。差分接收器忽略两条信号线上相同电压的能力称为共模抑制
在这里插入图片描述
RS-485 的其他主要物理层优势之一是信号电压规范。RS-485 不要求使用特定的总线电压,而是指定了所需的最小差分电压,即信号 A 和 B 电压之间的差值。
总线要求接收器的最小差分电压为 +/- 200 mV,并且通常所有 RS-485 设备将具有相同的输入电压范围,尽管在不同电压下传输。这意味着任何 RS-485 设备都能够接收 -7 至 12 V 的电压范围,因此工程师可以设计具有该范围内任何传输电压的主机系统。这允许设计人员使用他们现有的电路板电压创建 RS-485 系统。
话虽如此,重要的是要验证产品规格以确保该设备支持标准的全电压范围。例如,CUI Devices 的 RS-485 编码器在板上使用 3.3 V,因此他们使用 RS-485 3.3 V 发射器。但是,它们还具有 0 到 12 V 的输入容限。这允许它们在 0 到 12 V 之间的多个不同传输电压下共享同一条 RS-485 总线,如果可以满足 +/- 200 mV 的最小差分电压,则不会出现问题在接收器和发射器上。
这一点尤其重要,因为随着电缆长度的增加,信号线上的电压降也会增加。主机设备可以使用 +/- 1 V 的差分电压进行传输,但在较长的电缆长度上,该电压可能会降低到 +/- 200 mV,这对于 RS-485 来说仍然是完全可以接受的,图 5。
在这里插入图片描述
在这里插入图片描述

OSI 模型的数据链路层

RS-485 是一种双工通信系统,同一总线上的多个设备可以双向通信。RS-485 最常用作半双工,如上图所示,只有一条通信线(“A”和“B”成对)。
在半双工中,设备轮流使用同一线路,主机将在该线路上声明对总线的控制并发送命令,所有其他设备都在监听。预期的接收者将监听其地址,然后该设备将断言控制权并作出回应。
相反,在全双工系统中,例如串行外设接口 (SPI)或通用异步收发器 (UART),主机和从属设备可以使用专用输入和输出线同时通信。
在数据层,RS-485 通常使用 UART 进行串行通信,其中主机 UART 以全双工方式驱动和接收串行通信。它连接到构成物理层的 RS-485 差分收发器,并将信号转换为半双工差分格式,以便在 RS-485 总线上使用。
然后主机将通过 UART 与 RS-485 通信,它会告诉收发器何时在发送和接收之间切换。从属设备也将以同样的方式使用它们的 UART。
具有专用传输和接收线路的 UART 允许它以全双工、半双工甚至单工方式运行,这意味着数据只能在一条线路上进出。
由于 RS-485 通常是半双工的,因此连接到它的 UART 也将以半双工方式运行。
在这里插入图片描述
UART 接口是异步的,这意味着通信不包含时钟。主机和从属设备必须使用它们自己的内部时钟,并且两个设备都必须知道将以何种时钟速率传输数据。这不同于串行外设接口 (SPI) 等同步系统,其中一条信号线包含一个时钟,总线上的侦听设备可以在该时钟上捕获数据。
此外,UART 通常具有大多数设备都会使用的标准格式,但可以配置许多选项来更改标准。UART 的空闲状态为高电压,因此开始传输时,UART 使用称为起始位的低脉冲,后跟 8 位数据,并以高停止位结束,图 8。
在这里插入图片描述
主机处理器将使用一个 IO 引脚将 RS-485 收发器置于传输模式,并将一个字节从 UART TX 线发送到 RS-485 收发器的数据(D 或 DI)线。收发器会将单端 UART 位流转换为 A 和 B 线上的差分位流,如图 3 所示。数据离开收发器后,主机立即将收发器模式切换为接收。从属系统是相同的,这意味着从属 RS-485 收发器接收传入的比特流,将其转换为单端信号,然后通过从属的 UART RX 线将其发送到主机设备。当从机准备好响应时,它像主机最初那样发送,而主机现在接收,图 9。
在这里插入图片描述
在这里插入图片描述

OSI 模型的网络层

网络层处理发生在 RS-485 总线上的设备之间的实际通信。由于 RS-485 主要是一种电气规范,因此对话可以到此结束,但由于它支持多点,因此需要在 OSI 模型中解决它。
网络层寻址没有固定规范,但 RS-485 总线必须由主设备正确管理以避免总线冲突。当多个设备同时尝试通信时会发生总线冲突,这对网络非常有害。发生碰撞时,发射器会在两端发生碰撞并有效地造成短路。这会导致每个设备消耗大量电流,从而使收发器进入热关断状态。
为避免冲突,主机控制总线并将调用各个设备。这通常是通过拥有一个只有特定设备才能识别的命令集,或者通过为每个设备设置特定地址来实现的。由于总线在所有设备之间共享,因此每个设备都会看到主设备发送的命令/地址,但只会在断言该单个设备时做出响应。
在这里插入图片描述

OSI 模型的应用层

OSI 模型不是一套规则,而是一个帮助工程师表征系统的模型。RS-485 很好地包含在 OSI 模型的前三层中,总线的实际实现在应用层中进行表征。该层涵盖设备使用的地址或命令集以及数据的解释。它还包括设计人员期望返回多少数据,以及总线本身的控制。
例如,CUI Devices RS-485 编码器的应用程序是向设备请求绝对位置的主机。当主机发送编码器的位置命令(地址)时,编码器以两个完整的字节响应。然后主机破译这些字节以了解绝对位置是什么,同时确定发送命令的频率以及要将命令发送到哪些设备。简单的说,应用层就是RS-485总线的实现。
由于RS-485标准只定义了具有寻址要求的物理层和数据链路层,因此应用层可以采用各种专有或开放的通信协议。
工程师可以采用现有的协议,例如 Modbus,或者他们可以为自己的应用程序定义自己的协议。
例如,CUI Devices 的编码器使用非常简化的寻址结构来断言设备,从而实现快速周转和最短处理时间。每个编码器的地址只是一个字节的高六位,低两位是命令。这允许编码器仅在来自主机的单个字节后开始响应,从而确保快速周转时间,这在运动控制应用中至关重要。
在这里插入图片描述

CUI Devices 的 RS-485 编码器

CUI Devices 的 RS-485 编码器使用快速定位协议,允许编码器在一个字节的时间内响应位置。如上所述,这种格式支持 64 个唯一的编码器地址。编码器的地址是一个字节的高 6 位,低 2 位是命令。
这些地址可通过 CUI Devices 进行配置AMT Viewpoint™ 软件和一个编程模块. 这些编码器根据其版本具有不同的命令,所有设备都支持扩展命令,例如重置或设置零位。
在这里插入图片描述
CUI Devices 的绝对编码器具有 12 位或 14 位分辨率,但是,它们都以两个完整字节响应每个位置请求。两个完整字节是 16 位,这允许编码器使用高两位进行校验和计算。
应用层的这一部分允许主机验证从编码器传输的数据。对于 12 位编码器,传输将在高两位中包含校验位,低两位为零,中间的 12 位包含位置数据。
这些绝对编码器还提供多圈支持,因此它们可以计算转数。这是一个 14 位有符号计数器,数据传输与位置相同,前两位包含校验和。
因为计数器是有符号的,所以它可以计算正转和负转,但会损失一位数据。这意味着它可以从 -8192 计数到 8191。
CUI Devices 的绝对编码器还有高速版本,运行速度为 2 Mbps,周转时间接近 3 微秒。然而,对于无法满足高速和严格时序要求的应用,可以使用可调数据速率版本。
这些版本让用户可以使用 AMT Viewpoint 和编程模块从频率列表中进行选择,从而在不需要高速时更容易实施。

结论

RS-485 支持高速、长布线距离、电气噪声容限和同一总线上的多个设备,由于其在广泛应用中的多功能性,已成为旋转编码器中流行的串行接口。
希望利用具有 RS-485 接口的编码器的设计人员可以从了解上述详细信息中获益,包括其各个层、实施和整个系统通信中的最佳实践。
CUI Devices 具有 RS-485 接口的基于电容的 AMT 绝对编码器具有更高的坚固性和工业鲁棒性,由于其高精度、低电流消耗和对环境污染物的免疫力,是运动控制应用的一个有趣选择。

参考链接: link

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

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

相关文章

智能网联环境下数据安全分析与建设思考

01安全概况 随着智能化程度不断提升,汽车正逐渐从传统意义上的交通工具演化为公路上的智能终端,核心部件也从发动机、变速箱、底盘上升为芯片、软件与数据。相关机构研究表明,目前全球市场搭载智能网联功能的新车渗透率约为45%,预…

160个CrackMe之001

吾爱中的逆向练习题 运行程序 有两个方式 一个是账号登入 一个是序列号输入 账号输入 方法一 爆破 我们先进行账号输入 这个是最简单的逆向 所以我们可以使用 字符串查找看看 先试用ollydbg打开 右键 ->查找 ->所有参考文本字符串 这里我们能发现有两个报错 我们还…

《C++ deque的介绍以及stackh和queue的模拟实现》

文章目录 一、容器适配器1.1 什么是适配器1.2 STL中stack和queue的底层结构1.3 deque的简单介绍1.3.1 deque的原理介绍1.3.2 deque的结构1.3.3 deque和vector以及list的对比1.3.4 为什么选择deque作为stack和queue的适配容器 二、stack的模拟实现三、queue的模拟实现 一、容器适…

5个超实用视频素材网站,免费下载~

推荐几个高清无水印的视频素材网站,重点是可以免费下载使用,建议收藏! 菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 可以称之为最大素材库,在这里你可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有…

基于Nginx搭建LNMP

目录 一:安装 Nginx 服务 1、关闭防火墙、安装依赖包 2、创建运行用户 3、压缩包编译安装 4、优化路径 5、添加 Nginx 系统服务 二: 安装 MySQL 服务 1、安装Mysql环境依赖包 2、创建运行用户 3、编译安装 4、修改mysql 配置文件 5、更改mysql安装…

网络通信:http协议

虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议) 就是其中之一. 认识URL 统一资源定位符(Uniform Resource Locator,缩写:URL),…

springboot + vue3实现视频播放Demo(video.js Vue3-video-play视频播放器)

文章目录 学习链接前言ffmpeg安装ffmpeg配置环境变量分割视频文件 后台配置WebConfig 前端代码video.js示例安装依赖视频播放组件效果 Vue3-video-play示例安装依赖main.js中使用视频播放组件效果 学习链接 ffmpeg官网 长时长视频java存储及vue播放解决方法 【 攻城略地 】vue…

AKStream部署1:ZLMediaKit流媒体服务器(win)

环境准备: windows10/11 visual stadio 2022(.net 6) cmake 3.22.0 git bash 没讲究直接下最新的 ffmpeg : ffmpeg-5.1.2-full_build VLC播放器:VLC media player ZLMediaKit:gitee地址 1、安装上述软件 例ffmpeg下载解压至某自定…

图片转pdf怎么转?一分钟解决

在日常生活中,我们常常需要将一些图片转换成PDF格式,以便于在电子设备上查看和分享。今天,我们将分享一些关于如何将图片转换成PDF的方法。 以下是三种常用的将图片转换成PDF的方法: 我们可以借助转换工具将图片转成PDF 如PDF转…

用esp8266连网的一些互联网知识

参考太极创客的课程资料添加链接描述 TCP/IP协议簇 在网络系统中,为了保证通信设备之间能正确地进行通信,必须使用一种双方都能够理解的语言,这种语言被称为“协议”。 TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式…

数据结构学习记录——树习题-Complete Binary Search Tree(题目描述、输入输出示例、数据结构的选择、核心算法、计算左子树的规模)

目录 题目描述 输入示例 输出示例 数据结构的选择 核心算法 计算左子树的规模 思路 总结 题目描述 现给定一系列不同的非负整数键,如果要求构造出一颗完全二叉树,则可以构造唯一的二叉搜索树。输出此二叉搜索树的层序遍历序列。 完全二叉树 有n…

复习之linux系统中的权限管理

1.权限的查看及读取 (1)权限的查看 # ls -l file : 查看文件的权限 # ls -ld dir :查看目录权限 (2)权限的读取 文件的属性叫做文件的元数据。 元数据(Metadata),又称中介数据、中继…

chatgpt赋能python:Python为什么运行不出来?

Python为什么运行不出来? Python是一门高级编程语言,被广泛应用于科学计算、机器学习、Web开发等领域。但是,有时候我们在编写Python程序的过程中会遇到各种各样的问题,其中之一就是程序无法运行。那么,Python为什么会…

网页投票系统怎么做如何制作网页投票链接如何投票链接

用户在使用微信投票的时候,需要功能齐全,又快捷方便的投票小程序。 而“活动星投票”这款软件使用非常的方便,用户可以随时使用手机微信小程序获得线上投票服务,很多用户都很喜欢“活动星投票”这款软件。 “活动星投票”小程序在…

mysql版本升级导致的时区问题

背景 公司各个项目组用的mysql 版本不一样,有的是5.x稳定守旧版,有的最近喜欢用8.x高级迎新版,结果出了问题。 现象,数据库中保存的时间与java读取的时间字段不一样。 最开始数据库mysql版本为5.7.28,驱动为5.1 反正…

【C++】queue和priority_queue的用法及模拟实现

目录 一、queue的简介及其使用1、queue的简介2、queue的使用2、queue的模拟实现 二、priority_queue的简介及其使用1、priority_queue的简介2、priority_queue的使用3、priority_queue的模拟实现 一、queue的简介及其使用 1、queue的简介 queue是一种容器适配器,专…

SpringBoot 学习笔记之 “异常处理”

🍏🍐🍊🍑🍒🍓🫐🥑🍋🍉🥝 异常处理 文章目录 🍏 错误处理1、默认规则2、定制错误处理逻辑3、异常处理自动配置原理4、异常处…

用Python发送通知到企业微信,实现消息推送

Hi,大家好,今天就介绍如何实现自动推送消息到企业微信,适合告警类型通知,非常方便。 在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!_哔哩哔哩_bilibili在华为工作了10年的大佬出的Web自…

C++服务器框架开发6——日志系统LogFormatter/size_t学习

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见:[C高级教程]从零开始开发服务器框架(sylar) 上一篇:C服务器框架开发5——日志系统LogAppender/IO类“3种stream”/双感叹号 C服务器框架开发6——日志系统logFormatter/size_t学…

【Python】深度理解Class类、Object类、Type元类;

详解Class类、Object类、Type元类 1.Class类、Object类、Type元类的表面关系2.Class、Object、Type解释1.1关系详解 2.Object类的默认方法作用详解2.2.1 init2.2.2 new2.2.3 repr2.2.4 提要:作为普通的Python开发者来讲,深入理解object、type不是必要的&…