一、串口通信
串口通信方式有两种:串行通信和并行通信。
- 串行通信:数据的每一位,在同一根数据线上,按照顺序逐位传输。
- 并行通信:数据的每一位同时在多跟数据线上传输。
二、COM(cluster communication port)
COM口,即串行通信接口,简称串口。
PC机上的COM口,一般为DB9的九针接口,最大速率115200bps。机箱后面的那个九孔输出端(梯形),就是COM1口。
还有一种表现形式为:4针杜邦头,VCC、GND、TX、RX
波特率115200bps,即每秒传输115200bit数据,由于每一帧数据包含了起始位最少1bit,停止位最少1bit,校验位最少0bit,所以串口传输1字节数据,至少耗费10bit,所以实际每秒传输字节数为11520Byte,在现实使用过程中,又往往达不到这个值。
三、UART(Universal Asynchronous Receiver/Transmitter )
UART,即通用异步收发器,UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。
发送端的UART将来自控制设备(如CPU)的并行数据转换为串行数据,以串行方式将其发送到接收端的UART,然后由接收端的UART将串行数据转换为并行数据以用于接收设备的正常处理。这里只需要两条线RX/TX即可在两个UART之间传输数据。
四、USB(Universal Serial Bus)
USB,即通用串行总线;是一个外部总线标准。其通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,其通信主要靠D+,D-两条数据线构成的差分线来进行数据传输!
USB有二种传输速率,第一种是全速模式,第二种则是低速模式
USB并且可以支持热插拔,并且USB2.0传输速度可达60MB/S,USB3.0的传输速度可达5Gb/s,USB3.1传输速度可达10Gb/s,但是实际使用时,达不到这么高的速度。
那么有的就会很好奇:
UART与USB同样是异步传输模式,同样是四根线,为啥USB比UART的速度会快那么多呢?
- UART是三根线,Tx、Tx、GND,不是四根线(相关联络信号线除外)。
- USB是D+、D-,用的是差分线,这样的话可以支持的速率更高(因为抗干扰性强),usb3.0标准可以达到5Gbps(理论上)。
- 非常重要的一个原因,UART标准比USB早很多,当时的技术只能支持低速传输。
串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)。
四、TTL
TTL全名是晶体管-晶体管逻辑集成电路(Transistor-Transistor Logic
),
- 输入高电平最小2V,输出高电平最小2.4V,典型值3.4V;
- 输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V。
五、RS-232
RS232 逻辑1电平(MARK)=-3V~-15V,逻辑0电平(SPACE)=+3~+15V;
六、RS-485
RS485是差分信号进行串行传输;
- 逻辑1以两线间的电压差为
+(2~6)V
表示; - 逻辑"0"以两线间的电压差为
-(2~6)V
表示;
七、电平转换介绍
单片机的UART通信接口,电平逻辑为TTL;
PC端的接口为USB或者232接口
- USB转TTL
PC端的USB口,要想与单片机的UART通信,需要使用USB->TTL芯片,使用前需要安装Windows驱动,
常用芯片有:PL2303、CP2102,FT232R
- TTL转232
PC端的DB9接口,逻辑电平为232,要想与单片机UART进行通信,需要使用TTL->232芯片。
常用芯片有:MAX232,MAX232转换芯片,是TTL电平和RS232电平专用的双向转换芯片。
- USB转232
如果想用USB->232怎么办?
可以使用上面两个芯片的结合,先使用USB->TTL,再使用TTL->232芯片!