1.SPI介绍
SPI是一种高速的全双工、同步、串行的通信总线。通信总线上允许挂载一个主设备和一个或多个从设备。
SPI通信标准为4根线分别为:
MOSI(Master Out/Slave In)主数据输出,从数据输入,用于主机向从机发送数据。
MISO(Master In/Slave Out)主数据输入,从数据输出,用于从机向主机发送数据。
SCLK(Serial Clock) 时钟信号,由主设备产生,决定通信的速率。
CS(Chip Select):从设备片选信号,由主设备产生,低电平时选中从设备。
如下图显示主机与从机之间SPI连接
如下图常规多从机SPI连接
这种模式下主机通过拉低CS信号线选择与其通信的从机
如下图SPI菊花链连接
使用菊花链连接方式时,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。
所以传输数据的时钟周期与菊花链中的从机位置成比例,如上图为使第三个从机获得数据,需要24个时钟脉冲,而常规SPI模式下只需8个脉冲。
2.SPI通信模式
SPI通信模式是通过配置CPOL(时钟极性)和CPHA(时钟相位)来选择的。有4种不同的模式。
不同从机可能在出厂时就配置为某一种模式,这是不能改变的。
CPHA(Clock Phase) 时钟相位:实质是指数据的采集时刻。
CPHA=0表示采样为奇数边沿采样。
CPHA=1表示采样为偶数边沿采样。
CPOL(Clock Polarity) 时钟极性:当主机没有数据的时候即空闲状态,SCL线的电平状态。
CPOL=0表示空闲状态时SCL低电平。
CPOL=1表示空闲状态时SCL高电平。
模式 0 :CPHA = 0 CPOL = 0:空闲时,SCL处于低电平,数据采样在上升沿,数据发送在下降沿
模式 1 :CPHA = 1 CPOL = 0:空闲时,SCL处于低电平,数据采样在下降沿,数据发送在上升沿
模式 2 :CPHA =0 CPOL =1:空闲时,SCL处于高电平,数据采样在下降沿,数据发送在上升沿
模式 3 :CPHA = 1 CPOL = 1:空闲时,SCL处于高电平,数据采样在上升沿,数据发送在下降沿