简述SPI通信协议-01

What is SPI?

SPI:Serial Peripheral interface 串行外围设备接口。

SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线。

SPI 接口一般使用 4 条线通信

MISO :主设备数据输入,从设备数据输出。

MOSI :主设备数据输出,从设备数据输入。

SCLK :时钟信号,由主设备产生。

CS     :从设备片选信号,由主设备控制。

CPOL极性

SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:

CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;

CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;

CPHA相位

CPHA=0,表示第一个边沿:

对于CPOL=0,idle时候的是低电平,第一个边沿就是从低变到高,所以是上升沿;

对于CPOL=1,idle时候的是高电平,第一个边沿就是从高变到低,所以是下降沿;

CPHA=1,表示第二个边沿:

对于CPOL=0,idle时候的是低电平,第二个边沿就是从高变到低,所以是下降沿;

对于CPOL=1,idle时候的是高电平,第一个边沿就是从低变到高,所以是上升沿;

上升沿发送、下降沿接收、高位先发送;

数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取;

  • 硬件上为4根线;

  • 主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输;

  • 串行移位寄存器通过MOSI信号线将字节传送给从机,同时从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换;

  • 外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

STM32的SPI接口-SPI接口的框图

STM32的SPI接口通过4个引脚与外部器件相连,与标准的SPI协议是一致的:

MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据;

MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据;

SCK:串口时钟,作为主设备的输入,从设备的输入;

NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。

猜你喜欢

转载自blog.csdn.net/qq_39478139/article/details/107480301
今日推荐