S3C2440 UART原理

1. UART使用标准的TTL/CMOS电平


2. 为了增强数据的抗干扰能力、提高传输长度,通常将TTL/CMOS逻辑电平转换为RS-232电平



    S3C2440A 的通用异步收发器(UART)配有 3 个独立异步串行 I/O(SIO)端口,每个都可以是基于中断或基于 DMA 模式的操作。换句话说,UART 可以通过产生中断或 DMA 请求来进行 CPU 和 UART 之间的数据传输。UART 通过使用系统时钟可以支持最高 115.2Kbps 的比特率。如果是外部器件提供 UEXTCLK 的 UART,则 UART可以运行在更高的速度。每个 UART 通道包含两个的 64 字节的 FIFO 给发送和接收。

    S3C2440A 的 UART 包括了可编程波特率,红外(IR)发送/接收,插入 1 个或 2 个停止位,5 位、6 位、7 位或 8 位的数据宽度以及奇偶校验。




1.UART LINE CONTROL REGISTER (设置传输模式)



2.波特率分频器(设置波特率)

UART 波特率分频寄存器
3 UART 波特率分频寄存器,在 UART 模块中包含了 UBRDIV0UBRDIV1 UBRDIV2URXHn 发送
数据为
8 位数据。
存储在
波特率分频寄存器中的值(UBRDIVn)是用于决定如下的串行 Tx/Rx 时钟率(波特率):
UBRDIVn = (int)( UART 时钟 / ( 波特率 × 16) ) –1
( UART
时钟:PCLKFCLK/n UEXTCLK )
此处,UBRDIVn 应该是从 1 到(216-1),但只在使用低于 PCLK UEXTCLK 时可以设置为 0
例如,如果波特率为
115200 bps 并且 UART 时钟为 40 MHzUBRDIVn 为:
UBRDIVn = (int)(40000000 / (115200 x 16) ) - 1
= (int)(21.7) - 1 [
取最接近的整数]
= 22 - 1 = 21

寄存器 地址 R/W 描述 复位值
UBRDIV0 0x50000028 R/W 波特率分频寄存器 0
UBRDIV1 0x50004028 R/W 波特率分频寄存器 1
UBRDIV2 0x50008028 R/W 波特率分频寄存器 2

UBRDIVn 描述 初始状态
UBRDIV [15:0]波特率分频值 UBRDIVn > 0
使用
UEXTCLK 作为输入时钟时,可以设置 UBRDIVn ‘0’

3.UART 控制寄存器 (设置时钟源,设置UART时钟方式


4.UART TX/RX 状态寄存器 (用于判断状态)


5. UART发送和缓冲寄存器(若发送数据,把数据放到发送缓冲期中,若接收数据,从接收缓冲期中读取数据)






  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值