参看原文链接:嵌入式电子 - 知乎
嵌入式开发人员不论是看技术文档,还是在日常的交流中,经常会碰到串口、COM、UART、USART、RS232、RS485、RS422、TTL这些名词,有时候会说不清、道不明其中的区别,这篇文章,系统地分析和梳理一下这些名词地区别,以后碰到了再也不会懵了...
受限于本文篇幅,还有更多关于串口、COM、UART、USART、RS232、RS485、RS422、TTL细节讲解的内容,请在文末获取...
一、名称俗语解释
先介绍一下专业名词和工程师交流时对应的口语和俗称
- 串口:串行通讯接口,俗称串口
- COM:计算机的串行通讯端口(cluster communication port ),俗称COM口、串口
- UART:Universal Asynchronous Receiver Transmitter,通用异步收发器,俗称串口,它规定了数据传输协议标准
- USART:Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步异步收发器, 俗称串口,它规定了数据传输协议标准.
- RS232:RS-232,串行通信硬件接口标准,包括电压电平、通讯速率等
- RS485:RS-485,串行通信硬件接口标准,包括电压电平、通讯速率等
- RS422:RS-422,串行通信硬件接口标准,包括电压电平、通讯速率等
- TTL电平:规定了数字电路中0和1的电平标准
- CMOS电平:规定了数字电路中0和1的电平标准
按照惯例,画个表格对比,帮忙理解:
二、电气特性TTL、CMOS、RS232、RS485都是一种逻辑电平的类型。1. TTL电平
TTL指双极型三极管逻辑电路(transistor transistor logic),这种信号0对应0V,1对应3.3V或5V,与单片机、MCU、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法。我们进行串口通信的时候 从单片机直接出来的基本是都是 TTL 、CMOS电平。市面上很多"USB转TTL"模块,实际上是"USB转TTL电平的串口"模块。
TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列、3.3V系列,2.5V系列和1.8V系列。
早期的器件多是TTL电平,如早先的54系列和74系列。现在的大部分器件使用的工艺都是CMOS工艺。
输出电平:高电平Uoh >=2.4v,低电平Uol <= 0.4v
输入电平:高电平Uih >= 2.0v,低电平 Uil <= 0.8v
TTL电压:一般为5V,现在也有LVTTL支持3.3V、2.5V、1.8V。为了方便,后面统称为TTL。
2. CMOS电平
输出电平:高电平Uoh>= 0.9*VCC (≈ VCC), Uol <= 0.1*VCC(≈ GND)
输入电平:高电平Uih >= 0.7*VCC Uil <= 0.3*VCC
CMOS电压:一般为5V、现在也有LVCMOS支持3.3v、2.5v、1.8v。为了方便,后面统称为CMOS。
3. TTL和CMOS两者的区别
(1)TTL电路是电流控制器件,稳定时损耗高,发热量大,无法做集成度比较高的芯片。而CMOS电路是电压控制器件,功耗低。
(2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低,也就是说TTL电路的延迟比CMOS电路要小。COMS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。
(3)TTL和CMOS器件有不同的电压类型,5V、3.3V、2.5V、1.8V
(4)电流驱动能力不一样,TTL一般提供25mA的驱动能力,而CMOS一般在10mA左右;需要的电流输入大小也不一样,一般TTL需要2.5mA左右,CMOS几乎不需要电流输入;很多器件都是兼容TTL和CMOS的,data sheet会有说明。如果不考虑速度和性能,一般器件可以互换。
4.RS232:
由于RS232接口标准的早期出现,存在以下特点和不足。
(1) 接口电平特性:接口信号电平高,容易损坏接口电路的芯片。RS232接口上任何信号线的电压都处于负逻辑关系中。即:逻辑“1”为-3 ~ -15V;逻辑为“0”:+3 ~ +15V。与TTL电平不兼容,需要一个电平转换电路来连接到TTL电路。
(2) 传输速率低。在异步传输中,波特率为50、75、100、150、300、600、1200、2400、4800、9600、19200
(3) 接口采用信号线和信号回波串,形成共同的接地传输形式。这种标准的接地传输容易受到共模干扰,因此抗噪性较弱。
(4) 传输距离有限。最大传输距离为50英尺。它只能达到大约15米。
(5) 全双工。有独立的收发数据线,所以能全双工通信。
(6) 只能点对点通信。
5.RS485:
针对RS232不足,RS485做了如下改进:
(1)接口电平特性:RS-485的电气特性:逻辑“1”由两条线路+2V~+6V之间的电压差表示,逻辑“0”由两条线路之间的电压差-6V~-2V表示。接口信号电平低于RS-232,不易损坏接口电路芯片。该电平与TTL电平兼容,便于与TTL电路连接。
(2) 最高数据传输速率为:10Mbps
(3) RS-485接口采用平衡驱动器和差分接收机的组合,具有抗共振固模干扰能力,即抗噪声性能好。
(4) RS-485接口的最大传输距离为4000英尺,实际上可达3000米。
(5) RS-232接口仅允许一个收发器连接到总线,即单站功能。相比之下,RS-485接口仅允许在总线上连接多达128个收发器,即多站能力。用户使用单个RS-485接口可以快速建立设备网络。
(6) 只能半双工
6.RS422
RS-422为了解决RS485只能半双工的缺点,又扩展出一组数据线,这样就具备了全双工通讯能力。
(1). 接口电平特性:和RS485一样。
(2). 最高数据传输率:和RS485一样。
(3). 抗噪声性能:和RS485一样。
(4). 通讯距离:和RS485一样。
(5). 多点通信的数据传输协议。和RS-485不同的是RS-422不允许出现多个发送端而只能有多个接收端。
(6). 全双工通信能力。RS422采用4线,全双工,硬件构成上RS-422相当于两组RS-485,即两个半双工的RS-485构成一个全双工的RS-422。
7.USART/UART
USART,即通用同步异步收发器,是一个全双工通用同步/异步串行收发模块。在嵌入式领域,它还有一个更口语化的称呼,即“串口”。
UART,它是在USART基础上裁剪掉了同步通信功能,UART应用更为普遍。USART靠主机的时钟来同步数据传输波特率,而UART是通信双方事先协商好通信波特率。
USART/UART仅规定了协议层通信标准,并没有规定采用什么电平特性,物理层硬件可以根据通讯对象灵活选择,比如,可以是TTL、CMOS、RS232、RS485、RS422。协议层通信标准,规定了数据传输的格式,起始位+数据帧+校验位+停止位。
三、总结对比:
(1). TTL、CMOS、RS232、RS485、RS422电平标准参数:
逻辑电平 | 供电电压 | 输入高逻辑-1 | 输入低逻辑-0 | 输出高逻辑-1 | 输出低逻辑-0 |
TTL | 5.0V | 2.0V~ 5.0V | 0V~0.8V | 2.4V~5.0V | 0V~0.5V |
LVTTL | 3.3V | 2.0V~ 3.3V | 0V~ 0.8V | 2.4V~3.3V | 0V~0.4V |
LVTTL | 2.5V | 1.7V~ 2.5V | 0V~0.7V | 2.0V~ 2.5V | 0V~0.2V |
LVTTL | 1.8V | 1.17V~1.8V | 0V~0.63V | 1.35V~1.8V | 0V~0.45V |
CMOS | 5.0V | 3.5V~ 5.0V | 0V~1.5V | 4.45V~5.0V | 0V~0.5V |
LVCMOS | 3.3V | 2.0V~ 3.3V | 0V~0.8V | 2.4V~ 3.3V | 0V~0.4V |
LVCMOS | 2.5V | 1.7V~ 2.5V | 0V~0.7V | 2.0V~ 2.5V | 0V~0.4V |
LVCOMS | 1.8V | 1.17V~1.8V | 0V~0.63V | 1.35V~1.8V | 0V~0.45V |
RS232 | 3.3V/5V | -15V~ -3V | 3V~ 15V | -15V~ -3V | 3V~ 15V |
RS485 | 3.3V/5V | +2V ~ +6V | -6V~-2V | +2V~+6V | -6V~-2V |
RS422 | 3.3V/5V | +2V~+6V | -6V~-2V | +2V~+6V | -6V~-2V |
LVDS | 3.3V/5V | 1.252V~ 3.3V/5V | 0V~1.249V | 1.252V~3.3V/5V | 0V~1.249V |
从上面可看出:5V电源电压情况下,CMOS电路可以直接驱动TTL,而TTL电路则不能直接驱动CMOS电路。其他电平也不能直接驱动,所以就需要2者的进行电平转换。后面讲解到的TTL、RS232、RS485也有电平匹配的问题,也需要进行电平转换。这也是为什么,我们在串口通讯硬件上,经常需要电平转换芯片的原因。
(2). 功能、性能特点对比
电平 | 速率 | 抗扰 | 距离 | 组网 | 全双工、半双工 | |
RS232 | 高 | 低 | 低 | 近 | 一对一 | 全双工 |
RS485 | 低 | 高 | 高 | 远 | 多对多 | 半双工 |
RS422 | 低 | 高 | 高 | 远 | 一对多 | 全双工 |
电平 | 速率 | 抗扰 | 距离 | 组网 | 全双工、半双工 | |
RS232 | 高 | 低 | 低 | 近 | 一对一 | 全双工 |
RS485 | 低 | 高 | 高 | 远 | 多对多 | 半双工 |
RS422 | 低 | 高 | 高 | 远 | 一对多 | 全双工 |
四、UART/USART和其他设备互联
我们前面讲过,UART、USART、TTL、RS232、RS485、RS422有不同电平特性,那么,这些设备互联正常通信的首要条件是必须电平匹配,否则,轻则功能不正常,重则烧板子,烧芯片。
(1). UART + UART
因为单片机、MCU、微控制器UART口电平都是TTL电平,如果TTL电平相同,那么,UART+UART互联不需要电平转换。如果一个UART TTL 3.3V, 一个UART TTL 1.8V,那么也需要通过电平转换芯片,转成相同电平再进行互联。
(2)UART+电脑USB串口
(3)UART+RS232
(4)UART+RS485
受限于本文篇幅,还有更多关于串口、COM、UART、USART、RS232、RS485、RS422、TTL细节讲解的内容,私信作者或者关注公众号,回复230218,获取对应的资料。部分内容截图如下: