草庐IT

一文搞懂UART、RS232、RS485、TTL等常用的接口与协议

飒飒ai 2023-04-03 原文

常用的接口与协议

PC机常用的按照接口数量细分为A型(15针),B型(25针),C型(37针),D型(50针),E型(9针)。其中,串行通信常用的是RS232——9针的DB9接口,显示器用的是VGA——15针的DB15接口。现在的笔记本电脑都已取消这种接口,一方面是因为这种接口比较笨重、逐渐被市场淘汰,另一方面,也有了更好的USB口来完美替代他,而某些需要RS232的场景也可用通过USB转RS232驱动来实现,所以顺其自然的RS232接口也就被淘汰了。 此外,我们电脑打开设备管理器,看到的端口设备(COM1、COM2…)等就是串行通讯端口,简称串口,老款的设备大多是用RS232接口,现在我们使用的鼠标、键盘、打印机等都以使用更高速、方便的USB口了。下面我们进行详细的介绍。

1. UART

在通信和计算机科学中,Serial communication是一个通用概念,泛指所有的串行的通信协议,如RS232、USB、I2C、SPI、1-Wire、Ethernet等。这里的串行(serial),是相对并行通信(parallel communication)来说的,只将准备发送的一长串0/1电平跳变信号以串行的方式发送出去。

理解了串行通信后,还需要知道一组概念,即同步通信和异步通信,这里只介绍串行的同步和异步通信。

  • 同步串行通信:发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。I2C、SPI等有时钟信号的协议,都属于这种通信方式。
  • 异步串行通信:发送端在数据发送之前和之后,通过特定形式的信号(例如START信号和STOP信号),告诉接收端,可以开始(或者停止)接收数据了。与此同时,收发两方会约定一个数据发送的速度(这就是波特率),发送端在发送START信号之后,就按照固定的节奏发送串行数据,与此同时,接收端在收到START信号之后,也按照固定的节奏接收串行数据。

我们所提到的串口通信(UART)便是使用的异步串行通信方式,而我们电脑上所谓的COM口,便是针对串口通信而设计的一种端口。UART更多关注规定编码格式的标准,如波特率(baud rate)、帧格式和波特率误差等等,而将要介绍的RS232、USB、RS485等这类串行通信接口则更多关注的是电平标准和电压。还有一点需要注意的是UART已经包含了TTL电平的串口,也包含了RS232电平的串口。

2. RS232


RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中EIA (Electronic Industry Association)代表美国电子工业协会, 是常用的串行通信接口标准之一。

引脚定义(实际只用到2、3、5三个脚):

9芯缩写描述
1CD载波检测
2RXD接收数据
3TXD发送数据
4DTR数据终端准备好
5GND信号地
6DSR通信设备准备好
7RTS请求发送
8CTS允许发送
9RI响铃指示器

电气特性:

  • 最远通信距离是50英尺(15m)
  • 全双工通讯,最高传输速率20kbps
  • 传送的数字量采用负逻辑,且与地对称,逻辑1:-3 ~-15V ; 逻辑0:+3~+15V

优缺点:

  • 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。

  • 传输速率较低,在异步传输时,波特率为20Kbps;

  • 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

  • 传输距离有限,且需要双方的RXD和TXD线交叉连接,注定只能进行点对点连接。

3. RS485

针对RS232出现的缺点和不足,新接口RS-485便应运而生,该接口有效的减弱了共模干扰,利用A、B两个信号线进行平衡传输。RS-485同样负责在设备和物理传输介质之间传输原始数据,并没有复杂的协议栈,是一种利用差分传输进行串口通信的半双工接口。它具有以下特点:

引脚定义:

DB9缩写描述
1RS-485(A+)非反向信号
2RS-485(B -)反向信号
3-
4-
5GND信号地

电气特性:

  • 接口使用差分信号,逻辑1:+2V to +6V;逻辑0:-6V to -2V。
  • 半双工通信,速率可高达10Mbit/s
  • 理论通讯距离可达1200米,具有良好的抗噪声性能,不需要考虑总线电压衰减问题

