UART原理

时间:2024-04-10 09:58:17

1. 概述
UART(Universal Asynchronous Receiver/Transmitter)是一种异步串口IO端口(Asynchronous Serial I/O port),每个SOC上可支持多个独立的UART。每个独立的UART的特性如下:
(1)每个UART port可基于中断或者DMA来工作,也就是UART可生成中断或者DMA请求,在内存和UART间进行数据的传输;
(2)可编程的波特率、红外传送(接收)、1~2个停止位、5~8 bit数据位宽、校验位(奇、偶校验);
(3)主要组成部分是控制单元,接收器,发送器,波特率生成器,结构框图如下
UART原理
数据发送:数据被写到传输的传输队列中(FIFO(First Input First Output))中,之后数据会被copy到移位器(transmit shifter)中,最终数据移位器通过Tx pin传出。
数据接收:数据通过Rx pin将数据移入接收移位器中,接收移位器中的数据被传输到接收队列。

2.详细描述
(1)数据帧:UART数据帧包括起始位,5~8bit数据位,可选的校验位,1~2bit停止位。数据帧是可编程的,可以通过控制寄存器来进行设置。
(2)数据传出:数据传输时,一个突发长度的数据传输完成后,传输器会产生一个信号,之后下一数据才开始继续传输。
(3)数据接收:接收器除了接收数据外,还会接收传输的错误码,包括复写错误,校验错误,帧错误,传输完成信号错误:
<1>复写错误:新接收的数据覆盖了已经存在的数据(此数据还没来得及读出去);
<2>校验错误:接收器检测到了校验异常;
<3>帧错误:接收的数据没有有效的停止位;
<4>传输完成信号错误:接收器等待接收数据的时间超过了一次数据帧传输所花的时间。

自动流控模式(Auto Flow Control):
一个串口可以连接另一个串口,两个串口之间通过一个信号线来控制数据的传输和接收。如果连接的是一个Modem模块,就需要通过控制寄存器把AFC关掉,软件上来控制UART和modem的通信控制信号线。原理图如下:
UART原理
接收端的接收FIFO中有多于2字节的空间的时候,nRTS被使能,告诉发送端,我可以接收数据;当接收FIFO剩余空间少于1字节的收获,nRTS 被关闭,告诉发送端,我不能再接收数据了。发送端在的cCTS 接收到使能信号后,表示接收端已经准备接收数据了。
eg:
UART原理

RS-232不支持AFC,这些控制信号,需要软件上自己来控制。

中断和DMA请求:
每个UART都有7个信号状态(Tx/Rx/Error)信号,并且都记录在对应的状态寄存器中,包括复写错误,校验错误,传输完成错误,接收buffer ready,传输buffer空,传输移位器空。每种状态都可以产生信号。
接收器和传输器中的要传输的数据达到了突发长度的时候,会产生Rx/Tx的中断。需要注意的是,只要使能了传输中断,传输FIFO中有数据,即使数据长度小于突发长度,也会产生中断,所以要先填充数据,再使能中断。

串口错误状态FIFO:
接收器除了有接收队列外,还有错误接收队列,他会记录接收队列中哪个数据在接收的时候,出现错误。接收的时候,并不会立即产生错误,而是在数据准备读出的时候,会产生错误中断,比如传输了A,B,C,D,在传输B的时候出现错误,只有在A读出后,准备读取B的时候,此时就产生错误中断。
具体如下:
UART原理

红外模式:
UART原理
UART原理

寄存器:
(1)线控寄存器:
主要配置:
<1>传输模式,是红外模式,还是正常的数据传输模式;
<2>是否使用校验位,奇偶校验的选择;
<3>数据位宽,停止位的设置;
(2)控制寄存器:
主要配置:
<1>时钟选择,用于波特率的;
<2>Tx/Rx中断类型,边沿触发,还是电平触发;
<3>Tx/Rx数据传输模式,是中断还是DMA,…
(3)FIFO控制寄存器:FIFO的使能,Tx/Rx的突发长度的设置和重启。除了这些基本的设置外,其余都是UART自己完成。
(4)modem控制寄存器:modem突发长度(nRTS)设置,AFC的使能,中断使能等。
(5)Tx/Rx状态寄存器:传送器的移位器和FIFO是否是空,接收器的FIFO 是否准备好,接收数据。
(6)错误状态寄存器:记录错误状态寄存器,复写错误,校验错误,帧错误,数据传输完成错误。
(7)FIFO状态寄存器:Tx/Rx的FIFO是否满,以及有多少数据量。
(8)modem状态寄存器:主要是nCTS状态的记。
(9)传输、接收寄存器:存放的是传输和接收的实际数据。
(10)中断和时钟相关的寄存器。

UART协议信号模拟请看:
https://blog.csdn.net/gq1900/article/details/51885259