UART的内部结构是什么样的?

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

UART(通用异步收发传输器)的内部结构主要由以下几个部分组成:

发送部分

发送缓冲寄存器(Tx Buffer):用于暂存CPU要发送的数据。当CPU有数据要发送时,先将数据写入发送缓冲寄存器,UART从这里获取数据并进行发送处理。

发送移位寄存器(Tx Shift Register):它从发送缓冲寄存器中获取数据,然后按照UART的通信协议,将数据逐位从移位寄存器的输出端发送出去,在发送过程中,数据会按照规定的波特率进行移位输出。

发送控制逻辑(Tx Control Logic):负责控制发送过程,包括根据波特率发生器产生的时钟信号来确定数据发送的时机,以及处理发送过程中的各种状态,如检测发送缓冲寄存器是否为空,若为空则表示可以接收新的数据进行发送等。

接收部分

接收移位寄存器(Rx Shift Register):通过接收引脚接收外部数据,按照波特率将接收到的串行数据逐位移入寄存器中。在接收过程中,它会根据接收到的数据位的起始位、数据位、校验位和停止位等信息,将数据正确地组装起来。

接收缓冲寄存器(Rx Buffer):当接收移位寄存器接收到完整的数据帧后,会将数据传送给接收缓冲寄存器,供CPU读取。CPU可以从接收缓冲寄存器中获取接收到的数据进行处理。

接收控制逻辑(Rx Control Logic):用于控制接收过程,如检测接收数据的起始位,判断数据是否接收完整,进行校验位的检查等。如果接收到的数据存在错误,接收控制逻辑会根据设置进行相应的处理,如丢弃错误数据或产生错误标志等。

波特率发生器(Baud Rate Generator)

- 主要功能是产生UART通信所需的时钟信号,以确定数据发送和接收的波特率。它通常由一个计数器和一些控制逻辑组成,通过对系统时钟进行分频,得到与设定波特率相对应的时钟信号,为发送和接收移位寄存器提供时钟基准,确保数据能够按照正确的速率进行传输。

控制和状态寄存器(Control and Status Registers)

控制寄存器(Control Register):用于设置UART的工作模式、波特率、数据位长度、校验方式、停止位长度等参数,CPU通过向控制寄存器写入相应的值来配置UART的工作特性,以满足不同的通信需求。

状态寄存器(Status Register):用于反映UART的当前工作状态,如发送缓冲寄存器是否为空、接收缓冲寄存器是否有数据、是否发生了接收错误等。CPU可以读取状态寄存器的值,了解UART的工作情况,以便进行相应的处理。