当前位置:   article > 正文

Quad-SPI_quad spi

quad spi

这是一个串行接口,4条数据线,双向的,用来读写和擦除数据。

Quad-SPI,简称QSPI,是一个现代大多微控制器都会包含的一个外设。

其设计的主要目的就是来和支持这接口的flash进行通信。

解决一些应用的存储空间不足的问题,比如用到了很多多媒体数据。

同时作为外部存储,访问速度通过一些特殊机制,能够和内部存储相当。

传统SPI只有两根数据线:MOSI and MISO ; 而QSPI有四根: IO 0, IO 1, IO 2, IO 3。

使用SPI操作flash的一个问题是速度不够快,和片上存储器相比,会是系统运行的瓶颈,即使能达到16MHz频率。

在QSPI大规模使用前,解决办法是使用并行接口存储器。

但这样增加了PCB的复杂度,占用更多的IO端子,而且并行接口的端子是独占的,无法复用。

在这样的情况下,QSPI诞生了,多加两根线,使用4根双向数据线来传输数据。

而且可以多个QSPI芯片复用4根数据线,通过片选信号来选择不同的flash。

普通SPI,是一根线输入,一根线输出,而QSPI可以实时配置数据线的输入输出。

拿上图举例,这个是某款ST芯片的QSPI波形图。

如图所示,一个clock周期传输4bit数据,IO 0传输bit0,IO 1传输bit 1,以此类推,然后下一个周期,IO 0传输bit 4,IO 1传输bit 5,IO 2传输bit 6,IO 3传输bit 7。

两个周期传输一个字节。

先发送读取数据指令,然后发送地址,再加上一个Alt字节,这个字节是制造商自定义功能。

然后是两个周期的dummy,用来准备切换数据线的传输方向。

方向切换后,从flash读取数据。

还有个双倍速率模式。

一般数据传输时,是在clock波形的上升或下降沿触发一个新的bit,而双倍模式就是上升和下降沿都触发,传输速率增加了一倍。

注意双倍速率功能需要微处理器和flash芯片都支持才行。

QSPI还支持个关键特性,XIP:eXecute In Place。

XIP表示eXecute In Place, 这个功能是可以让微控制器直接执行存储在外部flash上的代码,不用先拷贝到内存。

这样更快更有效地执行代码。

QSPI速度快,再加上使用prefetch mechanism,速度上会和片上存储不相上下。

具体方式参见上图,使用地址映射的方法,将外部flash空间映射到微处理器的存储空间,这样在微处理器看来,是直接访问的相应地址,和片上存储器一样。

在QSPI出来之前,还有个Dual SPI,就是用两根数据线来传输数据。

一般QSPI的flash也支持Dual SPI,可以根据传输速率要求和端子数目要求来选择。

现在一般的flash芯片,QSPI和普通SPI是都支持的。因为一些老的应用还是用的普通SPI,或者使用主控芯片太老,不支持QSPI。

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

闽ICP备14008679号