介绍嵌入式应用中存储器类型的选择技巧

最新更新时间:2007-09-06来源: 赛迪网关键字:擦除  系统  代码  串行 手机看文章 扫描二维码
随时随地手机看文章
存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。

无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。

图1列出了在嵌入式应用系统中最常用的存储器类型。下面讨论在选择存储器时应遵循的基本原则。

选择存储器时应遵循的基本原则

1.内部存储器与外部存储器

一般情况下,当确定了存储程序代码和数据所需要的存储空间之后,设计工程师将决定是采用内部存储器还是外部存储器。通常情况下,内部存储器的性价比最高但灵活性最低,因此设计工程师必须确定对存储的需求将来是否会增长,以及是否有某种途径可以升级到代码空间更大的微控制器。基于成本考虑 ,人们通常选择能满足应用要求的存储器容量最小的微控制器,因此在预测代码规模的时候要必须特别小心,因为代码规模增大可能要求更换微控制器。

目前市场上存在各种规模的外部存储器器件,我们很容易通过增加存储器来适应代码规模的增加。有时这意味着以封装尺寸相同但容量更大的存储器替代现有的存储器,或者在总线上增加存储器。即使微控制器带有内部存储器,也可以通过增加外部串行EEPROM或闪存来满足系统对非易失性存储器的需求。

2.引导存储器

在较大的微控制器系统或基于处理器的系统中,设计工程师可以利用引导代码进行初始化。应用本身通常决定了是否需要引导代码,以及是否需要专门的引导存储器。例如,如果没有外部的寻址总线或串行引导接口,通常使用内部存储器,而不需要专门的引导器件。但在一些没有内部程序存储器的系统中,初始化是操作代码的一部分,因此所有代码都将驻留在同一个外部程序存储器中。某些微控制器既有内部存储器也有外部寻址总线,在这种情况下,引导代码将驻留在内部存储器中,而操作代码在外部存储器中。这很可能是最安全的方法,因为改变操作代码时不会出现意外地修改引导代码。在所有情况下,引导存储器都必须是非易失性存储器。

3.配置存储器

对于现场可编程门阵列(FPGA)或片上系统(SoC),人们使用存储器来存储配置信息。这种存储器必须是非易失性EPROM、EEPROM或闪存。大多数情况下,FPGA采用SPI接口,但一些较老的器件仍采用FPGA串行接口。串行EEPROM或闪存器件最为常用,EPROM用得较少。

4.程序存储器

所有带处理器的系统都采用程序存储器,但设计工程师必须决定这个存储器是位于处理器内部还是外部。在做出了这个决策之后,设计工程师才能进一步确定存储器的容量和类型。当然有的时候,微控制器既有内部程序存储器也有外部寻址总线,此时设计工程师可以选择使用它们当中的任何一个,或者两者都使用。这就是为什么为某个应用选择最佳存储器的问题,常常由于微控制器的选择变得复杂起来,以及为什么改变存储器的规模也将导致改变微控制器的选择的原因。

如果微控制器既利用内部存储器也利用外部存储器,则内部存储器通常被用来存储不常改变的代码,而外部存储器用于存储更新比较频繁的代码和数据。设计工程师也需要考虑存储器是否将被在线重新编程或用新的可编程器件替代。对于需要重编程功能的应用,人们通常选用带有内部闪存的微控制器,但带有内部OTP或ROM和外部闪存或EEPROM的微控制器也满足这个要求。为降低成本,外部闪存可用来存储代码和数据,但在存储数据时必须小心避免意外修改代码。

在大多数嵌入式系统中,人们利用闪存存储程序以便在线升级固件。代码稳定的较老的应用系统仍可以使用ROM和OTP存储器,但由于闪存的通用性,越来越多的应用系统正转向闪存。表1给出了程序存储器类型的参数比较。

5.数据存储器

与程序存储器类似,数据存储器可以位于微控制器内部,或者是外部器件,但这两种情况存在一些差别。有时微控制器内部包含SRAM(易失性)和EEPROM(非易失)两种数据存储器,但有时不包含内部EEPROM,在这种情况下,当需要存储大量数据时,设计工程师可以选择外部的串行EEPROM或串行闪存器件。当然,也可以使用并行EEPROM或闪存,但通常它们只被用作程序存储器。

