UART 指南

理解 UART 帧时间

了解 UART 帧开销和波特率如何决定传输时间与数据吞吐率。

一个数据帧为何不止八个位周期

UART 是异步通信,每个帧都带有帧结构:起始位、5 到 9 个数据位、可选奇偶校验位和一个或多个停止位。常见的 8N1 每个 8 位数据帧需要 10 个线路位。

帧位数 = 1 起始位 + 数据位 + 奇偶位 + 停止位

Worked Example:115200 波特率发送 100 帧(8 位数据模式)

场景:115200 baud、8N1,连续发送 100 帧(8 位数据模式),忽略帧间空闲。这是理论线路时间,不是硬件实测。数据字段总位数只统计所选数据位,不扣除应用层开销;不代表汉字、Unicode 字符或字符串长度,也不假设非 8 位模式支持任意 8 位字节流打包。

  1. 每帧 = 1 + 8 + 0 + 1 = 10 bit。
  2. 总位数 = 100 × 10 = 1000 bit。
  3. 传输时间 = 1000 ÷ 115200 = 0.00868056 s = 8.68056 ms。
  4. 数据字段总位数 = 100 × 8 ÷ 0.00868056 = 92,160 bit/s(11,520 byte/s)。

假设波特率准确、帧连续且无流控或软件间隙。缓冲、DMA/FIFO、USB 转换器、驱动调度和应用协议都可能让实际耗时更长。参考 Microchip USART 指南。

打开 UART 计算器

请核对设备文档。这些公式是通用模型,具体硬件模式和协议条件可能带来额外约束。