当前位置: 首页 > news >正文

【MCAL_UART】-1.2-图文详解RS232,RS485和MODBUS的关系

目录

1 UART,RS232和RS485通信拓扑

2 什么是RS232

2.1 RS232标准的演变

2.2 RS232标准讲了哪些

2.2.1 RS232通信的电平

2.2.2 RS232通信的带宽

2.2.3 RS232通信距离

2.2.4 RS232通信的机械接口

3 什么是RS485

3.1 RS485标准的演变

3.2 RS485标准讲了哪些

3.2.1 RS485通信的电平

3.2.2 RS485通信的带宽

3.2.2 RS485通信距离

3.2.2 RS485通信拓扑

4 RS232和RS485的对比

5 MODUS协议与RS232和RS485的关系

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

点击返回「《Autosar从入门到精通-实战篇》总目录」

点击返回「《Autosar_BSW高阶配置》总目录」

点击返回「《Autosar_MCAL高阶配置》总目录」

点击返回《嵌入式软件开发》专栏

1 UART,RS232和RS485通信拓扑

由于UART串口通信使用3.3/5VTTL电平,决定了其易受到干扰(对信号线上的噪声缺乏免疫力)带宽低仅适合超短距离通信。在嵌入式硬件开发中,UART通信常被用于MCU与MCU之间,MCU与外设芯片之间,见图1-1。

图1-1

RS232RS485通过改变“传输的信号电平”和“传输介质的连接方式”,来提高带宽提高传输距离提高干扰性。在嵌入式硬件开发中,RS232通信(异步串行全双工通信)常被用于MCU与MCU之间,实现TTL电平的转换(如,MAX232芯片),进行“间接的UART通信”,见图1-2。

图1-2

在嵌入式硬件开发中,RS485通信(异步串行半双工通信)常被用于MCU与MCU之间,实现TTL电平的转换(如,MAX485芯片),进行“间接的UART通信”,见图1-3。

图1-3

2 什么是RS232

2.1 RS232标准的演变

RS232标准(RS:recommended standard推荐标准)是美国的电气工业协会(EIA:Electrical Industries Association)创建了一个串行数据传输或通信的标准。它定义了数据终端设备(DTE:Data Terminal Equipment)和数据电路终端设备(DCE:Data Circuit-Terminating Equipment)之间数据传输的电气特性

RS 232标准经历了几次修订:

•      EIA RS-232 (May 1960) "Interface Between Data Terminal Equipment & Data"

•      EIA RS-232-A (October 1963)

•      EIA RS-232-B (October 1965)

•      EIA RS-232-C (August 1969) "Interface Between Data Terminal Equipment and Data Communication Equipment Employing Serial Binary Data Interchange"

•      EIA EIA-232-D (1986)

•      TIA TIA/EIA-232-E (1991) "Interface Between Data Terminal Equipment and Data Communications Equipment Employing Serial Binary Data Interchange"

•      TIA TIA/EIA-232-F (October 1997)

•      ANSI/TIA-232-F-1997 (R2002)

•      TIA TIA-232-F (R2012)

RS 232标准的名称在其历史上发生了变化,几次是由于赞助组织的原因。因此,它被称为EIA RS-232、EIA 232,以及最近的TIA 232

与之对应的国标“GB/T 6107-2000 使用串行二进制数据交换的数据终端设备和数据电路终接设备之间的接口”。

2.2 RS232标准讲了哪些

2.2.1 RS232通信的电平

图2-1

Co是与发生器有关的总有效电容,在接口点测量,包括通往接口点的任何电缆。

V1是接口点的电压。

CL是在接口点测量的与接收器有关的总有效电容,包括通往接口点的任何电缆。

RS-232是一个单端或不平衡的接口,意味着一个单一的电信号与一个公共信号(地)相比较,以确定二进制逻辑状态,如图2-1所示,

  • 当两个RS232电平转换芯片之间,当interchange circuit上的电压(V1)相对于电路AB的电压小于-3V时,则应视为信号处于marking状态,marking用二进制状态1表示。
  • 当两个RS232电平转换芯片之间,当interchange circuit上的电压(V1)相对于电路AB的电压大于+3V时,则应视为信号处于spacing状态,spacing用二进制状态0表示。
  • -3V~+3V之间的区域,被定义为过渡区域,当电压处于这个过渡区域时,信号状态是不确定的

Notation

Interchange Voltage Negative