优缺点:

  • 使用差分信号传输。长距离布线会有信号衰减,而且引入噪声和干扰的可能性更大,在线缆A和B上的表现就是电压幅度的变化,但是,采用差分线的好处就是,差值相减就会忽略掉干扰依旧能输出正常的信号,把这种差分接收器忽略两条信号线上相同电压的能力称为共模抑制。
  • 高低电平由最小差分电压决定。RS-485不需要使用特定的总线电压,在较长的电缆长度上,接收器接收到的电压可能会降低到+/- 200 mV,这对于RS-485仍然是完全可以接受的。RS-485标准中提到:若是逻辑1,线路B信号电压比线路A高;若是逻辑0,线路A信号电压比线路B高;
  • RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上最多可以挂接32个节点。
  • 接口信号电平降低,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
  • 利用RS485为半双工通信方式,即每一时刻只能有一个发送者,且有RS485组成的总线网络没有CSMA/CD机制,因此大多数时候适合从机处于接收状态,等待主机向指定的从机发送数据。
  • RS485接口传输的信号虽然是差分信号,但仍需要使用转换器转换为TTL串口将信号送去微控制器中。

4. TTL

TTL(Transistor Transistor Logic)即晶体管-晶体管逻辑,TTL电平信号由TTL器件产生。TTL器件是数字集成电路的一大门类。TTL与RS485、RS232最大的区别便是TTL接口属于并行方式传输数据的接口,而后两者则遵循的是串行通信协议。

接口定义:

TTL输出接口可分为,单路6bit TTL输出接口、双路6bit TTL输出接口、双路8bit TTL输出位接口等等几类,驱动板的TTL输出接口通常包括:RGB数据信号、时钟信号和控制信号这三大类信号。例如单路6bit TTL输出接口,便共有18条RGB数据线,每个基色信号采用6bit数据(R0~R5,G0~G5,B0~B5),由于基色RGB数据为18bit,因此,也称18位或18bit TTL接口。

电气特性:

  • 逻辑"1":+5V/3.3V;逻辑"0":0V,对TTL电平的器件来说,当输入电压高于2V时,会被识别为逻辑1,输入的低电平低于1.2V时,会被识别为0。
  • 全双工通信,传输速率要高于串行传输
  • 传输距离理论上为10英尺(5米),抗噪声性能差。

优缺点:

  • 并行传输,全双工通信,传输速率极快
  • 电平信号为5V,与主控芯片之间连接不需要额外的电平转换电路,大多数使用在微控制器与外设IO之间的短距离通信上。
  • 信号电压高、连线多,因此抗电磁干扰性能也较差,并不适合长远距离传输。

除了TTL接口外,还有一点极易混淆的是:我们常用的USB转TTL、RS232转TTL指的是将不同接口的电平信号转为TTL电信号,而不是将串行转换为并行,也就是是说转换后仍然是串口通信

5. USB

USB的全名为通用串行总线(Universal Serial Bus),它的出现是为了解决计算机系统接口复杂的弊端,因为早期计算机外设接口各不相同,例如键盘的插口为圆形串口,而打印机需要DB9或25的并行接口,鼠标使用的是DB9或25的串行接口,这些接口不仅复杂,每次插拔都需要系统重启来启动驱动,基于此,USB接口横空出世,它的特点就是将所有外设接口都设计为统一规格,而且支持即插即用。

所谓总线(Bus),一般指通过分时复用的方式,将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。是电脑中传输数据的公共通道。

引脚定义:

引脚描述
VCC+5V
D+数据线
D-数据线
GND信号地

电气特性:

  • USB接口的输出电压和电流是: +5V, 500mA ,误差不得超过0.2V。USB使用D+和D-输出一对差分信号。
  • 最新一代USB4传输速率为40Gbit/s,半双工通信,最大供电100W
  • 传输距离不超过5m

基本特性:

  • USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为下游(Downstream)设备提供电源,对于高速且需要高带宽的外设,USB(USB1.1)以全速12Mbps的传输数据;对于低速外设,USB则以1.5Mbps的传输速率来传输数据,USB总线可以根据情况实现自动切换。
  • USB支持使用HUB扩展,理论上可以扩展127个接口,支持热插拔
  • USB规范定义了四种数据类型:控制传输、中断传输、同步传输、批量传输,支持鼠标、键盘、打印机等多种场景。

5. RJ45

RJ45是布线系统信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。

RJ45即我们常说的网口,主要应用于以太网络中,和上述几种接口不属于同一类型,这里不做介绍。

