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。

  • 12
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值