当需要外部高速数据存储器时,通常选择并行SRAM并使用外部串行EEPROM器件来满足对非易失性存储器的要求。一些设计还将闪存器件用作程序存储器,但保留一个扇区作为数据存储区。这种方法可以降低成本、空间并提供非易失性数据存储器。

针对非易失性存储器要求,串行EEPROM器件支持I2C、SPI或微线(Microwire)通讯总线,而串行闪存通常使用SPI总线。由于写入速度很快且带有I2C和SPI串行接口,FRAM在一些系统中得到应用。表2比较了各类数据存储器的优缺点。

6.易失性和非易失性存储器

存储器可分成易失性存储器或者非易失性存储器,前者在断电后将丢失数据,而后者在断电后仍可保持数据。设计工程师有时将易失性存储器与后备电池一起使用,使其表现犹如非易失性器件,但这可能比简单地使用非易失性存储器更加昂贵。然而,对要求存储器容量非常大的系统而言,带有后备电池的DRAM可能是满足设计要求且性价比很高的一种方法。

在有连续能量供给的系统中,易失性或非易失性存储器都可以使用,但必须基于断电的可能性做出最终决策。如果存储器中的信息可以在电力恢复时从另一个信源中恢复出来,则可以使用易失性存储器。

选择易失性存储器与电池一起使用的另一个原因是速度。尽管非易失存储器件可以在断电时保持数据,但写入数据(一个字节、页或扇区 )的时间较长。

7.串行存储器和并行存储器

在定义了应用系统之后,微控制器的选择是决定选择串行或并行存储器的一个因素。对于较大的应用系统,微控制器通常没有足够大的内部存储器,这时必须使用外部存储器,因为外部寻址总线通常是并行的,外部的程序存储器和数据存储器也将是并行的。

较小的应用系统通常使用带有内部存储器但没有外部地址总线的微控制器。如果需要额外的数据存储器,外部串行存储器件是最佳选择。大多数情况下,这个额外的外部数据存储器是非易失性的。

根据不同的设计,引导存储器可以是串行也可以是并行的。如果微控制器没有内部存储器,并行的非易失性存储器件对大多数应用系统而言是正确的选择。但对一些高速应用,可以使用外部的非易失性串行存储器件来引导微控制器,并允许主代码存储在内部或外部高速SRAM中。

8.EEPROM与闪存

存储器技术的成熟使得RAM和ROM之间的界限变得很模糊,如今有一些类型的存储器(如EEPROM和闪存)组合了两者的特性。这些器件像RAM一样进行读写,并像ROM一样在断电时保持数据,它们都可电擦除且可编程,但各自有它们优缺点。

从软件角度看,独立的EEPROM和闪存器件是类似的,两者主要差别是EEPROM器件可以逐字节地修改,而闪存器件只支持扇区擦除以及对被擦除单元的字、页或扇区进行编程。对闪存的重新编程还需要使用SRAM,因此它要求更长的时间内有更多的器件在工作,从而需要消耗更多的电池能量。设计工程师也必须确认在修改数据时有足够容量的SRAM可用。

存储器密度是决定选择串行EEPROM或者闪存的另一个因素。市场上目前可用的独立串行EEPROM器件的容量在128KB或以下,独立闪存器件的容量在32KB或以上。

如果把多个器件级联在一起,可以用串行EEPROM实现高于128KB的容量。很高的擦除/写入耐久性要求促使设计工程师选择EEPROM,因为典型的串行EEPROM可擦除/写入100万次。闪存一般可擦除/写入1万次,只有少数几种器件能达到10万次。

今天,大多数闪存器件的电压范围为2.7V到3.6V。如果不要求字节寻址能力或很高的擦除/写入耐久性,在这个电压范围内的应用系统采用闪存,可以使成本相对较低。

9.EEPROM与FRAM

EEPROM和FRAM的设计参数类似,但FRAM的可读写次数非常高且写入速度较快。然而通常情况下,用户仍会选择EEPROM而不是FRAM,其主要原因是成本(FRAM较为昂贵)、质量水平和供货情况。设计工程师常常使用成本较低的串行EEPROM,除非耐久性或速度是强制性的系统要求。

