SPI通信
SPI(Serial Peripheral Interface,串行外设接口)
-
⭐核心思想:主设备控制时钟,同步收发数据,适用于主控和外挂芯片之间的通信
-
特性:
- 同步通信:通信双方按照同一个“时钟”进行数据传输
- 全双工通信:双方可以同时发送和接收数据
类型 能力 单工 单向 半双工 双向但不能同时 全双工 双向同时 - 一个主机可以控制多个从机
SPI 的4根线
| 线名 | 全称 | 作用 |
|---|---|---|
| SCLK | Serial Clock | 时钟 |
| MOSI | Master Out Slave In | 主发从收 |
| MISO | Master In Slave Out | 主收从发 |
| CS/SS | Chip Select | 片选 |
SCLK:由主机产生,发送给从机;MOSI:主机 → 从机MISO:从机 → 主机CS:主机发送,控制与哪个从机通信,一般低电平有效
CS = 0:表示该从机被选中,可以通信
CS = 1:表示该从机未被选中
SPI通信流程
- 1、选择设备
主机:CS ↓,即选中从设备 - 2、产生时钟
主机开始输出:SCLK - 3、发送命令
主机通过 MOSI:发送相应的命令 - 4、数据交换
同时:
MOSI → 发数据
MISO ← 收数据 - 5、结束通信
CS ↑,通信结束
SPI四种工作模式
在SPI通信中,时钟极性(CPOL) + 时钟相位(CPHA)定义了主从设备之间如何同步数据。
CPOL:总线空闲时,时钟信号(SCK)的电平是高还是低。
CPOL = 0:空闲时为低电平
CPOL = 1:空闲时为高电平
CPHA:指数据采样(读取)是在时钟的第1个边沿还是第2个边沿。
CPHA = 0:在时钟的第一个边沿采样数据(发送端则在此时输出数据)
CPHA = 1:在时钟的第二个边沿采样数据。
由此,四种模式如下:
| 模式 | CPOL | CPHA | 示意图 |
|---|---|---|---|
| Mode0 | 0 | 0 | ![]() |
| Mode1 | 0 | 1 | ![]() |
| Mode2 | 1 | 0 | ![]() |
| Mode3 | 1 | 1 | ![]() |





浙公网安备 33010602011771号