草庐IT

超详细的RS232/RS485电路设计

硬件知识分享 2024-02-27 原文

目录

1  UART介绍

1.1 UART特点及问题

1.2 UART协议

2  RS232、RS485基本概念

3  RS232、RS485接口标准

3.1 RS232接口标准及特点

3.1.1 RS232的接口标准

3.1.2 RS232的接口特点

3.2 RS485接口标准及特点

3.2.1 RS485的接口标准

3.2.2 RS485的接口特点

4  RS232、RS485原理图设计

4.1 SIT3232E-RS232收发器应用

4.1.1 特性和功能框图

4.1.2 引脚定义和电气特性

4.1.3 总线状态和芯片应用要点

4.2 SIT3485E-RS485收发器应用

4.2.1 特性和功能框图

4.2.2 引脚定义和电气特性

4.2.3 总线状态和芯片应用要点

5  RS232、RS485资料及芯片选型推荐

1  UART介绍

1.1 UART特点及问题

UART通用异步收发器,串行、异步通信总线,该总线有两条数据线TX、RX,可以实现全双工的发送和接收,主要用于主机和外设之间通信。

串行通信:一次传输1bit

并行通信:一次传输多bit

单工通信:单向传输

双通通信:双向传输,半双工:不能同时,全双工:可以同时

同步通信:有共同的参考时钟

异步通信:没有共同的参考时钟,以固定波特率传输

波特率:描述串口通信速率,单位bps,即每秒传输的bit数

UART帧格式:

 

UART硬件连接:

UART通信的问题:

(1)电气接口不统一,UART只对信号时序进行了定义,未定义接口的电气特性,没有连接器标准。

(2)UART一般使用芯片本身的接口电平,不统一可能是TTL电平,3.3V或者1.8V,或者CMOS电平,很难直接连接。

(3)抗干扰能力差,单端传输。

(4)通信距离短,一般只能在板内通信。

因此,一般会使用RS232、RS485接口进行通信。

1.2 UART协议

对UART传输数据的格式帧的详细定义

先发送低位数据在发送高位数据。

具体描述可以参考文章:

最详细的 通讯协议 UART协议 分析在这里 串口,RS232,RS485等总线,内部使用的基本都 UART协议 。 (dreamsourcelab.cn)

2  RS232、RS485基本概念

由于UART协议层的输入是逻辑0/1信号,而逻辑0/1信号在物理层可以通过不同的电平标准来区分。针对不同的通讯需求,便可以使用不同的物理层实现。例如简单的板内通讯,或者常见的设备调试场景,使用简单的LVTTL/TTL电平即可在两个设备间进行UART协议通讯。

  

通用的串口则使用的是RS232电平,可以增加传输距离,并且抵抗一定程度的信号干扰。付出的成本则是在物理层需要对应的电平转换芯片来实现,发送端需要将内部的高低电平信号转换成电压更高的+/-电压信号,接收端需要将+/-电压信号转换成内部的高低电平信号。

在工业通讯的场景下,为了进一步提高传输距离,以及增强信号的可靠性,一般会采用RS485的电平标准。在发送端将普通的高低电平信号转换成一对差分信号,在接收端将差分信号再转换成普通的高低电平信号。另外,RS485允许总线上连接多达128收发器,而TTL或者RS232则是点对点的连接。

 

3  RS232、RS485接口标准

RS232/RS485都是TIA/EIA电信电子工业协会建立的串行数据通信接口标准的一种,广泛应用于串行外设接口连接。

3.1 RS232接口标准及特点

3.1.1 RS232的接口标准

TIA/EIA-232-F (RS-232),RS表示是一种推荐的接口标准,除此之外还有很多接口标准。

TIA/EIA-232-F是最古老、最广为人知的DTE/DCE接口标准(1970年)。它是一个完整的标准,规定了串行二进制DTE/DCE接口的机械(连接器)、电气(驱动器/接收器特性)和功能(电路定义)要求。在电气部分,标准规定了不平衡的、单向的点对点接口。驱动器的特点是一个可控制的波特率,这允许电缆被视为一个集总的负载,而不是一个传输线。这是由于驱动器的过渡时间远大于电缆延迟(速度×长度)。驱动器的最大电容负载规定为2500pF。该标准允许高达20 kbps(19.2 kbps)的操作。对于更高的数据率,建议使用TIA/EIA-562或TIA/EIA-423-B。图3说明了一个典型的应用程序,表1列出了主要的电气需求。本标准的主要特点是:

(1)单端的

(2)点对点接口

(3)大型极性驱动器输出摆动

(4)驱动器控制的波特率

(5)完全定义的接口

(6)20 kbps最高数据速率

3.1.2 RS232的接口特点

RS232串口由25帧简化到9帧,现通常使用RX、TX、GND三线,标准连接器是DB9连接器公母头。通常传输大量数据会使用9线,使用较少。

传输信号电压级别:

二进制0:+5 ~ +15 Vdc

(称为“space”或“on”)

二进制1:-5 ~ -15 Vdc

(称为“mark”或“off”)

接收信号电压级别:

二进制0:+3 ~ +32 Vdc

二进制1:-3 ~ -30 Vdc