DRAM和SRAM都是易失性存储器,尽管这两种类型的存储器都可以用作程序存储器和数据存储器,但SRAM主要用于数据存储器。DRAM与SRAM之间的主要差别是数据存储的寿命。只要不断电,SRAM就能保持其数据,但DRAM只有极短的数据寿命,通常为4毫秒左右。

与SRAM相比,DRAM似乎是毫无用处的,但位于微控制器内部的DRAM控制器使DRAM的性能表现与SRAM一样。DRAM控制器在数据消失之前周期性地刷新所存储的数据,所以存储器的内容可以根据需要保持长时间。
 
由于比特成本低,DRAM通常用作程序存储器,所以有庞大存储要求的应用可以从DRAM获益。它的最大缺点是速度慢,但计算机系统使用高速SRAM作为高速缓冲存储器来弥补DRAM的速度缺陷。

表3总结了本文提到的各类存储器的特性。需要注意的是,不同类型的存储器的适合情况不同,每种类型都有自己的优点和弱点,所以逐项比较并非总能得到有意义的结果。

本文小结

尽管我们几乎可以使用任何类型的存储器来满足嵌入式系统的要求,但终端应用和总成本要求通常是影响我们做出决策的主要因素。有时,把几个类型的存储器结合起来使用能更好地满足应用系统的要求。例如,一些PDA设计同时使用易失性存储器和非易失性存储器作为程序存储器和数据存储器。把永久的程序保存在非易失性ROM中,而把由用户下载的程序和数据存储在有电池支持的易失性DRAM中。不管选择哪种存储器类型,在确定将被用于最终应用系统的存储器之前,设计工程师必须仔细折中考虑各种设计因素。

关键字:擦除  系统  代码  串行 编辑: 引用地址:介绍嵌入式应用中存储器类型的选择技巧

上一篇:基于VxWorks的FLASH存储器实时存取管理方案
下一篇:基于ARM9内核Processor外部NAND FLASH的控制实现

推荐阅读最新更新时间:2023-10-13 10:44

