一、结论
- 普通串口 / I2C / SPI:必须共地属于单端信号,靠「对地 0V」判断 3.3V/0V。
- CAN 总线:不需要共地、允许多地电位差属于差分信号通信,不靠对地电压,靠两根线互相比较。
二、普通通信必须共地
UART/I2C 都是单端信号
- 信号电平 = 信号脚电压相对本机 GND
- A 设备 GND 和 B 设备 GND 电位不一样
- 高低电平整体偏移、阈值错乱 → 乱码、不通
致命弱点:参考地不一样,逻辑 1/0 就认错。
三、CAN 核心:差分信号完全抛弃「对地参考」
CAN 只有两根线:
- CAN_H
- CAN_L
关键规则(CAN 判断 0/1 不靠 GND)
CAN 识别数据,只对比 CAN_H 和 CAN_L 之间的电压差:
隐性电平(逻辑 1)VCANH≈VCANL 两根线电压几乎相等,压差≈0V
显性电平(逻辑 0)VCANH>VCANL 两根线拉出固定压差(典型 2V 左右)
四、设备不共地、地电位差很大
假设:
- 设备 A GND: 0V
- 设备 B GND:相差 30V 浮动地电位(工业常见)
单端通信(串口)直接报废
信号电压整体偏移 30V,直接超出芯片耐压、逻辑错乱。
CAN 完全不受影响
CAN_H、CAN_L两根线会被一起整体抬高 / 压低
- 共模电压一起浮动
- 两根线的电压差 保持不变
👉 CAN 接收器只看差值,不看对地绝对电压这就是:共模抑制能力。
五、CAN 实际接线要求
- 不需要信号共地各设备电源独立、电池供电、隔离电源都能跑 CAN
- 建议:留一根安全地线 / 保护地(工业强干扰环境)不是为了通信,是为了防静电、防雷击、保护芯片
- 总线两端 120Ω 终端电阻匹配阻抗、防止信号反射
七、车载 CAN 全车不严格共地也能用
汽车车身是搭铁地,但各个控制器、电机、高压部件本身就存在巨大地电位漂移,如果是串口早就全乱码;车用 CAN 就是靠差分 + 共模抑制,抗干扰、抗地漂移。
八、总结
- 普通通信(UART/I2C/SPI):单端信号,对地判断,必须共地;
- CAN:差分信号,只判断 CANH 与 CANL 压差,不依赖本地 GND;
- 多地电位差、浮动地、隔离电源,只会产生「共模电压」;
- CAN 接收器抑制共模干扰,只识别差分压差,所以不共地也能稳定通信;
- 工业 / 汽车强干扰、多地悬浮场景,首选 CAN。