数据格式:

起始位:二进制0

数据:5、6、7或8位

奇偶校验:奇、偶、mark或

space(不适用于8位数据)

停止位:二进制1,一位或两位

 

 

 

 

3.2 RS485接口标准及特点

3.2.1 RS485的接口标准

TIA/EIA-485-A是一种电气标准,指定了平衡的驱动器和接收器。它提供了TIA/EIA-422-B的所有优点,并支持多重驱动器操作。TIA/EIA-485-A是目前唯一允许多个驱动器操作的TIA/EIA标准。此协议允许进行多点(派对线)配置。该标准指定了一个双向(半双工)、多点接口。图9说明了一个典型的多点应用程序,表6列出了主要的电气需求。

主要功能有:

(1)平衡接口

(2)多点操作

(3)从单个+5V电源中进行操作

(4)−7V到+12V总线共模范围

(5)最多有32个收发器负载(单位负载)

(6)最大10 Mbps数据速率(@ 40英尺) 15米

(7)最大电缆长度为4000英尺(@ 100 kbps)1500米

3.2.2 RS485的接口特点

RS485并不像RS232一样定义了标准的DB9接口,它并没有定义标准的接口,可以根据具体项目接口要求使用不同连接器。

RS485为复杂的工业环境而设计,和其它UART协议的物理层相比,RS485总线最大的特点就是使用了差分信号传输。信号在发送之前,通过RS485的收发器把单端信号转换成差分信号,再发送到总线上进行传输;同样在接收之前,总线上的差分信号通过收发器的转换变成单端信号再送给UART控制器进行接收。在RS485总线上,如果希望进行全双工的双向通讯,需要两对差分信号线(即4根信号线)。如果只进行半双工的双向通讯,则仅需要一对差分信号即可。

 

4  RS232、RS485原理图设计

4.1 SIT3232E-RS232收发器应用

3.3V供电,双通道,最高120kbps数据速率。现在器件数据速率一般都会高于接口标准20kbps,很有可能和测试的负载条件有关,假如最高2500pF负载时20kbps,在1000pF时,速率是可以提高的。

4.1.1 特性和功能框图

功能框图:

 

3.3V供电,两路TTL/CMOS电平转为RS232电平,每路收发器可以单独使用。低功耗,2mA供电电流。

T1IN/T2IN内部没有上拉电阻,未使用的T1IN/T2IN连接VCC或者GND。

4.1.2 引脚定义和电气特性

引脚定义:

 

具体描述见手册,注意不使用的T1IN/T2IN连接VCC或者GND。

电气特性:电压,电流,功耗

3.3V供电,760mW功耗。如果控制器是1.8V电平UART,不能使用该器件,需要找可以1.8V供电的RS232器件。

4.1.3 总线状态和芯片应用要点

逻辑电平:

 注意事项:

(1)3.3V供电,未使用的驱动器输入引脚不要悬空。

(2)RS232收发器相当于电平转换芯片。TX接UART控制器TX。

(3)原理图:

4.2 SIT3485E-RS485收发器应用

3.3V供电,最高数据速率12Mbps,最多允许256个器件连接到总线。功能完全满足 TIA/EIA-485 标准要求的 RS-485收发器。

4.2.1 特性和功能框图

功能框图:

 

4.2.2 引脚定义和电气特性

引脚定义:

 

电气特性:电压,电流,功耗

3.3V供电,400mW低功耗器件。

4.2.3 总线状态和芯片应用要点

 逻辑电平:

功能表:

注意事项:

(1)典型应用:

 

(2)原理图:

5  RS232、RS485资料及芯片选型推荐

 你学废了吗?

硬件知识分享,喜欢请点赞关注加收藏,如有侵权请联系删除!!!

有关超详细的RS232/RS485电路设计的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  5. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  6. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

  7. ruby-on-rails - 设计通过 reset_password_token 获取用户 - 2

    我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow

  8. ruby-on-rails - Rails 5,公寓和设计 : sign in with subdomains are not working - 2

    我已经使用Apartment设置了一个Rails5应用程序(1.2.0)和Devise(4.2.0)。由于某些DDNS问题,应用只能在app.myapp.com下访问(请注意子域app)。myapp.com重定向到app.myapp.com。我的用例是每个注册该应用的用户(租户)都应该通过他们的子域(例如tenant.myapp.com)访问他们的特定数据。用户不应限定在其子域内。基本上应该可以从任何子域登录。重定向到租户的正确子域由ApplicationController处理。根据Devise标准,登录页面位于app.myapp.com/users/sign_in。这就是问题开始的

  9. ruby-on-rails - 设计中的 ArgumentError::RegistrationsController#new 错误的参数数量(2 代表 0..1) - 2

    我在关注RyanbatesRailsCast的devise和omniauth(第235集-devise-and-omniauth-revised)。当我尝试使用Twitter登录时,标题中不断出现错误。defself.new_with_session(params,session)ifsession["devise.user_attributes"]new(session["devise.user_attributes"],without_protection:true)do|user|user.attributes=paramsuser.valid?end完整跟踪:C:/Ruby20

  10. 100个python算法超详细讲解:画直线 - 2

    1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva

随机推荐