1 QSPI的介绍
SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外·围设备接口。主从方式工作,一般为4根线,数据输入,数据输出,时钟,片选。其他的的就不多说了,说来话长。QSPI,Queued SP的I简写,同步队列串行接口,是Motorola公司推出的SPI接口的扩展。在SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列串行外·围接口协议(即QSPI协议)。使用该接口,用户可以一次性传输包含多达16个8位或16位数据的传输队列。一旦传输启动,直到传输结束都无需CPU干预,极大地提高了传输效率。
QSPI中的Q代表队列,是指通用性RAM中的一块缓冲区,大小为80个字节。因为有了这一块缓冲区,所以QSPI才能玩这么多SPI玩不了的花样。
80字节的RAM分成3部分:16字的发送RAM,16字的接收RAM和16字节的命令RAM。这3部分形成了具有16个QSPI传输控制组的传输队列,每个QSPI传输控制组由1个命令RAM、1个发送RAM和1个接收RAM组成。每个QSPI传输的数据长度、片选等信息可由该QSPI传输控制组的命令RAM单独决定。
由于SPl只有1个8位的发送数据寄存器,所以CPU每次最多只能准备一个字节的待发送数据。而QSPI拥有具有16个QSPI传输控制组的传输队列,所以CPU每次最多可以准备16个待传输的数据,并且可以通过命令RAM设置每个待传输数据的长度。
下图为QSPI的模块状态机:
2 QSPI的主模式
QSPI主模式的就是主机,是主动提供SCLK的一方,从模式就是从机,是被动接收SCLK的一方。在主模式下,QSPI模块生成时间、串行时钟和从属选择信号。
一个通讯周期的各个阶段 本节介绍了配置QSPI通信阶段长度的可能性:时间延迟、数据长度、占空比和数据采样。
QSPI帧从激活从选择信号SLSO开始(从空闲过渡到引导延迟阶段),以失活(从尾延迟过渡到等待或空闲阶段)结束。它是一个由五个阶段的序列:空闲延迟、领先延迟、数据阶段、跟踪延迟和一个可选的等待阶段。闲置阶段又分为两个相同长度的阶段:闲置A和闲置B。
下图显示了QSPI帧及其相位的完整和压缩视图。完整的视图显示了QSPI连接所需的所有四个信号。压缩视图表示一行中的相位,其方式适合于讨论它们的性质。
3 TC397 QSPI实例解析