UART

一、S3C2410内置的UART控制器
S3C2410内部具有3个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式DMA(直接内存访问)模式,也就是说UART控制器可以在CPU与UART控制器传送数据的时候产生中断或DMA请求。并且每个UART控制器均具有16字节的FIFO(先入先出寄存器),支持的最高波特率可达到115.2Kbps
图5-11是S3C2410内部UART控制器的结构图


 

图5-11 

通过上图我们可以看到,每个UART控制器中大抵分为发送器和接收器两部分,在发送器中如果当前UART处于FIFO模式,则有16B的发送缓冲寄存器,一般在发送数据时CPU会将数据先暂存到这16B中来,如果当前UART处于非FIFO模式,则这16B的缓冲寄存器是没用的,我们只用到了这16B中最低一个字节的缓冲寄存器来存放数据也叫做Transmit Holding Register,而关键的一点是在发送器中发送缓冲器中的数据并不是直接送到输出引脚上的,还必须要先送到发送移位寄存器也就是Transmit Shifter,然后再由Transmit Shifter送出到输出引脚。而接收端这边大概都是一样,发送移位寄存器和接收移位寄存器对数据的发送和接收都是在波特率发生器产生的波特率下来进行控制的。而波特率的产生也需要在时钟源的控制下才行

 

UART的操作
UART的操作分为以下几个部分分别是数据发送数据接收产生中断产生波特率Loopback模式红外模式以及自动流控模式
数据发送:
发送的数据帧格式是可以编程设置的。它包含了起始位5~8个数据位可选的奇偶校验位以及1~2位停止位。这些都是通过UART的控制寄存器 ULCONn 来设置的。
数据接收:
同发送一样,接收的数据帧格式也是可以进行编程设置的。此外,还具备了检测溢出出错奇偶校验出错帧出错等出错检测,并且每种错误都可以设置相应的错误标志。
自动流控模式:
S3C2410的UART0和UART1都可以通过各自的nRTS和nCTS信号来实现自动流控。在自动流控(AFC)模式下nRTS取决于接收端的状态,而nCTS控制了发送端的操作。具体地说:只有当nCTS有效时(表明接收方的FIFO已经准备就绪来接收数据了因为接收端的nRTS是和发送端的nCTS连接的nCTS有效也就表示接收端的nRTS有效也就表示接收方的FIFO已经准备好接收数据啦),UART才会将FIFO中的数据发送出去。在UART接收资料之前,只要当接收FIFO有至少2-byte空余的时候&#x

  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值