Positive

Binary State

1

0

Signal Condition

Marking

Spacing

Function

OFF

ON

注意:

  • 相对于信号地的发生器开路电压,不得超过相对于地面的-25V~+25V;

图2-2

  • 示波器下的波形:

图2-3

2.2.2 RS232通信的带宽

TIA/EIA-232-F提供了最大的通信带宽,波特率为20 kbps。

2.2.3 RS232通信距离

通信电缆(介质是导线)的最大长度没有规定,但由以下电气要求决定:

interchange circuit接收端的负载阻抗是在3V15V的应用电压范围内定义的。它的直流电阻应不低于3000欧姆,也不高于7000欧姆。interchange circuit接收端的有效并联电容(CL),包括电缆的电容,在接口点测量,不应超过2500皮法拉。负载阻抗的无功分量不得是感性的,开路接收电压的大小不得超过2V

RS-232能够在小于50英尺(约15.24米)的距离上以高达20K bps的数据速率运行。或者电缆长度等于2500 pF的电容,这意味着,使用低电容的电缆可以让你跨越更长的距离,而不会超出标准的限制。例如,如果使用UTP CAT-5电缆,其典型电容为17 pF/ft,允许的最大电缆长度为147英尺。

如果波特率降低2或4倍,其最大长度就会急剧增加。TI德州仪器公司多年前曾在不同的波特率下做过一些实际实验,以测试允许的最大电缆长度。请记住,RS232标准最初是为20kbps开发的。通过将最大通信速度减半,允许的电缆长度增加了10倍。

Baud rate

Maximum cable length

19200

50英尺(约15.24米)

9600

500英尺(约152.4米)

4800

1000英尺(约304.8米)

2400

3000英尺(约914.4米)

2.2.4 RS232通信的机械接口

RS-232的机械实现是在一个25针的D-sub连接器上。

DTE连接器表面触点编号(male公头连接器)

DTE连接器面的触点编号(female母头连接器)

3 什么是RS485

3.1 RS485标准的演变

RS-485是由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,而发布了RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

3.2 RS485标准讲了哪些

3.2.1 RS485通信的电平

图3-1

G = Generator发生器

L = Stub Length存根长度

T = Transceiver收发器

R = Receiver接收器

RT= Termination Resistor终端电阻

A、B和C点代表发生器接口点;

A'、B'和C'代表与接收器相关的接口点;

A/A',B/B'和C/C'代表与收发器相关的接口点。

图3-2

RS-485是一个平衡的接口,意味着有两个偏置的电信号相比较(RS485接收器比较两条线之间的电压差,而不是信号线上的绝对电压水平),以确定二进制逻辑状态,如图3-2所示,

a) 在二进制1(OFF)状态下,信号发生器的A端相对于B端应是负的。

b) 在二进制0(ON)状态下,信号发生器的A端相对于B端应是正的。

注意:

  • 在电压Via(或Vib)范围从-7.0V+12.0V,而Vib(或Via)保持在0.0V(接地)的情况下,所产生的输入电流lia(或lib)应被测量并保持在下图所示的阴影区域内,为一个单位负载。电流与电压的实际曲线应始终有一个正斜率,以降低由负输入电阻引起的振荡的可能性。

图3-3

  • 示波器下的波形:

图3-4

3.2.2 RS485通信的带宽

TIA/EIA-485-A提供了最大的通信带宽,波特率为10 Mbps。

3.2.2 RS485通信距离

差分信号使RS485的通信距离比RS232长得多。使用RS485的最大传输距离约为1219米,最大传输速率为10Mbps。

平衡双绞线的长度与传输速率成反比,只有在20kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般来说,15米长双绞线最大传输速率仅为1Mbps。

注意:并不是所有的RS-485收发器都能够支持高达10Mbps的通讯速率。如果采用光电隔离方式,则通讯速率一般还会受到光电隔离器件响应速度的限制。

3.2.2 RS485通信拓扑

RS-485标准与RS-232标准不一样,数据信号采用差分传输方式(Differential Driver Mode),也称作平衡传输。这决定了其只能用于半双工通信,可以用于一个主机对若干个从机进行寻址,见图3-6。

图3-5 直线和双绞线的噪声

图3-6

4 RS232和RS485的对比

标准

RS-232

RS-485

工作方式

单端

差分

运行模式

全双工

半双工

网络拓扑结构

点对点(1收,1发)

