@
目录前言
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换器网络控制器、LCD显示驱动器、A/D转换器和MCU等。
组成结构
SPI系统可直接与各个厂家生产的多种标准外围器件接口,它只需4条线:
- 串行时钟线(SCK):串口时钟,作为主设备的输出,从设备的输入。
- 主机输入/从机输出数据线(MISO):主设备输入/从设备输出引脚。
- 主机输出/从机输入数据线(MOSI):主设备输出/从设备输入引脚。
- 低电平有效的从机选择线(NSS):从设备选择。它的功能是用来作为片选引脚,让主设备可以单独地与特定从设备通信,避免数据线上的冲突。
优缺点
优点 | 缺点 |
---|---|
支持全双工,push-pull的驱动性能相比open-drain信号完整性更好; | 相比IIC多两根线 |
支持高速(100MHz以上) | 没有寻址机制,只能靠片选选择不同设备 |
协议支持字长不限于8bits,可根据应用特点灵活选择消息字长 | 没有从设备接受ACK,主设备对于发送成功与否不得而知 |
硬件连接简单 | 典型应用只支持单主控 |
接线方式
工作模式
CPHA=0,表示第一个边沿采样
对于CPOL=0,idle时为低电平,第一个边沿就是从低变到高,是上升沿,所以是上升沿采样。
对于CPOL=1,idle时为高电平,第一个边沿就是从高变到低,是下降沿,所以是下降沿采样。
CPHA=1,表示第二个边沿采样
对于CPOL=0,idle时为低电平,第二个边沿就是从高变到低,是下降沿,所以是下降沿采样。
对于CPOL=1,idle时为高电平,第二个边沿就是从低变到高,是上升沿,所以是上升沿采样。
SPI模式 | CPOL | CPHA | 空闲时SCK时钟 | 采样时刻 |
---|---|---|---|---|
0 | 0 | 0 | 低电平 | 第一个边沿 |
1 | 0 | 1 | 低电平 | 第二个边沿 |
2 | 1 | 0 | 高电平 | 第一个边沿 |
3 | 1 | 1 | 高电平 | 第二个边沿 |
读写时序
片选—读指令—地址—数据读出
片选—写指令—地址—数据写入