UART 协议 与 TTL、232、485、422 电平
核心关系概述
- UART: 是数据链路层协议,负责将并行数据转换成串行比特流,并管理帧格式(起始位、数据位、校验位、停止位)。
- TTL、RS-232、RS-485、RS-422: 是物理层标准,定义了用多少伏的电压表示逻辑“1”和逻辑“0”,以及线缆、连接器的物理特性。它们解决的是信号如何在线路上可靠传输的问题。
简单比喻:
- UART 像是两个人约定好用英语(一种协议)写信交流。
- TTL/RS-232/485/422 像是选择不同的邮递方式:是派专人送信(点对点),还是用大喇叭广播(单点对多点),或者用抗干扰的信封装着在恶劣环境下传送。
详细解析
1. UART - 通用异步收发传输器
- 本质: 一种异步串行通信协议,通常作为微控制器或 CPU 内部的一个外围设备。
- 功能: 定义数据帧结构,处理时序。它通常有
TXD(发送)、RXD(接收)两根数据线,以电压高低来表示 1 和 0。 - 关键点: UART 本身不指定电压值。芯片引脚出来的原始信号,我们称之为 “TTL 电平” 的 UART 信号。
2. TTL 电平
- 定义: 晶体管-晶体管逻辑电平。这是数字电路中最常见的电平标准。
- 电压:
- 逻辑 1: 通常为 +3.3V 或 +5V(取决于芯片电压)。
- 逻辑 0: 通常为 0V。
- 特点: 电压低,抗干扰能力弱,传输距离短(通常小于 1 米)。常用于芯片间、板卡间的短距离通信。
- 常见场景: 单片机引脚、USB 转串口模块的输出端、GPS/蓝牙模块的接口。
3. RS-232
- 定义: 一种古老的、应用广泛的串行通信标准。
- 电压: 采用负逻辑,且电压较高。
- 逻辑 1: -3V ~ -15V (称为“MARK”)。
- 逻辑 0: +3V ~ +15V (称为“SPACE”)。
- 连接方式: 全双工,点对点(1 对 1)。通常使用 DB9 或 DB25 连接器。
- 特点:
- 高电压(±3~15V)使得抗干扰能力强于 TTL。
- 传输距离可达15 米左右。
- 因为电平与 TTL 相反,所以TTL UART 与 RS-232 设备绝不能直接连接,必须通过电平转换芯片(如 MAX232)进行转换。
- 常见场景: 老式电脑的串口(COM 口)、工业设备、调制解调器。
4. RS-485
- 定义: 为弥补 RS-232 距离短、速度慢、只能点对点等缺点而生的标准。
- 电压: 采用差分信号传输。
- 逻辑 1: 两线电压差 A - B = -2V ~ -6V。
- 逻辑 0: 两线电压差 A - B = +2V ~ +6V。
- 连接方式: 半双工(收发不能同时进行),多点总线型(1 个主机对多个从机,最多可达 32 个负载单位,通过中继可扩展至 256 个)。
- 特点:
- 差分传输使其具有极强的共模抗干扰能力,适用于电磁环境复杂的工业场合。
- 传输距离远,可达1200 米(速率较低时)。
- 通信速率高,最高可达 10 Mbps(距离短时)。
- 常见场景: 工业自动化、楼宇自控、安防系统、电力数据采集。Modbus 协议常运行在 RS-485 物理层上。
5. RS-422
- 定义: 可以看作是 RS-485 的“全双工”版本。由 EIA 在 RS-232 之后、RS-485 之前制定。
- 电压: 同样采用差分信号,电平定义与 RS-485 类似。
- 连接方式: 全双工,一点对多点(1 个主设备,最多 10 个从设备)。需要 4 根线(两对差分线:Tx+, Tx-, Rx+, Rx-)。
- 特点:
- 拥有 RS-485 差分传输的所有优点(抗干扰、距离远)。
- 因为独立收发通道,可以同时收发,但成本更高,布线更复杂。
- 常见场景: 对实时性要求高的全双工通信,如某些银行 ATM 机、专业的视频控制设备。
对比总结表
| 特性 | TTL UART | RS-232 | RS-485 | RS-422 |
|---|---|---|---|---|
| 工作方式 | 单端信号 | 单端信号,负逻辑 | 差分信号 | 差分信号 |
| 逻辑 1 / 0 | +3.3/5V / 0V | -3~-15V / +3~+15V | A-B < -0.2V / A-B > +0.2V | 同 RS-485 |
| 传输距离 | < 1 米 | ~15 米 (标准) | 可达 1200 米 | 可达 1200 米 |
| 通信模式 | 全双工 (点对点) | 全双工 (点对点) | 半双工 (多点) | 全双工 (一点对多点) |
| 最大节点数 | 1 对 1 | 1 对 1 | 1 对多 (32/256) | 1 对多 (10) |
| 抗干扰能力 | 弱 | 一般 | 极强 | 极强 |
| 常见用途 | 芯片间通信 | PC 串口,老设备 | 工业总线,Modbus | 专业全双工场合 |
如何转换与连接?
- UART <-> TTL: 实际上,从 MCU UART 引脚出来的就是 TTL 电平信号,它们是“一体”的。
- UART/TTL <-> RS-232: 必须使用电平转换芯片,如 MAX232、SP3232 等。这是最常见的转换。
- UART/TTL <-> RS-485: 必须使用UART 转 RS-485 收发器芯片,如 MAX485、SP3485 等。该芯片会自动将 UART 的单端信号转换为差分信号,并控制收发方向。
- RS-232 <-> RS-485: 需要专门的转换器,其内部集成了上述两种转换电路。
留下评论