多点(1发,32收)

最大传输电缆长度

50英尺

4000英尺(约1200米)

最大传输速率

20Kbps

10Mbps

最大驱动输出电压

+/-25V

-7V~+12V

发送器输出信号电平(负载最小值)

+/-5V~+/-15V

±1.5V

发送器输出信号电平(空载最大值)

+/-25V

±6V

发送器负载阻抗(Ω)

3K~7K

54

接收器输入电压范围

±15V

-7V~+12V

接收器输入门限

±3V

±200mV

接收器输入电阻(Ω)

3K~7K

≥12K

5 MODUS协议与RS232和RS485的关系

MODBUS是一种应用层的信息传输协议,位于OSI模型的第7层,它在不同类型的总线或网络上连接的设备之间提供client/server通信。而RS232和RS485是实现异步串行通信的第1层物理层标准。

它目前是通过以下方式实现的

  • Ethernet的TCP/IP。参见《MODBUS Messaging Implementation Guide V1 .0a》;
  • 通过各种介质的异步串行发送(有线:EIA/TIA -232, EIA/TIA-485-A…)。物理层和数据链路层标准,参见《MODBUS over Serial Line Specification and Implementation Guide V1.02》;
  • MODBUS PLUS,一种高速token令牌传递网络。

与之对应的国标:

GB-T19582.1-2008基于Modbus协议的工业自动化网络规范第1部分:Modbus应用协议;

GB-T19582.2-2008基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南;

GB-T19582.3-2008基于Modbus协议的工业自动化网络规范第3部分:Modbus协议在TCP/IP上的实现指南。

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

相关文章:

【MCAL_UART】-1.2-图文详解RS232,RS485和MODBUS的关系

目录 1 UART,RS232和RS485通信拓扑 2 什么是RS232 2.1 RS232标准的演变 2.2 RS232标准讲了哪些 2.2.1 RS232通信的电平 2.2.2 RS232通信的带宽 2.2.3 RS232通信距离 2.2.4 RS232通信的机械接口 3 什么是RS485 3.1 RS485标准的演变 3.2 RS485标准讲了哪些…...

设计模式详解(二)——单例模式

单例模式简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,创建型模式是一类最常用的设计模式,在软件开发中应用非常广泛,它提供了一种创建对象的最佳方式。 单例模…...

为什么hooks不能在循环、条件或嵌套函数中调用

hooks不能在循环、条件或嵌套函数中调用 为什么&#xff1f; 带着疑问一起去看源码吧&#xff5e; function App() {const [num, setNum] useState(0);const [count, setCount] useState(0);const handleClick () > {setNum(num > num 1)setCount(2)}return <p …...

互联网赚钱项目有哪些?目前最火的互联网项目

互联网是一个神奇的行业&#xff0c;大门不出二门不迈&#xff0c;一根网线一台电脑&#xff0c;甚至一台手机就可以赚钱。它给我们创造了前所未有的商业机会&#xff0c;让成千上万有梦想&#xff0c;敢想敢干的人通过互联网获得了巨大的成功&#xff01;正因为如此&#xff0…...

队列、栈专题

队列、栈专题 LeetCode 20. 有效的括号解题思路代码实现 LeetCode 921. 使括号有效的最少添加解题思路代码实现 LeetCode 1541. 平衡括号字符串的最少插入次数解题思路代码实现 总结 不要纠结&#xff0c;干就完事了&#xff0c;熟练度很重要&#xff01;&#xff01;&#xff…...

TensorFlow vs PyTorch:哪一个更适合您的深度学习项目?

在深度学习领域中&#xff0c;TensorFlow 和 PyTorch 都是非常流行的框架。这两个框架都提供了用于开发神经网络模型的工具和库&#xff0c;但它们在设计和实现上有很大的差异。在本文中&#xff0c;我们将比较 TensorFlow 和 PyTorch&#xff0c;并讨论哪个框架更适合您的深度…...

大项目环境配置

目录 Linux的龙蜥8是什么&#xff1f; OpenGL是什么&#xff1f; 能讲讲qt是什么吗&#xff1f; 我可以把qt技术理解为c工程师的前端开发手段吗&#xff1f; 我其实一直有些不懂大家所说的这个开发框架啥的&#xff0c;这个该如何理解呢 那现在在我看来&#xff0c;框架意…...

Elasticsearch——》正则regexp

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...

五面阿里Java岗,从小公司到阿里的面经总结

​​​​​​​ 面试 笔试常见的问题 面试常见的问题下面给的面试题基本都有。 1 手写代码&#xff1a;手写代码一般会考单例、排序、线程、消费者生产者 排序。 2 写SQL很常考察group by、内连接和外连接 2.面试1-5面总结 1&#xff09;让你自我介绍 2&#xff09;做两道算法…...

redis(7)

全局ID生成器: 全局ID生成器&#xff0c;是一种在分布式系统下用来生成全局唯一ID的工具&#xff0c;一般要满足以下特性 唯一性高可用(随时访问随时生成)递增性安全性(不能具有规律性)高性能(生成ID的速度快) 为了增加ID的安全性&#xff0c;我们不会使用redis自增的数值&am…...

互联网从业者高频单词 300个

测试 (Test) 软件 (Software) 用例 (Test Case) 缺陷 (Defect) 提交 (Submit) 回归测试 (Regression Testing) 验收测试 (Acceptance Testing) 单元测试 (Unit Testing) 集成测试 (Integration Testing) 性能测试 (Performance Testing) 负载测试 (load Testing) 压…...

初始化vue中data中的数据

当组件的根元素使用了v-if的时候, 并不会初始化data中的数据 如果想完全销毁该组件并且初始化数据,需要在使用该组件的本身添加v-if 或者是手动初始化该组件中的数据 初始化化数据的一些方法 Object.assign(this.$data, this.$options.data()) this.$data&#xff1a;当前的da…...

神经网络的建立-TensorFlow2.x

要学习深度强化学习&#xff0c;就要学会使用神经网络&#xff0c;建立神经网络可以使用TensorFlow和pytorch&#xff0c;今天先学习以TensorFlow建立网络。 直接上代码 import tensorflow as tf# 定义神经网络模型 model tf.keras.models.Sequential([tf.keras.layers.Dense…...

python基于卷积神经网络实现自定义数据集训练与测试

注意&#xff1a; 如何更改图像尺寸在这篇文章中&#xff0c;修改完之后你就可以把你自己的数据集应用到网络。如果你的训练集与测试集也分别为30和5&#xff0c;并且样本类别也为3类&#xff0c;那么你只需要更改图像标签文件地址以及标签内容&#xff08;如下面两图所示&…...

跟着LearnOpenGL学习3--四边形绘制

文章目录 一、前言二、元素缓冲对象三、完整代码四、绘制模式 一、前言 通过跟着LearnOpenGL学习2–三角形绘制一文&#xff0c;我们已经知道了怎么配置渲染管线&#xff0c;来绘制三角形&#xff1b; OpenGL主要处理三角形&#xff0c;当我们需要绘制别的图形时&#xff0c;…...

c#笔记-结构

装箱 结构是值类型。值类型不能继承其他类型&#xff0c;也不能被其他类型继承。 所以它的方法都是确定的&#xff0c;没有虚方法需要在运行时进行动态绑定。 值类型没有对象头&#xff0c;方法调用由编译器直接确定。 但是&#xff0c;如果使用引用类型变量&#xff08;如接…...

Es分布式搜索引擎

目录 一、什么是ES&#xff1f; 二、什么是elk&#xff1f; 三、什么是倒排索引&#xff1f; 四、正向索引和倒排索引的优缺点对比 五、mysql数据库和es的区别&#xff1f; 六、索引库&#xff08;es中的数据库表&#xff09;操作有哪些&#xff1f; 八、ES分片存储原理 …...

open3d 裁剪点云

目录 1. crop_point_cloud 2. crop 3. crop_mesh 1. crop_point_cloud 关键函数 chair vol.crop_point_cloud(pcd) # vol: SelectionPolygonVolume import open3d as o3dif __name__ "__main__":# 1. read pcdprint("Load a ply point cloud, crop it…...

如何对第三方相同请求进行筛选过滤

文章目录 问题背景处理思路注意事项代码实现 问题背景 公司内部多个系统共用一套用户体系库&#xff0c;对外(钉钉)我们是两个客户身份(这里是根据系统来的)&#xff0c;例如当第三方服务向我们发起用户同步请求&#xff1a;是一个更新用户操作&#xff0c;它会同时发送一个 d…...

Go RPC

目录 文章目录 Go RPCHTTP RPCTCP RPCJSON RPC Go RPC Go 标准包中已经提供了对 RPC 的支持&#xff0c;而且支持三个级别的 RPC&#xff1a;TCP、HTTP、JSONRPC。但 Go 的 RPC 包是独一无二的 RPC&#xff0c;它和传统的 RPC 系统不同&#xff0c;它只支持 Go 开发的服务器与…...

真正的智能不仅仅是一个技术问题

智能并不是单一的技术问题&#xff0c;而是一个包括技术、人类智慧、社会制度和文化等多个方面的综合体&#xff0c;常常涉及技术变革、系统演变、运行方式创新、组织适应。智能是指人类的思考、判断、决策和创造等高级认知能力&#xff0c;可以通过技术手段来实现增强和扩展。…...

【数据结构】复杂度包装泛型

目录 1.时间和空间复杂度 1.1时间复杂度 1.2空间复杂度 2.包装类 2.1基本数据类型和对应的包装类 2.2装箱和拆箱 //阿里巴巴面试题 3.泛型 3.1擦除机制 3.2泛型的上界 1.时间和空间复杂度 1.1时间复杂度 定义&#xff1a;一个算法所花费的时间与其语句的执行次数成…...

Ae:绘画面板

Ae菜单&#xff1a;窗口/绘画 Paint 快捷键&#xff1a;Ctrl 8 绘画工具&#xff08;画笔工具、仿制图章工具及橡皮擦工具&#xff09;仅能工作在图层面板上。在使用绘画工具之前&#xff0c;建议先在绘画 Paint面板中查看或进行相关设置。 说明&#xff1a; 如果要在绘画描边…...

常见的锁和zookeeper

zookeeper 本文由 简悦 SimpRead 转码&#xff0c; 原文地址 zhuanlan.zhihu.com 前言 只有光头才能变强。 文本已收录至我的 GitHub 仓库&#xff0c;欢迎 Star&#xff1a;https://github.com/ZhongFuCheng3y/3y 上次写了一篇 什么是消息队列&#xff1f;以后&#xff0c;本来…...

经验总结:(Redis NoSQL数据库快速入门)

一、Nosql概述 为什么使用Nosql 1、单机Mysql时代 90年代,一个网站的访问量一般不会太大&#xff0c;单个数据库完全够用。随着用户增多&#xff0c;网站出现以下问题 数据量增加到一定程度&#xff0c;单机数据库就放不下了数据的索引&#xff08;B Tree&#xff09;,一个机…...

form表单与模板引擎

文章目录 一、form表单的基本使用1、什么是表单2、表单的组成部分3、 <form>标签的属性4、表单的同步提交及缺点&#xff08;1&#xff09; 什么是表单的同步提交&#xff08;2&#xff09; 表单同步提交的缺点&#xff08;3&#xff09; 如何解决表单同步提交的缺点 二、…...

医院检验信息管理系统源码(云LIS系统源码)JQuery、EasyUI

云LIS系统是一种医疗实验室信息管理系统&#xff0c;提供全面的实验室信息管理解决方案。它的主要功能包括样本管理、检测流程管理、报告管理、质量控制、数据分析和仪器管理等。 云LIS源码技术说明&#xff1a; 技术架构&#xff1a;Asp.NET CORE 3.1 MVC SQLserver Redis等…...

React 组件

文章目录 React 组件复合组件 React 组件 本节将讨论如何使用组件使得我们的应用更容易来管理。 接下来我们封装一个输出 “Hello World&#xff01;” 的组件&#xff0c;组件名为 HelloMessage&#xff1a; React 实例 <!DOCTYPE html> <html> <head> &…...

硕士学位论文的几种常见节奏

摘要: 本文描述硕士学位论文的几种目录结构, 特别针对机器学习方向. 1. 基础版 XX算法及其在YY中的应用 针对情况: 只有一篇小论文支撑. 第 1 章: 引言 ( > 5页) 1.1 背景及意义 (应用背景、研究意义, 2 页) 1.2 研究进展及趋势 (算法方面, 2 页) 1.3 论文结构 (1 页) 第 …...

找兄弟单词

描述 定义一个单词的“兄弟单词”为&#xff1a;交换该单词字母顺序&#xff08;注&#xff1a;可以交换任意次&#xff09;&#xff0c;而不添加、删除、修改原有的字母就能生成的单词。 兄弟单词要求和原来的单词不同。例如&#xff1a; ab 和 ba 是兄弟单词。 ab 和 ab 则不…...