jjzjj

【总线】一文看懂RS232和RS485通信总线

Linest-5 2023-07-17 原文

目录

 

RS232概述

RS232特性

RS485 概述

RS485 特性

RS232 和 RS485 的区别

区别总结


 

RS232概述

RS-232接口符合电子工业联盟(EIA)建立的串行数据通信接口标准。原始编号是EIA-RS-232(简称232,RS232)。它广泛用于计算机串行接口外设连接。连接电缆以及机械、电气、信号和传输过程。

RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。

RS232特性

RS-232是主流串行通信接口之一。由于RS232接口标准的早期出现,难免存在不足,主要有以下四点:

  • 接口信号电平高,容易损坏接口电路的芯片。RS232接口上任何信号线的电压都处于负逻辑关系中。即:逻辑“1”为-3 ~ -15V;逻辑为“0”:+3 ~ +15V,噪声裕量为2V。也就是说,接收器需要将高于+3V的信号识别为逻辑“0”,将低于-3V的信号识别为逻辑“1”,将5V的TTL电平识别为逻辑正极,将0识别为逻辑负极。与TTL电平不兼容,需要一个电平转换电路来连接到TTL电路。
  • 传输速率低。在异步传输中,比特率为20Kbps;因此,在51CPLD开发板中,集成程序波特率只能是19200,这也是原因。
  • 接口采用信号线和信号回波串,形成共同的接地传输形式。这种标准的接地传输容易受到共模干扰,因此抗噪性较弱。
  • 传输距离有限。最大传输距离为50英尺。它只能达到大约15米。

 

RS485 概述

RS-485串行总线广泛用于通信距离必须为几十米到几公里的时候。RS-485使用平衡的发射和差分接收,因此可以抑制共模干扰。除了总线收发器的高灵敏度外,它还可以检测低至200mV的电压,从而将发射的信号恢复到公里以上。RS-485使用半双工工作模式,任何时候只发送一个点。因此,发射电路必须由使能信号控制。

RS485 特性

RS-485对于多点互连非常方便,可以节省许多信号线。RS-485应用可以联网以形成一个分布式系统,允许多达32个驱动器和32个接收器并联连接。针对RS-232的缺点,新标准RS-485具有以下特点:

  • RS-485的电气特性:逻辑“1”由两条线路+2V~+6V之间的电压差表示,逻辑“0”由两条线路之间的电压差-6V~-2V表示。接口信号电平低于RS-232,不易损坏接口电路芯片。该电平与TTL电平兼容,便于与TTL电路连接。
  • 最高数据传输速率为:10Mbps
  • RS-485接口采用平衡驱动器和差分接收机的组合,具有抗共振固模干扰能力,即抗噪声性能好。
  • RS-485接口的最大传输距离为4000英尺,实际上可达3000米。
  • RS-232接口仅允许一个收发器连接到总线,即单站功能。相比之下,RS-485接口仅允许在总线上连接多达128个收发器,即多站能力。用户 使用单个RS-485接口可以快速建立设备网络。

 

RS232 和 RS485 的区别

  • 工作模式:RS232 为全双工,RS485 为半双工。
  • 传输方式:RS485和RS232只是物理协议的通信(即接口标准),RS485是差分传输方式,RS232是单端传输方式,但通信程序没有太大区别。
  • 信号线:RS485接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线 。
  • 抗干扰性:RS485接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。RS232接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰。
  • 传输距离:RS485接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。
  • 通信能力:RS485 接口在总线上是允许连接多达128个收发器,用户可以利用单一的 RS485 接口方便地建立起设备网络。RS232只允许一对一通信。
  • 传输速率:RS232传输速率较低,在异步传输时,波特率为 20Kbps。RS485 的数据最高传输速率为 10Mbps 。
  • 电气电平值:RS485的逻辑"1"以两线间的电压差为+(2-6) V 表示;逻辑"0"以两线间的电压差为-(2-6)V 表 示 。在 RS-232 中任何一条信号线的电压均为负逻辑关系。即:逻辑"1",-(5-15)V;逻辑"0 " +(5- 15)V 。

PC已经配备了RS232,可以直接使用。如果使用RS485通信,则只需在RS232端口上连接RS232至RS485转换头,无需修改程序。

 

 

 

