前言
概述
USART全名Universal Synchronous/Asynchronous Receiver/Transmitter,也即通用同步/异步串行接收/发送器。是一种异步全双工点对点总线架构,其总共需要TX传输线、RX接收线和GND共地线。如果两个USART硬件没有自主供电VCC,还需要VCC线
电路特性
USART总线采用推挽输出模式,因为其为异步传输模式,也即不存在时钟线,对传输的控制主要由波特率来实现。对于USART来说,数据线的接法就是TX与RX相连,因为双方都存在TX与RX总线,所以可以实现全双工的通信方式
USART总线的电平采用TTL电平,其0和1的确定由数据线上电平与共地线电压差的值所确定。
通信过程
USART通信帧格式
USART在传输数据时以帧为单位,一帧通常为10bit或11bit,如下图所示:
这张图直观展示了一个帧的基础结构,由起始位+数据位+校验位(可选项)+终止位组成。由于USART为低电平有效,所以一帧的开始是数据线上的电平由高电平转向低电平产生一个下降沿作为标志,之后便是8位或9位的数据传输,须知USART的数据传输采用低位有限的方式,先传输数据低位再传输高位。在传输的末尾可以添加校验位,诸如奇偶校验、CRC循环冗余校验等。最后便是停止位,数据线拉高至高电平,表示一次传输完成。同时终止位的拉高至高电平也是为了下一次的传输做准备,这样当下一次传输时在开头可以产生一个下降沿。
数据传输
USART的整个数据传输过程就以上述介绍的帧格式为基础,在每一帧内放入需要传输的数据,TX向数据线上传输数据,RX从数据线上读取数据。这个过程的时序确定由USART双方协商的波特率确定。