对于所有基于微控制器的嵌入式系统而言,记忆体都是其中的主要元件。例如开发人员需要足够的RAM以储存所有易失性变数、创建缓冲区以及管理各种应用堆叠。 RAM对于嵌入式系统相当重要,同样,开发人员也需要一定空间用于储存应用代码、非易失性数据和配置资讯。然而问题在于非易失性记忆体技术不断扩展,选择众多,使选择适合应用的记忆体颇具挑战性。
本文介绍各种记忆体技术,并以各家供应商推出的产品为例,帮助开发人员了解各种记忆体类型的特性。此外,本文还探讨了各种类型记忆体的最佳应用,以便开发人员有效使用。
嵌入式系统中的EEPROM和FRAM
EEPROM往往是开发人员最先、最常考虑用于嵌入式系统的记忆体元件。在嵌入式应用中,这类非易失性记忆体通常用于储存系统配置参数。例如连接至CAN总线网路的设备可能会将CAN ID储存于EEPROM。
EEPROM的以下特性,使其成为嵌入式系统开发人员的理想之选:
‧ 小封装尺寸
‧ 相对实惠的价格
‧ 100kbps至1000kbps的典型比特率范围
‧ 标准化电气介面
‧ 通常支援I2C和SPI介面
目前在Digi-Key网站共有9家EEPROM供应商提供的5,800多款EEPROM。例如ON Semiconductor的CAT24C32WI-GT3是一款32Kb(4KB)EEPROM器件,采用8引脚SOIC封装,连接I2C总线时速度可达1MHz(图1)。

