正确答案
每个UART能将从RXD端接收的串行数据转变为并行的数据,并且能够将来自处理器的并行数据转化串行数据,然后通过TXD端发送出去。根据UART是否在FIFO模式下执行,发送和接收的数据会有选择的锁存在发送/接收FIFO。例如,当UART在接收数据时,来自RXD端的数据首先会经过接收移位寄存器,然后组织成一个字节的数据,如果运行在FIFO模式,数据会首先锁存在接收FIFO里,同时接收缓冲寄存器RBR会保存FIFO第一字节单元数据,FIFO的内容可以通过连续读取RBR获得,每读写完一次后,FIFO第一字节单元数据会被移出。当UART收到来自总线的并行数据时,数据首先进入发送缓冲寄存器THR,如果工作在FIFO模式,数据会再被锁存在发送FIFO,最后才被送入发送移位寄存器,将并行数据以逐位方式在TXD端发送出去,每次向THR写入的数据(有效数据最长为8位)会被送入FIFO,只有FIFO的第一字节单元会被送入发送移位寄存器里,并且在FIFO里还未发送的数据会逐渐上移到第一字节单元。无论是接收还是发送,当运行在non-FIFO方式时,数据不会被锁存在FIFO,而只会被锁存在寄存器RBR或THR,可以简单认为在non-FIFO时,RBR和THR分别与接收移位寄存器和发送移位寄存器直接相连。