UART、TTL、RS-232 、 RS-485
UART、TTL、RS-232 和 RS-485 是嵌入式开发和通信中经常被同时提及但又容易混淆的概念。它们之间的关系可以用一句话概括:
UART 是核心协议,而 TTL、RS-232、RS-485 是这种协议在不同物理电平(电气特性)上的实现。
下面我们逐一详解。
1. UART - 通信协议的核心
UART 代表 通用异步收发传输器。它是一种异步串行通信协议。
- 角色:它是芯片内部的一个控制器,或者说是软件遵循的一套规则。
- 功能:负责处理数据的“打包”和“解包”。
- 发送时:将CPU的并行数据(如一个8位的字节)转换成串行位流,并加上起始位、校验位和停止位。
- 接收时:将接收到的串行位流转换成并行数据,并去除起始位、校验位和停止位,交给CPU。
- 关键特性:
- 异步:通信双方没有统一的时钟信号。依靠预先约定好的波特率 来同步时序。
- 串行:数据一位一位地依次传输。
- 全双工:可以同时收发数据(因为它有独立的发送端和接收端)。
- 物理接口:UART本身只定义逻辑,不规定物理电压。它通常以芯片引脚上的 TTL电平 形式存在。
简单比喻:UART就像是负责“编写”和“阅读”信件的“大脑”,它规定了信件的格式(比如开头怎么写,正文用什么语言,结尾怎么署名)。
2. TTL电平 - 芯片间的“语言”
TTL 代表 晶体管-晶体管逻辑。它指的是芯片工作电压下的逻辑电平。
- 角色:是UART在芯片引脚上最直接的物理表现。
- 电平标准:
- 逻辑1 (高电平):通常为 +3.3V 或 +5V。
- 逻辑0 (低电平):通常为 0V。
- 应用场景:主要用于板内通信或芯片之间距离非常近(通常小于几十厘米)的场景。例如,STM32单片机的UART引脚与ESP8266 WiFi模块之间的通信。
- 接口:通常就是三根线:TX(发送)、RX(接收)、GND(地线)。
- 缺点:电压低,抗干扰能力弱,传输距离短,无法连接不同“地”电位的设备。
简单比喻:TTL就像是两个人面对面用“正常音量”说话。距离近了听得清,距离远了或有噪音就听不清了。
3. RS-232 - 老而弥坚的“标准音量”
RS-232 是一种标准的串行通信接口。它就是为了解决TTL电平的缺点而生的。
- 角色:将UART的信号转换成能进行远距离、抗干扰传输的电平。
- 电平标准(与TTL完全相反,注意是负逻辑):
- 逻辑1 (低电平):-3V 至 -15V(通常为-12V)。
- 逻辑0 (高电平):+3V 至 +15V(通常为+12V)。
- 应用场景:经典的台式电脑串口、工控设备、调制解调器等。传输距离可达15米左右。
- 接口:通常使用DB9或DB25连接器。
- 关键点:
- 需要一个 电平转换芯片(如MAX232)在UART的TTL电平和RS-232电平之间进行转换。
- 通常是全双工,但一般是点对点通信(一对一)。
简单比喻:RS-232就像两个人用“对讲机”通话。音量更大(电压高),抗干扰更强,可以隔着一个房间对话。但需要一个“翻译”(MAX232芯片)把正常说话(TTL)转换成对讲机信号。
4. RS-485 - 工业级的“广播系统”
RS-485 是一种用于远距离、抗干扰、多点通信的串行接口标准。
- 角色:解决RS-232传输距离短、无法组建网络的问题。
- 电平标准:
- 使用差分信号传输。用两条线A和B之间的电压差来表示逻辑状态。
- 逻辑1:
(A) - (B) < -0.2V
- 逻辑0:
(A) - (B) > +0.2V
- 优势:
- 抗共模干扰能力极强:因为差分信号,外部的噪声会同时作用于A和B线,电压差保持不变。
- 传输距离远:可达1200米以上。
- 支持多点网络:一条总线上可以挂接多个(32个、128个或更多)设备,构建网络。
- 应用场景:工业自动化、楼宇自控、安防系统等。
- 关键点:
- 需要 RS-485转换芯片(如MAX485、SP3485)将UART的TTL信号转换成差分信号。
- 通常是半双工(同一时间只能发送或接收),需要方向控制。也有全双工版本,但需要4根线。
- 通信时需要协议来管理总线访问(如Modbus协议)。
简单比喻:RS-485就像一个“校园广播系统”。一个主机可以对着许多喇叭(从机)广播,传输距离远,即使在嘈杂的工厂里也能听清。但通常需要遵守“我说的时候你们听”的规则(半双工)。
总结与对比
特性 | UART (协议) | TTL (电平) | RS-232 (接口) | RS-485 (接口) |
---|---|---|---|---|
本质 | 通信协议 | 逻辑电平 | 物理接口标准 | 物理接口标准 |
电平电压 | 不规定 | 0V / 3.3V或5V | ±3V~±15V (负逻辑) | ±(1.5V~5V)差分 |
通信方式 | 全双工 | 全双工 | 全双工 | 半双工(主流) |
传输距离 | - | < 0.5m | ~15m | > 1200m |
抗干扰性 | - | 弱 | 中等 | 极强 |
网络拓扑 | 点对点 | 点对点 | 点对点 | 多点网络 |
典型应用 | 芯片内部逻辑 | 单片机引脚、模块间通信 | 电脑COM口、老式 modem | 工业总线、Modbus网络 |
它们如何协同工作?
一个典型的系统连接方式如下:
CPU (UART) <–(TTL电平)–> 电平转换芯片 <—> 物理接口(RS-232/RS-485) <—> 外部设备
示例1:电脑通过RS-232连接设备
PC CPU
-> UART
-> (TTL)
-> MAX232芯片
-> (RS-232)
-> DB9接口
-> 串口线
-> 目标设备
示例2:单片机通过RS-485组网
STM32 CPU
-> UART
-> (TTL)
-> MAX485芯片
-> (RS-485差分信号)
-> A/B总线
-> 多个485设备