跳转到主要内容

外部存储器

本章内容旨在帮助您为嵌入式图形用户界面选择外部存储器。 在阅读本章内容之前,建议您阅读初步考虑MCU,以便了解在选择合适的外部存储器时要注意的一些重要依赖关系。

运行TouchGFX GUI应用时,有时需要使用外部存储器来存储帧缓冲、位图、字体和转换信息等。 TouchGFX GUI的运行不依赖外部存储器,但需要使用内部RAM(在MCU中)或外部RAM来存储帧缓冲,并用内部和/或外部Flash来存储数据。

下面的存储器总览展示了一些可与STM32 MCU一起使用的外部存储器。 一些不同的存储器示例同时提供了串行和并行接口。

存储器总览

不同的STM32微控制器具有不同的外部存储器接口,可以连接不同的外部存储器。

非易失性存储器

在GUI应用中,非易失性存储(Flash)主要用于存储一些或全部图形数据资源,如位图、字体、转换信息和TouchGFX应用代码。 STM32产品支持非易失性存储器,可使用并行或串行存储器和不同配置,通过不同类型的MCU接口进行连接。

非易失性存储器

根据以下要素选择非易失性存储:

  • 密度
  • 性能
  • 接口类型(并行/串行)
  • 材料清单

NOR Flash

NOR Flash是一种非易失性存储器,允许对存储器中的任何区域进行随机存取。

NOR Flash的大小通常介于128 Mbits2 Gbits之间。

例如,当分辨率为480x320、色深为16位每像素时,用户界面需要的全屏背景图像约为300 kB。 其中不包括使用的按钮、滑动条、图标和字体以及语言数量等所需的额外位图。 256 Mbits (32 MB) NOR Flash可存储最多约100张全屏图像,如果加上需要的其他图形资源,将少于这个数。

可在存储器映射模式下使用NOR Flash,在这种情况下,外部FLASH被视为读操作的内部存储器。 该模式允许系统主机(如DMA、LTDC、DMA2D、GFXMMU或SDMMC)自主访问存储器,即使在CPU停止时的低功耗模式下,是移动和可穿戴应用的理想选择。

NOR Flash存储器有不同的接口选项:

  • 并行NOR Flash(具有x8或x16接口)
  • 串行NOR Flash(串行存储器的单、双、四和八数据线,以及HyperBus闪存)

串行NOR Flash存储器

串行NOR Flash存储器被广泛用作图形应用中的存储器。

这类存储器具有诸如以下优势:

  • 高频率
  • 简化并缩小了印刷电路板(PCB)区
  • 存储器映射模式的可寻址区为最大256 MB
  • 需要的引脚数介于4和<12个之间
NOR单线、双线、四线、八线FLASH

NOR Flash存储器有不同的数据线配置。

  • 单线
  • 双线
  • 四线
  • 八线

切换至配备更多数据线的串行NOR Flash存储器可以提高性能和存储器接口带宽,但也需要更多引脚来连接STM32产品。

下面是根据数据线数量列出的不同SPI存储器总览:

串行接口总览

并行NOR Flash存储器

在性能和配置方面,并行NOR Flash存储器具有与串行闪存相同的优势。 并行NOR Flash可配置为存储器映射模式,并能像内部存储器一样进行存取。 并行和串行NOR Flash之间的差异在于引脚数和印刷电路板(PCB)的复杂度。

NOR Flash存储器需要最多47个引脚,包括最多24个地址引脚和16个数据引脚。

NAND Flash存储器

NAND Flash存储器是需要大量图形资产和更快写入与擦除操作的图形应用的理想选择。 NAND Flash存储器不能配置为存储器映射模式,因此,不建议将其用于代码执行

NAND Flash的大小介于1 Gbit512 Gbits之间。

在使用NAND Flash时,通常必须使用RAM中的缓存。 如此一来,可以将当前使用的图形资产移动到RAM,并从缓存中获取它们。

NAND Flash存储器

eMMC存储器

eMMC(嵌入式多媒体卡)由MMC协会订立,相当于一个NAND Flash加一个主集成控制器。 eMMC的一个明显优势是在封装中集成了控制器,从而提供了标准接口和闪存管理,使制造商能够将精力集中在产品开发的其他部份,进而缩短上市时间。

eMMC Flash的大小介于2 Gbits128 Gbits之间。

相比于NAND和NOR,eMMC的随机读取性能相对较低。 eMMC可能需要添加缓存来克服随机读取速度缓慢的问题。

eMMC Flash存储器需要最多10个引脚,包括8个数据引脚和2个控制引脚。

eMMC存储器

易失性存储器

外部易失性存储器主要用于存储帧缓冲(若内部MCU RAM不够用),在某些情况下,用于缓存来自非存储器映射闪存的资产。 本节主要介绍SRAM、SDRAM和PSRAM,它们通常用在运行GUI的嵌入式系统中。 但还有其他可用的变型,存储器制造商对其存储器使用不同命名模式,如“hyper RAM”、“IoT RAM”和“octal RAM”。 其中的大多数都可以找到支持它的STM32 MCU。

易失性存储器

在选择合适的外部RAM时,建议注意以下要素:

SRAM

SRAM是静态随机存取存储器,只要有供电,就能保存位数据。 一般而言,SRAM的存取速度更快,但价格高于DRAM,并且密度更小。 相比于DRAM,SRAM的存取时间通常更短,因此更适合需要更多动画、缩放和旋转等操作的GUI。 SRAM具有同步和异步模式,同步模式提供更高的带宽能力,但接口更复杂。

Note
此外,还有非易失性随机存取存储器nvSRAM,也能存储和召回数据。

SDRAM

SDRAM是一种动态随机存取存储器,它保存电容上的每一个数据位。相比于SRAM,SDRAM能用更小的物理空间存储相同数量的数据。 为了保存数据,SDRAM需要不断刷新,因此其能耗高于SRAM。

SDRAM的密度通常为16 Mbits至512 Mbits,通过8、16和32位接口提供,运行频率为100-200 MHz。

双帧缓冲策略需要约18 Mbits的RAM,因此,适用于保存两个运行24bpp 800*480分辨率的帧缓冲的SDRAM是32 Mbits SDRAM。

PSRAM

PSRAM是伪静态随机存取存储器,具有DRAM(控制逻辑)的内部结构和SRAM接口。 它的密度通常为8-256 Mbits。 相比于传统的SDRAM和SRAM,PSRAM的优势在于速度更快且功耗更低。

其他存储器

新的octal RAM和Hyper RAM存储器在单和双数据率模式下使用串行8位接口,可实现高吞吐率和良好的集成度。

外部RAM密度的选择

如果您的策略是将帧缓冲放在外部RAM中,此表是市面上提供的不同RAM密度的总览。

它还提供了以1、2、4、8、16和24位每像素的密度(除以2可得出单个帧缓冲所需密度)运行双帧缓冲设置所需RAM的总览。

在某些情况下,单帧缓冲设置已经足够,并且在某些STM32微控制器中,会有足够的内部RAM用于容纳帧缓冲。

SDRAM和OctoSPI密度

双帧缓冲设置所需RAM