【通信协议】一篇搞懂SPI通信,主从机为什么需要共地

💌 所属专栏:【通信协议】
😀 作  者:兰舟比特 🐾
🚀 个人简介:热爱开源系统与嵌入式技术,专注 Linux、网络通信、编程技巧、面试总结与软件工具分享,持续输出实用干货!
💡 欢迎大家:这里是兰舟比特的技术小站,喜欢的话请点赞、收藏、评论三连击!有问题欢迎留言交流😘😘😘


1. SPI 信号线

SPI 通常有几根线:

  • SCK:时钟线(主机输出,从机接收)
  • MOSI:主机输出数据,从机输入
  • MISO:从机输出数据,主机输入
  • CS/SS:片选信号(主机输出,从机输入)
  • GND:地线

2. 为什么要共地?

👉 因为 数字电路的“1”和“0”是相对电压,而不是绝对电压

  • 主机发送一个高电平 1(例如 3.3V),

  • 从机需要用自己的参考点(地/GND)去理解:

    • 如果 GND 一致,那么从机看到的就是 3.3V - 0V = 3.3V,正确识别为“高电平”。

    • 如果 GND 不一致,比如主机的地比从机的地高 1V:

      • 主机发 3.3V,从机参考的是自己的地 0V,但线上的电压其实对它来说是 (3.3V - 1V) = 2.3V
      • 这时候可能还能勉强识别,但如果差得再大,就会出错。

更糟的情况

  • 如果完全没有共地,信号线上的电压根本没有参考点,从机完全无法判断到底是“0”还是“1”。
  • 就像两个人说话时,一个用“摄氏度”当温度单位,一个用“华氏度”,不约定基准,就完全听不懂。

3. 类比理解

  • 共地 = 确认零点基准
  • 就好比两个城市要通信电力,必须先约定“零电位”在哪里,否则一方的 220V 可能在另一方看来是 110V,甚至负电压。

4. 实际电路里如果不共地

  • 信号可能会漂浮,逻辑电平识别错误。
  • 严重时可能会烧毁器件(因为电压差可能让电流乱窜)。

所以:
SPI、UART、I²C 这些单端信号总线,都必须保证主从机有公共地线


✅ 总结:

  • 数字电路信号是“相对电压”而不是“绝对电压”。
  • 共地的作用就是让主机和从机有统一的参考点(0V 基准)。
  • 如果不共地,信号无法正确识别,通信必然出错。


版权声明:

本文为 兰舟比特 原创内容,如需转载,请注明出处及作者,禁止未经授权的引用或商用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兰舟比特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值