当前位置:   article > 正文

【QSPI】 什么是QSPI SPI和QSPI异同

qspi

什么是SPI

SPI 协议是摩托罗拉公司开发的协议,SPI 的英文全称为 serial Perripheral Interface,翻译过来 就是“串行外围设备接口”,属于一种高速全双工的通信,广泛的用于 MCU 与 ADC、flash 等外 部设备(外围设备)的通信。

实际上,SPI的协议分了很多种,包括:Standard SPI(标准SPI)Dual SPI(双线 SPI)Quad SPI(四线 SPI)

只不过我们平时最常用的是Standard SPI标准SPI

关于Standard SPI的介绍,可以查看
《SPI原理超详细讲解—值得一看》

这篇博文,具体的就不再阐述了

通常我们说的SPI就是Standard SPI,有4根信号线,分别为CLK、CS、MOSI和MISO。数据线工作在全双工

在这里插入图片描述

  • CS(SS):为片选线,用于传输片选信号,选择通信的从机,主机会与被选中 的从机进行通信,每一个从机都有一个独立的片选线
  • CLK (SCK):同步时钟信号线,用于传输同步时钟信号,所有从机公用一条线
  • MOSI:Master out slave in,主机发送数据,从机接收数据。
  • ·MISO:Master in slave out,主机接收数据,从机发送数据。

为什么要双线SPI和四线DPI

通过对SPI的基本了解,我们知道SPI是全双工的,即同一时刻下可以发送数据,也可以接收数据,但是对于一些SPI设备而言,其并不需要全双工,反而需要更快的速度,比方说Flash存储芯片,大部分情况下都是单独存储数据,然后读取数据,所以速度就成了一个很重要的指标,

为此推出了Dual SPI(双线 SPI),就是 MOSI、MISO 同时朝一个方向发送数据,单次可以同时传输两 bit这样一个时钟周期内就能传输2个bit数据,加倍了数据传输的速度,

Quad SPI(四线 SPI) ,时为四线半双工,增加了两个数据引脚线IO2、IO3,此时IO0、IO1、IO2、IO3 引脚被用于向同一个方向传输数据,单次 可传输 4bit

SPI FLASH

用我们常用的W25Qxxx flash芯片来做一个举例

芯片的引脚说明图:

在这里插入图片描述

在这里插入图片描述

每个引脚的详细描述如下:

  • Chip Select(/CS): 片选信号Chip Select(/CS)的作用是使能或者不使能设备的操作,当CS为高时,表示设备未被选中,串行数据输出线(DO或IO0,IO1,IO2,IO3)均处于高阻态,当CS为低时,表示设备被选中,主机可以给Flash发送数据或从Flash接收数据。

  • DO(MISO) Data OutStandard SPI(标准SPI)下,从机发送数据到主机,
    Dual SPI(双线 SPI)中作为IO1输出

  • Write Project(/WP):WP信号低电平有效,低电平时SPI不接收数据,高电平时SPI可以接收数据。Quad SPI(四线 SPI) 中作为IO2输出

  • GND: SPI的接地引脚

  • DI(MOSI) Data In: Standard SPI(标准SPI)下,从机接收主机发送过来的数据,
    Dual SPI(双线 SPI)中作为IO0输出

  • CLK: 同步时钟信号线,用于传输同步时钟信号

  • HOLD(/HOLD) RESET : HOLD信号的作用是暂停Flash的操作。当HOLD信号为低,并且CS也为低时,串行输出信号DO将处于高阻态,串行输入信号DI与串行时钟信号SCLK将被Flash忽略。当HOLD拉高以后,QSPI Flash的读写操作能继续进行。

  • VCC: FLASH的电源

注意下面的两个Notes:

  1. IO0和IO1用于标准和双SPI指令
  2. IO0-和IO3用于四线SPI指令,/WP&/HOLD(or/RESET)功能仅可用于标准/双SPI。

总结下就是:

  • Standard SPI(标准 SPI)
    标准 SPI,常用的也是标准 SPI。 flash 使用标准 SPI 来通信时,所用的引脚为 CLK(SCK)、/CS(NSS)、DI(MOSI)、DO (MISO)、/WP、/Hold,/表示低电平有效。 DI:flash 数据输入,向 flash 写数据。 DO:从 flash 读取数据,数据从 flash 向外输出 在标准 SPI 下,SPI 是全双工的,MOSI、MISO 分别负责不同方向的传输。
    在这里插入图片描述
  • Dual SPI(双线 SPI)
    flash 使用双线 SPI 时(双线半双工),就是 MOSI、MISO 同时朝一个方向发送数据,单 次可以同时传输两 bit。此时 MOSI 和 MISO 则被改称为 IO0 和 IO1,CS 和 CLK、WP 和 Hold 的 作用不变。
    在这里插入图片描述
  • QUAD SPI 四线 SPI
    此时为四线半双工,IO0、IO1、IO2、IO3 引脚被用于向同一个方向传输数据,单次 可传输 4bit,此时 MOSI 和 MISO 为 IO0、IO1,而 WP、HOLD 会被用作 IO2、IO3,至于 CS 和 CLK 的作用不变。‘

在这里插入图片描述

当然,在FLASH的手册中,还提到了一个QPI
在这里插入图片描述

QPI 与 QUAD SPI 基本差不多,但是在使用数据线传输指令和数据时,各自的用法略有差异

请添加图片描述
请添加图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/124795?site
推荐阅读
相关标签
  

闽ICP备14008679号