读书频道 > 系统 > 其他综合 > 嵌入式系统原理、设计及开发
2.2.5 嵌入式系统中的存储器选型
2013-01-09 15:18:13     我来说两句 
收藏    我要投稿   
本书全面系统地讲解嵌入式系统基础知识,透彻分析嵌入式系统开发的管理方法,并呈现嵌入式硬件及固件的设计、开发和集成步骤。本书脉络清晰,编排精当,每章开头列出学习目标,然后结合大量表格、图例和例题来详...  立即去当当网订购

嵌入式系统不仅需要使用程序存储器来保存相应的系统固件(可以是自己设计的控制算法,比如基于超级循环的设计;也可以是成熟的嵌入式OS,比如基于OS的设计,应用程序在操作系统中运行),而且需要使用数据存储器在任务执行期间存储变量与临时数据;此外,嵌入式系统还需要使用存储器来保存应用程序可以修改的非易失性数据(比如配置数据、查找表等)——这与程序存储器是不同的,因为程序存储器不仅是非易失性的,而且终端用户不可以修改程序存储器中的数据内容。

在嵌入式系统中,是选择RAM还是选择ROM(EEPROM/FLASH/NVRAM)作为存储器,这只取决于嵌入式系统的类型及其设计应用需求。需要说明的是,存储器选型并没有统一标准。为嵌入式系统选择存储器类型和容量的时候,设计者需要考虑许多因素。比如,如果嵌入式系统设计是基于SoC或者是具有片上RAM和ROM(FLASH/EEPROM)的微控制器,那么对于整个系统设计而言,很有可能只使用片上存储器就已经足够了。根据经验,设计者需要考虑自己的系统需求,了解设计所使用的处理器类型(SoC或者是具有片上存储器的微控制器),然后才能清楚片上存储器是否已经足够,或者是还需要使用外部存储器。

下面以简单的电动玩具设计为例对存储器选型进行说明。由于电动玩具的需求复杂度较低,数据存储器容量要求较小,因此可以考虑微控制器。对微控制器进行选型的时候,需要若干字节的内部RAM、若干字节或千字节(具体取决于玩具任务的数量与复杂度)的FLASH存储器以及若干字节的EEPROM(如果需要的话),就可以完成系统设计;在这个实例中,系统不需要使用外部存储器。因此,使用PIC微控制器器件就能够满足电动玩具的I/O和存储器要求。

如果嵌入式设计是基于RTOS的,那么执行RTOS往往需要特定容量的RAM,并且需要ROM来镜像存储RTOS;这里,镜像(image)是指所有RTOS源文件编译后产生的二进制数据。一般说来,RTOS内核的二进制代码包含了系统所有的服务,存储在非易失性存储器(比如FLASH)中;其存储格式可以是压缩后的数据,也可以是未经压缩的原始数据。在设备加电启动的过程中,系统从程序存储器中复制RTOS文件,先解压缩(如果需要的话),然后加载到RAM中执行。对于系统运行所需的RAM容量以及存放RTOS所需的程序存储器容量,RTOS供应商通常会给出大致的估计结果。除此之外,系统执行用户任务有可能增加对RAM容量的需求,存储用户应用程序也有可能增加对ROM容量的需求。因此,为稳妥起见,总是会在RAM和ROM总体容量估算值的基础上,额外预留一些的存储空间。

使用Windows移动操作系统的智能电话设备就是含有OS的嵌入式设备的典型实例。以某款智能电话为例,64 MB容量的RAM和128 MB容量的ROM是运行Windows移动设备的最低配置,但事实上,往往需要使用额外的RAM和ROM,才能顺畅地运行所需的应用程序。因此在构建系统的时候,往往需要预留足够的存储器容量,这样在系统实际运行过程中,才不会出现存储器空间不足(此时可能无法正常安装并运行用户应用程序)的情况。

在存储器选型过程中,有两个参数是需要特别关注的。第一个参数是存储器芯片的容量(存储器密度通常表示为每个芯片能够存储的数据字节数)。一般说来,在存储器芯片选型的时候,不可能也不需要与设计所需的字节数精确相同。存储器芯片通常具有标准容量,比如512字节、1024字节(1KB)、2048字节(2KB)、4KB、8KB、16KB、32KB、64KB、128KB、256KB、512KB、1024KB(1MB)等。假设某嵌入式应用程序只需要使用750字节的RAM。此时,无法选择750字节的存储器芯片(因为是非标准容量,市场上购买不到),只能选择与其所需容量接近的存储器芯片。这里,1024字节是最合适的选择。另一方面,由于最低配置是750字节,因此不能选用512字节的存储器芯片。

在选择存储器容量的时候,还需要了解处理器所支持的地址范围。比如,对于具有16位地址总线的处理器/控制器来说,最多可以寻址的存储器空间范围是216=65 536字节=64KB。因此,对于处理器具有16位地址总线的情况,选择128KB的存储器芯片是没有意义的。另一方面,对于处理器/控制器支持寻址的整个存储器空间范围,可能并不只是单独提供给存储器芯片;而是由I/O、其他IC及存储器共享这些地址空间。比如,某系统地址总线是16位,如果只有低32KB的地址空间分配给存储器芯片,那么所需的最大存储器容量就是32KB;此时,不需要使用64KB容量的存储器芯片。

存储器选型时需要考虑的第二个参数是存储器的字长。字长是指系统进行数据读/写操作时,每次最多可以读/写的位数。存储器芯片支持的字长可以是4、8、12、16、24、32等。设计者需要确保存储器芯片支持的字长与处理器/控制器的数据总线宽度匹配。

在嵌入式应用中,FLASH存储器是程序存储器常用的选择。FLASH存储器采用了功能强大的低成本固态存储技术,适用于移动电子设备和其他消费类应用。FLASH存储器可以分为两大类,即NAND FLASH和NOR FLASH。NAND FLASH是高集成度、低成本的非易失性存储器;与此对应的是,NOR FLASH集成度相对较低,成本稍高。不过,NOR FLASH支持程序的芯片内执行(eXecute In Place,XIP)技术。也就是说,XIP技术可以从ROM内直接执行代码,而不需要使用常规方法将程序复制到RAM中执行。为了满足系统的存储需求,可以将NOR FLASH和NAND FLASH结合使用;其中,NAND可用于存储程序代码或数据(比如数码照相机抓拍的图像数据)。由于NAND FLASH不支持XIP,因此如果使用NAND FLASH来存储程序代码,那么需要使用DRAM复制出程序代码并执行。与此对应的是,NOR FLASH支持XIP,可以用作程序存储器,从而可以存储启动代码甚至是完整的程序代码。

EEPROM数据存储器也是比较常用的,它可以具有串行接口,也可以具有并行接口。如果设备的处理器/控制器支持串行接口,而且向设备写入和从设备读出的数据量较少,那么最好在系统中使用串行EEPROM芯片。串行EEPROM芯片能够节省整个系统的地址空间。串行EEPROM芯片的存储容量通常表示为比特或千比特(Kb)。常用的串行EEPROM存储容量包括512b、1Kb、2Kb、4Kb等。对于具有低功耗要求的嵌入式系统(比如便携式设备),需要选择低功耗存储器。某些嵌入式设备需要在极端环境(比如高温环境、高湿度环境等)条件下工作对于此类设备,则需要选择工业级别的存储器芯片来替换商用级别的芯片。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.2.4 存储器映射
下一篇:2.3.1 传感器
相关文章
图文推荐
2.7.12 使用仿真器查
2.7.11 栈和寄存器组
2.7.8 出栈
2.7.7 压栈
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站