首页 > 代码库 > 串行异步通信接口

串行异步通信接口

串行异步通信接口UART(通用异步收发器)(Universal Asynchronous Receiver/Transmitter,UART)常用于全双工串行异步通信。

UART有发送器、接收器、控制单元、波特率发生器等构成。

发送器负责字符的发送,可采用先进先出(FIFO)模式,也可采用普通模式发送。发送的字符先发送缓冲寄存器,然后通过移位寄存器,在控制单元的作用下,通过TXDn引脚的一位一位顺序发送出去。在FIFO模式下,当N个字节全部到位后才进行发送。不同嵌入式处理芯片内部设置的N值不同。查询发送方式时必须等待发送缓冲器为空才能发送下一个数据。中断发送方式时当发送缓冲器已经空了才引发发送中断,因此可以直接在发送中断服务程序中继续发送下一个或下一组数据(FIFO模式)。

收发器负责外部进来字符的接收,可以是FIFO模式接收,也可以是普通模式接受。外部送来的字符通过RXDn引脚进入接收移位寄存器,在控制单元的控制下,一位一位移位到接收缓冲寄存器中。在FIFO模式下,只有缓冲期满才引发接收中断并置位接收标志,在普通模式下,接收到一个字符就引发接收中断并制标志位。

接收和发送缓冲器的状态被记录在UART的状态寄存器如USRSTATn中,通过读取其状态位即可了解当前接收或发送缓冲器的状态是否满足接收和发送条件。

串行异步通信接口