首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。
串口:串口是一个泛称,UART,TTL,RS232,RS422、RS485都遵循类似的通信时序协议,因此都被通称为串口。
UART接口:通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。
COM口:特指台式计算机或一些电子设备上的D-SUB外形(一种连接器结构,VGA接口的连接器也是D-SUB)的串行通信口,应用了串口通信时序和RS232的逻辑电平。
USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块)
TTL,RS232,RS422、RS485都是一种逻辑电平的表示方式
TTL:TTL指双极型三极管逻辑电路,市面上很多“USB转TTL”模块,实际上是“USB转TTL电平的串口”模块。这种信号0对应0V,1对应3.3V或者5V。与单片机、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法。我们进行串口通信的时候从单片机直接出来的基本是都是 TTL 电平。
TTL电平:全双工(逻辑1: 2.4V--5V 逻辑0: 0V--0.5V)
1、硬件框图如下,TTL用于两个MCU间通信
2、‘0’和‘1’表示
RS232:是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。rs232 的逻辑电平和TTL 不一样但是协议一样。
RS-232电平:全双工(逻辑1:-15V--5V 逻辑0:+3V--+15V)
1、硬件框图如下,TTL用于MCU与PC机之间通信
2、‘0’和‘1’表示
RS422:RS422是一种串口接口标准,为了长距离传输采用差分形式,传输差分信号,抗干扰能力比RS232强很多。
RS-422:全双工、
RS485:RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。两线压差为-(2~6)V表示0,两线压差为+(2~6)V表示1
RS-485:半双工、(逻辑1:+2V--+6V 逻辑0:-6V---2V)这里的电平指AB 两线间的电压差。
1、硬件框图如下
2、‘0’和‘1’表示
COM口即串行通讯端口,简称串口。这里区别于USB的“通用串行总线”和硬盘的“SATA”。
一般我们见到的是两种物理标准。D型9针插头,和 4针杜邦头两种。
这是常见的4针串口,在电路板上常见,经常上边还带有杜邦插针。还有时候有第五根针,3.3V电源端。
由于是预留在电路板上的,协议可以有很多种,要看具体设备。
嵌入式里面说的串口,一般是指UART口,但是我们经常搞不清楚它和COM口的区别, 以及RS232, TTL等关系, 实际上UART,COM指的物理接口形式(硬件), 而TTL、RS-232是指的电平标准(电信号).
UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。
下面这个就是D型9针串口(通俗说法)。在台式电脑后边都可以看到。记住,这种接口的协议只有两种:RS-232和RS-485。不会是TTL电平的(除非特殊应用)。9针串口的定义可以参考这里:
http://wenku.baidu.com/view/5c170c6925c52cc58bd6be6e.html
我们一般只接出RXD TXD两针,外加GND。
RS232 9针分公母头
规定 | RS232 | RS422 | R485 | |
工作方式 | 单端 | 差分 | 差分 | |
节点数 | 1收、1发 | 1发10收 | 1发32收 | |
最大传输电缆长度 | 50英尺 | 400英尺 | 400英尺 | |
最大传输速率 | 20Kb/S | 10Mb/s | 10Mb/s | |
最大驱动输出电压 | +/-25V | -0.25V~+6V | -7V~+12V | |
驱动器输出信号电平 | 负载 | +/-5V~+/-15V | +/-2.0V | +/-1.5V |
驱动器输出信号电平 | 空载 | +/-25V | +/-6V | +/-6V |
驱动器负载阻抗(Ω) | 3K~7K | 100 | 54 | |
摆率(最大值) | 30V/μs | N/A | N/A | |
接收器输入电压范围 | +/-15V | -10V~+10V | -7V~+12V | |
接收器输入门限 | +/-3V | +/-200mV | +/-200mV | |
接收器输入电阻(Ω) | 3K~7K | 4K(最小) | ≥12K | |
驱动器共模电压 |
| -3V~+3V | -1V~+3V | |
接收器共模电压 |
| -7V~+7V | -7V~+12V |
RS422接线图
一发多收的模式下,只需要在终端接等效阻抗的电阻。
下图是个USB转TTL串口的小板,可以用USB扩展出一个串口。芯片为PL2303HX。网上经常混淆各种串口,但是这个确实是可以给STC单片机下载程序的。
这是另一种,CP2102芯片的,也是USB转TTL串口。据说比PL2303的好,实际使用中没感觉出来。这个小板就多了+3.3V电源端,以适应不同的目标电路。下图为USB转RS-232串口: