UART通讯协议,停止位、校验位

最详细的UART通讯协议分析在这里

UART是 "通用异步收发器" ( Universal Asynchronous Receiver/Transmitter ) 的缩写,通常简称为UART。是一种异步串行通信接口,用于将数据通过串列通信进行传输。

  • 波特率(Baud Rate):单位时间内传输的二进制位数,常见值为 9600、115200、38400。例如 9600bps 表示每秒传输 9600 位(含起始位、数据位、校验位、停止位),实际有效数据率需剔除控制位。
  • 数据位(Data Bits):每帧数据中包含的有效数据位数,通常为 8 位(对应一个字节),也有 7 位(适配 ASCII 码)。
  • 停止位(Stop Bits):每帧数据结束后的标识位,可设为 1 位、1.5 位或 2 位,用于接收方判断一帧数据是否结束。
  • 校验位(Parity Bit):用于校验数据传输是否出错,分为奇校验(数据位 + 校验位中 1 的个数为奇数)、偶校验(1 的个数为偶数)、无校验(最常用,依赖上层协议容错)。
  • 流控(Flow Control):可选参数,用于防止数据溢出(如 RTS/CTS 硬件流控、XON/XOFF 软件流控),多数简单场景(如传感器数据传输)无需启用。

发送方按参数封装数据帧(起始位 + 数据位 + 校验位 + 停止位),接收方按相同参数解析帧结构,若参数不匹配,接收数据会出现乱码(如波特率不匹配时常见"####"或乱码字符)。​

串口通信以"帧"为单位传输数据,标准帧结构如下(以 8 位数据位、1 位停止位、无校验为例):​

起始位(1 位):低电平(逻辑 0),表示一帧数据开始,打破之前的高电平空闲状态。​

数据位(8 位):从最低位(LSB)到最高位(MSB)传输,例如发送字节 0x5A(二进制 01011010),实际传输顺序为 0→1→0→1→1→0→1→0。​

停止位(1 位):高电平(逻辑 1),表示一帧数据结束,长度可配置为 1/1.5/2 位,确保接收方有足够时间准备接收下一帧。​

示例:发送字符"A"(ASCII 码 0x41,二进制 01000001),完整数据帧为:​

起始位(0)→ 数据位(1→0→0→0→0→0→1→0)→ 停止位(1)​

接收方通过检测"低电平起始位"触发接收,再按波特率同步采集后续 bits,最终重组为完整字节。​

停止位1,无校验的波形:

停止位2,无校验连续通信的波形:

相关推荐
我在人间贩卖青春20 小时前
U(S)ART 串口理论
串口·uart·usart
波特率1152003 天前
C++当中is-a(继承)与has-a(成员对象)的辨析与使用指南(包含实际工程当中的使用示例)
c++·ros·串口通信
嵌入小生0073 天前
硬件 --- 通信 --- uart/通信方式/电平标准/通信方向
uart·通信·串行通信·并行通信·电平标准·通信方向
’长谷深风‘3 天前
51单片机入门(3:串口通信)
单片机·嵌入式硬件·51单片机·串口·串口通信
小贺儿开发5 天前
【Arduino与Unity交互探究】01 摇杆模块
科技·unity·游戏引擎·arduino·串口通信·摇杆·硬件交互
FPGA_小田老师13 天前
Xilinx AXI UART Lite IP核:IP核深度解析
fpga开发·uart·串口通讯·axi转uart
普中科技13 天前
【普中51单片机开发攻略--基于普中-2&普中-3&普中-4】-- 第 22 章 串口通信实验
单片机·嵌入式硬件·51单片机·串口通信·开发板·普中科技
php551 个月前
嵌入式串口通信中的双缓冲机制:高效处理高速数据流的实战解析
串口通信·嵌入式系统·数据帧·双缓冲机制
非鱼䲆鱻䲜1 个月前
esp32基于中断+FIFO+事件队列的uart
单片机·嵌入式硬件·esp32·uart
机器视觉知识推荐、就业指导2 个月前
当项目不让使用 Qt!如何实现串口通信?
qt·串口通信