云计算百科
云计算领域专业知识百科平台

串口、UART、RS-232、RS-485、RS-422:终于有人把它们的关系讲清楚了

串口、UART、RS-232、RS-485、RS-422:终于有人把它们的关系讲清楚了

在嵌入式开发、工业控制和物联网领域,我们几乎天天都在和“串口”打交道。但有一个现象很有意思:很多工程师虽然能用好它,但当被问到“UART和RS-232到底有什么区别?”时,往往会陷入短暂的迷茫。

“串口不就是DB9接头吗?”
“RS-232和RS-485都是串口吧?”
“为什么232传不远,485就能传很远?”

今天,我们就来彻底理清这些概念之间的关系,尤其是那些最容易让人混淆的误区。

一、核心概念:三层模型

要理解这个问题,首先要在脑海中建立一个三层模型。所有的串行通信,都可以拆解为三个独立的层次:

  • 逻辑层(协议层): 数据怎么打包?—— 这是 UART 干的事。
  • 物理层(电气层): 1和0怎么变成电压?—— 这是 RS-232、RS-485、RS-422 干的事。
  • 机械层(连接器层): 用什么形状的接头?—— 这是 DB9、DB25、RJ45、接线端子 干的事。
  • 绝大多数人的误解,都源于把这三层混为一谈。


    二、逻辑层:UART(真正的“串口”)

    当大家在代码里写 printf 或者配置 USART 寄存器时,打交道的就是 UART。

    • 全称: Universal Asynchronous Receiver/Transmitter(通用异步收发器)。
    • 本质: 它是一种通信协议,定义了一帧数据的长相。

    UART 的一帧数据长什么样?

    起始位(1位) + 数据位(5~8位) + 校验位(0/1位) + 停止位(1~2位)

    关键点:

    • 异步: 没有时钟线,靠双方的波特率(每秒多少位)来同步。
    • 电平: 在芯片引脚上,通常是 TTL 电平:
      • 高电平(如 3.3V 或 5V)代表 逻辑 1
      • 低电平(如 0V)代表 逻辑 0
    • 局限性: TTL电平信号线很短(几十厘米),抗干扰能力差,无法直接用于工业现场或长距离传输。

    结论:UART 只是规定了数据的“格式”,没规定怎么把信号发到远距离的电缆上去。


    三、物理层:三大电气标准

    既然UART出来的信号(TTL电平)跑不远,就需要给这些信号加一层“驱动”,让它能适应不同的物理环境。这就是 RS-232、RS-485、RS-422 的由来。

    它们本质上都是 “电平转换标准”,只解决物理传输问题,不关心数据里装的是什么。

    1. RS-232:早期的“点对点”老将

    这是大家最熟悉的,因为它就是老式电脑主机后面的DB9接口。

    • 电气特性:
      • 逻辑 1: -15V ~ -3V
      • 逻辑 0: +3V ~ +15V
      • 注意: 它是单端传输,电压是对地测量的。
    • 优缺点:
      • ✅ 简单: 线少(最少只需3根线:TXD, RXD, GND)。
      • ❌ 电压摆幅大: 需要正负电源,功耗高。
      • ❌ 抗干扰差: 单端信号,共模噪声抑制能力弱。
      • ❌ 传输距离短: 通常建议不超过15米。
    • 容易误解的地方:
      • 误解: “RS-232接口就是DB9头。”
      • 正解: DB9只是最常用的连接器。RS-232标准本身并不强制使用DB9,只是规定了电气特性。很多工业设备内部其实是TTL串口,通过一个MAX232芯片才转成RS-232电平的。

    2. RS-485:工业现场的“总线之王”

    如果要在工业环境里跑几百米,或者挂几十个设备,就得靠RS-485。

    • 电气特性:
      • 使用差分信号(两根线:A 和 B)。
      • 逻辑 1: 两根线电压差为负(B > A)
      • 逻辑 0: 两根线电压差为正(A > B)
      • 注意: 不依赖对地电压,只看两根线之间的电压差。
    • 优缺点:
      • ✅ 抗干扰强: 差分传输,共模噪声被抵消。
      • ✅ 传输距离远: 可达1200米以上。
      • ✅ 支持多节点: 一条总线上可以挂最多256个设备(半双工)。
      • ✅ 速率高: 短距离下可达10Mbps以上。
    • 容易误解的地方:
      • 误解: “RS-485是串口协议。”
      • 正解: RS-485只是物理层。你在上面跑Modbus协议是串口数据,跑Profibus协议也是串口数据,甚至跑自定义的简单脉冲信号都可以。它只负责传输0和1。
      • 误解: “RS-485是全双工的。”
      • 正解: 标准RS-485是半双工的。收发不能同时进行,需要软件或硬件控制收发切换。如果想全双工,请看下面的RS-422。

    3. RS-422:全双工的“增强版单主机”

    RS-422可以理解为RS-485的“大哥”,或者说是RS-485的全双工变种。

    • 电气特性:
      • 也是差分信号,原理与RS-485相同。
      • 但通常有两对线:一对用于发送(TX+ / TX-),一对用于接收(RX+ / RX-)。
    • 与RS-485的主要区别:
      • 工作模式: RS-422是全双工(可以同时发和收),RS-485是半双工(同一时刻只能发或收)。
      • 拓扑结构: RS-422只允许一个发送端(驱动器),但可以有多个接收端。它是一个驱动带多个负载。RS-485允许多个发送端(都是驱动器)。
    • 容易误解的地方:
      • 误解: “RS-422就是4线的RS-485。”
      • 正解: 硬件连线虽然很像(都是差分对),但芯片的驱动能力不同。RS-422的驱动器不能在总线上被禁用(三态),所以不能像RS-485那样组成多主机网络。如果把RS-422芯片用在RS-485总线上,可能会烧毁芯片或者总线冲突。

    四、经典误区大扫盲

    结合上面的三层模型,我们来回答几个最常见的坑:

    误区1:“232/485/422是串口协议”

    纠正: 它们是物理层标准。真正的串口协议(数据格式)是UART定义的。你可以把UART数据通过RS-232发出去,也可以通过RS-485发出去,内容完全一样,只是电信号表现形式不同。

    误区2:“TTL串口就是RS-232”

    纠正: 这是导致单片机烧毁的最常见原因!

    • TTL串口: 0V 和 3.3V/5V。
    • RS-232串口: -15V~-3V 和 +3V~+15V。
      直接连接会烧芯片。必须用 MAX232 之类的电平转换芯片。

    误区3:“485总线就两根线,比232先进”

    纠正: 各有用途。232是全双工(虽然线少是因为收发分开),485虽然是两根线但通常是半双工。485的“两根线”是指驱动线,它节省了线缆,但牺牲了同时收发的能力。

    误区4:“DB9接口 = RS-232”

    纠正: DB9只是一个9针的连接器外壳。很多工业设备用DB9接口,但里面跑的是RS-485信号。例如某些PLC的编程口,虽然也是DB9,但引脚定义完全不是标准的RS-232。所以做工程时不要只看接口形状,一定要看图纸上的引脚定义。


    五、一张图总结它们的关系

    为了更直观地理解,可以看这个层次关系:

    层次具体技术/标准职责描述
    逻辑层 UART 决定数据格式 (起始位、停止位、校验位)
    物理层 RS-232 决定电平标准 (单端,±12V,点对点,全双工)
    RS-485 决定电平标准 (差分,半双工,多节点,长距离)
    RS-422 决定电平标准 (差分,全双工,一主多从)
    机械层 DB9 / DB25 / 端子 决定物理接口形状

    一句话总结:
    UART 打包好行李(数据),然后交给 RS-232(出租车)或者 RS-485(长途大巴)或者 RS-422(专车),通过 DB9(车门)上车出发。

    下次再看到“串口”这两个字,希望能先想一下:对方指的是逻辑层的UART协议,还是物理层的电气接口,还是仅仅是那个DB9的物理接口?分清这三层,串口通信的所有困惑都会迎刃而解。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 串口、UART、RS-232、RS-485、RS-422:终于有人把它们的关系讲清楚了
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!