admin 管理员组文章数量: 887021
iTop
目录
- Exynos4412 串口介绍
- 串口框图
- 串口的三种常见模式
- 串口初始化
Exynos4412 串口介绍
见 《SEC_Exynos4412_Users Manual_Ver.1.00.00.pdf》Section.28 Universal Asynchronous Receiver and Transmitter
- Exynos4412 中的通用异步接收和发送器(UART)提供 4 个独立通道,具有通用异步和串行输入/输出(I/O)端口(CH0 到 CH3)。它还提供一个与全球定位系统(GPS)通信的专用通道(CH4)。所有端口都基于中断或基于 DMA 的模式运行。UART 生成一个中断或 DMA 请求在 CPU 和UART 之间传输数据。UART 支持z最大 3Mbps的比特率。每个 UART 通道包含两个 FIFO(先进先出队列)接收和传输数据。
串口框图
UART - Universal Asynchronous Receiver and Transmitter,通用异步接收器与发送器。从串口的名字上就可以得知串口的一些特性:异步、接收器与发送器。从下图我们可以得知 Exynos4412 的一些工作原理。
- 串口具有一个发送缓存区和一个接收缓存区。在 non-FIFO 模式下只能缓存一个字节的数据。在 FIFO 模式缓存的数据由 FIFO 寄存器决定。
- 串口工作的时钟由一个波特率发生器产生,波特率发生器实际上是一个分频器,将从 Peripheral Bus 得到的时钟分频供给串口使用。由下图可知,该总线时钟的时钟域是 PERI-L,典型的时钟频率是 100MHz
串口的三种常见模式
由于在普通模式下,发送缓存区和接收缓存区只有一字节,所以发送和接收数据就需要CPU不断地切换上下文,效率低下。所以一般需要其他方式扩大发送和接收缓存区。
-
FIFO
FIFO(First In First Out,先进先出),是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线。详细的本篇博客不作介绍,可以参考《深入理解FIFO(包含有FIFO深度的解释)》一文 -
DMA
DMA(Direct memory access,直接内存访问)。DMA本来是DSP中的一种技术。DMA技术的核心就是在交换数据时不需要CPU参与,模块可以自己完成 -
Ir-Mode
Exynos 4412 UART模块支持红外(IR)传输和接收。红外通信的原理是发送方固定间隔时间向接收方发送红外信号(表示1或0)或者不发送红外信号(表示0或者1),接收方每隔固定时间去判断有无红外线信号来接收1和0.
红外通信和串口通信非常像,都是每隔固定时间发送1或者0(判断1或0的物理方式不同)给接收方来通信。
串口初始化
串口初始化可以分成以下几个步骤:
- 时钟初始化
由图Table7-1可知,UART使用的时钟总线是 PERI-L,时钟典型值是 100MHz。
由上图可知,串口的时钟由CLK_SRC_PERIL0和CLK_DIV_PERIL0控制。我们选择SCLKMPLL_USER_T和8分频
SCLKMPLL的时钟在时钟初始化已知为800MHz,这样就可以得到100MHz的串口时钟信号。 - 设置串口模式
串口模式由GPIO控制,需要将串口对应的GPIO口设置为串口模式。 - 设置数据位、停止位、奇偶校验位、其他串口配置
由ULCONn、UCONn、UFCONn、UMCONn寄存器控制 - 设置波特率
波特率的计算由UBRDIVn和UFRACVALn寄存器控制,计算方式如下:
DIV_VAL = UBRDIVn + UFRACVALn/16
DIV_VAL = (SCLK_UART/(bps * 16)) - 1
例如在100MHZ的串口时钟信号下计算得到115200bps的波特率,则
DIV_VAL = (100000000/(115200 * 16)) – 1 = 13.02 – 1 = 12.02
UBRDIVn = 12 (integer part of DIV_VAL)
UFRACVALn/16 = 0.02
UFRACVALn = 0
- 读写缓存区及对应状态寄存器
UTXHn:发送缓存区
URXHn:接收缓存区
UTRSTATn:读写缓存区状态
2022年06月14日
Kilento
本文标签: iTop
版权声明:本文标题:iTop 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1686560733h10418.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论