2、物理层接口:RS-232、RS-485、TTL电平区别与选型,我在项目中踩过的坑。

各位同学,咱们接着聊。上一章讲了气象站的整体通信架构,这一章咱们把镜头拉近,看看最底层的物理层接口。

说白了,物理层就是决定「信号怎么在线上跑」的规则。RS-232、RS-485、TTL 电平,这三兄弟是嵌入式通信里最常见的。但你要是选错了,轻则通信不稳定,重则烧片子。我在这上面可没少交学费。

2.1 先搞清楚:TTL 电平是什么?

TTL 电平,全称 Transistor-Transistor Logic。它是最基础的逻辑电平标准。

简单记:

  • 高电平(逻辑1):+5V(或 3.3V,看芯片供电)
  • 低电平(逻辑0):0V(GND)

嗯,这里要注意:TTL 电平的电压范围很窄,抗干扰能力弱。所以它只适合板内通信,比如单片机跟传感器之间,距离不超过几十厘米。

我的习惯:做原型验证时,我经常直接用 TTL 串口连电脑的 USB 转串口模块。方便,但千万别拉长线。超过 1 米,数据就开始乱飞了。

2.2 RS-232:老当益壮,但脾气大

RS-232 是历史最悠久的串行通信标准。它用 ±12V 或 ±15V 的电压摆幅来传输信号。

  • 逻辑1(Mark):-3V ~ -15V
  • 逻辑0(Space):+3V ~ +15V

为什么用这么高的电压?说白了就是为了抗干扰。±12V 的摆幅,让它在几十米的距离上依然可靠。

但 RS-232 有个致命缺点:只能点对点通信。一个串口只能连一个设备。而且它的接口是 DB9 那种大个头,现在很多笔记本上根本找不到。

我曾经踩过的坑:有一次在野外架设气象站,我图省事用了 RS-232 连接风速仪和采集器。结果线长了 15 米,数据丢包严重。后来发现是线缆质量太差,寄生电容太大,把信号边沿都磨圆了。换了一根屏蔽双绞线,问题解决。记住:RS-232 虽然抗干扰,但对线缆质量很敏感。

2.3 RS-485:工业现场的王牌

RS-485 是我在气象站项目中最常用的接口。它用差分信号传输,两根线(A、B)搞定。

  • 逻辑1:A 线比 B 线电压高(+2V ~ +6V)
  • 逻辑0:A 线比 B 线电压低(-2V ~ -6V)

差分信号的好处是什么?抗共模干扰极强。你想想看,如果外界有电磁干扰,它会同时作用在 A 和 B 两根线上,但它们的差值不变。所以 RS-485 在工业现场、长距离传输(1200 米以上)中几乎是唯一选择。

而且 RS-485 支持多点通信,一条总线上可以挂 32 个、128 个甚至更多设备。这对气象站来说太重要了——一个采集器可以同时读取多个传感器。

选型建议:如果你的气象站传感器分布在几十米甚至几百米的范围内,别犹豫,直接上 RS-485。我个人的经验是,哪怕只有两个设备,距离超过 5 米,我也优先用 RS-485。

2.4 三者的核心区别对比

咱们用一张表说清楚:

特性 TTL 电平 RS-232 RS-485
信号方式 单端(对 GND) 单端(对 GND) 差分(A/B 线)
电压摆幅 0 ~ 5V(或 3.3V) ±12V ±2V ~ ±6V
最大距离 约 1 米 约 15 米 约 1200 米
最大节点数 2(点对点) 2(点对点) 32 ~ 256(取决于驱动芯片)
抗干扰能力 中等
典型应用 板内通信 短距离设备互联 工业现场、长距离

2.5 我在项目中踩过的坑

说到坑,我印象最深的有三个:

  1. TTL 电平直接连 RS-232 设备
    有一次我图省事,把单片机的 TX/RX 直接连到一个老式的 RS-232 串口屏上。结果屏幕没反应,单片机还发烫。后来才想起来:TTL 是 5V,RS-232 是 ±12V,电平不匹配!必须加 MAX232 这样的电平转换芯片。
  2. RS-485 总线没加终端电阻
    在一条 200 米的总线上挂了 8 个风速传感器。通信时有时无,波形乱七八糟。查了半天,发现是总线两端没加 120Ω 的终端电阻。加上之后,信号反射消失,通信稳如老狗。
  3. 共地问题
    用 RS-485 时,我以为差分信号不需要共地。结果两个设备的地电位差了十几伏,直接把 RS-485 芯片烧了。记住:差分信号虽然不依赖地做参考,但设备之间必须有共地连接,否则共模电压会超出芯片承受范围。
避坑指南:我曾经因为没加 TVS 管,雷雨天气时 RS-485 总线上的设备烧了一片。后来所有 RS-485 接口都加上了双向 TVS 管和自恢复保险丝。虽然成本多了几块钱,但再也没出过问题。

2.6 选型决策流程

你问我怎么选?我一般按这个思路来:

  • 距离 < 1 米,且只在板内 → TTL 电平,简单直接
  • 距离 1 ~ 15 米,且只有两个设备 → RS-232,但要注意线缆质量
  • 距离 > 15 米,或者需要挂多个设备 → RS-485,没得选
  • 环境电磁干扰严重 → 优先 RS-485,加屏蔽双绞线

嗯,说白了,现在的嵌入式项目里,RS-485 是主流。TTL 只做板内调试用,RS-232 正在被 USB 和 RS-485 取代。但老设备上还有,你得会处理。

一个小技巧:如果你不确定现场用哪种接口,可以设计一个兼容电路。用跳线帽选择 TTL 或 RS-485 模式。我做的气象站采集板就是这样,现场调试时灵活切换,省了不少事。

好了,这一章就到这里。下一章咱们聊聊 Modbus 协议——怎么让 RS-485 总线上的设备乖乖听话。到时候我会分享一个我调试了三天三夜的 Bug,保证让你印象深刻。