UART是如何工作的?

作者:cambrain     发布时间:2025-01-21     点击数:0    

UART(通用异步收发传输器)的工作原理主要涉及数据的发送和接收两个过程,以下是其具体的工作方式:

数据发送

1.并行数据转换为串行数据

:在发送端,UART首先从CPU或其他设备接收并行数据,这些数据通常是8位或16位等一组二进制数。UART内部有一个发送缓冲寄存器,用于暂存这些并行数据。然后,UART按照一定的时钟节拍,将并行数据逐位转换为串行数据,从发送引脚(TX)输出。

2.添加起始位和停止位

:为了让接收端能够准确地识别数据的开始和结束,UART在发送数据时,会在每个字节的数据前面添加一个起始位,通常起始位为低电平,表示数据传输的开始。在数据字节的后面添加一个或多个停止位,停止位通常为高电平,用于表示数据传输的结束。有些UART还可以设置奇偶校验位,用于对数据进行简单的校验,以提高数据传输的可靠性。

3.按照波特率发送数据

:UART按照预先设定的波特率来发送数据。波特率表示每秒传输的二进制位数,常见的波特率有9600、115200等。例如,当波特率为9600时,意味着每秒钟可以传输9600位数据。发送端会根据波特率的节奏,一位一位地将数据发送出去,确保数据在传输线上以正确的速率传输。

数据接收

1.检测起始位

:在接收端,UART的接收引脚(RX)不断监测输入信号的电平变化。当检测到一个从高电平到低电平的跳变时,UART认为可能是一个数据帧的起始位,开始启动接收过程。为了确保起始位的准确性,UART通常会在多个采样点对起始位进行检测,只有当连续多个采样点都检测到低电平时,才确认是真正的起始位。

2.采样数据位

:确认起始位后,UART按照波特率的节奏,在每个数据位的中间位置进行采样,获取数据的值。例如,如果波特率为9600,那么每1/9600秒就会对数据线上的电平进行一次采样,将采样到的电平值转换为二进制数据,依次存入接收缓冲寄存器中。

3.校验与组装数据

:接收完一个字节的数据位后,UART会根据设置的校验方式(如奇偶校验)对数据进行校验,检查数据在传输过程中是否发生错误。如果校验通过,UART将把接收到的串行数据转换为并行数据,存储在接收缓冲寄存器中,等待CPU或其他设备来读取。如果校验失败,UART可能会采取一些错误处理措施,如丢弃数据、发送错误信号等。

4.检测停止位

:在接收完数据位和校验位后,UART会检测停止位。如果检测到的停止位符合设定的标准(通常为高电平),则表示一个完整的数据帧接收完成。如果停止位不符合要求,UART可能会认为出现了传输错误,进行相应的错误处理。 在整个UART的工作过程中,发送端和接收端需要事先约定好波特率、数据位长度、停止位长度、校验方式等参数,以确保数据能够正确地发送和接收。