




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Nand-Flash/Nor-Flash存储模块设计 2007-4-2 10:50:00 | By: luogongqiang Nand-Flash/Nor-Flash存储模块设计 随着嵌入式系统越来越广泛的应用,嵌入式系统中的数据存储和数据管理已经成为一个重要的研究课题。Flash存储器具有速度快、成本低等很多优点,因此在嵌入式系统中的应用也越来越多。为了合理地管理存储数据,进行数据共享,Flash的设计在ARM嵌入式系统中对数据存储和数据管理尤为重要。1实例说明在嵌入式设备中,有两种程序运行方式:一种是将程序加载到SDRAM中运行,另一种是程序直接在其所在的ROM/Flash存储器中运行。一种比较常用的运行程序的方法是将该Flash存储器作为一个硬盘使用,当程序需要运行时,首先将其加载到SDRAM存储器中,在SDRAM中运行。通常相对于:ROM而言,SDRAM访问速度较快,数据总线较宽,程序存SDRAM中的运行速度比在Flash中的运行速度要快。ARM 中的存储模块示意图如图7-1所示。其中,各功能模块的含义如下。(1)系统初始化进行系统的最小初始化,包括初始化系统时钟、系统的中断向量表、SDRAM及一些其他的重要I/O端口。(2)映像文件下载通过一定的方式,得到新的目标程序的映像文件,将该文件保存到系统的SDRAM中。要完成这部分工作,ARM嵌入式设备需要与外部的主机建立某种通道,大部分系统都是使用串行口,也可以使用以太网口或者并行口进行通信。(2)Flash写入根据不同的Flash存储器,选择合适的操作命令,将新的目标程序的映像文件写入到目标系统的Flash存储器中,实现Flash存储器操作的功能模块。在本实例里,Flash用于存放程序代码、常量表和一些存系统掉电后需要保存的用户数据等。2 Flash原理2.1 Nand-Flash与Nor-Flash区别Flash主要分为Nor-Flash和Nand-Flash两类,下面对二者进行较为详细的比较。1性能比较Flash闪存是非易失存储器,可以对存储器单元块进行擦写和再编程。任何Flash器件进行写入操作前都必须先执行擦除操作。Nand-Flash器件执行擦除操作十分简单;而Nor-Flash则要求在进行擦除前,先将目标块内所有的位都写为0。擦除:Nor-Flash器件时是以64128KB的块进行的,执行一个写入/擦除操作的时间为15s;擦除Nand-Flash器件是以832KB的块进行的,执行相同的操作最多只需要4ms。执行擦除操作时,块尺寸的不同进一步拉大了Nor-Flash和Nand-Flash之间的性能差距。统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于Nor-Flash的单元中进行。因此,当选择存储解决方案时,必须权衡以下的各项因素。?Nor-Flash的读取速度比Nand-Flash稍快一些。?Nand-Flash的写入速度比Nor-Flash快很多。?Nand-Flash的擦除速度远比Nor-Flash快。?大多数写入操作需要先进行擦除操作。?Nand-Flash的擦除单元更小,相应的擦除电路更少。2接口差别Not-Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内容的每一字节。Nand-Flash器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。Nand-Flash的读和写操作采用512字节的块,这一点有点像硬盘管理此类操作。很自然地,基于Nand-Flash的存储器就可以取代硬盘或其他块设备。3容量和成本Nand-Flash的单元尺寸几乎是Nor-Flash器件的一半。由于生产过程更为简单,NaIld-Flash结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。Nor-Flash占据了大部分容量为116MB的内存市场,而Nand-Flash只是用在8128MB的产品当中。4可靠性和耐用性采用Flash介质时,一个需要重点考虑的问题是可靠性。对于需要扩展MTBF(平均无故障时间)的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较Nor-Flash和Nand-Flash的可靠性。(1)寿命(耐用性)在Nand-Flash闪存中,每个块的最大擦写次数是100万次,而Nor-Flash的擦写次数是10万次。Nand-Flash存储器除了具有10:1的块擦除周期优势外,典型的Nand-Flash块尺寸要比Nor-Flash器件小8位,每个Nand-Flash存储器块在给定时间内的删除次数要少一些。(2)位交换 所有的Flash器件都受位交换现象的困扰。在某些情况下(Nand-Flash发生的次数要比Nor-Flash多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障就可能导致系统停机。如果只是报告有问题,则多读几次就可能解决。位反转的问题更多见于Nand-Flash闪存,Nand-Flash的供应商建议使用Nand-Flash闪存时,同时使用EDC/ECC算法。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,则必须使用EDC/ECC(纠错码)系统以确保可靠性。(3)坏块处理Nand-Flash器件中的坏块是随机分布的。以前做过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。Nand-Flash器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,则将导致高故障率。5易用性可以非常直接地使用基于Nor-Flash的闪存,像其他存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,Nand-Flash要复杂得多,各种Nand-Flash器件的存取方法因厂家而异。在使用Nand-Flash器件时,必须先写入驱动程序,才能继续执行其他操作。向Nand-Flash器件写入信息需要相当的技巧,因为设计人员绝不能向坏块写入,这就意味着在Nand-Flash器件上自始至终都必须进行虚拟映射。6软件支持在Nor-Flash器件上运行代码不需要任何的软件支持。在Nand-Flash器件上进行同样操作时,通常需要驱动程序,也就是闪存技术驱动程序(Memory Technology Devices,MTD)。Nand-Flash和Nor-Flash器件在进行写入和擦除操作时都需要MTD,但使用Nor-Flash器件时,所需要的MTD要相对少一些。许多厂商都提供用于Nor-Flash器件的更高级的软件,在Linux系统中采用JFFS驱动,这在后文中将具体讲述。2.2Flash驱动对于Flash芯片的驱动,Linux提供了完善的驱动程序,只需要在内核配置里面选择好相应的类型即可。在Linux中通过MTD子系统提供的抽象设备机制,来实现对Flash设备的管理控制和数据读写。MTD设备是一类特殊的存储设备,如常用的Flash芯片、CFI卡等。MTD同时提供通过字符设备方式和块设备方式来管理控制MTD设备的机制。MTD核心层分为:用户模块接口层、MTD抽象层和MTD设备驱动模块层。MTD核心层通过设备驱动模块实现对存储设备的物理访问功能,通过用户模块提供用户空间直接访问的接口。MTD的设备驱动模块层负责驱动Flash硬件,只需实现实际设备上的访问控制,与内核交互的复杂工作则由MTD抽象层完成。其中也对Nand-Flash的驱动进行了抽象,还实现了错误检测与纠错(ECC)和坏块处理等用户模块层提供从用户空间直接访问的接口,上层应用只需通过MTD抽象层提供的字符设备方式或块设备方式来访问MTD抽象设备,然后通过MTD的内部机制把这些请求交给实际的驱动模块去执行。MTD抽象层定义了抽象的MTD设备结构,对于具体设备的驱动模块,需要设计好公共函数的实际内容,并在检测到实际设备后注册一个MTD设备,然后就可通过MTD提供的字符设备访问方式或块设备访问方式直接使用具体的硬件设备。MTD程序编写在以后的章节里会详细介绍。3硬件电路设计在系统中使用了两种Flash芯片,其中Nor-Flash主要用于存放系统代码,而Nand-Flash主要用于存放用户信息。3.1Nor-FIash的设计系统所用的Nor-Flash芯片是Intel公司的E28F128J3 Flash,如图7-2所示。128Mbit的存储空间由128个128KB(131072字节)的擦除块组成。擦除块是相互独立的,每一块的擦除操作都可以在1s内完成。每一块可以独立地被擦除100000次。这些块可以分别设定为是可锁的或是非可锁的,由一个锁定位来控制。还有一个128bit的保护寄存器可以复用。该Flash采用25根地址线和16位数据线,可以通过nBYTE这个信号来选择是8位还是16位方式访问。该系统是采用16位方式访问的,因此该信号线接高电平,同时A0地址线不起作用,一同接高。nOEnWE是读写信号,由EP7312的读写控制线直接控制。Flash的片选信号有3个,它们组合后的结果如表7-1所示。系统中将CEl、CE2信号接高,CE0由ARM的CS0片选线来控制。3.2Nand-Flash的设计 系统中所采用的Nand-Flash芯片是Samsung公司的K9F2808U。该器件存储容量为16M8位,除此之外还有512KX 8位的空闲存储区。该器件采用TSSOP48封装,工作电压为2.73.6V。8位I/O端口采用地址、数据和命令复用的方法,这样既可减少引脚数,又可使接口电路简捷。由于ARM系统没有Nand-Flash控制所需要的CLE、ALE信号,因此需要利用ARM的通用GPIO口。具体的连接电路如图7-3所示。?命令锁存使能(CLE),使输入的命令发送到命令寄存器。当变为高电平时,在WE上升沿命令通过I/O口锁存到命令寄存器。?地址锁存使能(ALE),控制地址输入到片内的地址寄存器中,地址是在WE的上升沿被锁存的。?片选使能(CE),用于器件的选择控制。在读操作、CE变为高电平时,器件返回到 备用状态;然而,当器件在写操作或擦除操作过程中保持忙状态时,CE的变高将被忽略,不会返回到备用状态。?写使能(WE),用于控制把命令、地址和数据在它的上升沿写入到I/O端口;而在 读操作时必须保持高电平。?读使能(RE),控制把数据放到I/O总线上,在它的下降沿tREA时间后数据有效;同时使内部的列地址自动加1。?I/O端口,用于命令、地址和数据的输入及读操作时的数据输出。当芯片未选中时, I/O口为高阻态。?工写保护(WP),禁止写操作和擦除操作。当它有效时,内部的高压生成器将会复位。?准备/忙(R/B),反映当前器件的状态。低电平时,表示写操作或擦除操作以及随机读正进行中;当它变为高电平时,表示这些操作已经完成。它采用了开漏输出结构,在芯片未选中时不会保持高阻态。3.3Nor-F1ash/Nand-FIash跳线选择由于ARM提供了Nand-Flash Boot-loader技术和可选择的多种启动方式,因此硬件设计中同时设计了Nor-Flash和Nand-Flash,通过跳线选择启动方式,如图7-4所示。4软件设计 Flash 存储器的支撑软件包括基本的读/写/擦除操作和上层的闪存管理软件,采用的嵌入式Linux操作系统中通过MTD子系统提供的抽象设备机制,来实现对Flash设备的管理控制和数据读写。4.1 FIash数据存储操作流程 向Flash存储器的特定寄存器写入地址和数据命令,就可对Flash存储器进行烧写、擦除等操作,但操作必须按照一定的顺序,否则就会导致Flash存储器复位而使操作命令无法完成。编程指令只能使“1”变为“0”,而擦除命令可使“0”变为“1”,因此正确的操作顺序是先擦除,后编程,当Flash存储器被擦除以后,读出的内容应全为0xFF。对Flash操作的程序流程如图7-5所示。系统启动后,对系统关键设备(包括ARM、sI)RAM、N0r-Flash和Nand-Flash等)进行初始化操作,然后启动Boot-loader,将Nand-Flash上的Linux内核读入SDRAM执行。初始化时,除了对Flash内部寄存器进行初始化设置外,还需要设置ARM的寄存器。4.2程序代码说明对Flash存储器的烧写、整片擦除、按扇区擦除及其他操作,都可以通过编程实现(见如下代码)。对于编写连续烧写Flash存储器多个存储单元的程序,只需循环执行即可,但应在对每个单元烧写命令发出后进行检测,保证前一个单元烧写结束后再进行下一个存储单元的烧写,当然也可采用延时等待的方法进行连续的烧写。在读取Flash的时候不一定读取一个block,可以按照实际需要的地址读取;但是在写的时候一次需要擦除一个扇区,然后再写入。读取子程序设定了一次读取一个扇区,目的是为了按需要更改后再写入。5实例总结 ARM与Flash存储器的接口电路设计与调试,以及对Flash存储器的编程与擦除是ARM系统设计中的一项重要部分,Flash存储器通常装载着嵌入式系统的Boot-loader程序和操作系统的核心代码,因此Flash的稳定与否直接决定整个系统能否运作。本章讲述了两种Flash芯片Nor-Fl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东省事业单位招聘高层次和急需紧缺人才237人模拟试卷及答案详解(考点梳理)
- 2025年许昌市消防救援支队招聘政府专职队员50名考前自测高频考点模拟试题及一套答案详解
- 2025广西柳州市柳江区综合行政执法局招聘市容协管员1人模拟试卷及答案详解(新)
- 2025年福建省南安市龙泉中学招聘15人模拟试卷及答案详解(各地真题)
- 2025海南乐东县机关事务服务中心招聘保安人员2人模拟试卷及一套答案详解
- 2025年4月深圳市深汕特别合作区招聘事务员38人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025广东依顿电子科技股份有限公司招聘操作工人员考前自测高频考点模拟试题及答案详解(名校卷)
- 2025江苏盐城市滨海县卫生事业单位校园招聘专业技术人员22人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025江苏苏州高新区狮山横塘街道招聘15人模拟试卷及答案详解(典优)
- 2025年襄阳市襄州区“田园诗乡·才聚襄州”引进36名事业单位急需紧缺人才(华中师范大学站)模拟试卷及答案详解(有一套)
- 2025河南省文化旅游投资集团有限公司权属企业社会招聘52人笔试备考题库及答案解析
- 2025年河北水利发展集团有限公司公开招聘工作人员41名笔试参考题库附带答案详解
- 胰岛素泵护理查房
- 2025年资格考试-WSET二级认证历年参考题库含答案解析(5套典型题)
- 安徽省皖豫名校联盟2024-2025学年高三上学期10月月考历史试题
- (新教材)2025年秋期人教版一年级上册数学全册核心素养教案(教学反思无内容+二次备课版)
- 2024-2025学年浙江省宁波市金兰教育合作组织高一下学期期中联考历史试题(解析版)
- 羊驼介绍课件
- 特种设备安全监察条例培训
- 医德医风培训课件内容
- 2025广东高考物理第一轮基础练习:机械能守恒定律(有答案)
评论
0/150
提交评论