UART硬件电气特性简单介绍

发布时间 2023-05-17 16:11:26作者: cau_par

UART硬件介绍

UART(universal asynchronous receiver-transmitter),通用异步收发器,用于设备之间数据的串行通信,通常MCU上面的UART除了板间的TTL传输方式,还通过RS232,RS485等不同电气接口进行数据传输。
UART的用途非常广泛,MCU与PC间通信,一些通用模块,GPS,蓝牙通信模块,基于485的MODBUS组网等等。由于使用的是串行通信,使用到的线的数量也相对较少。

USART区别

USART(universal synchronous and asynchronous receiver-transmitter)通用同步异步收发器,USART可以作为UART来用,而UART不能用作USART
USART相对UART来说还要需要一个时钟,这样可以提高发送速率,不过增加了复杂性,因为笔者也没怎么用过USART,暂不作介绍。
这里放一张别人总结的区别图方便日后查看

接线标准

总共用到三根线,TX,RX,GND。设备之间通信将TX与RX对调。

工作方式

单工:只有一个方向,接收方不可以发送数据给发送方
全双工:两个设备可以同时发送和接收数据
半双工:两设备设备轮流进行发送与接收

电气标准

时序


一帧数据包括5个部分
Idle(logic high(1))
Start bit(logic low(0))
Data bit (5-9bits) LSB
Parity bit(optional)
Stop bit(logic high(1))

1 5-9 0-1 1-2
Start Bit Data Frame Parity Bits Stop Bits

而两个设备需要进行正常通信就需要相同的波特率,数据位数,校验位及停止位数
最常用的设置是8位数据位,无校验位,1个停止位

波特率

波特率相当于是UART的时钟,它决定UART的收发数据的速度,波特率的倒数并不是发送数据的速度,因为一帧数据还需要帧头帧尾,因此收发速度根据波特率需要打一定的折扣。
设备也是根据波特率进行数据判定,当前的数据状态。

起始位

在没有接收的数据的时候数据位一直处于HIGH(1)的状态,当数据线被拉低(0)时认定了接收到一个新的数据,以此来作为起始位

数据位

数据位有5-9位可选择,通信双方约定好长度即可,发送数据位时先发送低BIT(LSB的顺序)

校验位

校验位是可选的
奇校验与偶校验,奇校验校验位加数据位1的个数为奇数,偶校验为偶数

停止位

停止位可选1位,1.5位,2位
1.5位并不是指的刚好有1.5位,即发送1.5bit的时候之后就放弃对数据进行判断,开始支等待下一帧的数据
停止位为1,就相当于是将数据又重新拉到IDLE(1)的状态。

总结

这里只是将UART的电气特性作简单介绍。
在使用硬件的UART模块时,用户并不需要支关心UART具体是怎么运行的,UART模块在接收到数据后会自动将采集到的数据推入寄存器,并可以产生中断。

参考

https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter