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 电平的电压范围很窄,抗干扰能力弱。所以它只适合板内通信,比如单片机跟传感器之间,距离不超过几十厘米。
2.2 RS-232:老当益壮,但脾气大
RS-232 是历史最悠久的串行通信标准。它用 ±12V 或 ±15V 的电压摆幅来传输信号。
- 逻辑1(Mark):-3V ~ -15V
- 逻辑0(Space):+3V ~ +15V
为什么用这么高的电压?说白了就是为了抗干扰。±12V 的摆幅,让它在几十米的距离上依然可靠。
但 RS-232 有个致命缺点:只能点对点通信。一个串口只能连一个设备。而且它的接口是 DB9 那种大个头,现在很多笔记本上根本找不到。
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 个甚至更多设备。这对气象站来说太重要了——一个采集器可以同时读取多个传感器。
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 我在项目中踩过的坑
说到坑,我印象最深的有三个:
-
TTL 电平直接连 RS-232 设备
有一次我图省事,把单片机的 TX/RX 直接连到一个老式的 RS-232 串口屏上。结果屏幕没反应,单片机还发烫。后来才想起来:TTL 是 5V,RS-232 是 ±12V,电平不匹配!必须加 MAX232 这样的电平转换芯片。 -
RS-485 总线没加终端电阻
在一条 200 米的总线上挂了 8 个风速传感器。通信时有时无,波形乱七八糟。查了半天,发现是总线两端没加 120Ω 的终端电阻。加上之后,信号反射消失,通信稳如老狗。 -
共地问题
用 RS-485 时,我以为差分信号不需要共地。结果两个设备的地电位差了十几伏,直接把 RS-485 芯片烧了。记住:差分信号虽然不依赖地做参考,但设备之间必须有共地连接,否则共模电压会超出芯片承受范围。
2.6 选型决策流程
你问我怎么选?我一般按这个思路来:
- 距离 < 1 米,且只在板内 → TTL 电平,简单直接
- 距离 1 ~ 15 米,且只有两个设备 → RS-232,但要注意线缆质量
- 距离 > 15 米,或者需要挂多个设备 → RS-485,没得选
- 环境电磁干扰严重 → 优先 RS-485,加屏蔽双绞线
嗯,说白了,现在的嵌入式项目里,RS-485 是主流。TTL 只做板内调试用,RS-232 正在被 USB 和 RS-485 取代。但老设备上还有,你得会处理。
好了,这一章就到这里。下一章咱们聊聊 Modbus 协议——怎么让 RS-485 总线上的设备乖乖听话。到时候我会分享一个我调试了三天三夜的 Bug,保证让你印象深刻。