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 | 寄存器接口 |