赞
踩
这是一个串行接口,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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。