1.SPI简介
SPI:串行外设设备接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线。
SPI与IIC区别
功能说明 |
SPI总线 |
IIC总线 |
通信方式 |
同步 串行 全双工 |
同步 串行 半双工 |
总线接口 |
MOSI、MISO、SCL、CS |
SDA、SCL |
拓扑结构 |
一主多从/一主一从 |
多主从 |
从机选择 |
片选引脚选择 |
SDA上设备地址片选 |
通信速率 |
一般50MHz以下 |
100kHz、400kHz、3.4MHz |
数据格式 |
8位/16位 |
8位 |
传输顺序 |
MSB/LSB |
MSB |
SPI接口主要应用在存储芯片、AD转换器以及LCD中。
2.SPI结构框图
SPI相关引脚
MOSI(输出数据线),MISO(输入数据线),SCK(时钟),NSS(片选)
3.数据发送/接收
- 工作原理
主机只向从机进行写操作,可以忽略接收到的从机数据。
主机要对从机进行读操作,需要发送一个空数据来引发从机发送数据。
4.SPI工作模式
-
时钟极性(CPOL)
没有数据传输时时钟线的空闲状态电平
0:SCK在空闲状态保持低电平
1:SCK在空闲状态保持高电平
-
时钟相位(CPHA)
时钟线在第几个时钟边沿采样数据
0:SCK的第一(奇数)边沿进行数据位采样,数据在第一个时钟边沿被锁存
1:SCK的第二(偶数)边沿进行数据位采样,数据在第二个时钟边沿被锁存
SPI工作模式 |
CPOL |
CPHA |
SCL空闲状态 |
采样边沿 |
采样时刻 |
0 |
0 |
0 |
低电平 |
上升沿 |
奇数边沿 |
1 |
0 |
1 |
低电平 |
下降沿 |
偶数边沿 |
2 |
1 |
0 |
高电平 |
下降沿 |
奇数边沿 |
3 |
1 |
1 |
高电平 |
上升沿 |
偶数边沿 |