SPI总线协议

SPI总线协议

SPI总线是一种串行全双工同步的通讯协议,由四条信号线控制:MISO(主输入从输出)、MOSI(主输出从输入)、SCLK(时钟信号)、CS(片选信号线)。可以挂载多设备、主机是使用总线权利者、从机只可以听取从机、被主机管理;当主设备需要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平、根据从机而定)表示选中从设备表示;(一般来说CS是高电平CS上面有一杠就是0)

极性和相位

SPI总线有四种不同的工作方式,取决于极性CPOL跟相位CPHA

CPOL为SCLK空闲时的状态

CPOL=0;空闲时为低电平

CPOL=1;空闲时为高电平

CPHA表示采样时刻

CPHA=0;每个周期的第一个时钟沿采样

CPHA=1;每个周期的第二个时钟沿采样

所以有四种情况

补充:

时钟极性(CPOL)定义了SCLK在空闲状态时的电平。如果CPOL为0,表示SCLK在空闲状态下为低电平;如果CPOL为1,表示SCLK在空闲状态下为高电平。

时钟相位(CPHA)定义了数据采样和传输的时机。如果CPHA为0,表示数据在SCLK的上升沿进行采样,数据在SCLK的下降沿进行传输;如果CPHA为1,表示数据在SCLK的下降沿进行采样,数据在SCLK的上升沿进行传输。

至于四种模式的选择都是要根d据从机芯片手册的,要主机配置成一样的

通信步骤流程

先发高位后发低位;一定不需要应答,不用等应答,也不会应答;跟IIC不同,IIC有应答发完不用应答就可以立马发下一个;没有起始信号也没有停止信号没有应答 只有数据发送 发完继续发

数据发送:当第一个时钟线上升沿或者下降沿时,发送器发送数据

数据接收:当第一个时钟线上升沿或者下降沿时,发送器接收数据

也就是只有有时钟沿,不在发就是在读,只不过第一个沿在发,下一个沿一定在读

换言之就是一个时钟周期可以进行收发一位bit数据,那么8个时钟周期就是一个字节byte了

注意:一个时钟周期就是上升沿,下降沿一次;MSB高位 LSB低位

IIC跟SPI的异同

相同点:

  • 串行,同步方式

  • 均采用TTL电平,传输的距离和应用场景类似

  • 均采用主丛方式工作

不同点:

  • IIC为半双工、SPI为全双工

  • IIC有应答机制跟起始跟停止,SPI无应答

  • IIC寻址通过启用总线后第一个数据8位中的前七位地址来寻址,SPI通过向对应从机片选使能

  • IIC的时钟极性和时钟相位固定,时序有一种,SPI的时钟极性和时钟相位不固定,时序有四种

posted @ 2025-08-15 14:52  骗人就变小狗  阅读(127)  评论(0)    收藏  举报