谷歌首提Android Automotive,安卓车机系统将亮相?
    谷歌近日放出了Android 6.0 Marshmallow版本的兼容性测试纲要(ACDD,Android Compatibility Definition Document),如果细细阅读,你会意外发现文中出现了10多处“Android Automotive”的字眼。不少媒体根据已有信息推测:Android 6.0 Marshmallow或许能作为一种娱乐信息系统版本的OS,直接在车机硬件上运行。难道这是谷歌要推出Android车机系统的前奏?     其实谷歌谋划Android车载信息娱乐系统的想法由来已久。早在2013年12月,这家公司就与汽车制造商奥迪、通用、本田、现代及英伟达共同组建了“开放汽车联盟”(OAA
[汽车电子]
基于VB 6.0智能电子自旋共振仪系统绘图模块实现
近年来,电子顺磁共振(electron paramagnetic resonance,EPR)或称电子自旋共振(electron spin resonance,ESR)技术已成为一门新型的科学技术。它的应用领域非常广泛,特别是在物理、化学、医学方面的应用更为突出,许多电子生产厂家向市场推出了不同型号的电子自旋共振仪器,其硬件的发展非常迅速,然而相应的系统软件的支撑却比较薄弱,所以电子自旋共振仪器的系统支撑软件的开发将成为一个新的热点。 1 绘图模块的开发环境 对某一个系统的开发,开发者可以选用各种编程语言来完成,通常使用的高级语言如C--,Java,PB,Visual Basic等,各种语言有各自的优点与缺点,基于
[工业控制]
一款高效电池管理系统的构建方案
  假定你接受了一项任务,为一个新的和基于电池的电源系统设计监视器电路,那么你会采取什么策略来优化该设计的成本和可制造性呢? 最初考虑的问题将是确定系统的首选结构以及电池和有关电子组件的位置。基本结构清楚以后,接下来必须考虑的一个问题是,电路拓扑的权衡协调问题,例如,怎样优化最终产品的通信和互连。   电池的外形尺寸将对电源系统结构有重大影响。要使用大量小型电池以适合形状复杂的电池模块 (或电池组) 吗? 或者要使用外形尺寸很大的电池,因而由于重量问题而导致对电池数量的限制或引起其他的尺寸限制?这也许是设计变数最大的部分,因为外形新颖的电池不断上市,而且人们也在不断努力,务求电池模块或电池组集成到产品中后,会与整个产品概念
[电源管理]
一款高效电池管理<font color='red'>系统</font>的构建方案
嵌入式GPS语音导航系统中MP3的解码与播放
  引言   近年来,电子技术的迅猛发展,使得嵌入式系统在越来越广泛的领域得到应用。嵌入式系统平台的功能也越来越强大,复杂度也越来越高,同时对其开发的难度和要求也越来越高。在开发过程中需要将应用软件和系统软件作为一个整体考虑,而且软件和硬件的联系也更加密切。所以,嵌入式系统的开发是一个复杂的过程。随着嵌入式系统性能的大幅度提高,老式的GPS导航仪已开始向嵌入式方向发展。嵌入式GPs导航仪已越来越便携,功能越来越强大,语音导航和媒体功能已成为嵌入式GPS导航仪的一大突出的亮点。所以,MP3音频解码与播放技术现已成为嵌入式GPS导航系统中的一项基本技术。MP3的全称是MPEG Audio Layer 3,是目前流行的一种音频编码方
[单片机]
嵌入式GPS语音导航<font color='red'>系统</font>中MP3的解码与播放
计算机振动测量与分析系统
    摘要: 介绍一种高效率、高精度的振动测量和分析方法。与传统方法不同,该方法是基于计算机及其运行环境的一种无接触测量方法,通过测量与分析软件实现对振动图象的数字化处理,从而获得传统方法无法达到的满意效果。      关键词: 振动  测量与分析  图象处理     太阳能电池帆板是人造卫星的主要能源。在卫星巡航时,太阳能电池帆板必须随时根据阳光照射的方向来调整自己的方位。这就相当于在不断给太阳能电池帆板施加激励,由于电池帆板具有薄而大的物理特性,所以这个激励很容易导致振颤。在一定条件下,还有可能演变成共振,这样就非常容易损坏太阳能电池帆板,以至于卫星无法正常工作。因此,对卫星的电池帆板的振动特
[应用]
基于单片机控制的智能家庭防盗报警系统的设计
  1 引言   随着我国国民经济的快速发展, 人民生活水平的提高, 人们对家庭住房的防盗、防劫、防火设备的重视程度也在不断提高, 所以现代社会有更多的人需要对偷盗、抢劫、火灾、煤气泄漏等事故进行监测和报警。为了有效的保证居民的生命财产安全, 我们设计了一款智能家庭防盗报警系统。该系统是利用无处不在的电话网络进行监控,将AT89S51 单片机、ISD4000 集成语音芯片、HT1602 液晶显示驱动芯片及集成电路组成的双音多频拨号电路等有机地结合在一起, 构成一种功能先进、实用、成本低廉的家庭智能防盗报警器。   2 电路组成框图和基本工作原理   2.1 电路组成框图   智能家庭防盗报警系统是由无线发送
[单片机]
基于单片机控制的智能家庭防盗报警<font color='red'>系统</font>的设计
Linux 系统下常用软件一览表
从WINDOWS 转入Linux,一开始肯定会不习惯.就连mp3的播放软件都得自己安装.不过习惯了就好了. 以下为转帖: 下面列出我常用的一些 Linux 程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。 Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘。 编辑器: VIM, Emacs。 程序开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ... 论文,幻灯工具:LaTeX, ConTeXt 绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟
[嵌入式]
通用汽车申请车轮自动定位探测系统专利
据外媒报道,通用汽车(General Motors)为一项车轮自动定位探测系统申请了专利。 通用汽车专利(图片来源:carbuzz.com) 该专利的第一步是采用惯性测量单元(IMU)探测是否有导致车轮错位的可能性。此类传感器在任何现代汽车上都随处可见,例如安全气囊传感器就会安装IMU,用于确定交通事故的严重程度以及是否应该打开安全气囊,还可用于探测轻微的撞击。 任何情况都可能影响车轮的定位,例如开车经过坑洼地段、高速撞到减速带、悬挂部件有缺陷,甚至是轻微的小车祸。 为了确定是否有必要检查车轮是否错位,需要测量施加到车辆上的力的大小,如果力值处于两个预定值之间,汽车就会通知车主,需要检查车轮是否错位。 据专利
[汽车电子]
通用汽车申请车轮自动定位探测<font color='red'>系统</font>专利
小广播
最新缓冲存储文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 综合资讯

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved