登录/注册

UART通信协议的主要定义是什么?详解分析

它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

更多

UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种广泛使用的硬件设备及其驱动协议,主要用于在点对点、全双工的异步串行通信中传输数据。它的核心特点是不依赖于共享时钟信号进行同步,而是依靠通信双方预先约定的帧结构和波特率来同步数据位。

以下是UART协议的主要定义和详解分析:

核心定义:

UART定义了一种异步串行数据传输方式:

详解UART的关键组成部分

  1. 基本硬件连接:

    • 需要两根信号线:
      • TX(Transmit - 发送线): 发送方在此线上输出数据(逻辑1 = 高电平,逻辑0 = 低电平)。
      • RX(Receive - 接收线): 接收方从此线上读取数据。
    • 此外,通常还会有两根用于硬件流控的信号线(非必需):
      • RTS (Request To Send): 发送方准备好接收数据时输出低电平,请求接收方开始传输。
      • CTS (Clear To Send): 接收方准备好接收数据时输出低电平,告知发送方可以开始传输。
    • 注意: TX/RX是交叉连接的!发送方A的TX连接接收方B的RX,发送方B的TX连接接收方A的RX。连接双方的GND必须相连以确保相同的参考电平点。
  2. 波特率 (Baud Rate):

    • 定义: 每秒传输的符号数量,即每秒传输的数(bps - bits per second)。一个符号=一个比特位
    • 关键要求: 通信双方的波特率必须设置完全一致。常见的波特率包括 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 bps等。
    • 作用: 双方根据波特率计算出每一位信号持续的时间长度(位周期),以此同步采样每一个数据位。
    • 精度要求: 波特率发生器的时钟精度需要足够高(通常偏差小于2%),否则在高波特率或长帧情况下容易导致采样偏移出错。
  3. 数据帧结构 (Data Frame): UART数据传输是以固定格式的“帧”为单位进行的。一个完整的数据帧通常包含以下部分(按传输顺序):

    • 起始位 (Start Bit): 1位
      • 电平: 逻辑电平 (0)。
      • 作用: 表示一个数据帧的开始,通知接收方准备接收后续数据位。核心同步触发点
    • 数据位 (Data Bits):5-9位(通常5、6、7或8位)
      • 内容: 实际传输的有效数据字节(或其一部分)。
      • 顺序: 最低有效位 (LSB - Least Significant Bit) 在前(最先发送),最高有效位 (MSB - Most Significant Bit) 在后(最后发送)。
    • 校验位 (Parity Bit):0位或1位(可选)
      • 作用: 提供简单的检错能力。通过计算数据位中“1”的数量是奇(Odd Parity) 还是偶(Even Parity),或者不使用(No Parity),来检测单个比特翻转错误。
      • 类型:
        • 偶校验 (Even): 置位校验位,使得“1”的总数(数据位 + 校验位)为偶数。
        • 奇校验 (Odd): 置位校验位,使得“1”的总数(数据位 + 校验位)为奇数。
        • 无校验 (None): 不发送校验位。
        • 强制为1 (Mark): 校验位始终为1(逻辑高),不提供检错,可作为额外的停止位理解。
        • 强制为0 (Space): 校验位始终为0(逻辑低)。
    • 停止位 (Stop Bits): 1位、1.5位或2位
      • 电平: 逻辑电平 (1)。
      • 作用:
        1. 表示一个数据帧的结束。
        2. 为接收方提供缓冲时间,使其有机会在接收下一帧起始位之前处理刚刚接收到的数据。
        3. 确保两帧之间线路恢复到空闲(高电平)状态,为下一帧的起始位(低电平)提供清晰明确的下降沿同步信号。

