S3C2440A 中文 Datasheet 联系信箱: admin@embeddedlinux.org.cn
第十一章 UART Forum: http://www.embeddedlinux.org.cn/
10.4.3 自动流控制(AFC)
s3c2440A 的 UART0 和 UART1 支持有 nRTS 和 nCTS 的自动流。这种情况下,其可以连接
到外部 UART。如果用户想连接 UART 到 Modem,应使 UMCONn 寄存器中的自动流控制
位无效且通过软件控制 nRTS。
在 AFC 中,nRTS 依赖于接收器的条件,nCTS 信号控制发送器的操作。UART 的发送器传
输数据到 FIFO 仅当 nCTS 信号被激活(在 AFC 中,nCTS 意思是对方的 UART FIFO 准备
好接收数据)。在 UART 接收数据之前,当其接收 FIFO 有大于 32 个字节的空闲空间,
nRTS 必须被激活;当其接收 FIFO 有小于 32 个字节的空闲空间,nRTS 必须置非激活。
UART2 不支持 AFC 功能,因为 s3c2440A 没有 nRTS2 和 nCTS2。
非自动流控制举例(用软件控制 nRTS 和 nCTS)
使用 FIFO 的接收操作
(1)选择接收模式(中断或 DMA 模式)
(2)检查UFSTATn 寄存器中的 Rx FIFO 计数器。如果其值小于 32 ,用户应该将
UMCONn[0]的值置 1(激活 nRTS),如果其等于大于 32,用户应该将其置 0。
(3)重复步骤 2
有 FIFO 的发送操作
(1)选择发送模式(中断或 DMA 模式)
(2)检查
UMSTATn[0]的值,如果其值为 1,用户写数据到发送 FIFO 寄存器。
10.4.4 RS-232C 接口
如果用户想连接UART到Modem接口上,就需要nRTS、nCTS、nDSR、nDTR、DCD和nRI。在这
种情况下,用户可通过软件使用通用IO端口来控制这些信号,因为AFC不支持RS-232C接口。
10.4.5 中断/DMA 请求生成
s3c2440A的每个UART有七个状态(Tx/Rx/Error)信号:溢出错误,奇偶校验错误,帧错
误,终止,接收缓存数据准备好,发送缓存空和发送移位器空,其由相应UART的状态寄
存器
(UTRSTATn/UERST ATn)指出。
溢出错误,奇偶校验错误,帧错误,终止条件是作为接收错误状态来参考,每种错误都可
以引起接收错误状态中断请求,如果在控制寄存器UCONn中的接收错误状态中断使能位置
1。
当接收错误状态中断请求被检测到,该信号引起的请求可以通过读UERSTSTn寄存器的值