1、SPI 简介
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。
主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
2、SPI 控制方式
采用主-从模式(Master-Slave) 的控制方式。
SPI分为主、从两种模式,一个SPI通讯系统需要包含一个(且只能是一个)主设备,一个或多个从设备。
主设备(Master)提供时钟,从设备(Slave)接收时钟,SPI接口的读写操作,都是由主设备发起。当存在多个从设备时,通过各自的片选信号进行管理。
3、SPI 信号线
信号线 | 功能 |
---|---|
MISO | 主设备数据输入,从设备数据输出。 |
MOSI | 主设备数据输出,从设备数据输入。 |
SCLK | 时钟信号,由主设备产生。 |
CS | 从设备使能信号,由主设备输出控制。 |
4、SPI 连接方式
(1)SPI 一主一从
(2)SPI 一主多从
5、SPI 传输方式
采用同步方式(Synchronous)传输数据。
主设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse), 时钟脉冲组成了时钟信号(Clock Signal) , 时钟信号通过时钟极性 (CPOL) 和 时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的。
(1)时钟极性----CPOL
时钟极性控制在没有数据传输时,时钟空闲状态时的高低电平。
- CPOL = 0:SCK引脚在空闲状态保持低电平
- CPOL = 1:SCK引脚在空闲状态保持高电平
(2)时钟相位----CPHA
时钟相位控制在第几个时钟边沿进行数据位采样。
- CPHA = 0:SCK时钟的第一边沿进行数据位采样
- CPHA = 1:SCK时钟的第二边沿进行数据位采样
具体SPI模式如下表:
6、数据时钟时序图