EEPROM、FRAM、eMMC、SD卡……嵌入式开发中,存储器应该如何选?

作者:Jacob Beningo

对于所有基于微控制器的嵌入式系统而言,存储器都是其中的主要元件。例如,开发人员需要足够的RAM以存储所有易失性变量、创建缓冲区以及管理各种应用堆栈。RAM对于嵌入式系统相当重要,同样,开发人员也需要一定空间用于存储应用代码、非易失性数据和配置信息。

然而,问题在于非易失性存储器技术不断扩展,选择众多,使选择适合应用的存储器颇具挑战性。

本文对各种存储器技术进行了介绍,并以ON Semiconductor、Adesto Technologies、Renesas、ISSI、Cypress Semiconductor、Advantech、GigaDevice Semiconductor和Silicon Motion等供应商推出的产品为例,帮助开发人员了解各种存储器类型的特性。此外,本文还探讨了各种类型存储器的最佳应用,以便开发人员有效使用。

EEPROM、FRAM、eMMC、SD卡……嵌入式开发中,存储器应该如何选?
Double exposure of creative human brain microcircuit with man hand writing in notepad on background. Future technology and AI concept

嵌入式系统中的EEPROM和FRAM

EEPROM往往是开发人员最先、最常考虑用于嵌入式系统的存储器件。在嵌入式应用中,这类非易失性存储器通常用于存储系统配置参数。例如,连接至CAN总线网络的设备可能会将CAN ID存储于EEPROM。

EEPROM的以下特性使其成为嵌入式系统开发人员的理想之选:

  • 小封装尺寸
  • 相对实惠的价格
  • 100kbps至1000kbps的典型比特率范围
  • 标准化电气接口
  • 通常支持I2C和SPI接口

目前,在Digi-Key网站上快速搜索EEPROM可以发现,共有9家EEPROM供应商提供的5,800多款EEPROM。例如,ON Semiconductor的CAT24C32WI-GT3是一款32Kb (4KB) EEPROM器件,采用8引脚SOIC封装,连接I2C总线时速度可达1MHz(图1)。

EEPROM、FRAM、eMMC、SD卡……嵌入式开发中,存储器应该如何选?

图 1:ON Semiconductor的CAT24C32WI-GT3是一款1Kb的EEPROM,可通过I2C或SPI端口连接微控制器以存储配置和应用数据。(图片来源:ON Semiconductor)

值得注意的是,某些微控制器中也包含EEPROM。例如,Renesas的R7FS128783A01CFM#AA1 32位微控制器,具有4KB板载EEPROM可供开发人员使用。

因此,配置需求不能超过4KB,否则,开发人员就需要使用外部存储器件,或使用微控制器的闪存来模拟EEPROM以扩展容量。

尽管EEPROM深受青睐,却也存在一些潜在缺陷:

  • 擦/写操作寿命通常为1,000,000次
  • 写周期约为500ns
  • 写入单个数据单元需要多条指令
  • 数据保存期为10年以上(近期的产品可达100年以上)
  • 易受辐射和高工作温度影响

EEPROM适合的应用众多,但对于汽车、医疗或航天系统等可靠性要求较高的应用,开发人员则希望使用FRAM等更可靠的存储器解决方案。

FRAM是“铁电随机存取存储器”的缩写,相较于EEPROM存储器,颇具优势:

  • 速度更快(写周期小于50ns)
  • 写操作寿命更长(高达1万亿次,EEPROM仅为100万次)
  • 功率较低(工作电压只需1.5V)
  • 辐射耐受性更强

FRAM的存储容量与EEPROM相当。例如,Cypress Semiconductor的FRAM系列容量范围从4Kb至4Mb。其中,FM25L16B-GTR容量为16Kb(图2)。该器件采用8引脚SOIC封装,工作频率可达20MHz。

EEPROM、FRAM、eMMC、SD卡……嵌入式开发中,存储器应该如何选?

图2:Cypress的FRAM系列存储器容量从4Kb至4Mb不等,可通过SPI连接微控制器以存储配置和应用数据。FM25L16B-GTR(如图所示)的工作频率可达20MHz。(图片来源:Cypress Semiconductor)

针对高端产品,Cypress Semiconductor推出CY15B104Q-LHXIT,容量为4Mb,支持的接口速度高达40MHz(图3)。这款FRAM存储器具有以下特性:

  • 151年数据保存期
  • 100万亿次读/写
  • 直接替代串行闪存和EEPROM

正如您所猜想,FRAM的价格比EEPROM昂贵,因此选择适合应用的存储器时,务必仔细权衡器件的各种工作环境因素。

EEPROM、FRAM、eMMC、SD卡……嵌入式开发中,存储器应该如何选?