1. 通用异步收发器(UARTx)
1.1. 模块介绍
CIU32M010、CIU32M030 集成的通用异步收发器(UART)提供了一种灵活的方法与使用工业标准NRZ 异步串行数据格式的外部设备之间进行全双工数据交换。
1.2. 功能特点
• 支持 8bit 数据和 9bit 数据模式
• 支持 18bit 波特率寄存器灵活配置
• 支持全双工异步通信、单工发送、单工接收、单线通信模式
• 支持硬件奇偶校验可选
• 具有 4 帧数据的接收缓存,1 帧数据的发送缓冲
• 硬件检测接收超时,超时长度可以配置,配置范围:1~16384 比特率时间
• 支持帧出错检测
• 可选 STOP 位为 1 位或 2 位
1.3. 功能说明
1.3.1. 波特率生成功能
波特率计算公式 = SYSCLK/(UART_BAUD+1) (UART_BAUD>=6)
UART 模块的工作时钟为系统时钟,因此,应当根据当前系统时钟频率以及需要的波特率计算 UART_BAUD 的配置值。一旦系统时钟频率改变,应当相应修改波特率配置。
1.3.2. UART 发送器
发送器可发送 8/9bit 数据,由寄存器 UART_CON 中的 BIT9_EN 位的配置值决定。软件向寄存器
UART_DATA 写入数据时,发送器将通过 IO 管脚 UART_TX 发送数据帧,UART_TX 的极性可以通过寄存
器 UART_CON 中的 TX_INV 位来配置。
发送数据流程:发射器输出管脚(UART_TX)闲置状态时,默认为高电平。模块使能后,软件向寄存
器 UART_DATA 写入要发送的数据启动发送。发送器有一帧的发送缓冲,寄存器 UART_STA 中
TX_BUF_EMPTY 为高电平时,软件可向寄存器 UART_DATA 再写入一帧数据,它将被存入发送缓冲区,
TX_BUF_EMPTY 会变零,在当前帧发送完成时,会接着发送缓冲区中的数据。
数据发送完成且缓冲区为空时,寄存器 UART_STA 中 TC_PEND 位置 1,此时如果寄存器 UART_CON
中 TCIE 位使能,则产生中断。
发送器发送序列:起始位->数据位(LSB)->停止位
1.3.3. UART 接收器
接收器可接收 8/9bit 数据,由寄存器 UART_CON 中的 BIT9_EN 位的配置值决定。
数据字符由逻辑 0 的起始位、8/9bit 数据位,奇偶校验位和逻辑 1 的停止位组成。
接收器有 4 个 8/9bit 的数据缓冲。在缓冲区接收到 4 个数据之后,且又有一帧数据接收完成时,寄存器 UART_STA 中 RX_BUF_OV 会置 1,新的数据将不会存储在数据缓冲区中,即新数据丢失。 在接收一个数据帧的过程中可使能奇偶错误检测、帧错误检测和超时检测,通过配置寄存器 UART_CON 打开相应的错误检测使能位和相应的错误中断使能位。
帧错误检测机制是指在 stop 位检测到 IO 引脚 UART_RX 是低电平时,为帧错误。
超时检测机制是指在接收到 1byte 之后,检测是否超过了设置的时间,如果没有则继续接收数据,超时时间可以通过寄存器 UART_CON 中 TO_BIT_LEN 进行配置。接收缓冲区有数据,即寄存器 UART_STA 中的 RX_BUF_NOT_EMPTY=1 时,软件可以通过读
UART_DATA 寄存器的方式来获取收到的数据。
1.4 模块框图与接口时序
1.4.1. UART 模块架构图
图 1-1 UART 模块架构图
1.4.2. UART 协议图
UART 数据发送/接收的数据格式如下所示,其中数据位可选择 8bit 或 9bit,需要注意的是,选择 9bit 数据时,就不可以使能奇偶校验位。相反,使能奇偶校验位时,不能选择 9bit 数据。
图 1-2 UART 时序图
1.5 时钟与复位
1.5.1. 时钟介绍
该模块时钟来源于系统时钟,可通过配置系统寄存中 CLKCON2 来使能时钟。
1.5.2. 复位介绍
该模块的复位源有两个,分别是系统复位和软件复位,软件复位可通过配置系统寄存器触发。
文章评论(0条评论)
登录后参与讨论