UART (Universal Asynchronous Receiver/Transmitter)

UART 是一种通用的异步串行通信接口,是嵌入式系统中最基础、最常用的通信方式。严格来说,UART 是一种硬件电路(外设),而不是像 Modbus 或 CAN 那样的网络协议,但常被指代为一种通信接口。

协议概述

  • 物理层:通常 2 根信号线 + 地线。
    • TX (Transmit):发送端,接对端的 RX。
    • RX (Receive):接收端,接对端的 TX。
    • GND:共地(必须连接)。
  • 架构:点对点(Point-to-Point)。
  • 异步:没有时钟线,双方约定好波特率 (Baud Rate) 进行通信。
  • 电平标准
    • TTL:MCU 引脚直接输出(0V / 3.3V 或 5V)。
    • RS-232:工业标准电平(负逻辑,±12V),传输距离更远。

帧结构

UART 数据帧由起始位、数据位、校验位和停止位组成:

  Start   Data (5-9 bits)   Parity   Stop
┌───┬───────────────────┬───────┬───────┐
│ 0 │   D0 D1 ... D7    │  P    │  1/2  │
└───┴───────────────────┴───────┴───────┘
  • 起始位:逻辑 0,标志传输开始。
  • 数据位:通常 8 位 (1 byte),低位在前。
  • 校验位:奇偶校验(可选)。
  • 停止位:逻辑 1,标志传输结束(1 位或 2 位)。

优缺点

优点缺点
最简单:仅需 2 根线,几乎所有 MCU 都支持。速度慢:通常不超过 1 Mbps。
成本低:无需额外芯片(TTL 电平下)。点对点:标准 UART 只能连接两个设备。
调试方便:可直接连接 PC 查看打印信息。时钟误差:双方波特率必须精确匹配,否则乱码。

典型应用

  • 调试打印printf 输出调试信息。
  • 模块通信:GPS 模块、蓝牙模块、Wi-Fi 模块 (ESP8266)。
  • 上位机通信:通过 USB 转 TTL 芯片与电脑通信。