学习目标

  • 理解 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)

下一步

UART 驱动实现

更新时间: