调试时总是会遇到各种各样的接口,各种各样的转换板,似懂非懂的感觉很不爽!

 

首先,串口、UART 口、COM 口、USB 口是指的物理接口形式(硬件)。而 TTL、RS-232、RS-485 是指的电平标准(电信号)。

 

串口:串口是一个泛称,UART,TTL,RS232,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,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’表示



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。

 


下图是个 USB 转 TTL 串口的小板,可以用 USB 扩展出一个串口。芯片为 PL2303HX。网上经常混淆各种串口,但是这个确实是可以给 STC 单片机下载程序的。

 


这是另一种,CP2102 芯片的,也是 USB 转 TTL 串口。据说比 PL2303 的好,实际使用中没感觉出来。这个小板就多了+3.3V 电源端,以适应不同的目标电路。下图为 USB 转 RS-232 串口: