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
再来看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 |
2.2 CAN总线物理层:差分信号的典范
CAN总线,说白了就是为汽车和工业现场量身定做的。它的物理层也是差分信号,但比RS-485更讲究。
CAN的电气特性:
- CAN_H和CAN_L的电压差:显性位(逻辑0)时差2V左右,隐性位(逻辑1)时差0V
- 终端电阻:120Ω,必须加在总线两端
- 速率:最高1Mbps(距离40米以内),距离越长速率越低
为什么会这样?因为CAN总线用的是“线与”机制。多个节点同时发送时,显性位会覆盖隐性位。终端电阻的作用就是匹配阻抗,防止信号反射。
CAN总线布线要点:
- CAN_H和CAN_L必须绞在一起,绞距10-20mm
- 总线长度超过100米时,建议用屏蔽双绞线
- 每个节点的分支线(stub)尽量短,最好不超过30cm
- 地线必须连接所有节点,但不要形成地环路
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 | 千兆,贵一点 |
以太网布线要点(这部分我吃过不少亏):
- 差分对布线:TX+和TX-必须等长,误差不超过5mil。RX也一样
- 阻抗控制:单端50Ω,差分100Ω。别指望随便拉根线就能跑千兆
- 远离干扰源:时钟线、电源线、高频信号线,离差分对远一点
- 地平面完整:差分对下方不要有分割,否则阻抗不连续
- 网口变压器:尽量靠近RJ45座,减少走线长度
嗯,物理层的内容就这些。你想想看,其实每个知识点都不难,但组合在一起就容易出问题。我的建议是:做项目时先把物理层搞定,再谈上层协议。否则你花三天调Modbus协议,结果发现是RS-485的A/B线接反了——这种事我干过不止一次。
下一章咱们聊数据链路层,到时候把Modbus RTU和CANopen的帧结构掰开了讲。各位先把物理层吃透,后面就顺了。