有关一文搞懂UART、RS232、RS485、TTL等常用的接口与协议的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. 电脑怎么截图?进来看(8种常用截图方法) - 2

    电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,

  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. Unity常用文件夹 - 2

    1.Scenes游戏场景文件夹用于放置unity的场景文件 2.Plugins插件文件夹用于放置unity的依赖文件,例如dll 3.Scripts脚本文件夹用于放置unity的c#脚本文件 4.Resources游戏资源文件夹用于放置unity的各种游戏资源,比如images,prefabs,同时只有放到Resources文件夹的游戏资源才能使用Resource.load(资源路径不加后缀)加载到游戏内存中进行使用 5.EditorUnity编辑器扩展脚本文件夹usingUnityEditor;这个名称空间就是Unity编辑器的名称空间这个名称空间提供了扩展Unity编辑器的各种类 【你所有

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

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

  6. Spark的常用SQL日期函数 - 2

    一、获取当前时间1、current_date当前日期(年月日)Examples:SELECTcurrent_date;2、current_timestamp/now()当前日期(时间戳)Examples:SELECTcurrent_timestamp;二、从日期字段中提取时间1、year,month,day/dayofmonth,hour,minute,secondExamples:SELECTyear(now());其他的日期函数以此类推month:1day:12(当月的第几天)dayofmonth:12hour,minute,second:分别对应时分秒2、dayofweek、dayofm

  7. 嵌入式Linux入门-彻底理解UART串口,手把手教你写程序 - 2

    UART串口这个东西,是嵌入式学习上避不开的,不仅在调试中经常用到,还有很多模块通过串口与SOC相连。这篇文章让你彻彻底底,搞明白串口程序的编写。没有基础的先看:嵌入式Linux学习系列全部文章:嵌入式Linux学习—从裸机到应用教程大全 目录1.UART串口1.1UART硬件连接1.2UART软件通信协议2.读手册,编程序2.1找对应引脚2.2设置GPIO为UART功能2.3设置UART(初始化)2.4编写发送接收函数3.完整代码和验证1.UART串口全称:通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter,简称UART)是一种串行异步收发

  8. ruby - 将异常处理作为 Ruby 中的常用方法 - 2

    有人能告诉我有没有办法将异常处理作为一种通用方法并在方法中使用它?让我进一步解释一下。例如我有以下方法defadd(num1,num2)beginnum1+num2rescueException=>eraiseeendenddefdivide(num1,num2)beginnum1/num2rescueException=>eraiseeendend如您所见,尽管我的方法只需要一行,但由于异常处理代码,该方法变得更大了。我正在寻找的是一个更slim的解决方案,比如(只是一个想法)defadd(num1,num2)num1+num2unlessraise_exceptionenddefd

  9. 一文掌握软件项目成本预算、估算的方法和成本控制的秘籍 - 2

    每个企业都希望在完成项目后获得盈利,但不少企业到了年终后才发现项目做了不少,公司却并没能达到预期,甚至还出现了亏损。那么钱究竟去了哪里?很多公司都搞不清楚原因,出现糊涂账较多的状况,这将会造成严重的后果,尤其在疫情影响下,大环境很恶劣,如果是大公司的事业部门出现亏损,就可能会导致事业部门解散;如果是小公司出现亏损,就很容易导致公司倒闭;怎样做才能确保我们所完成的项目都能获利?从财务角度看,要确保盈利必须做到合理估算成本,只有这样才能在对外签订合约时做出合理报价,在对内在开始项目前做出充分评估投入代价,同时在实施过程中还要控制成本得当,最后项目结束时才会有可能获得盈利。那么我们怎样才能准确的判断

  10. 一文详解COINDAO是什么? - 2

    COINDAO旨在重建社区信任和安全。基于皖北基因的强烈共识,COINDAO自发产生了一个共创、共建、共治、共享的协作组织。它专注于DAO投资管理协议,为新的优质项目创造增长技术和资金。COINDAO的使命就是为真正的优质项目打造一个去中心化、公开透明的平台,让各个赛道上的优质项目能够以更低的成本快速募集资金并向公众开放.打破头部垄断。让真正的爱好者直接获得早期参与优质项目的资格,不再遥不可及,构建生态应用的可信体系,打造人人参与共建、人人共享的去中心化DAO好处。生态系统,我们称之为COINDAO生态系统。COINDAO国内各大财经网站宣发如下:COINDAO国外各大财经网站宣发: COIN

随机推荐