一、SPI介绍
1、SPI通信设备之间的常用连接方式
2、 引脚信息
SS*:从设备选择信号线,又叫片选信号线(NSS,CS),低电平有效,由主设备产生;
SCK:时钟信号线,由主设备产生;
MOSI:主设备输出/从设备输入引脚。主机的数据从这条信号线 输出,从机由这条信号线读入主机发送的数据,即这条线上数据的方向为主机到从机。
MISO:主设备输入/从设备输出引脚。主机从这条信线读入数据,从机的数据由这条信号线输出到 主机,即在这条线上数据的方向为从机到主机。
3条总线SCK、MOSI、MISO多个SPI设备共用,片选线SS每个设备一条。
3、协议层
与 I2C 的类似,SPI 协议定义了通讯的起始和停止信号、数据有效性、时钟同步等环节。
4、起始和停止信号
NSS 信号线由高变低,是 SPI 通讯的起始信号,NSS 信号由低变高,是 SPI 通讯的停止信号
5、数据有效性
MOSI 及 MISO 数据线在 SCK 的每个时钟周期传输一位数据,且数据输入输出是同时进行的。
(其中一种模式)MOSI 及 MISO 的数据在 SCK 的上升沿期间变化输出,在 SCK 的下降沿时被采样。即在 SCK 的下降沿时刻,MOSI 及 MISO 的数据有效,高电平时表示数据“1”,为低电平时表示数据“0”。在其它时刻,数据无效,MOSI 及 MISO 为下一次表示数据做准备。
6、SPI工作模式
SPI一共有四种通讯模式,主要的区别是“时钟极性CPOL”和“时钟相位CPHA”。
CPOL,详称 Clock Polarity,就是时钟极性,当主从机没有数据传输的时候 SCL 线的电平状态(即空闲状态)。假如空闲状态是高电平,CPOL = 1;若空闲状态时低电平,那么 CPOL = 0。
CPHA,详称 Clock Phase,就是时钟相位。CPHA = 0 是表示数据的采样是从第 1 个边沿信号上即奇数边沿,CPHA = 1 是表示数据采样是从第 2 个边沿即偶数边沿。
7、SPI的传输方式
全双工通信:在任何时刻,主机与从机之间都可以同时进行数据的发送和
接收。
单工通信:(只有一条数据线)在同一时刻,只有一个传输的方向,发送
或者是接收。
半双工通信:在同一时刻,只能为一个方向传输数据。