跳转至

I2C与SPI总线选型决策指南

难度:🟢 入门 | 领域:总线选型 | 关键词:I2C, SPI, 片选, 地址 | 阅读时间:约 15 分钟

日常类比

给整栋楼装门铃:每间房拉专线到前台像串行外设接口(Serial Peripheral Interface, SPI)的片选;共用一根铃线、靠门牌号区分像 I2C 的地址。线少还是速快,是 IoT 外设选型的主矛盾[1][2]。

摘要

从引脚、吞吐、距离、功耗与混合拓扑给出选型框架,并简述 I3C 作为演进选项。文中 MHz/效率数字为示意,以器件数据手册为准[1][4]。

1. 原理对照

维度 I2C SPI
信号线 SCL+SDA(2) SCLK+MOSI+MISO+CS×N(≥4)
寻址 7/10 位地址 片选 GPIO
双工 半双工 全双工
应答 ACK/NACK 通常无硬件 ACK
多主 规范支持 一般单主
速率量级 0.1–数 MHz 常可达数十 MHz 量级
从机数 N I2C 脚数 SPI 脚数(示意)
1 2 4
4 2 7
8 2 11

SPI 可用译码器扩展 CS,但增加器件与时序复杂度。

2. 吞吐、功耗与距离

短帧时 I2C 地址+ACK 开销占比高;传感器每秒数 Hz~百 Hz 读数时,Fast 模式通常够用。I2C 上拉有静态电流;SPI 空闲可仅拉高 CS,但高速动态功耗未必更低——需按占空比测[3][5]。

距离量级 I2C SPI
同板数厘米 通常可行 通常可行
板内偏长 易需降速/加强上拉 相对更稳
板间长线 一般不推荐 仍须注意完整性;更远改差分/现场总线

3. 选型口诀与混合

  • 高速大流量(屏、Flash、高速 ADC)→ SPI
  • 低速多传感、引脚紧 → I2C
  • 多数节点:I2C 传感器 + SPI 存储/显示
场景 倾向 理由
气象站多传感器+小 OLED I2C 为主 省脚、速率够
高采样振动+本地大容量存储 SPI 为主 吞吐与接口匹配
双接口 IMU/气压计 跟现有总线走 少引入新 CS

I3C 试图兼得两线与更高速率、带内中断;MCU/传感器生态仍在普及,多数入门 IoT 仍以 I2C/SPI 为主[6]。

4. 局限、挑战与可改进方向

1. 用峰值速率代替系统瓶颈

局限:传感器 ODR 很低却坚持上 SPI,浪费引脚。 改进:先看传感器输出数据率与帧长,再选总线[4]。

2. I2C 上拉与睡眠漏电

局限:电池设计忽略上拉与未配置 GPIO。 改进:睡眠切断上拉/外设电源;对照漏电流专项实践[5]。

3. 混挂速率与电压域

局限:慢设备拖死整条 I2C;3.3 V/1.8 V 混接无电平转换。 改进:按速率分总线;显式电平转换与上电顺序[1]。

4. 过早押注 I3C

局限:控制器与调试工具不成熟导致进度风险。 改进:新设计评估 I3C;量产路径保留 I2C 兼容或双足迹[6]。

总结

选型看速率、数引脚、算功耗与布线;混合总线是常态。拿不准时 I2C 起步,瓶颈再引入 SPI。

参考文献

[1] NXP, UM10204 I2C-bus specification. [2] Motorola / NXP 等, SPI Block Guide 及后续实现说明. [3] Texas Instruments, I2C 上拉电阻计算 SLVA689. [4] F. Leens, An introduction to I2C and SPI protocols, IEEE SPM, 2009. [5] 低功耗 IoT 总线与 GPIO 睡眠配置应用笔记(Nordic/ST/TI). [6] MIPI Alliance, I3C Specification. [7] 各传感器双接口数据手册(BME280、LSM6 等). [8] PCB 高速 SPI 布线与信号完整性基础文献. [9] RS-485/CAN 作为长距离替代的选型综述. [10] USB–SPI/I2C 桥在调试中的使用说明. [11] STM32/ESP32 外设引脚复用与总线分配应用笔记. [12] 显示屏与 NOR Flash SPI 时序应用笔记.