物理层基础:RS-232/RS-485电平标准、差分信号原理、双绞线布线注意事项

各位同学,咱们今天聊点实在的。做嵌入式通信,物理层是绕不开的第一道坎。很多人上来就调协议栈,结果死活通不了,最后发现是电平不匹配、线接错了。我早年就吃过这个亏,所以这一章咱们把物理层的基础打扎实。

说白了,物理层就是定义“怎么在线上表示0和1”。RS-232和RS-485是两种最常用的标准,但它们的脾气完全不同。你想想看,一个用单端信号,一个用差分信号,抗干扰能力差了好几个量级。

RS-232电平标准

RS-232是早期PC串口的标配。它的电平定义比较“暴力”:

  • 逻辑1(MARK):-3V ~ -15V
  • 逻辑0(SPACE):+3V ~ +15V
  • 不确定区:-3V ~ +3V(这个区域要避免)

注意了,它用的是负逻辑。我刚开始做项目时,用万用表量TX脚,发现空闲时是-9V,还以为是板子坏了。后来才反应过来——RS-232空闲状态就是负电压,这是正常的。

⚠️ 重要提醒: RS-232电平不能直接接单片机IO口!单片机通常是0~3.3V或0~5V,而RS-232是±12V左右。必须用MAX232、SP3232这类电平转换芯片。我曾经见过有人直接连,结果单片机IO口冒烟了。

RS-232的传输距离一般不超过15米,速率通常115200bps以内。再远就不行了,因为单端信号抗共模干扰能力差,线一长信号就变形。

RS-485电平标准

RS-485就不一样了。它用差分信号传输,抗干扰能力强得多。电平定义是这样的:

状态 A线(非反相) B线(反相) 差分电压(A-B)
逻辑1 高 低 +0.2V ~ +6V
逻辑0 低 高 -0.2V ~ -6V

你看,RS-485的差分电压只需要±0.2V就能识别,而RS-232需要±3V。这意味着RS-485可以用更低的电压驱动,传输距离也更远——理论上能到1200米。

我个人习惯在项目里优先用RS-485,尤其是多节点通信的场景。一个总线可以挂32个节点(标准负载),用中继器还能扩展更多。

差分信号原理

差分信号的核心思想是:用两根线的电压差来表示数据,而不是用单根线对地的电压。这样做的好处很明显:

  • 抗共模干扰:外部噪声同时耦合到两根线上,差分电压不变
  • 抑制电磁辐射:两根线电流方向相反,磁场相互抵消
  • 地电位差容忍度高:两个设备地电位差在-7V~+12V内都能正常工作

为什么会这样?你想想看,如果一根线受到干扰升高了1V,另一根线也升高1V,那它们的差值没变。这就是共模抑制的原理。我在一个工厂项目里遇到过电机启动时通信乱码,换成RS-485后问题就解决了。

💡 关键点: 差分信号不依赖地线作为参考,所以长距离通信时,地电位差不会影响信号质量。但注意,RS-485仍然需要一根地线来保证共模电压在允许范围内。

双绞线布线注意事项

RS-485推荐使用双绞线。为什么?因为双绞线能让两根线受到的干扰更一致。我总结了几条实战经验:

  1. 用屏蔽双绞线:在工业环境里,屏蔽层单端接地,能滤掉高频干扰
  2. 终端电阻匹配:在总线两端各加一个120Ω电阻,消除信号反射。我见过有人不加,结果长线通信时波形振铃严重
  3. 避免星型拓扑:RS-485总线最好是手拉手串联,不要分叉。分叉会产生阻抗不连续点
  4. 远离强电线路:至少保持20cm以上距离,不要和动力线走同一个线槽
  5. 地线要粗:建议用1.0mm²以上的地线,降低地环流影响
🔧 实战技巧: 布线时把A、B线绞合得越密,抗干扰效果越好。我一般每米绞20圈以上。另外,如果总线空闲时电平不确定,可以加偏置电阻把A拉高、B拉低,保证空闲状态是确定的逻辑1。

下面这张图把RS-232和RS-485的核心差异总结了一下,方便你对照:

RS-232 vs RS-485 物理层对比 RS-232 信号类型:单端(对地) 传输距离:≤15米 最高速率:115200 bps 节点数:点对点(1对1) 电平摆幅:±12V 逻辑1:-3V ~ -15V 逻辑0:+3V ~ +15V 抗干扰:弱 常用芯片:MAX232 适合:短距离、低速、一对一 调试串口、控制台 RS-485 信号类型:差分(A-B) 传输距离:≤1200米 最高速率:10 Mbps 节点数:最多32个(标准) 电平摆幅:±1.5V ~ ±6V 逻辑1:A-B > +0.2V 逻辑0:A-B < -0.2V 抗干扰:强 常用芯片:MAX485、SP3485 适合:长距离、高速、多节点 工业总线、楼宇自动化

嗯,这里要注意一点:RS-485虽然叫“总线”,但同一时刻只能有一个节点发送数据。所以需要协议层来仲裁谁说话。这个咱们后面章节会细讲。

最后说个我踩过的坑。有一次布线,我把RS-485的A、B线接反了,结果通信死活不通。查了半天才发现是线序错了。所以我的习惯是:A线用橙白/橙,B线用绿白/绿,这样不容易搞混。另外,屏蔽层只能单端接地,两端都接地反而会形成地环路,引入干扰。

好了,物理层的基础就这些。记住一句话:RS-232适合桌面调试,RS-485适合工业现场。选对标准,布线规范,通信就成功了一半。