RS232是一个标准接口,是一个D形的9引脚。所连接设备的接口的信号定义是相同的。信号定义如下:

 

RS232仅允许一对一通信(单站功能)

 

 

RS485接口允许总线上最多128个收发器(多站功能)

 

 

通信距离:最远设备(控制器)与计算机之间的距离理论为1200米。建议控制在800米以内,最佳控制在300米以内。如果距离太长,可以使用485中继器(扩展)其中中继器放置在总线中间或开头。中继器理论上可以扩展到3000米。

负载数:485 总线可以承载的设备(控制器)数量。这取决于控制器的通信芯片和485转换器的通信芯片的选择。通常,有 32、64、128 和 256。这种选择是理论数字。在实际应用中,根据场景环境、通信距离等因素,负载数未达到指标数。

485通信总线(必须双绞线,或网络电缆之一),如果使用普通电线(不绞线),干扰会很大,通信不顺畅,甚至通信都是不可能的。

每个控制器设备必须携手并进,并且不得有星形连接或分叉。如果有星形连接或分叉,干扰会很大,通信会很差,甚至传输也不可能。

区别总结

规格

RS232型

RS485型

操作模式

不同 -ENTIAL

一条线路上的驱动器和接收器总数

1 个驱动程序

1 记录仪

1 个驱动程序

32 接收器

最大电缆长度

50 英尺

4000 呎

最大数据速率

460kb/s

30Mb/秒

最大驱动器输出电压

+/-25V

-7V至+12V

驱动器输出信号电平(最小负载)加载

+/-5V 至 +/-15V

+/-1.5V

驱动器输出信号电平(最大空载)卸载

+/-25V

+/-6V

驱动器负载阻抗(欧姆)

3k 至 7k

54

高 Z 状态下的最大驱动器电流 开机

不适用

+/-100uA

高 Z 状态下的最大驱动器电流 断电

+/-6毫安 +/-2v

+/-100uA

压摆率(最大值)

30V/uS

不适用

接收器输入电压范围

+/-15V

-7V至+12V

接收器输入灵敏度

+/-3V

+/-200mV

接收器输入电阻(欧姆)

3k 至 7k

>=12k

 

 

