你需要清楚的Quad-SPI知识

如果你刚刚掌握了这个SPI接口,那么看看Dual和Quad SPI可能会让人不知所措。

什么是Quad SPI

它是一个串行接口,其中4条数据线用于读取、写入和擦除闪存芯片。

Quad-SPI

Quad SPI,也称为QSPI,是一种可以在大多数现代微控制器中找到的外围设备。它是专门为与支持此接口的闪存芯片通话而设计的。它在涉及大量内存密集型数据的应用中尤其有用,如多媒体和片上内存不足。它也可以用于外部存储代码,并且能够通过一些特殊的机制使外部存储器的行为与内部存储器一样快。

它比传统SPI更快,因为四路SPI使用4条数据线(I0、I1、I2和I3),而传统SPI上只有2条数据线。

让我们在本文中进一步详细了解以下内容。

  • 需要四路SPI

  • Quad SPI是如何工作的

  • 什么是双倍数据速率模式

  • 什么是XIP以及Quad SPI相对于SPI和并行存储器的优势

需要四路SPI

为什么那些该死的工程师又想出了另一个协议?速度高达16Mbps的SPI难道不足以满足所有应用吗?

SPI足以用于大多数用例,如从传感器读取数据和将数据发送到致动器或输出设备,并且仍然是片上串行通信的最首选协议之一。但工程师们遇到了一个重要问题,那就是为嵌入式设备增加更多内存。

闪存有什么问题,所以需要一个特殊的接口?

闪存既便宜又耐用,这使其成为嵌入式应用程序的一个有吸引力的选择。但它的速度很慢,这将造成瓶颈并影响嵌入式应用程序的性能。尽管SPI速度很快,最高可达16MHz,但闪存设备无法通过单个数据线以这种速度发送数据,使其工作速度与片上存储器一样快。

在quad SPI之前我们使用了什么解决方案?

在quad SPI出现之前,解决方案是使用并行存储器,其中可以使用8、16或32引脚(取决于地址范围)将外部存储器设备与微控制器连接,以实现快速性能。但这种方法有两个主要缺点:

  • 这使得PCB的设计变得复杂。

  • 这也意味着所有这些引脚都固定在一个特定的芯片上,不能再用于其他任何东西。

由于所有这些问题,工程师们需要想出一个合适的解决方案来加快闪存的速度,他们想出的解决方案是修改SPI协议,再使用2条数据线,并使所有4条数据线双向,他们将其命名为Quad SPI。

Quad SPI是如何工作的?

与使用独立数据线进行输入和输出(MISO和MOSI)的普通SPI不同,Quad SPI接口动态配置数据线,以便在我们需要向闪存发送一些信息时,它们可以作为输出,而在我们需要读取一些内存内容时,它们也可以作为输入。

它使用4条数据线,即I0、I1、I2和I3,如图所示:

该图显示了Quad SPI交换机的典型阶段。首先,通过IO线路发送指令。接着是地址,然后是Alt字段,可以按照闪存制造商希望的方式实现。然后,在上图中的2个时钟周期的短暂时间内,传输暂停,以允许更改I/O线的方向。然后将数据从闪存设备发送到微控制器。

正如您所看到的,每个时钟周期传输4个比特。您可以看到的比特顺序是,IO0在第一个时钟周期中发送比特0,IO1在第二个时钟周期发送比特1,依此类推,比特4、5、6和7在第二时钟周期中发出。因此,在仅仅2个时钟周期内,整个字节都被传输!

什么是双倍数据速率模式?

传统上,数据线上的值在时钟的上升沿或下降沿改变。这也被称为单数据速率模式。如下图:

正如上图所示,这里发送器在每个时钟周期的下降沿改变数据线上的电压。换句话说,它在每个时钟周期发送一个比特。

在双倍数据速率模式中,数据线上的电压在上升沿和下降沿都发生变化,这允许设备在每个时钟周期发送2位,从而使传输速度加倍。

正如你在上面的图片中所看到的,每个时钟周期发送2位数据(顶部的信号是时钟信号),这就是双倍数据速率模式的工作方式。这种模式需要在通信信道的两侧都得到支持,即微控制器和闪存芯片都需要具有内置支持来实现这种操作模式。

什么是XIP?

XIP代表eXecute In Place,这是一种允许微控制器直接从外部闪存执行代码而无需首先复制代码的功能。这允许更快、更高效地执行代码。

当代码大小变得太大而无法存储在片上存储器中时,我们通常会选择外部存储器,但外部存储器的问题过去是访问速度非常慢。但是,使用Quad-SPI模式和预取机制,外部闪存设备的数据检索速度可以与片上存储器相媲美,因此不仅可以用于存储一些数据库和多媒体,还可以用于执行代码。

如上图所示,这通常是通过内存将闪存地址映射到处理器的内存空间来完成的。这会产生一种错觉,从处理器的角度来看,外部闪存设备上的内存只是片上内存的另一个位置!

使用Quad SPI的优点

  • 与并行存储器相比,引脚数更低,这意味着有更多的GPIO用于其他用途,更容易设计PCB,这是引脚数量减少的直接结果,这进一步降低了开发的总体成本
  • 与并行存储器选项相比,可以实现更紧凑的设计
  • 多个设备可以链接到单个Quad SPI接口,并且相同的数据线可以连接到多个设备
  • 为了选择特定的芯片,可以使用芯片选择引脚。这是一个优势,因为如果我们使用并行存储器解决方案,我们需要为与之接口的每个芯片提供一组单独的数据线
  • 与SPI相比,可以实现大约4倍的吞吐量
  • 支持通过XIP就地执行代码,这有助于提高复杂系统的代码内存和效率

相关问题

什么是双SPI?

Dual SPI是quad SPI之前的SPI的另一种变体,顾名思义,quad SPI使用2条数据线传输数据(而不是quad SPI中的4条)。

通常,支持四SPI的闪存芯片也支持双SPI。这基本上是引脚数量和数据传输速度之间的权衡。

SPI和QSPI引脚兼容吗?如今,大多数闪存芯片都有引脚布局,用户可以决定将其用作普通SPI或Quad SPI

这是因为几个较旧的应用程序仍然停留在SPI接口上,并且移动到quad SPI的实现仍然在它们的Todo列表中!此外,另一个原因是一些较旧且不太复杂的微控制器仍然没有四SPI接口,因此通过提供这两种选项,闪存芯片制造商可以支持更广泛的微控制器。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注