闪存在嵌入式系统中的应用

闪存在嵌入式系统中的应用

ID:14154439

大小:240.50 KB

页数:7页

时间:2018-07-26

闪存在嵌入式系统中的应用_第1页
闪存在嵌入式系统中的应用_第2页
闪存在嵌入式系统中的应用_第3页
闪存在嵌入式系统中的应用_第4页
闪存在嵌入式系统中的应用_第5页
资源描述:

《闪存在嵌入式系统中的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、闪存在嵌入式系统中的应用  Linux系统自诞生以来,不断发展壮大,支持越来越多的硬件体系,获得了日益广泛的应用,从服务器、桌面计算,到机顶盒、手机、路由器等,可以说无处不在。虽然都是Linux系统,但是嵌入式环境和通用计算环境中的软件/硬件配置大不相同。这是因为嵌入式系统大多都是为某一专门应用而特别设计的,有可能需要耐受各种恶劣环境(比如意外断电、极端温度、强冲击/振动/辐射等),还受到体积、功耗、成本等诸多因素的限制,功能针对性强,需要酌情增加一些专用的硬件(如各种传感器和专用接口),而许多通用计算机上常用的外设在嵌入式系统中不那么常见,典型的例子是硬

2、盘、CD/DVD-ROM等大容量的非易失存储设备,在嵌入式系统中,它们通常被各种形式的闪存所取代。闪存的存储特性与硬盘等存储设备的巨大差异,导致它必须使用专用存储控制器、驱动程序及文件系统。对不同类型闪存及相应文件系统的选用,会影响最终形成系统的性能和稳定性,必须综合各种系统构件的特点及目标系统的需求做出慎重的抉择。  1闪存类型及特性  嵌入式系统中常用的闪存有两类:NORFLASH和NANDFLASH。它们因内部结构与“或非”及“与非”门相似而得名。它们不仅在内部结构上不同,外部特性和应用也不一样。NORFLASH的容量通常不大,常见的只有几MB,可以

3、重复擦写10万次到100万次。NORFLASH遵循CFI标准,可以通过CFI命令查询其制造商、器件型号、容量、内部扇区布局等参数,实现软件自动配置。NORFLASH的优势还在于它在出厂时能保证每个数据位都是有效的,不需要做坏块处理。NORFLASH的线性寻址特性使之可以作为启动存储器使用。与NORFLASH相比,NANDFLASH的容量可以做得很大,常见的有几十MB到几GB,可以重复擦写10万次。NANDFLASH芯片上没有地址与数据线之分,只有复用的I/O线和命令锁存(CLE)、地址锁存(ALE)、读/写使能(RE,WE)和片选(CE)等控制线,必须通过

4、特定的逻辑来操作。NANDFLASH不支持线性寻址,一般不能用作启动ROM。但这也不是绝对的。有些微控制器(如AT91SAM926x)提供出厂前固化在芯片内部的BOOT-ROM,并在BOOT-ROM中提供对NANDFLASH启动的支持。不过这样一来,首先启动的是BOOT-ROM中的程序,会产生启动逻辑和延时方面的种种问题,设计时需要全面考虑。另外,生产厂商不保证NAND-FLASH中每一个数据位都是有效的,除芯片中的第一块之外,允许有“初始坏块”,并约定在坏块的第一页或第二页带外区(OOB)的特定位置标记坏块。NANDFLASH还允许在使用过程中出现新的坏

5、块,以及非坏块在读出过程中出错。基于这些特点,使用这种闪存时要做额外的坏块管理和校验/纠错工作。在写入密集型系统中,必须提供ECC及坏块换出算法,才能达到10万次的写入指标。  除了以上提到的两种闪存之外,还有一种由NORFLASH衍生的串行闪存,通常是SPI接口。这种闪存继承了NORFLASH没有坏块的优点,但不支持CFI标准,并且由于是串行接口,线性寻址没有意义,为了方便操作,有些产品中加入了类似NANDFLASH的块/页结构及基于片内SRAM的页缓存,其优势在于硬件接口简单,提供小尺寸的封装,可以显著减小PCB面积和布线复杂程度。  另外,基于NAN

6、DFLASH技术的串行闪存已经量产,使用的也是SPI接口,容量可以做到1Gb。  2应用设计  目标应用系统是一台专用的户外显示设备,要求其具有低功耗、抗振、宽温操作及高可靠性等特点。为此,选择了AT91SAM9261/AT91-SAM9G10,它是以ARM9为核心的集成片上液晶控制器的工业级微控制器,以DATAFLASH/NORFLASH和NANDFLASH存储固件代码和数据。在设计过程中,根据不同的闪存使用需求,采取了具有针对性的方案。  2.1启动设计  在该系统中,结合微控制器提供的功能和各种闪存的特点,可以综合使用不同类型的闪存,选择不同的启动方

7、式。AT91SAM9261内部集成了启动ROM,其中固化了支持启动和操作闪存的程序。流程图如图1所示。当AT91SAM9261的启动模式选择(BMS)引脚在复位期间为高电平时,会运行内部固化的启动程序;否则运行外部NORFLASH中的程序。从流程图中可以看出,启动程序支持从串行闪存中启动。这是通过启动程序将串行闪存中的代码加载到内部SRAM中实现的。由于内部SRAM容量有限(依芯片型号不同,有16KB和160KB两种),像U-BOOt(编译后有170KB左右,与配置有关)这样的功能,若较全面地启动加载程序(Bootloader)是不能直接从串行闪存中启动的

8、,而只能选择两级启动程序,先从串行闪存中加载一段尽可能小的一级启动

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。