一个数据帧为何不止八个位周期
UART 是异步通信,每个帧都带有帧结构:起始位、5 到 9 个数据位、可选奇偶校验位和一个或多个停止位。常见的 8N1 每个 8 位数据帧需要 10 个线路位。
帧位数 = 1 起始位 + 数据位 + 奇偶位 + 停止位
Worked Example:115200 波特率发送 100 帧(8 位数据模式)
场景:115200 baud、8N1,连续发送 100 帧(8 位数据模式),忽略帧间空闲。这是理论线路时间,不是硬件实测。数据字段总位数只统计所选数据位,不扣除应用层开销;不代表汉字、Unicode 字符或字符串长度,也不假设非 8 位模式支持任意 8 位字节流打包。
- 每帧 = 1 + 8 + 0 + 1 = 10 bit。
- 总位数 = 100 × 10 = 1000 bit。
- 传输时间 = 1000 ÷ 115200 = 0.00868056 s = 8.68056 ms。
- 数据字段总位数 = 100 × 8 ÷ 0.00868056 = 92,160 bit/s(11,520 byte/s)。
假设波特率准确、帧连续且无流控或软件间隙。缓冲、DMA/FIFO、USB 转换器、驱动调度和应用协议都可能让实际耗时更长。参考 Microchip USART 指南。
请核对设备文档。这些公式是通用模型,具体硬件模式和协议条件可能带来额外约束。