有关【总线】一文看懂RS232和RS485通信总线的更多相关文章

  1. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  2. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  3. 一文解决关于VLAN所有的疑惑 - 2

    一文解决关于VLAN所有的疑惑VLAN基本概念为什么需要VLAN?怎么在交换机上划分VLAN,VLAN的工作原理有了子网,已经隔离了广播,还需要VLAN干啥?只进行子网划分,不进行VLAN划分VLAN划分与子网划分附加VLAN信息的方法VLAN划分交换机的端口类型(Access和Trunk)一、访问链接二、汇聚链接汇聚链接VLAN间通信为什么要进行VLAN间通信?路由器实现VLAN间通信路由器和交换机的连接方式通信细节三层交换机实现VLAN间通信加速VLAN间通信三层交换机与路由器三层交换机路由器路由器和交换机配合构建LAN的实例使用VLAN设计局域网的特点VLAN增加网络的灵活性不使用VLA

  4. 1个串口用1根线实现多机半双工通信+开机控制电路 - 2

    功能需求:主机使用一个串口,与两个从机进行双向通信,主机向从机发送数据,从机能够返回数据,由于结构限制,主机与从机之间只有3根线(电源、地、数据线),并且从机上没有设物理的电源开关,需要通过与主机连接的数据线来控制开机,总结如下:1、数据线只有1根2、能够双向通信3、主机能够控制从机开机4、主机可以单独向1个从机发数据,也可以同时向两个从机发送数据根据需求,设计出如下电路:工作原理分析:VCC_24V_IN、GND、LINE_L(LINE_R)三根线接线连接到从机,电源开启电路是从机内部的电源控制。开机的逻辑:*主机先上电,LINE_L因为主机的R1上拉而有高电平,使Q6导通,Q5的G极电压被

  5. 一文让你彻底掌握操作符(超详细教程) - 2

    ✅作者简介:大家好,我是小杨📃个人主页:「小杨」的csdn博客🔥系列专栏:小杨带你玩转C语言【初阶】🐳希望大家多多支持🥰一起进步呀!大家好呀!我是小杨。小杨花几天的时间将C语言中的操作符这部分知识做了一个大总结,在方便自己复习的同时也能够帮助到大家。通篇字数在一万字左右,可以算作是非常详细了,一文就可以带领大家彻底掌握操作符这部分内容,文章很长建议先收藏再看,防止下次想看就找不到啦。文章目录✍1,算术操作符✍2,移位操作符    🔍2.1,左移操作符    🔍2.2,右移操作符       ✨2.2.1,算术移位       ✨2.2.2,逻辑移位✍3,位操作符    🔍3.1,按位与&   

  6. ruby - 如何创建与帧缓冲区通信的 Ruby 应用程序? - 2

    我有一个RaspberryPiTFT7"触摸屏显示器,我想创建一个简单的应用程序来显示和输出系统数据(即CPU使用率、温度等)。我注意到目前常见的实现方法是使用pygame库输出到显示器连接到的帧缓冲区/dev/fb1。我想执行相同的操作,但使用Ruby,因为我更熟悉这门语言。有人可以为我指明正确的方向,让我知道如何开始吗?我查看了ruby​​game和gosu库,它们似乎能够做我想做的事情,即绘制屏幕,​​但我找不到任何关于如何将输出定向到的信息帧缓冲区本身。 最佳答案 rubycorelib有一个IO您应该能够使用该类将输出定向

  7. [蓝桥杯单片机]学习笔记——串口通信的基本原理与应用 - 2

    目录一、原理部分1、什么是串行通信(1)并行通信与串行通信(2)串行通信的制式(3)串行通信的主要方式  2、配置串口(1)SCON和PCON:串行口1的控制寄存器(2)SBUF:串行口数据缓冲寄存器 (3)AUXR:辅助寄存器​编辑(4)ES、PS:与串行口1中断相关的寄存器(5)波特率设置  3、串口框架编写二、程序案例一、原理部分1、什么是串行通信(1)并行通信与串行通信微控制器与外部设备的数据通信,根据连线结构和传送方式的不同,可以分为两种:并行通信和串行通信。并行通信:数据的各位同时发送与接收,每个数据位使用一条导线,这种方式传输快,但是需要多条导线进行信号传输。串行通信:数据一位一

  8. FPGA配置之SelectMAP总线 - 2

    1FPGA启动流程图1 7SerialsFPGA配置流程1.1DevicePower-Up1.2ClearConfigurationMemory在上电后的任何时间内,可以对Slave-FPGA配置存储器(BlockRAM)进行复位处理。复位方式是将PROGRAM_B信号拉低(下降沿有效)。1.3SampleModePins当复位完成后,INIT_B恢复高电平,Slave-FPGA对M[2:0]模式引脚进行采样,然后开始在CCLK上升沿接收配置数据。1.4Synchronization在接收配置数据前,Slave-FPGA首先进行总线位宽检测。主机发送的配置文件中,“BusWidthAutoDe

  9. ruby - 后台工作人员在 Rails 应用程序中查看通信 - 2

    假设我有一个包含帖子的博客应用程序。创建帖子后,将创建一个工作人员来处理一些后台操作。我的情况是,在提交表单后我想显示某种加载消息(gif加载器等),当工作人员完成时我想隐藏加载消息并显示工作人员提供的一些数据。我的问题是,传达工作人员已完成工作并将其显示在用户前端的最佳方式是什么。worker回调看起来像这样defworker_finish#messagetheuserend 最佳答案 我认为您可能忽略了拥有后台工作人员的意义,基本上,您试图做的是弄巧成拙。--如果用户提交表单并且你在你的Controller中排队作业,只是为了让

  10. ruby - 为什么在使用 savon 进行 ruby​​ soap 通信时将 "wsdl"命名空间插入到操作名称中? - 2

    我正在尝试访问我无法控制的SOAP服务。其中一个操作称为ProcessMessage。我按照这个例子生成了一个SOAP请求,但我收到一条错误消息,指出该操作不存在。我将问题追溯到生成信封正文的方式。USER658e702d5feff1777a6c741847239eb5d6d86e482010-02-18T02:05:25Zpassword......ProcessMessage标签应该是:这就是示例Java应用程序生成它时的样子,并且可以正常工作。该标记是我的Ruby应用程序生成的内容与示例Java应用程序之间的唯一区别。有什么方法可以去掉那个标签前面的"wsdl:"命名空间并添加这

随机推荐