UART 串口协议
学习目标
- 理解 UART 工作原理
- 掌握串口通信协议
- 学习 16550 UART
6.1 什么是 UART
UART (Universal Asynchronous Receiver/Transmitter) 是通用异步收发器,用于串口通信。
6.2 通信参数
- 波特率:每秒传输的位数(如 115200)
- 数据位:通常 8 位
- 停止位:1 或 2 位
- 校验位:无、奇、偶
6.3 数据格式
起始位 | 数据位(8) | 校验位 | 停止位
0 | D0-D7 | P | 1
6.4 16550 UART 寄存器
QEMU virt 使用 16550 兼容 UART,基地址 0x10000000。
偏移 寄存器 读/写 说明
0x0 RHR/THR R/W 接收/发送缓冲
0x1 IER R/W 中断使能
0x2 IIR/FCR R/W 中断标识/FIFO控制
0x3 LCR R/W 线路控制
0x4 MCR R/W 调制解调器控制
0x5 LSR R 线路状态
0x6 MSR R 调制解调器状态
0x7 SCR R/W 暂存寄存器
6.5 LSR 状态寄存器
位 说明
0 数据就绪 (DR)
5 发送保持寄存器空 (THRE)
6 发送器空 (TEMT)