01. SPI-QSPI协议专题(1) - 基础协议特征介绍

前言

  • SPI/QSPI协议接口是显示类、存储类以及一些传感器设备的数据通信接口。

  • 本技术专题详细讲解GR55xx系列芯片SPI/QSPI协议、芯片模块的设计特点、软件接口的用法以及如何构建高效率的应用接口,帮助用户快速地理解和发挥SPI/QSPI的高吞吐性能。

  • 系列文章一般情况适用于GR551x、GR5525、GR5526;如果仅适用于特定芯片,会进行标注。

1. SPI协议

SPI是一种同步串行接口技术,是高速、全双工、同步通信总线,在芯片中只占用四根管脚来进行控制及数据传输,广泛用于EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器。

1.1 引脚信号

SPI协议定义了4根功能信号引脚:

  • SCK(Serial Clock):SCK是串行时钟线,作用是Master向Slave传输时钟信号。

  • MOSI(Master Out Slave in):在SPI Master上也被称为Tx-channel,作用是SPI主机给SPI从机发送数据。

  • CS/SS(Chip Select/Slave Select):作用是SPI Master选择与哪一个SPI Slave通信,低电平表示从机被选中(低电平有效)。

  • MISO(Master In Slave Out):在SPI Master上也被称为Rx-channel,作用是SPI主机接收SPI从机传输过来的数据。 在这里插入图片描述

1.2 角色

SPI协议中,存在Master和Slave两类角色,通信采用主从控制方式进行,传输由Master负责发起,Slave负责应答。主从通信的典型通信拓扑如下所示: 在这里插入图片描述

  • SPI协议规定Slave设备的clock由Master通过SCK管脚提供给Slave,Slave本身不能产生或控制clock,没有clock则Slave不能正常工作。

  • SPI总线在传输数据的同时也传输了时钟信号,所以SPI协议是一种同步(Synchronous)传输协议。Master会根据将要交换的数据产生相应的时钟脉冲,组成时钟信号,时钟信号通过时钟极性(CPOL)和时钟相位(CPHA)控制两个SPI设备何时交换数据以及何时对接收数据进行采样,保证数据在两个设备之间是同步传输的。

  • SPI总线协议是一种支持全双工的串行通信协议,数据传输时高位在前,低位在后。 在这里插入图片描述

1.3 时钟频率

SPI协议是一种由时钟信号驱动的协议,当时钟频率固定时,其工作效率也被固定。一般情况下,SPI Clock由系统的主频时钟或者外设时钟分频而来。Master/Slave可能获取的最大工作频率并不相同。

下表列出了GR55xx系列芯片SPI/QSPI时钟频率: 在这里插入图片描述

1.4 时钟模式

SPI协议定义了4种时钟模式,这4种模式分别由时钟极性(CPOL,Clock Polarity)和时钟相位(CPHA,Clock Phase)组合而成。

  • CPOL参数规定了SCK时钟信号空闲状态的电平。

  • CPHA规定了数据是在SCK时钟的上升沿被采样还是下降沿被采样(第一个或第二个突变边沿采样)。

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

1.5 时序相位

SPI协议完整的时序构成为:指令、地址、数据。在一个功能化的时序中,可以只包含其中的某些部分(地址不能独立存在)。

  • 典型的读操作时序 在这里插入图片描述

  • 典型的写操作时序 在这里插入图片描述

1.6 SPI协议衍生时序

在SPI协议的基础上,进行数据I/O或其他功能线的扩展,衍生出众多的SPI族时序。 在这里插入图片描述

2.QSPI协议

2.1 概述

QSPI(QuadSPI)时序协议以及DSPI(Dual SPI)基于SPI进行了扩展,但CSn、Clock功能以及时钟模式、时钟频率等与SPI类似,依然是同步、串行协议,只是其工作模式发生了变化。在DSPI/QSPI模式下,数据线不再是全双工模式。

2.2 引脚信号

在QSPI协议中,数据线由SPI的MOSI、MISO扩展为IO0、IO1、IO2、IO3。

典型的电路接线图: 在这里插入图片描述 常见的Flash设备同时支持SPI、Dual SPI和Quad SPI工作模式。在不同模式下,IO具备不同能力。 在这里插入图片描述

2.3 时序相位

在这里插入图片描述

标准的QSPI时序由如下5个相位部分构成:

  • 指令:进行控制行为的定义及识别

  • 地址:拟操作的目标地址

  • Mode Bits:模式位,一般只存在NOR Flash设备中,用于标注是否支持SIOO模式

  • Dummy Cycles:等于Wait Cycles(等待周期),给予从设备的数据输出等待时间

  • DATA:数据

2.4 指令地址模式

在QSPI时序中,指令地址存在如下几种发送方式: (说明:以下时序截图参考源自市面QSPI接口Flash (PUYA)/PSRAM设备的Datasheet。)

  • 指令单线、地址单线发送模式 在这里插入图片描述

  • 指令单线、地址多线发送模式 在这里插入图片描述

  • 指令多线、地址多线发送模式 在这里插入图片描述

当地址通过多线发送时,后续相位也应使用多线模式进行发送。

2.5 QPI模式

在QSPI模式下,当所有有效相位均通过Quad模式发送时,将其称为QPI模式。QPI模式多见QSPI PSRAM设备。 在这里插入图片描述

2.6 SIOO模式

SIOO模式表示Send Instruction Only Once模式。

常见于NOR Flash的读命令,需要Mode Bits相位支持。声明此模式后,只需在第一次访问时,在时序中包含命令相位部分,在后续的时序中,不用再发送,直到Mode Bits状态发生变化。 在这里插入图片描述

2.7 效率计算

DATA Phase以外的Phase都算作Overhead。

每次访问效率 = DATA Clock / Total Clock。