下面就让我们来逐一理解一下他们之间的差异,以及如何利用它们。下面的链接是W25Q128JV DTR的芯片手册,请特殊把稳其与W25Q128JV的差异。
二、术语
无论是哪种SPI,都是主从式接口,同一条总线上只能有一个主机,可以有一个或者多个从机;传输都是由主机发起的。

作甚总线空闲?
一样平常情形下,当主机的CS/SS引脚输出为高电平时,代表总线空闲;
SPI(serial peripheral interface)串行外设接口
也叫标准SPI接口,有四根线,分别为CS/SS(片选)、MISO(主机输入从机输出)、MOSI(主机输出从机输入)、CLK(串行时钟);并且四根线都是单向的;主机通过MOSI发送数据给设备;设备通过MISO发送数据给主机。
标准SPI支持全双工通信、半双工通信以及单工通信。
全工通信是指发送和吸收同时进行;半双工是指某个时候只能发送或者吸收;单工指只能一个方向通信,要么主机只能发送,要么只能吸收。
一样平常情形下硬件接线拓扑如下
上图是一台主机一台从机的硬件接线情形
上图是一台主机三台从机的接线情形,通过IO1/2/3分别选中对应从设备,某个时候只能选中的从设备可以通信。
时钟极性和时钟相位
根据CLK与MISO、MOSI之间的位置关系,标准SPI有4种模式
CPOL(Clock Polarity)时钟极性
其直接影响SPI总线空闲时的时钟旗子暗记是高电平还是低电平;CPOL=1 表示空闲时是高电平,CPOL=0 表示空闲时是低电平;
CPHA(Clock Phase)时钟相位
其直接决定SPI总线从哪个跳变沿开始采样数据;
CPHA=0 表示从第一个跳变沿开始采样,CPHA=1 表示从第二个跳变沿开始采样;
Dual SPI(Dual serial peripheral interface)双线串行外设接口
我们创造标准SPI通信时发送和吸收时主机和从机都只能利用自己的那根数据线进行数据传输,Dual SPI无论是吸收还是发送都是利用两根数据线进行的,以是单向数据传输速率上是标准SPI的双倍。
其余须要把稳Dual SPI一样平常情形下用于半双工通信。
Quad SPI (Quad serial peripheral interface)四线SPI,即数据线最多可以利用4根。
其余须要把稳Qual SPI一样平常情形下用于半双工通信。
Quad SPI外设可以利用任意一种SPI模式,详细要看从设备的哀求。
QPI(Quad Peripheral Interface)四线外设接口
这个接口哀求通信的每个阶段都须要利用4线进行通信。
三、实战
基于上面的先容,相信大家对这几个名词已经有了一定的理解
OK,下面我们根据W25Q128JV DTR的芯片手册来详细说说这四种SPI的利用差异
把稳不是所有的从设备都支持QPI数据格式的,但是一样平常情形下MCU真个Quad SPI硬件外设支持每个阶段的自定义配置。
由于Flash操作的分外性,一样平常第一个字节都是操作码,并且一样平常都是半双工通信或者单工通信。
下面图例中DI是指从设备的输入段,DO是指从设备的输出端
第一种,标准SPI
只发送命令字的情形
发送多个字节的情形
发送一个字节然后进行吸收的情形
第二种 ,Dual SPI
Dual SPI并不哀求每一个阶段都须要是双线传输,在Flash操作中一样平常第一个字节都是单线传输的
上图中除了第一个字节是单线传输,后面的地址阶段和数据阶段都是通过双线传输,这种传输办法也叫做DIO 。
上图中只在数据阶段是双线传输,地址阶段是标准SPI传输,这种形式的传输办法叫做DOUT。
第三种,Quad SPI
上图中只在数据阶段是四线传输,指令和地址阶段是标准SPI传输,这种形式的传输也叫做QOUT。
上图中只在指令标准SPI传输,其他阶段都是四线传输,这种形式的传输也叫做QIO。
第四种 QPI
上图中所有阶段都是四线传输,这种形式的传输也叫做QPI。