[通讯协议]UART协议

什么是 UART?

UART(Universal Asynchronous Receiver-Transmitter,通用异步收发器)是一种广泛使用的串行通信协议,主要用于点对点的全双工或半双工数据传输。

  • 异步通信:不需要共享时钟信号,而是通过设置一致的波特率来同步发送端和接收端。
  • 全双工通信:数据可以同时在发送端(TX)和接收端(RX)传输。

UART 数据帧结构

UART 数据帧包含以下部分:

1.起始位 (Start Bit)

  • 1个低电平信号,通知接收端准备接收数据

2.数据位 (Data Bits)

  • 数据的有效部分,通常是 5-9 位(8 位最常见)

3.校验位 (Parity Bit,Optional)

  • 用于检测数据传输过程中的错误,常见模式包括偶校验奇校验无校验
  • 奇校验(Odd Parity)
      奇校验是一种校验方法,它通过添加一个额外的位(称为校验位)到数据位序列中,使得整个数据位序列中1的数量变为奇数。如果原始数据中1的数量已经是奇数,则校验位为0;如果1的数量是偶数,则校验位为1,以保证总数为奇数。接收端会检查接收到的数据中的1的数量是否为奇数,如果不是,则认为数据传输过程中发生了错误。
  • 偶校验(Even Parity)
      偶校验与奇校验类似,但是目标不同。偶校验的目标是使数据位序列中1的数量成为偶数。因此,如果原始数据中1的数量已经是偶数,则校验位为0;如果是奇数,则校验位为1,以确保总数为偶数。接收端会检查接收到的数据中的1的数量是否为偶数,如果不是,则认为数据传输中出现了错误。
  • 无校验(No Parity)
      无校验位,此模式能接收到有奇偶校验位的数据

4.停止位 (Stop Bit)

  • 表示一帧数据的结束。常见长度为 1 位或 2 位高电平

数据帧示例

假设波特率为 9600bps,发送字符 ‘A’ 的 UART 数据帧(ASCII: 0x41)如下:

起始位数据位(0x41)校验位(无)停止位
0010000011

在这里插入图片描述
每一个 bit 持续的时间由波特率(baud rate)决定,例如此处的波特率为 9600 bps,每 bit 时间为 1/9600​ 秒

TTL、RS-485 和 RS-232接口

1. TTL(Transistor-Transistor Logic)
  • 电平定义:
    – 逻辑 1:3.3V 或 5V(高电平)。
    – 逻辑 0:0V(低电平)。
  • 特点:
    – 常用于单片机或嵌入式系统。
    – 信号抗干扰能力较弱,不适合长距离通信。
  • 应用场景:
    – 单片机之间的数据通信(如 STM32 与模块之间的串口通信)。
2. RS-232
  • 电平定义:
    – 逻辑 1:-3V 至 -15V。
    – 逻辑 0:+3V 至 +15V。
  • 特点:
    – 电平范围较宽,抗干扰能力比 TTL 高。
    – 通信距离一般在 15 米内。
    – 一根 TX、一根 RX 和一根 GND,即 3 根线即可通信。
  • 应用场景:
    – 常用于计算机的串口通信(早期的串口接口 COM1/COM2)。
3. RS-485
  • 电平定义:
    – 差分信号,通过一对差分线 (A、B) 传输。
    – A-B > 200mV 表示逻辑 1,A-B < -200mV 表示逻辑 0。
  • 特点:
    – 支持多点通信(最大支持 32 个设备)。
    – 抗干扰能力强,适合长距离传输(最高可达 1.2 公里)。
    – 通信速率随距离增加而降低。
  • 应用场景:
    – 工业通信(如 Modbus-RTU 协议的底层传输)。
    – 远程设备控制和监控。

UART 在 TTL、RS-232 和 RS-485 中的应用

UART 本质上是传输数据的协议,而 TTL、RS-232 和 RS-485 则定义了信号的电平标准。因此:

  • TTL UART:直接使用 MCU 的 UART 引脚进行通信,适合短距离的模块对接。
  • RS-232 UART:通过电平转换芯片(如 MAX232),实现 UART 信号到 RS-232 信号的转换,用于计算机与设备的通信。
  • RS-485 UART:通过电平转换芯片(如 MAX485),将 UART 信号转换为 RS-485 差分信号,用于远距离多设备通信。

总结

  • UART 是一种协议:通过异步方式实现点对点数据传输,结构简单。
  • TTL、RS-232 和 RS-485 是不同的电平标准,适应不同的应用场景(短距离嵌入式通信、计算机串口、长距离工业通信)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值