UART、RS232、RS485、I2C 的区别及工程应用场景

文章目录

  • UART与RS232/RS485
    • [1. TTL](#1. TTL)
      • [1.1 TTL 与 RS232 的核心区别](#1.1 TTL 与 RS232 的核心区别)
      • [1.2 负逻辑电平和 TTL 电平的定义标准](#1.2 负逻辑电平和 TTL 电平的定义标准)
        • [1.2.1 负逻辑电平(以 RS232 为例)](#1.2.1 负逻辑电平(以 RS232 为例))
        • [1.2.2 TTL 电平(正逻辑)](#1.2.2 TTL 电平(正逻辑))
      • [2. 总结](#2. 总结)
    • [2. RS232(串行异步通信接口)](#2. RS232(串行异步通信接口))
      • [2.1 RS232 解决了 UART 的哪些问题?](#2.1 RS232 解决了 UART 的哪些问题?)
      • [2.2 RS232 的缺点](#2.2 RS232 的缺点)
      • [2.3 RS232 与 RS485 的核心区别](#2.3 RS232 与 RS485 的核心区别)
      • [2.4 工程应用场景](#2.4 工程应用场景)
        • [2.4.1 RS232 的典型场景](#2.4.1 RS232 的典型场景)
        • [2.4.2 RS485 的典型场景](#2.4.2 RS485 的典型场景)
      • [3. 总结](#3. 总结)
    • [3. RS485(串行异步通信接口)](#3. RS485(串行异步通信接口))
    • [4. I2C(串行同步通信接口)](#4. I2C(串行同步通信接口))
    • [5. `SPI` [Serial Peripheral Interface] (串行同步通信接口)](#5. SPI [Serial Peripheral Interface] (串行同步通信接口))
    • IIC和SPI的异同
    • [6. Modbus](#6. Modbus)
  • 常见串口通信接口

UART与RS232/RS485

1. TTL

TTL 的全称是 Transistor-Transistor Logic(晶体管-晶体管逻辑),是一种基于双极型晶体管的数字电路电平标准,广泛用于芯片内部或短距离设备间的通信。

1.1 TTL 与 RS232 的核心区别

维度 TTL RS232
电平范围 逻辑 1:2.0V~5.0V(典型 3.3V/5V); 逻辑 0:0V~0.8V 逻辑 1:-3V~-15V(典型 -12V); 逻辑 0:+3V~+15V(典型 +12V)
逻辑方式 正逻辑:高电压(接近电源)表示"1",低电压(接近地)表示"0" 负逻辑:负电压表示"1",正电压表示"0"
传输距离 短距离(通常<1 米),抗干扰能力弱 中距离(最远 15 米),抗干扰能力强(宽幅电平提升容限)
接口形式 无标准化接口(常用排针、杜邦线),多用于芯片间内部通信 标准化接口(DB9/DB25 连接器),多用于设备间外部通信(如电脑与外设)
应用场景 嵌入式设备内部(如 MCU 与传感器、模块通信) 工业设备、电脑外设(如打印机、调制解调器)的远距离通信
电平转换 需通过 MAX232 等芯片转换为 RS232 电平才能与 PC 串口通信 直接兼容老式 PC 串口,无需转换(但需注意电平极性)

1.2 负逻辑电平和 TTL 电平的定义标准

1.2.1 负逻辑电平(以 RS232 为例)
  • 定义 :用负电压 表示逻辑"1",正电压表示逻辑"0"(与人类直觉相反,故称"负逻辑")。
  • 标准范围
    • 逻辑 1(高电平):-3V ~ -15V(典型值 -12V);
    • 逻辑 0(低电平):+3V ~ +15V(典型值 +12V)。
  • 设计目的:通过宽幅电压提升抗干扰能力,适合中距离传输(如工业设备间通信)。
1.2.2 TTL 电平(正逻辑)
  • 定义 :用高电压 表示逻辑"1",低电压表示逻辑"0"(符合人类直觉,故称"正逻辑")。
  • 标准范围
    • 逻辑 1(高电平):2.0V ~ 5.0V(取决于系统电压,典型 3.3V 或 5V);
    • 逻辑 0(低电平):0V ~ 0.8V
  • 设计目的:电路简单、功耗低,适合芯片间短距离通信(如单片机与传感器)。

2. 总结

TTL 是芯片级短距离通信的正逻辑电平标准,而 RS232 是设备级中距离通信的负逻辑电平标准。两者的核心差异在于电平范围、逻辑极性和传输距离 ,工程中需通过电平转换芯片(如 MAX232)实现兼容。

2. RS232(串行异步通信接口)

串行异步通信接口,无时钟信号

2.1 RS232 解决了 UART 的哪些问题?

从 UART"电气接口不统一""抗干扰能力差""通信距离极短"的痛点出发,RS232 的改进如下:

UART 痛点 RS232 的解决方案
电气接口不统一 1. 定义标准电气特性 :逻辑 1 对应 -3~-15V,逻辑 0 对应 +3~+15V(通常为 ±12V); 2. 规范硬件接口:使用 DB9/DB25 连接器(常用 3 线:TXD、RXD、GND)。
抗干扰能力差 采用宽幅电平(±12V 替代 TTL 的 3.3V/5V),提升抗干扰容限(噪声需超过 ±3V 才会误判)。
通信距离极短 单端传输下最大距离约 15 米(波特率 ≤20kbps 时),远优于 UART 的"板级芯片间通信"距离。

2.2 RS232 的缺点

尽管解决了 UART 的部分问题,RS232 仍存在以下局限:

  1. 抗干扰能力有限

    采用单端传输(信号以"地"为参考),易受共模干扰(如设备间地电位差、电磁辐射)。工业环境中(如变频器附近),误码率可能高达 10%。

  2. 传输距离与速率矛盾

    速率越高,传输距离越短:

    • 9600bps 时,优质屏蔽线可传 20~30 米;
    • 115200bps 时,距离需限制在 5 米以内,否则信号衰减导致误码。
  3. 电平转换复杂

    需通过 MAX232/MAX3232 等芯片将 TTL 电平(3.3V/5V)转换为 RS232 电平(±12V),增加硬件成本与故障点

  4. 接口电平高,易损坏芯片

    接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接

  5. 扩展性差

    仅支持点对点通信(1 主 1 从),无法实现多设备组网。

2.3 RS232 与 RS485 的核心区别

RS485 是针对 RS232 缺点的升级方案,两者差异如下:

维度 RS232 RS485
传输方式 单端传输(信号对地) 差分传输(信号对 A/B 线)
抗干扰能力 弱(易受共模干扰) 强(差分信号抵消共模干扰)
传输距离 最大 15 米(速率 ≤20kbps) 最大 1200 米(速率 ≤100kbps)
传输速率 最高 20kbps(15 米内) 最高 10Mbps(10 米内)
通信方式 全双工(点对点) 半双工/全双工(总线型,多主多从)
拓扑结构 点对点(1 对 1) 总线型(最多 32 个节点,中继器可扩展)
终端匹配 无需终端电阻 需在总线两端加 120Ω 终端电阻

2.4 工程应用场景

2.4.1 RS232 的典型场景
  • 设备调试与维护:计算机通过 RS232 连接 PLC、工业仪表,实时读取数据或修改参数(如实验室环境、生产线下位机调试)。
  • 短距离旧设备通信:连接条形码扫描器、串口打印机、老式 Modem 等(如超市收银系统、工业产线的老旧传感器)。
  • 点对点控制:小型设备间的指令传输(如智能家电与遥控器的近距离通信)。
2.4.2 RS485 的典型场景
  • 工业自动化组网:PLC 与变频器、传感器(如温湿度、压力传感器)组成分布式网络(如楼宇自控系统、智能电网数据采集)。
  • 长距离数据传输:跨车间/厂区的信号传输(如煤矿井下传感器组网、城市路灯控制系统)。
  • 多设备总线通信:支持 Modbus RTU 等协议,实现 1 主多从通信(如智能家居总线、工业机器人集群控制)。

3. 总结

RS232 是 UART 的"电气层升级",解决了电平不统一、距离短的问题,但受限于单端传输和点对点拓扑;RS485 则通过差分传输和总线结构,在抗干扰、距离、扩展性上更适配工业场景。实际工程中,短距离调试选 RS232,长距离工业组网选 RS485

3. RS485(串行异步通信接口)

  1. 接口电平低,不易损坏芯片
    逻辑1以两线间电压差为+(2-6)V表示,逻辑0以两线间电压差为-(2-6)V表示。接口信号电平比 RS232 低

  2. 传输速率高

    速率越高,传输距离越短:

    • 10 米时,最高传输速率可以达到35Mbps;
    • 1200米时,传输速率可以达到100Mbps。
  3. 抗干扰能力强

    RS485采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。

  4. 传输距离远,支持节点多

    最长可传输1200m以上,一般最大支持32个节点。

4. I2C(串行同步通信接口)

SDASCL构成的两线式半双工串行总线,同时处于高电平时规定为总线的空闲状态。此时各个器件的输出场效应管均处于截至状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

起始信号

当SCL为高电平期间,SDA由高到低的跳变;启动信号是一种电平跳变的时序信号,而不是一个电平信号;

停止信号

当SCL为高电平期间,SDA由低到高的跳变;停止信号也是一种电平跳变的时序信号,而不是一个电平信号;

应答信号

发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。

应答信号为低电平时,规定为有效应答位(ACK简称应位),表示接收器已经成功地接收了该字节;

应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平

数据信息

I2C总线进行数据传递时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的电平状态才允许变化。
即:数据在SCL的上升沿到来之前就要准备好,并在下降沿到来之前必须稳定

5. SPI [Serial Peripheral Interface] (串行同步通信接口)

是一种高速的全双工同步的通信总线,并在芯片管脚上只占用四根线,节约芯片管脚,节省PCB空间,主要应用EEPROM、Flash、RTC,ADC还有数字信号处理器、数字信号解码器

SPI接口简介

MISO 主设备数据输入,从设备数据输出
MOSI主设备数据输出,从设备数据输入
SCLK时钟信号,由主设备产生
CS(NSS)从设备片选信号,由主设备控制

通信过程

SPI总线在进行数据传送时先传送高位,后传送低位:数据线为高电平表示逻辑1,低电平表示逻辑0;

一个字节传送完成无需应答即可开始下一个字节的传送;

SPl总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;

IIC和SPI的异同

  • 相同点
    • 均采用串行、同步的方式
    • 均采用TTL电平,传输距离和应用场景类似(板子内部芯片之间通信
    • 均采用主从方式工作
  • 不同点
    • IIC为半双工,SPI为全双工
    • IIC有应答机制,SPI无应答机制
    • IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址
    • IIC的时钟极性和时钟相位固定,SPl的时钟极性和时钟相位可调

6. Modbus

常见串口通信接口

以下是补充完善后的常见串行通信接口表格 ,从引脚、通信方式、方向、典型应用、速率、拓扑等维度梳理,方便对比理解:

通信标准 引脚说明 通信方式 通信方向 典型应用场景 速率范围 拓扑结构
UART(TTL电平) TXD(发送端)、RXD(接收端)、GND(公共地) 异步通信 全双工 板级芯片间通信(如MCU间短距传输) 典型9600bps~115200bps 点对点
RS232(UART电气扩展) TXD、RXD、GND(基础); 可选RTS(请求发送)、CTS(清除发送)等握手线 异步通信 全双工 短距离设备调试(如PC与串口模块、老式Modem) 最高~20kbps(15米内) 点对点
RS485(UART电气扩展) A(差分正)、B(差分负)、GND(可选) 异步通信 半双工(需分时收发) 工业长距离组网(如PLC、传感器集群、智能电表) 100kbps(1200米)~10Mbps(短距离) 总线型(最多32节点,可通过中继扩展)
单总线(1-Wire) DQ(发送/接收端,需外接上拉电阻) 异步通信 半双工 温度传感器(DS18B20)、EEPROM、唯一ID芯片 最高~16kbps 总线型(一主多从,主机控制总线)
SPI SCK(同步时钟)、MISO(主机输入/从机输出)、 MOSI(主机输出/从机输入)、CS(片选,多从机时需) 同步通信 全双工 Flash存储、ADC采集、LCD显示模块 几Mbps~几十Mbps(高速SPI可达50+Mbps) 一主多从(通过CS片选区分从机)
I2C SCL(同步时钟)、SDA(数据输入/输出端) 同步通信 半双工 传感器(如温湿度、加速度)、EEPROM、模块间低速率通信 标准模式100kbps; 快速模式400kbps; 高速模式3.4Mbps 总线型(一主多从或多主多从,通过从机地址区分设备)

补充说明:

  1. UART与RS232/RS485的关系 :UART是"异步收发器"的逻辑层 (定义时序),RS232/RS485是UART的电气层扩展(定义电平、接口)。
  2. 全双工 vs 半双工 :全双工可同时收发 (如UART的TX和RX独立);半双工需分时收发(如I2C的SDA、单总线的DQ同一时刻只能传一个方向的数据)。
  3. 同步 vs 异步 :同步通信需时钟线 (如SPI的SCK、I2C的SCL)同步数据;异步通信无时钟线,靠波特率 (UART)或固定时序(单总线)同步。

电平协议转换芯片