图1 : ON Semiconductor的CAT24C32WI-GT3是一款1Kb的EEPROM,可通过I2C或SPI埠连接微控制器以存储配置和应用数据。(source: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。

图2 : Cypress的FRAM系列记忆体容量从4Kb至4Mb不等,可通过SPI连接微控制器以存储配置和应用数据。FM25L16B-GTR的工作频率可达20MHz。(source:Cypress Semiconductor) |
|
针对高端产品,Cypress Semiconductor推出CY15B104Q-LHXIT,容量为4Mb,支援的介面速度高达40MHz(图3)。这款FRAM记忆体具有以下特性:
‧ 151年数据保存期
‧ 100万亿次读/写
‧ 直接替代串行快闪记忆体和EEPROM
FRAM的价格比EEPROM昂贵,因此选择适合应用的记忆体时,务必仔细权衡器件的各种工作环境因素。

图3 : CY15B104Q-LHXIT是一款4Mb器件,工作频率可达40MHz。该元件所属的Cypress FRAM系列产品,容量范围从4Kb至4Mb。(source:CypressSemiconductor) |
|
嵌入式系统中的快闪记忆体、eMMC和SD卡
嵌入式系统中的快闪记忆体具有多种不同用途。首先,外部快闪记忆体可用于扩展内部快闪记忆体,从而增加应用代码的可用记忆体空间。常用解决方法是:使用GigaDevice Semiconductor的GD25Q80CTIGR等SPI快闪记忆体模组(图4)。如果微控制器支援SPI介面,则可通过该介面使用GD25Q80CTIGR将内部记忆体扩展8Mb。

图4 : 使用GigaDevice Semiconductor Limited的GD25Q80CTIR快闪记忆体,可通过SPI埠将内部快闪记忆体空间扩展8Mb。(source:GigaDevice Semiconductor Limited) |
|
其次,外部快闪记忆体可用于储存配置资讯或应用数据,而非使用EEPROM或FRAM。为了降低BOM成本或扩展内部记忆体以存储应用数据,可以改用外部快闪记忆体晶片。微控制器外设和记忆体映射可以配置为加入该外部快闪记忆体,以便开发人员能够更轻松地进行访问,而无需专门对所需的驱动程式进行自定义调用,来连接EEPROM或FRAM。
Adesto Technologies的AT25SF161是一款适用于该用途的外部快闪记忆体器件范例(图5)。该元件使用伫列式SPI(QSPI)介面。 QSPI是对常规SPI协议的扩展,提高了系统数据输送量。对于单一事务需要存储或检索大量数据的应用,开发人员可留意这类器件。
QSPI免除了CPU对QSPI外设的干预,并将介面由标准的4引脚(MOSI、MISO、CLK和CS)变更为6引脚(CLK、CS、IO0、IO1、IO2、IO3)。因此,其中4个引脚可用于输入和输出,而传统SPI只用2个引脚。

图5 : Adesto Technologies的AT25SF161外部快闪记忆体器件可用於扩展内部快闪记忆体,具有QSPI介面,可实现更快的数据存储和检索。(source:Adesto Technologies) |
|
最后,快闪记忆体可用于储存应用数据和有效载荷资讯。例如GPS系统往往不会试图将所有GPS地图储存于本地处理器,而是使用SD卡或eMMC器件等外部记忆体件。这些储存介质可通过SPI或专用SDIO介面连接微控制器,从而有效连接外部记忆体件。
例如ISSI推出的IS21ES04G-JCLI eMMC可直接连接微控制器的SDIO介面,为其扩展32Gb的快闪记忆体(图6)。

图6 : ISSI的eMMC快闪记忆体模组记忆体容量达32Gb,可通过SPI或SDIO连接主机。(source:ISSI) |
|
就电气介面而言,SD卡与eMMC器件别无二致。换言之,二者虽采用不同的封装,但都具有通用引脚可用于连接微控制器。不过,这两种记忆体类型却截然不同。相较于SD卡,eMMC通常具有以下差异:
‧ 更坚固耐用,不易出现物理损坏
‧ 交互更快
‧ 价格更昂贵
‧ 须焊接至电路板,不可拆卸
如果使用者无需拆卸记忆体,那么使用eMMC可以提供更可靠的解决方案,但仍取决于最终应用。无论哪种情况下,开发人员都需要仔细选择记忆体,因为每款记忆体的特性各不相同。
例如,车载子系统可能要求记忆体经过可靠性验证,标准往往高于标准快闪记忆体器件。在这种情况下,开发人员需要选择通过汽车级鉴定的记忆体,例如Silicon Motion的SM668GE4-AC 4GB eMMC模组。
选购SD卡时,开发人员必须慎重考虑,因为与eMMC一样,每款SD卡的特性各不相同。开发人员需仔细检查储存卡的速度等级和工作温度。例如,多数SD卡的额定温度范围为0至70℃,适用于消费类电子产品。
此外,每款储存卡都具有相关速度等级,用于描述预期最大介面速度。例如,在需要存储图像的应用中,使用Class 2储存卡则速度较慢,远不如专为高画质视频设计的Class 10储存卡,例如Advantech推出的SQF-MSDM1-4G-21C SQFlash 4GB microSD卡。

图7 : Advantech的SQF-MSDM1-4G-21CSQFlash microSD卡记忆体容量达4GB,速度等级为高端Class 10。(source:Advantech Corp) |
|
记忆体选择技巧与诀窍
@內文:为嵌入式产品选择合适的记忆体类型和介面颇具挑战性。选择适合应用程式的记忆体时,开发人员可以参考以下「技巧与诀窍」:
‧ 明确记忆体工作条件,例如:
o 预期擦/写次数
o 温度、振动和辐射等环境条件和因素
‧ 数据载入要求
记录应用中记忆体正常工作的最小比特率、所需比特率和最大比特率
‧ 选择最接近记录中所需比特率的记忆体介面类型
‧ 对于汽车或航空系统等恶劣环境条件,须选择通过汽车级鉴定或辐射耐受性较强的记忆体
‧ 使用分线板将所选记忆体件连接至微控制器开发套件以测试其性能
上述技巧有助于确保开发人员找到适合嵌入式应用的记忆体。
总结
如今,可供开发人员选择的非易失性记忆体件种类繁多,可用于储存各种数据,从应用代码到配置资讯,不一而足。如上所述,开发人员需仔细评估应用需求,慎重选择记忆体类型和介面,以期取得这些需求与成本之间的平衡。
(本文作者Jacob Beningo任职于Digi-Key公司)