-
1.
通用异步收发器
1.1
通用异步收发器概述
S5PV210
的通用异步收发器
(
UART
)
提供四对独立的异步串行输入
/
输出
(
I
/ O
)端口。
所有的端口操作基于中
断或基于
DMA
的操作模式。
UAR
T
产生一个
中断或
DMA
请求
,
将数据传输给
CPU
或者从
CPU
传输给
< br>UART
。
UART
支持高达
3Mbps
比特率。每个
UART
p>
通道包含两个
FIFO
接收和发送数据:在
ch0
的
256
个
字节,在
ch1
的
64
字节和在
ch2
和
ch3 16
个字节。
UART
包括可编程波特率,红外(
IR
)发射器
/
接收器,一个或两个停止位
插入,
5
位,
6
位,
7
位或
8
位数据宽度和奇偶校验。
每个
p>
UART
包含一个波特率发生器,发送器,接收器和一个控制单元,
如图
1-1
。波特率发生器采用
PC
LK
或
SCLK_UART
。发射器
和接收器包含
FIFO
和数
据移位器。
要传输的数据被写入到
Tx FIFO
,并复制到发送移位器
。然后,数
据由发送数据引脚(
TXDn
)移出。所接收的数据从接收数据引脚(
RxDn
)移
位,并且从移位器复制到
Rx
FIFO
。
1.2
通用异步收发器的主要特点
?
RXD0
,
TxD0
,
RXD1
,
TXD1
,
RxD2
,
TxD2
,
RXD3
和
TXD3
带有基
于
DMA<
/p>
或基于中断的操作
?
UART
通道
0
,
1
,
2
和
3
具有
IrDA 1.0
?
UART
通道
0
具有
256
字节
FIFO
,
通道
1
具有
64
字节
FIFO
,
通道
2
和<
/p>
3
具有
16
字节
的
FIFO
?
UART
通道
0
,
< br>1
和
2
具有
nRTS0
,
nCTS0
,
nRTS1
,
nCTS1
,
nCTS2
和
nRTS2
的自动流控制功能
?
支持握手发送
/
接收。
图
1-1UART
的框图
1.3 UART
的说明
以下各节描述的
UART
操作,如数据
传输,数据接收,中断产生,
波特率发生器,回环模式,红外模式和自动流控制
1.3.1
数据传输
用于传输的数据帧是可编程的。
它由一个起始位,
五至
八个数据位,
一个可
选的奇偶性位,和一到两个停止位,由线路
控制寄存器(
ULCONn
)指定。发射
< br>器也可以产生一个中止的条件,迫使串行输出为逻辑
0
状
态持续一帧传输时间。
目前传输字完全传输后,
传输中止信号。
中止信号传输后,
传输发送器连续发送
数据到发送
FIFO
(
Tx
保持寄存器,如遇非
FIFO
的模式)
。
1.3.2
数据接收
类似数据传输,
用于接收所述数据帧也是可编程的。
它
由一个起始位,
五至
八个数据位,一个可选的奇偶校验位,和一
到两个停止位,由线路控制寄存器
(
ULCONn
)指定。接收器检测溢出错误,奇偶校验错误,帧错误和中止条件,每
个设置
一个错误标志。
?溢出错误表示在旧的数据被读取之前,新的数据覆盖旧数据。
?奇偶校验错误表示接收器检测到一个意想不到的奇偶条件。
?帧错误表示接收到的数据没有一个有效的停止位。
?中止情况表明,
RxDn
输入是在逻辑
0
状态持有多于一帧的传输时间。
如果在
3
个字的时间(这个时间间隔按照字长位
设置)没有接收到数据时和
在
FIFO
模式下
Rx
FIFO
不为空接收超时情况。
1.3.3
自动流控制(
AFC
)
S5PV210
的
UART0
和
UART
1
支持自动流控制(
AFC
)通过使用
NRTS
和
NCTS
< br>信
号。如果
TXD3
和
RXD3
由
GPA1CON
(
GPIO
SFR
)设置为
nRTS2
和
nC
TS2
,
UART2
支持自动流控制
。在这种
情况下,它可以连接到外部的
UART
。为了使
UART
连
接到调制解调器,
禁用
UMCONn
寄存器自动流控制位并使用软件控制
NRTS
的信号。
在
AFC
中,
NRTS
信号依赖于接收器的状态,而
NCTS
信号控制发射器的操
作。
如
果
NCTS
信号被激活(在
AFC
p>
,
NCTS
信号意味着其他
UART
的
FIFO
准备<
/p>
接收数据)
,
UART
的发送器传输数据到
FIFO
。
UART
接收数据之前,如果接收
F
IFO
有超过
2
个字节作为备用
,NRTS
信号必须被激活。如果其接收
FI
FO
有少于
1
个字节作为备用(在
p>
AFC
中,
NRTS
信号,意味着自己的接收
FIFO
准备接收数
据)该
NRTS
信号必须被
灭活
。
图
1-2
UART
自动流控制接口
1.3.4
非自动流控制的例子(控制
NRTS
和
NCTS
软件)
1.3.4.1
带有
FIFO<
/p>
的
RX
操作
<
/p>
1.
选择传输模式(中断或
DMA
模式)
。
2.
p>
检查
UFSTATn
寄存器中
Rx
FIFO
数值。
如果
该值小于
16
,
则必须设置
UMCONn[0]
为
'1'
(激活
nRTS
)
。然而,如果该
值等于或大于
16
,则必须将值设置为
'0'
(灭
活
NRTS
)
。
3.
< br>重复步骤
2
。
1.3.4.2
带有
FIFO
的
TX
操作
1.
选择传输模式(中断或
DMA
模式)
。
2.
检查
UMSTATn[0]
p>
的值。如果该值是
'1'
(激活
NCTS
)
,
您必须将数据写入发
送
FIFO
寄存器。
3.
重复步骤
p>
2
。
1.3.5
在
DMA
模式下
TX / RX FIFO
触发深度和
DMA
突发大
小
p>
在
DMA
模式下如果
TX / RX
数据达到
UFCONn
寄存器的发送
/
接收
FIFO
触发
深度,则
DMA
传输开始。一个单一的
DMA
传输将发送整个的
UFCONn
寄存器中指
定的
DMA
突发大小的数据,
并且
DMA<
/p>
重复传输,
直到传送的数据大小达到的
T
x
/
Rx
FIFO
触发深度。因此,
DMA
突发大小应小于或等于的<
/p>
Tx
/
Rx
FIFO
触发深度。
一般来说,建议,以确保
TX / RX FIFO
触发深度与
DMA
突发大小匹配。
1.3.6 RS-232C
接口
<
/p>
要连接到
UART
的调制解调器接口(而
不是零调制解调器)
,
NRTS
,
p>
NCTS
,
nDSR
,
NDTR
,
DCD
和
NRI
信号是必需的。因为
AFC
不支持
RS-232C
接口,您可
以通过软件控制通用
I/O
端口来控制这些信号。
1.3.7
中断
/
DMA
请求产生
在
< br>S5PV210
中每个
UART
包括
7
个状态(
TX
/
RX
/
错误)信号,即溢出错误,
奇偶校验错误,帧错误,中断,接收缓冲区中的数据准备好,
发送缓冲区空,和
发送移位寄存器空
。
这些条
件
由相应
的
UART
状
态寄存器(
UTRSTATn /
UERSTATn
)表示。
溢出错误,
奇偶校验错误,
帧错误和中断条件指明接收错误状态。
如果在控
制寄存器(
UCONn
)中接
收的错误
-
状态
-
< br>中断
-
使能位被设置为
1
,接收错误状
态产生接收
-
< br>错误
-
状态
-
< br>中断。如果接收
-
错误
-
状态
-
中断
-
请求被检测到,您可
以通过读取
UERSTA
Tn
的值来判断中断源。
在
FIFO
模式下
,
如果
接收器传输接收移位器中的数据到接收
FIFO
寄存器,
并且接收到的数据的数量大于或等于接收
FIFO
触发深度的话,
那么
,
若控制寄存
器(
UCONn
)中接收模式被设置为
1
(中断请求或轮询模式)
,则产生接
收中断。
在非
FIFO
模式,
传输接收移位器的数据到接收保持寄存器
,<
/p>
在中断请求和轮
询模式下会导致接收中断。
如果从发送
FIFO
寄存器中的发
送器将数据传输到发送移位和发送
FIFO
中剩
余的数据的数量小于或等于到
Tx FIFO
触发深度
,将产生
Tx
中断(在控制寄存
器中设
置的传输模式应选择为中断请求或轮询模式)
。
在非
FIFO
模式下,
从发送
保持寄存器传输数据到发送移位寄存器导致发送中断的中断请求和轮询模式。
尤其注意,如果数据在发送
FIFO
的数量大于
小触发水平
Tx
中断会一直请
求。这
意味着,只要你一启用
Tx
中断
,
p>
就会有一个中断被请求,除非你填
Tx
缓<
/p>
冲器。所以建议先补
Tx
缓冲器,然后再
启用
Tx
中断。
S5PV210
的中断控制器是电平触发型的。
如果你对<
/p>
UART
控制寄存器编程
,
必
须设置中断类型为
'
电平
'
。
如果接
收和发送控制寄存器模式设置为
DMAn
请求模式,
然后
DMAn
请求发生
来
代替上述情况中的接收或发送中断。
表
1-1
中
断与
FIFO
的关系
类型
接收中断
FIFO
模式
如果产生
Rx FIFO
的
非
FIFO
模式
通
过
接
收
保
存
寄
存
计数值大于或等于收到
器产生
的
FIFO
触发电平。
如果产生
FIFO
数据的数
量不到达接收
FIFO
触发
电平,并
且不在
3
个字的
时间接收到任何数据(
接
收时间出)
。此时间间隔
如下话语设
置长度位。
发送中断
如果产生发送
FIFO
通
过
发
送
保
持
p>
寄
存
当接收缓冲区已满。
< br>
计数小于或等于的发送
器产生每当发送缓冲区
FIFO
(发送
FIFO
触发电
为空。
平级)
。
错误中断
如果产生帧错误,奇
所有的错误产生。但
偶校验错误,或破信号被
是,如果出现另一个错误
检测到。如果
UART
接收
的同时,只有一个中断。
新数据的接收时
FIFO
满
(溢出错
误)
。
-
-
-
-
-
-
-
-
-
上一篇:艾琳歆的期货交流贴全集(含123)
下一篇:三年级课文原文