1.什么是UART?
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART 表示通用异步接收机/发射机,定义用于在两个设备之间交换串行数据的协议或一组规则。UART 非常简单,仅在发射机和接收机之间使用两根电线双向收发。连接两端均接地。UART 通信可以是 单工(仅单向发送数据)、半双工(双向但不可同时发送)或全双工(双向同时发送)。UART 中的数据以帧形式传输。此处简要说明和解释帧格式和内容。
UART接口数据线:
- RX:接收数据
- TX:发送数据
- GND:数字地
- VCC:直流电源
2.工作原理
UART控制器中包含四种寄存器:输出缓存寄存器、输出移位寄存器、输入缓存寄存器、输入移位寄存器。
- 输出缓存寄存器:该寄存器用来存放处理传输过来的并行数据。
- 输出移位寄存器:读取输出缓存寄存器中的值,将并行数据串行输出,LSB先传输。
- 输入移位寄存器:接收对方UART接口传输的串行数据,一帧数据接收完毕后,将把数据传输给输入缓存寄存器。
- 输入缓存寄存器:保存从输入移位寄存器传递过来的串行数据。
图2 UART工作原理
3.UART 用于哪些场景?
UART 是最早的串行协议之一。曾经无处不在的串行端口几乎始终以 UART 为基础,使用 RS-232 接口的设备和外部调制解调器等仪器是常见的 UART 用例。
近年来,UART 的普及率有所降低:SPI 和 I2C 等协议已取代芯片和组件间的 UART。目前,大多数现代计算机和外围设备都不再使用串行端口进行通信,而是使用以太网和 USB 等技术。但是,由于 UART 非常简单、成本低且易于实现,因此仍被用于低速和低吞吐量应用。
4.UART 协议的定时和同步
UART 的一大优点在于此协议为异步——发射机和接收机不共享共同时钟信号。尽管这极大地简化了协议,但也对发射机和接收机提出了特定要求。由于发射机和接收机不共享时钟,因此连接两端必须以预先安排的相同速度进行传输,以确保具有相同的位定时。目前最常用的 UART 波特率是 4800、9600、19.2K、57.6K 和 115.2K。除了具有相同的波特率之外,UART 连接的两端还必须使用相同的帧结构和参数。
5.UART的优点和缺点
UART的优点:
-
只需要使用两根信号线就可以实现全双工的数据传输(不算电源线)
-
无需时钟信号
-
有一个奇偶校验位提供硬件级别的错误检查
-
数据包的结构可以通过两端之间的协调来改变,比较灵活
-
有丰富的文档且被广泛使用的通信方式
-
相对比较容易配置和运行
UART的缺点:
-
与并行通信以及USART相比,数据传输的速度较慢
-
帧的大小被限定为最多9位
-
不支持多个从设备或多个主设备的功能
-
收发两个器件UART的波特率差别不能超过10%