UART 是协议,TTL/RS-232/RS-485 是物理层电气标准。
1. 核心与基础:UART(通用异步收发传输器)
本质:一种异步串行通信协议。它定义了数据的组织格式(如何把数据打包成一帧一帧的),但不涉及电气特性。
关键特点:
异步:通信双方没有统一的时钟信号,依靠事先约定好的波特率来同步。
串行:数据一位一位地按顺序在一条线上传输。
全双工:通常需要
TX(发送)、RX(接收)和GND(地线)三根线,可以同时收发。数据帧结构:
起始位(1位低电平)
数据位(5-9位,通常8位)
奇偶校验位(可选,用于简单纠错)
停止位(1、1.5、2位高电平)
空闲时,线路保持高电平。
工作层面:芯片级。是微控制器(如STM32、ESP32、Arduino的MCU)内部的一个外设模块。
2. TTL 电平串口
本质:用 TTL 电平来直接表示 UART 协议中的逻辑 0 和 1。
电气特性:
逻辑 0:0V(或接近0V,通常 < 0.8V)。
逻辑 1:+3.3V 或 +5V(通常 > 2.4V 对于5V系统,> 2.0V 对于3.3V系统)。
应用场景:
芯片之间、开发板上的直接连接。例如 Arduino 的
D0(RX), D1(TX)引脚,或者 STM32 的USART1_TX/RX引脚。通信距离非常短,通常不超过几十厘米,易受干扰。
重要特性:
电压与系统供电电压相关(常见 5V 或 3.3V)。
信号是单端、对地参考的,抗共模干扰能力弱。
3. RS-232
本质:一种正式、古老的工业串行通信标准,规定了完整的电气特性、机械接口(DB9/DB25)和协议。
电气特性:采用负逻辑,高电压表示逻辑0,低电压表示逻辑1。
逻辑 0:+3V 至 +15V(通常称为 “Space”)。
逻辑 1:-3V 至 -15V(通常称为 “Mark”)。
噪声容限:高达 ±2V,抗干扰能力比 TTL 强。
应用场景:
老式电脑(COM口)、工业设备、调制解调器、部分数控机床等。
通信距离可达 15米 左右(标准值,实际可更长)。
重要特性:
点对点(只能连接两个设备)。
全双工。
需要电平转换:由于电脑的 COM 口是 RS-232 电平,而微控制器是 TTL 电平,因此中间必须使用 “USB转TTL串口线” 或 “MAX232” 等芯片进行电平转换。
接口通常为 DB9 接头。
4. RS-485
本质:一种用于远距离、多点通信的差分串行标准。
电气特性:采用差分信号(平衡传输)。
使用两根线
A和B之间的电压差来表示信号。逻辑 1:
(A - B) < -0.2V。逻辑 0:
(A - B) > +0.2V。这种差分方式能有效抵消共模干扰(两根线上受到的相同干扰会被抵消)。
应用场景:
工业自动化(PLC、传感器网络)、楼宇自动化、安防系统。
通信距离可达 1200米(在较低波特率下)。
可组建总线型网络,一条总线上最多可挂载 32 个(标准驱动) 或通过中继器扩展到 256 个 设备。
重要特性:
半双工(大多数情况,需要方向控制)或全双工(需4线)。
多点通信(一主多从或多主)。
需要收发器芯片:UART(TTL) 信号需要经过 “MAX485”、“SP3485” 等芯片转换为 RS-485 差分信号。
必须在总线两端连接 120Ω 终端电阻 来消除信号反射。
对比总结表
| 特性 | TTL 电平 UART | RS-232 | RS-485 |
|---|---|---|---|
| 协议基础 | UART 协议 | 基于 UART,有完整标准 | 基于 UART,有完整标准 |
| 信号类型 | 单端、对地参考 | 单端、对地参考、负逻辑 | 差分信号(A、B) |
| 逻辑 0 / 1 | 0V / +3.3V 或 +5V | +3~+15V / -3~-15V | (A-B) > +0.2V / (A-B) < -0.2V |
| 通信距离 | < 1 米 | 约 15 米 | 可达 1200 米 |
| 抗干扰能力 | 弱 | 较强(高电压、负逻辑) | 强(差分抗共模干扰) |
| 连接方式 | 点对点 | 点对点 | 多点总线(一主多从) |
| 最大设备数 | 2 | 2 | 32/256(需驱动/中继) |
| 工作模式 | 全双工 | 全双工 | 半双工(常见,需方向控制) |
| 典型接口 | 排针、导线 | DB9 接头 | 接线端子(A、B、GND) |
| 电平转换芯片 | 无需(本身即是) | MAX232、CH340(USB 转串) | MAX485、SP3485 |
如何选择?
芯片对芯片,板内/板间短距离通信:
直接使用 TTL 电平 UART。简单,无需转换。
连接老式电脑COM口、部分工业设备,距离10米左右:
使用 RS-232。你的微控制器端需要加一个 MAX232 或类似芯片进行 TTL 到 RS-232 的转换。
工业现场,长距离(>几十米),多个设备组网:
使用 RS-485。你的微控制器端需要加一个 MAX485 或类似芯片进行 TTL 到 RS-485 的转换,并正确配置总线(终端电阻、布线规范)。
连接现代电脑(无COM口):
使用 USB转TTL串口线(如基于 CH340、CP2102、FT232 芯片的线)。这本质上是通过 USB 虚拟出一个 COM 口,并输出 TTL 电平,方便与开发板直接连接。
