跳转至

UART 模块

1. 概述

UART (Universal Asynchronous Receiver/Transmitter) 模块实现异步串行通信。

2. 规格

参数
波特率 9600/19200/38400/57600/115200
数据位 ⅚/⅞
停止位 ½
校验位 None/Even/Odd
FIFO 16 级 TX/RX
中断 TX/RX 阈值中断

3. 接口

3.1 APB 接口

信号 方向 描述
PCLK input APB 时钟
PRESETn input APB 复位
PADDR input 地址
PWDATA input 写数据
PSEL input 选择
PENABLE input 使能
PWRITE input 写使能
PRDATA output 读数据
PREADY output 就绪
PSLVERR output 错误

3.2 UART 接口

信号 方向 描述
uart_tx output 发送数据
uart_rx input 接收数据
uart_irq output 中断请求

4. 寄存器映射

偏移 名称 读写 描述
0x00 RBR/THR R/W 接收缓冲/发送保持
0x04 IER R/W 中断使能
0x08 IIR R 中断识别
0x08 FCR W FIFO 控制
0x0C LCR R/W 线路控制
0x10 MCR R/W 模式控制
0x14 LSR R 线路状态
0x18 MSR R/W 模式状态
0x20 DLL R/W 分频器低字节
0x24 DLH R/W 分频器高字节

5. 波特率生成

Divisor = Clock_Frequency / (16 × Baud_Rate)

常用波特率配置 (50MHz 时钟)

波特率 分频值
9600 325
19200 162
38400 81
57600 54
115200 27

6. 实现文件

文件 描述
uart.v UART 顶层
uart_tx.v 发送器
uart_rx.v 接收器
uart_baud.v 波特率生成
uart_fifo.v FIFO 控制器
uart_reg.v 寄存器接口