SPI通信

2026.10.12 SPI通信协议复习


part1:SPI定义和理解

SPI采取的同步全双工 的模式,并且仅支持一主多从 的模式,通信线主要有时钟线SCK (部分地方称为SCLK),MOSI (主机输出从机输入),MISO (主机输入从机输出),SS(片选,选择从机,低电平有效),通过其表意就可分析出各线在通信中的作用,由于一主多从的模式,实际应用开发中主机上应有多条SS,但单个从机通信时,其它从机应保持高阻态,同时输出端口应配置为推挽输出,输入端口应配置为上拉/浮空输入

part2:SPI存在的意义以及与I2C的对比

I2C是一个很强大的通信协议,它最大限度地通过软件模拟的方式节省了硬件资源,并且支持多主多从,多主机仲裁,主从应答的模式,能实现更复杂情景下的应用,但存在一个缺点:通信速率上限受到很大限制,由于I2C的弱上拉开漏模式,使得通信线上升沿相对于下降沿来说是慢很多的,这就导致了I2C的通信速率不会很快,常见的有100khz,400khz,3.4Mhz,但通常采用的I2C仍然是khz级别的,而SPI的出现恰好可以解决这个问题,由于SPI有两根数据线,可以保证上升沿和下降沿都很迅速,通信速率会大大提高,常见的SPI都是几十Mhz级别的,所以在一些需要高速传输的情景SPI是非常常用的,尽管它需要更多的硬件资源

part3:SPI工作原理和4种工作模式

1.工作原理

SPI的工作原理我觉得可以用"交换"这个词来形容,在主机和从机内部的数据移位寄存器中均存储着8bit数据,当SS=0选中从机后,根据SCK的上升边沿来不断将主机从机高位bit同时移出当前寄存器,并移入目标寄存器,边沿的指示不同跟4种工作模式有关,当8bit数据全部"交换"后,完成一字节的收发,然后SS=1(如果不想继续通信),一般来说主机收数据,数据一般给0x00或者0xFF来去跟从机交换

2. 4种工作模式

由 CPOL (Clock Polarity)和 CPHA(Clock Phase)组合成 4 种模式:

模式 CPOL CPHA 空闲电平 采样边沿 移出边沿
Mode 0 0 0 低 上升沿 下降沿
Mode 1 0 1 低 下降沿 上升沿
Mode 2 1 0 高 下降沿 上升沿
Mode 3 1 1 高 上升沿 下降沿
  • CPOL=0:空闲低;CPOL=1:空闲高
  • CPHA=0:第一个边沿采样;CPHA=1:第二个边沿采样
一般来说模式0是最常用的,根据工作模式的不同可以知道SPI的时序
主从双方必须配置相同的模式,否则数据错位。

part4:未解决问题

关于多从机连接方式:菊花链(Daisy Chain)

相关推荐
beluge2 小时前
I2C通信
嵌入式
qq_456168281 天前
通信协议学习笔记汇总
嵌入式·开源协议
番茄灭世神1 天前
PN学堂GD32教程第12篇——SPI与Nor Flash
c语言·stm32·单片机·嵌入式·gd32·总线协议
潘潘的嵌入式日记2 天前
大彩串口屏型号怎么看?DC80480M070 命名拆解与选型
嵌入式·硬件·串口屏·选型·大彩·型号命名
蓝天居士2 天前
PY32F系列MCU在OTA时App区概率性跑不起来的根因分析(5)
mcu·嵌入式
Zwawa2 天前
传感器模块都在交出什么:从模拟电压到数字协议
c语言·单片机·嵌入式
会周易的程序员2 天前
STVM OSAL 层架构设计文档
c++·物联网·嵌入式·虚拟机·iot·软plc·iec61131
蓝天居士2 天前
PY32F系列MCU在OTA时App区概率性跑不起来的根因分析(6)
mcu·嵌入式
Jason_zhao_MR2 天前
电力数据采集核心板选型指南
linux·嵌入式硬件·fpga开发·嵌入式