UART通信关键特性分析

  1. 无时钟同步: 这是UART最核心的特性。通信双方无需连接独立的时钟线(如SPI中的SCK)。同步完全依靠:

    • 起始位的明确下降沿触发接收方开始计时。
    • 双方严格按照约定好的波特率运行各自的内部时钟(波特率发生器/定时器),计算每一位的中心采样点。
    • 接收方会在每个位周期的中点附近采样RX线上的电平状态,以减少边沿噪声的影响,确保数据稳定。
  2. 简单性: UART协议本身相对简单(主要是帧结构定义),硬件实现(UART控制器)和软件驱动都较为成熟和容易。占用MCU管脚少(最少仅需两个:TX/RX)。

  3. 灵活性: 帧结构(数据位长度、停止位长度、校验方式)和波特率可以根据应用需求和信道质量进行灵活配置。

  4. 全双工: TX和RX分开,支持同时发送和接收数据,适合需要双向实时交互的应用。

  5. 点对点限制: UART通常只适合两个设备之间的通信。要实现多点通信(一主多从或多主多从),需要结合其他技术(如RS-485总线标准)或使用额外的控制协议。

  6. 无内置地址机制: UART本身不包含寻址功能。如果在多点系统中使用(通过RS-485等),需要额外的(应用层)协议来实现设备寻址(如Modbus RTU)。

  7. 流程控制 (Flow Control):

    • 目的: 防止接收方处理速度跟不上发送方发送速度导致数据丢失(缓冲区溢出)。
    • 硬件流控 (RTS/CTS): 使用额外的物理信号线(RTS、CTS)来控制数据流。当接收方准备好接收数据时,将CTS置为低电平(有效);发送方在发送下一个字节前检查CTS是否为低电平,如果是低电平则发送,否则等待。发送方在准备好接收来自对方的回复数据时,将RTS置为低电平(有效)
    • 软件流控 (XON/XOFF): 使用特殊的控制字符嵌入到数据流中。当接收方缓冲区快满时,发送XOFF字符 (ASCII DC3, 0x13) 告诉发送方暂停;当缓冲区有足够空间时,发送XON字符 (ASCII DC1, 0x11) 通知发送方恢复发送。此法不需要额外的信号线,但占用了数据带宽,且对二进制数据传输不太友好。

实际应用场景举例

重要注意事项

总结

UART是一种简单、可靠、成熟、广泛应用的异步串行点对点全双工通信协议。它的精髓在于通过精确的波特率设置、清晰的起始/停止位定义来实现无时钟同步的通信。理解其帧结构(起始位、数据位顺序、可选校验位、停止位)、波特率的重要性、点对点全双工特性以及物理电平标准(TTL vs RS-232)的差异,是掌握和使用UART的关键。尽管它在多点通信和高带宽方面存在局限性,但在嵌入式系统、设备调试、模块通信等大量场景中,UART凭借其简单性、成本效益和成熟稳定性,仍然是不可或缺的基础通信接口之一。

简单认识UART通信协议

UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)通信协议是一种常见的串行通信协议

2024-07-25 18:07:32

简单认识UART串行通信协议

在电子通信领域,UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种非常常见的串行通信

2024-05-27 16:09:53

UART串口通信协议是什么?

UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现串口

2024-03-19 17:26:10

C#与STM32自定义通信协议

C#与STM32自定义通信协议功能:1.可通过C#上位机对多台STM32下位机进行控制2.自定义上位机与下位机

资料下载 刘洋 2021-12-24 18:59:40

定义串口通信协议

:文档,详细说明设计思路及具体协议格式。题目分析根据原题内容,可以按照如下步骤来实现:选择硬件层通信协议设计相应的

资料下载 王树林 2021-12-02 14:21:13

基于STM32之UART串口通信协议(一)详解

一、前言1、简介  写的这篇博客,是为了简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯

资料下载 李艳 2021-11-30 14:36:06

通信协议及接口技术汇总综述

通信协议及接口技术汇总综述

资料下载 佚名 2021-06-16 10:31:31

STM8学习之在串口通信定义通信协议

STM8学习之在串口通信中定义通信协议

资料下载 佚名 2021-03-16 15:39:05

【世说知识】一文搞懂UART通信协议

UART,即通用异步接收器/发送器,是最常用的设备间通信协议之一,正确配置后,UART可以配合许多不同类型的涉及发送和接收串行数据的串行

2023-02-02 10:46:11

讨论使用UART通信协议的基本原则

UART,即通用异步接收器/发送器,是最常用的设备间通信协议之一,正确配置后,UART可以配合许多不同类型的涉及发送和接收串行数据的串行

2023-02-01 17:54:37

串口通信协议的相关资料分享

目录一、串口通信协议1、UART简介2、 UART通信协议(1)起始位(

2022-02-22 07:16:22

UART通信协议的相关资料推荐

一、前言1、简介  写的这篇博客,是为了简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯

2022-01-25 06:40:09

UART串口通信协议的相关资料分享

#今天也是咸鱼的一天~UART是一个很基础的串口通信协议,有人打趣说只要有单片机的地方,就一定有uart。这话不假,不仅很多模块和单片机的

2022-01-18 09:42:42

通信协议的相关资料分享

嵌入式通信协议:分为“大协议”和“小协议”两种“大协议”:

2021-12-24 08:15:01

UART通信协议传输有哪些配置参数?

UART通信协议传输的一些基本配置参数

2021-03-10 06:42:41
7天热门专题 换一换
相关标签