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,无校验连续通信的波形:

相关推荐
云雾J视界3 天前
FPGA+RISC-V架构解析:构建高效传感器数据采集系统
fpga开发·架构·uart·risc-v·i2c·adxl345
stay_cloud7 天前
RISC-V MCU 串口通信记录 —— 基于Genesys2
mcu·uart·risc-v
Terasic友晶科技11 天前
1-串行通信基础知识
fpga开发·串口通信·异步通信·串行通信·同步通信·并行通信·单工
Terasic友晶科技11 天前
2-基于FPGA开发板DE23-Lite的串口通信设计 (FT2232H)
fpga开发·串口·uart·de23-lite
赖small强11 天前
【Linux驱动开发】Linux UART 通信详解:从硬件到驱动再到应用
linux·驱动开发·uart
Terasic友晶科技12 天前
5-基于C5G 开发板的FPGA 串口通信设计 (FT232R, Altera UART IP和Nios II系统串口收发命令)
fpga开发·串口·uart·c5g
BreezeJuvenile13 天前
嵌入式系统-实验三——串口通信实验
stm32·单片机·串口通信·标准库·嵌入式系统实验
Terasic友晶科技13 天前
3-基于FPGA开发板OSK/TSP/C5P的串口通信设计 (CP2102N)
fpga开发·串口·uart·tsp·c5p·osk
眰恦ゞLYF2 个月前
嵌入式硬件——基于IMX6ULL的UART(通用异步收发传输器)
单片机·嵌入式硬件·uart·imx6ull