1通用异步收发器课案.docx
《1通用异步收发器课案.docx》由会员分享,可在线阅读,更多相关《1通用异步收发器课案.docx(8页珍藏版)》请在冰豆网上搜索。
1通用异步收发器课案
1.通用异步收发器
1.1通用异步收发器概述
S5PV210的通用异步收发器(UART)提供四对独立的异步串行输入/输出(I/O)端口。
所有的端口操作基于中断或基于DMA的操作模式。
UART产生一个中断或DMA请求,将数据传输给CPU或者从CPU传输给UART。
UART支持高达3Mbps比特率。
每个UART通道包含两个FIFO接收和发送数据:
在ch0的256个字节,在ch1的64字节和在ch2和ch316个字节。
UART包括可编程波特率,红外(IR)发射器/接收器,一个或两个停止位插入,5位,6位,7位或8位数据宽度和奇偶校验。
每个UART包含一个波特率发生器,发送器,接收器和一个控制单元,如图1-1。
波特率发生器采用PCLK或SCLK_UART。
发射器和接收器包含FIFO和数据移位器。
要传输的数据被写入到TxFIFO,并复制到发送移位器。
然后,数据由发送数据引脚(TXDn)移出。
所接收的数据从接收数据引脚(RxDn)移位,并且从移位器复制到RxFIFO。
1.2通用异步收发器的主要特点
•RXD0,TxD0,RXD1,TXD1,RxD2,TxD2,RXD3和TXD3带有基于DMA或基于中断的操作
•UART通道0,1,2和3具有IrDA1.0
•UART通道0具有256字节FIFO,通道1具有64字节FIFO,通道2和3具有16字节的FIFO
•UART通道0,1和2具有nRTS0,nCTS0,nRTS1,nCTS1,nCTS2和nRTS2的自动流控制功能
•支持握手发送/接收。
图1-1UART的框图
1.3UART的说明
以下各节描述的UART操作,如数据传输,数据接收,中断产生,
波特率发生器,回环模式,红外模式和自动流控制
1.3.1数据传输
用于传输的数据帧是可编程的。
它由一个起始位,五至八个数据位,一个可选的奇偶性位,和一到两个停止位,由线路控制寄存器(ULCONn)指定。
发射器也可以产生一个中止的条件,迫使串行输出为逻辑0状态持续一帧传输时间。
目前传输字完全传输后,传输中止信号。
中止信号传输后,传输发送器连续发送数据到发送FIFO(Tx保持寄存器,如遇非FIFO的模式)。
1.3.2数据接收
类似数据传输,用于接收所述数据帧也是可编程的。
它由一个起始位,五至八个数据位,一个可选的奇偶校验位,和一到两个停止位,由线路控制寄存器(ULCONn)指定。
接收器检测溢出错误,奇偶校验错误,帧错误和中止条件,每个设置一个错误标志。
•溢出错误表示在旧的数据被读取之前,新的数据覆盖旧数据。
•奇偶校验错误表示接收器检测到一个意想不到的奇偶条件。
•帧错误表示接收到的数据没有一个有效的停止位。
•中止情况表明,RxDn输入是在逻辑0状态持有多于一帧的传输时间。
如果在3个字的时间(这个时间间隔按照字长位设置)没有接收到数据时和在FIFO模式下RxFIFO不为空接收超时情况。
1.3.3自动流控制(AFC)
S5PV210的UART0和UART1支持自动流控制(AFC)通过使用NRTS和NCTS信号。
如果TXD3和RXD3由GPA1CON(GPIOSFR)设置为nRTS2和nCTS2,UART2支持自动流控制。
在这种情况下,它可以连接到外部的UART。
为了使UART连接到调制解调器,禁用UMCONn寄存器自动流控制位并使用软件控制NRTS的信号。
在AFC中,NRTS信号依赖于接收器的状态,而NCTS信号控制发射器的操作。
如果NCTS信号被激活(在AFC,NCTS信号意味着其他UART的FIFO准备接收数据),UART的发送器传输数据到FIFO。
UART接收数据之前,如果接收FIFO有超过2个字节作为备用,NRTS信号必须被激活。
如果其接收FIFO有少于1个字节作为备用(在AFC中,NRTS信号,意味着自己的接收FIFO准备接收数据)该NRTS信号必须被灭活。
图1-2UART自动流控制接口
1.3.4非自动流控制的例子(控制NRTS和NCTS软件)
1.3.4.1带有FIFO的RX操作
1.选择传输模式(中断或DMA模式)。
2.检查UFSTATn寄存器中RxFIFO数值。
如果该值小于16,则必须设置UMCONn[0]为'1'(激活nRTS)。
然而,如果该值等于或大于16,则必须将值设置为'0'(灭活NRTS)。
3.重复步骤2。
1.3.4.2带有FIFO的TX操作
1.选择传输模式(中断或DMA模式)。
2.检查UMSTATn[0]的值。
如果该值是'1'(激活NCTS),您必须将数据写入发送FIFO寄存器。
3.重复步骤2。
1.3.5在DMA模式下TX/RXFIFO触发深度和DMA突发大小
在DMA模式下如果TX/RX数据达到UFCONn寄存器的发送/接收FIFO触发深度,则DMA传输开始。
一个单一的DMA传输将发送整个的UFCONn寄存器中指定的DMA突发大小的数据,并且DMA重复传输,直到传送的数据大小达到的Tx/RxFIFO触发深度。
因此,DMA突发大小应小于或等于的Tx/RxFIFO触发深度。
一般来说,建议,以确保TX/RXFIFO触发深度与DMA突发大小匹配。
1.3.6RS-232C接口
要连接到UART的调制解调器接口(而不是零调制解调器),NRTS,NCTS,nDSR,NDTR,DCD和NRI信号是必需的。
因为AFC不支持RS-232C接口,您可以通过软件控制通用I/O端口来控制这些信号。
1.3.7中断/DMA请求产生
在S5PV210中每个UART包括7个状态(TX/RX/错误)信号,即溢出错误,奇偶校验错误,帧错误,中断,接收缓冲区中的数据准备好,发送缓冲区空,和发送移位寄存器空。
这些条件由相应的UART状态寄存器(UTRSTATn/UERSTATn)表示。
溢出错误,奇偶校验错误,帧错误和中断条件指明接收错误状态。
如果在控制寄存器(UCONn)中接收的错误-状态-中断-使能位被设置为1,接收错误状态产生接收-错误-状态-中断。
如果接收-错误-状态-中断-请求被检测到,您可以通过读取UERSTATn的值来判断中断源。
在FIFO模式下,如果接收器传输接收移位器中的数据到接收FIFO寄存器,并且接收到的数据的数量大于或等于接收FIFO触发深度的话,那么,若控制寄存器(UCONn)中接收模式被设置为1(中断请求或轮询模式),则产生接收中断。
在非FIFO模式,传输接收移位器的数据到接收保持寄存器,在中断请求和轮询模式下会导致接收中断。
如果从发送FIFO寄存器中的发送器将数据传输到发送移位和发送FIFO中剩余的数据的数量小于或等于到TxFIFO触发深度,将产生Tx中断(在控制寄存器中设置的传输模式应选择为中断请求或轮询模式)。
在非FIFO模式下,从发送保持寄存器传输数据到发送移位寄存器导致发送中断的中断请求和轮询模式。
尤其注意,如果数据在发送FIFO的数量大于小触发水平Tx中断会一直请求。
这意味着,只要你一启用Tx中断,就会有一个中断被请求,除非你填Tx缓冲器。
所以建议先补Tx缓冲器,然后再启用Tx中断。
S5PV210的中断控制器是电平触发型的。
如果你对UART控制寄存器编程,必须设置中断类型为'电平'。
如果接收和发送控制寄存器模式设置为DMAn请求模式,然后DMAn请求发生来代替上述情况中的接收或发送中断。
表1-1中断与FIFO的关系
类型
FIFO模式
非FIFO模式
接收中断
如果产生RxFIFO的计数值大于或等于收到的FIFO触发电平。
如果产生FIFO数据的数量不到达接收FIFO触发电平,并且不在3个字的时间接收到任何数据(接收时间出)。
此时间间隔如下话语设置长度位。
通过接收保存寄存器产生
当接收缓冲区已满。
发送中断
如果产生发送FIFO计数小于或等于的发送FIFO(发送FIFO触发电平级)。
通过发送保持寄存器产生每当发送缓冲区为空。
错误中断
如果产生帧错误,奇偶校验错误,或破信号被检测到。
如果UART接收新数据的接收时FIFO满(溢出错误)。
所有的错误产生。
但是,如果出现另一个错误的同时,只有一个中断。
1.3.8UART错误状态FIFO
UART除了RxFIFO寄存器还含有错误状态FIFO。
错误状态FIFO指出在FIFO寄存器中哪些数据接收到有错误。
一个错误中断发出除非准备读出的数据中包含一个错误。
要清除错误状态FIFO,有错误的URXHn和UERSTATn必须读出。
例如,假设UARTRXFIFO接收的A,B,C,D和E的字符顺序和在接收“B”出现帧错误,并同时接受“D”发生奇偶校验错误。
实际的UART接收错误不会产生任何错误中断,因为错误未被读从而接收的字符被接收,如果字符被读出错误中断发生。
时钟
顺序流
错误中断
声明
#0
如果没有字母被读出
-
#1
A,B,C,D,E被接收
-
#2
A被读出后
帧错误(在B中)中断产生
B已被读出
#3
B被读出后
#4
C被读出后
奇偶校验错误(在D)中断产生
D已被读出
#5
D被读出后
#6
E被读出后
图1-3UART接收五个字母包括两个错误
1.3.8.1红外线(IR)模式
该S5PV210UART模块支持红外(IR)发送和接收。
它是通过设置UART在线控制寄存器(ULCONn)中的红外模式位来实现。
图1-4说明了如何实现红外模式。
在红外发射模式时,发送脉冲以3/16的速率发送出来,也就是正常的串行传输速率(如果发送的数据位是0)。
在IR接收模式,然而,接收器必须检测的3/16的脉冲周期来识别0值(参见图1-5和图1-7所示的帧时序图)。
图1-4红外线功能块图
图1-5串行I/O帧时序图(正常UART)
图1-6红外线传输模式帧时序图
图1-7红外接收模式帧时序图
1.4UART的输入时钟图描述
图1-8UART的输入时钟框图
S5PV210的UART提供了各种时钟。
如在图1-8所描述的,UART是能够选择时钟从PCLK,或时钟控制器的SCLK_UART。
您还可以从PLL中选择SCLK_UART。
要选择SCLK_UART,请参阅第2-3时钟控制器。
1.5 I/O描述
signal
I/O
描述
pad
类型
UART_0_RXD
Input
UART0的输入接收数据
XuRXD[0]
复用
UART_0_TXD
Output
UART0的输出传输数据
XuTXD[0]
复用
UART_0_CTSn
Input
UART0的输入清除发送(低电平有效)
XuCTSn[0]
复用
UART_0_RTSn
Output
UART0的输出请求发送(低电平有效)
XuRTSn[0]
复用
UART_1_RXD
Input
UART1的输入接收数据
XuRXD[1]
复用
UART_1_TXD
Output
UART1的输出数据传输
XuTXD[1]
复用
UART_1_CTSn
Input
UART1的输入清除发送(低电平有效)
XuCTSn[1]
复用
UART_1_RTSn
Output
UART1的输出请求发送(低电平有效)
XuRTSn[1]
复用
UART_2_RXD
Input
UART2的输入接收数据
XuRXD[2]
复用
UART_2_TXD
Output
UART2的输出传输数据
XuTXD[2]
复用
UART_2_CTSn
Input
UART2的输入清除发送(低电平有效)
XuCTSn[2]
复用
UART_2_RTSn
Output
UART2的输出请求发送(低电平有效)
XuRTSn[2]
复用
UART_3_RXD
Input
UART3的输入接收数据
XuRXD[3]
复用
UART_3_TXD
Output
UART3的输出传输数据
XuTXD[3]
复用
注:
类型字段指示焊盘是否是专用于信号或焊盘被连接到所述复用信号。
UART外部垫带有IrDA共享。
为了使用这些垫,GPIO必须UART开始前进行设置。
请参阅第2-2GPIO进行精确设置