什么是Octo SPI?
Octo SPI(Stateful Packe Inspection)是”Quad SPI“的8位扩展版并行通信功能。
2015年后,对需要更精细的图形、广泛的多媒体和大量数据的内容的需求越来越高。因此,微型计算机现在配备了与Quad SPI相比数据吞吐量更高的Octo SPI。
像“Quad SPI”一样使用内存映射模式,您可以像内部内存一样访问外部内存。这使得系统的总线主控器(例如DMA)即使在CPU停机的低功耗模式下也能自动访问外部内存,从而进一步提高了移动应用和可穿戴应用中外部内存的访问效率。
下图显示了ST微电子的通用32位微控制器“STM32L4+系列”*中安装的“Octo SPI”。

特点
当您使用Octo SPI接口时,微型计算机可以与外部Single SPI(传统SPI)、双SPI、Quad SPI、Dual Quad SPI和Octo SPI的内存进行通信。通过Octo SPI连接的SPI内存映射在内存空间上,因此微型计算机可以访问系统中的其他内存并进行读取和写入。
只需几个引脚即可轻松连接串行外部存储器。这允许您在应用程序中添加内存(如闪存和RAM)时,轻松将SPI内存的外部内存合并到现有项目中。
Octo SPI接口是一种帧格式配置,支持所有SPI内存,从一个数据通道到最多八条数据线。与“Quad SPI”中描述的“Quad SPI”类似,用户可以启用/禁用每个阶段,设置每个阶段的长度,并设置每个阶段使用的行数(1-8)。RWDS信号在写入时用作写入脉冲,在读取时用作读取限定。
协议
Octo SPI接口可以在两个不同的协议中运行。常规命令协议(单端时钟:3.3 V信号)和HyperBus协议(差分时钟:1.8 V信号)。每个协议支持三种操作模式:直接模式,自动状态转移模式和内存映射模式。
1. 常规命令协议
常规命令协议是OCTOSPI使用命令与外部存储设备通信的基本帧格式,每个命令最多可以包含5个阶段。支持的外部存储设备是单片SPI、双SPI、Quad SPI、双列SPI和Octo SPI的存储器(下图)。

2.HyperBus协议
HyperBus协议是与HyperRAM或Hyper闪存通信的协议。

HyperBus采用双数据速率接口,每个时钟通过DQ输入/输出(IO)信号传输两个数据字节,从而实现高吞吐量的读取/写入。帧由两个阶段组成:命令/地址阶段(以下简称CA)和数据阶段。
在CA期间,OCTOSPI_DQS行用作读/写数据选通(RWDS),指示是否需要插入额外的初始访问等待时间。如果在CA期间RWDS为Low,则只插入一个等待时间计数(以下简称tACC)。此外,如果为高,则额外插入2倍tACC。
TACC用于在数据传输之前满足初始延迟要求,表示无数据传输的时钟周期数。特定时钟频率所需的初始延迟计数取决于设备,并在HyperRAM配置寄存器中定义。
对于Hyper闪存,RWDS仅用作读数据脉冲。
动作模式
操作模式包括三种类型:“直接模式”,“自动状态转移模式”和“内存映射模式”。
“直接模式”是与普通SPI相同的模式(读/写/擦除操作)。不问HyperBus协议或常规命令协议。
它支持通过Octo SPI数据寄存器使用CPU或DMA执行的所有操作。它也可以用于设置外部存储设备。
在“自动状态转移模式”下,您可以自动轮询,以完全管理硬件中的内存状态寄存器。此功能消除了软件开销和软件轮询的需要。如果轮询结果匹配,也可以引发中断。
“内存映射模式”是一种可以访问外部内存的模式,就像分配给内存映射的内置内存一样。也可以从外部内存执行代码。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
