2、物理层基础:RS-485/RS-232电气特性、CAN总线物理层(差分信号、终端电阻)、以太网PHY芯片选型与布线要点

各位同学,咱们今天聊聊物理层。很多人觉得物理层就是接几根线,没什么技术含量。我当年也这么想,直到在产线上被各种奇怪的问题折磨过——通信时好时坏、数据丢包、甚至烧芯片。嗯,从那以后我再也不敢小看物理层了。

说白了,物理层就是通信的“地基”。地基不稳,上层协议再牛也白搭。今天咱们把电池化成设备里最常见的三种物理层讲透:RS-485、RS-232、CAN总线,还有以太网PHY。

2.1 RS-485 与 RS-232:老当益壮的两兄弟

先说说RS-232。这玩意儿年纪比我大,但至今还在用。它的电气特性很简单:用-3V到-15V表示逻辑“1”,用+3V到+15V表示逻辑“0”。说白了就是单端传输,一根信号线对地。

RS-232 的关键参数:

  • 传输距离:一般不超过15米(我实测过,20米就开始丢数据了)
  • 速率:最高115200bps,再高就不太稳了
  • 接口:DB9最常见,3脚是TX,2脚是RX,5脚是GND
⚠️ 避坑指南: 我曾经在项目里直接用5V单片机连RS-232,结果烧了三个串口芯片。后来才反应过来——RS-232的电平是±12V,不是TTL电平!必须用MAX232这类电平转换芯片。

再来看RS-485。这货才是工业现场的主力。它用差分信号传输,两根线(A和B)的电压差来决定逻辑状态。A比B高200mV以上是逻辑“1”,反过来是逻辑“0”。

RS-485 的优势很明显:

  • 传输距离:1200米没问题(我见过最长的跑了1500米,但速率降到了9600)
  • 速率:最高10Mbps(距离越短速率越高)
  • 多节点:一条总线上可以挂32个节点(用高阻抗芯片可以挂更多)
参数 RS-232 RS-485
传输方式 单端 差分
最大距离 15米 1200米
最大速率 115.2kbps 10Mbps
节点数 1对1 最多256个
共模电压范围 ±15V -7V到+12V
💡 我的个人习惯: 在电池化成设备里,RS-485我一般用SP3485或者MAX3485,便宜又皮实。布线时记得把A/B两根线绞在一起,能有效抑制共模干扰。

2.2 CAN总线物理层:差分信号的典范

CAN总线,说白了就是为汽车和工业现场量身定做的。它的物理层也是差分信号,但比RS-485更讲究。

CAN的电气特性:

  • CAN_H和CAN_L的电压差:显性位(逻辑0)时差2V左右,隐性位(逻辑1)时差0V
  • 终端电阻:120Ω,必须加在总线两端
  • 速率:最高1Mbps(距离40米以内),距离越长速率越低

为什么会这样?因为CAN总线用的是“线与”机制。多个节点同时发送时,显性位会覆盖隐性位。终端电阻的作用就是匹配阻抗,防止信号反射。

🔑 关键点: 终端电阻必须加在总线的物理两端,而不是任意位置。我见过有人把120Ω电阻焊在中间节点上,结果总线反射得一塌糊涂,通信全乱套了。

CAN总线布线要点:

  1. CAN_H和CAN_L必须绞在一起,绞距10-20mm
  2. 总线长度超过100米时,建议用屏蔽双绞线
  3. 每个节点的分支线(stub)尽量短,最好不超过30cm
  4. 地线必须连接所有节点,但不要形成地环路
⚠️ 我曾经踩过的坑: 有一次做化成柜的CAN通信,总线上挂了24个节点,结果最远的几个节点老是掉线。查了半天,发现是总线长度超过了200米,但终端电阻只加了一端。后来两端都加上120Ω电阻,问题就解决了。

2.3 以太网PHY芯片选型与布线要点

现在越来越多的化成设备开始用以太网了。速度快、距离远、生态好。但PHY芯片选不好,布线布不好,照样翻车。

PHY芯片选型,我一般看这几点:

  • 接口类型:RMII还是RGMII?RMII省引脚,但需要50MHz时钟;RGMII速率高,但布线要求也高
  • 速率支持:10/100Mbps够用,还是需要千兆?化成设备一般百兆就够
  • 温度范围:工业级(-40°C到85°C)是必须的,别省钱买商业级
  • 外围电路:晶振、电阻、电容是否好买?我习惯用内置匹配电阻的PHY,省事

常用的PHY芯片推荐:

型号 接口 速率 温度范围 备注
LAN8720A RMII 10/100M 0-70°C 便宜,但商业级
DP83848 RMII/MII 10/100M -40-85°C 工业级,皮实
RTL8211 RGMII 10/100/1000M -40-85°C 千兆,贵一点

以太网布线要点(这部分我吃过不少亏):

  1. 差分对布线:TX+和TX-必须等长,误差不超过5mil。RX也一样
  2. 阻抗控制:单端50Ω,差分100Ω。别指望随便拉根线就能跑千兆
  3. 远离干扰源:时钟线、电源线、高频信号线,离差分对远一点
  4. 地平面完整:差分对下方不要有分割,否则阻抗不连续
  5. 网口变压器:尽量靠近RJ45座,减少走线长度
💡 我的个人经验: 布线时,我习惯在PHY芯片和RJ45之间加一个共模扼流圈。虽然成本多了几毛钱,但抗干扰能力提升一个档次。特别是在化成设备这种大电流、强干扰的环境里,这钱花得值。

嗯,物理层的内容就这些。你想想看,其实每个知识点都不难,但组合在一起就容易出问题。我的建议是:做项目时先把物理层搞定,再谈上层协议。否则你花三天调Modbus协议,结果发现是RS-485的A/B线接反了——这种事我干过不止一次。

下一章咱们聊数据链路层,到时候把Modbus RTU和CANopen的帧结构掰开了讲。各位先把物理层吃透,后面就顺了。