UART通信协议详解

UART(Universal Asynchronous Receiver/Transmitter 通用异步收发器)是一种异步串行通信协议,广泛应用于嵌入式系统、工业控制、传感器通信等领域。以下从协议层物理层技术特点代码示例四个维度展开详细说明。


一、协议层

UART协议层定义了数据传输的帧格式时序规则错误检测机制,其核心是异步通信,无需共享时钟信号。

1. 数据帧结构

每帧数据由以下部分组成(以最常见的8N1格式为例):
在这里插入图片描述

  • 起始位(Start Bit)

    • 电平:低电平(逻辑0)
    • 作用:标志数据帧开始,接收端通过检测下降沿触发同步。
  • 数据位(Data Bits)

    • 位数:5/6/7/8位(常用8位)
    • 传输顺序:LSB(最低有效位)优先
    • 示例:发送字符A(ASCII 0x41 = 01000001),实际传输顺序为1 0 0 0 0 0 1 0(从右到左)。
  • 校验位(Parity Bit)(可选)

    校验类型 规则 特点
    无校验 不添加校验位 节省时间,无检错能力
    奇校验 数据位+校验位中1的总数为奇数 检测单比特错误
    偶校验 数据位+校验位中1的总数为偶数 检测单比特错误
    Mark 固定为1 作为第9位数据使用
    Space 固定为0 作为第9位数据使用
  • 停止位(Stop Bit)

    • 电平:高电平(逻辑1)
    • 位数:1位、1.5位(罕见)、2位
    • 作用:标志帧结束,并为下一帧提供缓冲时间。
2. 时序与波特率
  • 波特率(Baud Rate)

    • 定义:每秒传输的符号数(1符号=1位),常见值:9600、115200等。
    • 计算:
      位时间(秒)= 1 / 波特率  
      (例如:9600bps → 104μs/位)
      
    • 误差要求:通常需控制在±2%以内,否则可能采样错误。
  • 采样点

    • 接收端在每位中心点(如16倍过采样时,取第8、9、10次采样的多数值)进行采样。
    • 抗干扰机制:三次采样表决(提高噪声环境下的可靠性)。
3. 错误检测
  • 帧错误(Framing Error):停止位未检测到高电平。
  • 奇偶校验错误:数据与校验位不匹配。
  • 溢出错误(Overrun Error):接收缓冲区未及时读取,新数据覆盖旧数据。
4. 高级协议配置
  • 数据流控制(可选):
    • 硬件流控:使用RTS(请求发送)和CTS(清除发送)信号线。
    • 软件流控:通过XON/XOFF字符控制数据流。

二、物理层

UART的物理层定义了电气特性、接口标准和硬件连接方式。

1. 电平标准
  • TTL/CMOS电平

    • 逻辑0:0V(或接近0V,如<0.8V)
    • 逻辑1:3.3V或5V(如>2.4V为有效高电平)
    • 典型应用:单片机之间、芯片内部通信(传输距离<1米)。
  • RS232电平

    • 逻辑0:+3V ~ +15V
    • 逻辑1:-3V ~ -15V
    • 特点:抗干扰强,支持长距离(最长15米@20kbps)。
  • RS485电平(差分信号)

    • 通过A、B两线的电压差表示逻辑:
      • 逻辑1:B线电压 > A线电压
      • 逻辑0:A线电压 > B线电压
    • 特点:支持多点通信,最长1200米。
2. 接口定义
  • 基本引脚

    • TX(Transmit):数据发送线
    • RX(Receive):数据接收线
    • GND(Ground):共地参考
  • 扩展引脚(用于流控):

    • RTS(Request to Send):请求发送
    • CTS(Clear to Send):允许发送
    • DTR(Data Terminal Ready):设备就绪
    • DSR(Data Set Ready):数据就绪
3. 典型连接方式
  • 直接连接(TTL电平)
    设备A.TX → 设备B.RX  
    设备A.RX ← 设备B.TX  
    共地连接:GND ↔ GND  
    
  • RS232连接(使用DB9接口)
    TXD(Pin3) ↔ RXD(Pin2)  
    RXD(Pin2) ↔ TXD(Pin3)  
    GND(Pin5) ↔ GND(Pin5)  
    
    • 需交叉连接(DTE与DCE设备)。
4. 电平转换电路
  • TTL转RS232:使用MAX232芯片。
  • TTL转RS485:使用MAX485芯片(支持半双工)。

三、技术特点

1. 核心特性
  • 异步通信:无共享时钟,依赖预定义的波特率。
  • 全双工:可同时发送和接收数据(需独立TX/RX线路)。
  • 点对点:通常支持1对1通信,需扩展硬件支持多设备。
  • 配置灵活:可自定义数据位、停止位、校验方式、波特率。
2. 关键参数
参数 典型值/选项 影响
波特率 9600, 19200, 115200 bps 速度与抗干扰的平衡
数据位 5/6/7/8位 数据精度与效率
停止位 1/1.5/2位 帧间隔与同步稳定性
校验方式 None/Even/Odd/Mark/Space 检错能力与传输开销
3. 优势与局限

优势

  • 实现简单,仅需2根信号线(TX/RX)。
  • 成本低,几乎所有微控制器内置UART模块。
  • 支持全双工实时通信。

局限

  • 传输距离短(TTL电平<1米,RS232<15米)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值