📊 Protocol View SPI Protocol

基于WaveDrom + Canvas的SPI时序图生成工具

SPI (Serial Peripheral Interface)

SPI是由Motorola公司开发的全双工同步串行通信接口,使用四条线(MOSI、MISO、SCK、CS)进行高速数据传输,常用于MCU与外设(Flash、SD卡、传感器等)之间的通信。

📌 SPI 关键特性

  • 四线通信:MOSI(主出从入)、MISO(主入从出)、SCK(时钟)、CS/SS(片选)
  • 全双工:可同时发送和接收数据
  • 高速传输:通常可达几十MHz,远超I2C
  • 主从模式:一主多从,通过不同CS选择从设备
  • 模式配置:支持4种模式(CPOL + CPHA组合)
  • 无应答机制:不像I2C需要ACK,传输更简单

🔄 SPI 时序波形 WaveDrom驱动

🔧 WaveDrom JSON编辑器

📖 SPI 传输时序说明

1
片选拉低 (CS):主机将CS拉低,选中目标从设备
2
时钟开始 (SCK):主机产生时钟信号,控制数据传输节奏
3
全双工传输:每个时钟周期,MOSI和MISO同时传输数据位
4
数据移位:通常MSB先传输,8位后完成一个字节
5
片选拉高 (CS):传输完成后,CS拉高,释放从设备

⚙️ SPI 四种工作模式

模式 CPOL CPHA 空闲时钟 采样边沿 常见应用
模式0 0 0 低电平 上升沿采样 SD卡、大多数传感器
模式1 0 1 低电平 下降沿采样 部分EEPROM
模式2 1 0 高电平 下降沿采样 部分LCD显示器
模式3 1 1 高电平 上升沿采样 MMC卡、某些ADC
说明:
  • CPOL (Clock Polarity): 时钟极性,决定空闲时钟电平
  • CPHA (Clock Phase): 时钟相位,决定数据采样时刻
  • 主从设备必须使用相同的SPI模式才能正确通信

⚡ SPI vs I2C 对比

🚀 速度

SPI: 几十MHz
I2C: 最高3.4MHz

🔌 线数

SPI: 4+线(每个从机需独立CS)
I2C: 2线

📡 通信方式

SPI: 全双工
I2C: 半双工

🎯 寻址

SPI: 硬件CS选择
I2C: 地址寻址