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 | 高电平 | 上升沿 | 偶数边沿 |