ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:23.14KB ,
资源ID:9446828      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9446828.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(flash操作基础.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

flash操作基础.docx

1、flash操作基础flash操作基础 FLASH 所谓Flash,是内存(Memory)的一种,但兼有RAM和ROM 的优点,是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器,同时它的高集成度和低成本使它成为市场主流。 Flash 芯片是由内部成千上万个存储单元组成的,每个单元存储一个bit。具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。常用的Fla

2、sh为8位或16位的数据宽度,编程电压为单3.3V。主要的生产厂商为INTEL、ATMEL、AMD、HYUNDAI等。Flash 技术根据不同的应用场合也分为不同的发展方向,有擅长存储代码的NOR Flash和擅长存储数据的NAND Flash。一下对NOR Flash和NAND Flash的技术分别作了相应的介绍。 在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备。然而近年来Flash 全面代替了ROM(EPROM)在嵌入式系统中的地位。因为相较ROM而言,Flash有成本低,容易改写等优点。 目前Flash主要有两种 NOR Flash 和 NADN Flash

3、它们在应用上有所不同因此也用于不同的场合。 读取NOR Flash和读取我们常见的SDRAM是一样的。它的所有地址都是可见的,你可以读取它任意随机地址的值。同时它和SDRAM一样你可以直接运行装载在NOR FLASH里面的代码,这就是作谓的XIP(Execute-In-Place)技术。因为NOR Flash有这种特性,所以它非常适用于小型嵌入式系统。你可以把你的代码装载到Flash中,在系统启动的时候直接运行它,而减少SRAM的容量从而节约了成本。 从这种意义上来说,NOR FLASH已经可以代替原先我们一直使用的标准的ROM。并且还具有ROM所没有的特性。 目前市面上的FLASH 主要来自

4、Intel,AMD,Fujitsu,和Toshiba。常用的容量一般在128K到64M之间。 NAND Flash 没有采取内存的随机读取技术。它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节。采用这种技术的Flash比较廉价。但是和所有块设备一样,NAND Flash 比较容易出现坏位。这需要我们采用软件来避免使用这些位。这样以来就增加了软件的复杂度。你不能直接运行NAND Flash上的代码。因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还加上了一块小的NOR Flash来运行启动代码。这样做会增加系统的复杂度。不过最近这种现象有所改观。三星最近

5、生产的一批采用ARM Core的CPU,采用了一个内部的缓冲来存放NAND Flash里读取的东西。以此来直接运行NAND FLASH里面启动代码。比如基于Arm920T和新的S3c2410芯片。 另外,我们最常见的NAND FLASH的应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”。 目前生产NAND Flash的主要厂家有Samsung 和Toshiba。最大容量已经突破了1G位。写Flash和写SRAM截然不同。它是通过一系列指令才能完成一个写操作的。而我们用的RAM直接写入即可。无论是NOR Flash 还是NAND Flash都有一个“扇区”的概念。这

6、个“扇区”从8K到256K不等。在写操作中它将作为一个整体来操作。要向某个地址里面写如一个值得先看一下这个地址原先的值是不是全为“1“。如果全为“1”,那么通过一系列指令可以将这个值写入。反之,则先要进行擦除使其全部变为“1”。擦除操作是不能用一个地址来操作的。擦除必须一次擦除一个“扇区“。把这个“扇区”所有的值都变为“1”,然后才能进行写操作。 不同型号的Flash的操作指令不同。具体操作的时候需要仔细阅读所使用产品的产品说明书。一NOR Flash1. 市场介绍随着技术的发展,愈来愈多的电子产品需要更多的智能化,这也对这些产品的程序存储提出了更高的要求。Flash作为一种低成本、高集成度的

7、存储技术在电子产品领域的应用非常广泛。今天90%的PC、超过90%的手机、超过50%的Modem,都是用了Flash,如今Flash市场规模已经超过了100亿美元。如此巨大的市场规模,也导致市场上的Flash 品牌层出不穷。在NOR Flash市场中,Intel公司是非常重要的一家生产厂商。Intel公司生产的Flash芯片多年来占据着市场的很大份额,而它的芯片封装形式和接口也成为业界标准,从而为不同品牌的Flash带来了兼容的方便。2. NOR Flash 的硬件设计和调试首先,Flash 要通过系统总线接在处理器上,即保持一个高速的数据交换的通道。那么就必须了解一下Flash在系统总线上的

8、基本操作。1) 先了解一下处理器存储空间BANK的概念。以32位处理器S3C2410为例,理论上可以寻址的空间为4GB,但其中有3GB的空间都预留给处理器内部的寄存器和其他设备了,留给外部可寻址的空间只有1GB,也就是0X000000000X3fffffff,总共应该有30根地址线。这1GB的空间,2410处理器又根据所支持的设备的特点将它分为了8份,每份空间有128MB,这每一份的空间又称为一个BANK。为方便操作,2410独立地给了每个BANK一个片选信号(nGCS7nGCS0)。其实这8个片选信号可以看作是2410处理器内部30根地址线的最高三位所做的地址译码的结果。正因为这3根地址线所

9、代表的地址信息已经由8个片选信号来传递了,因此2410处理器最后输出的实际地址线就只有A26A0(如下图1)图1 2410内存BANK示意图 2)以图2(带nWAIT信号)为例,描述一下处理器的总线的读操作过程,来说明Flash整体读、写的流程。第一个时钟周期开始,系统地址总线给出需要访问的存储空间地址,经过Tacs时间后,片选信号也相应给出(锁存当前地址线上地址信息),再经过Tcso时间后,处理器给出当前操作是读(nOE为低)还是写(new为低),并在Tacc时间内将数据数据准备好放之总线上,Tacc时间后(并查看nWAIT信号,为低则延长本次总线操作),nOE 拉高,锁存数据线数据。这样一

10、个总线操作就基本完成 图2 带nWAIT 信号的总线读操作 3)NOR Flash的接口设计(现代的29LV160芯片)29LV160存储容量为8M字节,工作电压为3.3V,采用56脚TSOP封装或48脚FBGA封装,16位数据宽度。29LV160仅需单3.3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程(烧写)、整片擦除、按扇区擦除以及其他操作。引脚信号描述和接口电路分别如图3和图4所示。图3 29LV160引脚信号描述 图4 FLASH(29LV160)接口电路 可以从信号引脚图3和总线操作图2看出,NOR Flash的接口和系统总

11、线接口完全匹配,可以很容易地接到系统总线上。 3. NOR Flash的软件设计Flash 的命令很多,但常用到的命令就3种:识别、擦除、编程命令。以下就对3种命令作分别的简要介绍:1) NOR Flash的识别29lv160_CheckId() U8 tmp; U16 manId,devId; int i; _RESET(); _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0x90); manId=_RD(0x0); devId=_RD(0x1); _RESET(); printf(Manufacture ID(0x22C4)=%4x, Device

12、 ID(0x2249)=%4xn,manId,devId); if(manId = 0x22C4 && devId = 0x2249) return 1; else return 0;NOR Flash 的识别程序由四个读写周期就可以完成,在Flash的相关命令表中可以查到相应ID识别的命令。 2) NOR Flash的擦除要对NOR Flash进行写操作,就一定要先进性擦除操作。NOR Flash 的擦除都是以块(sector)为单位进行的,但是每一种型号的Flash的sector的大小不同,即使在同一片的Flash内,不同sector的大小也是不完全一样的。void 29l

13、v160db_EraseSector(int targetAddr) printf(Sector Erase is started!n); _RESET(); _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0x80); _WR(0x555,0xaa);_WR(0x2aa,0x55);_WR(BADDR2WADDR(targetAddr),0x30); return _WAIT(BADDR2WADDR(targetAddr); 图5 Erase Operation /*如上图5所示,擦除操作时还要有一个关键的操作擦除查询算法,即等待Flash擦除的过程,

14、并返回擦除是否成功的结果。算法如右图6所示*/Int _WAIT(void)unsigned int state,flashStatus,old;old=_RD(BADDR2WADDR(0x0);while(1) flashStatus=_RD(BADDR2WADDR(0x0); if( (old&0x40) = (flashStatus&0x40) ) break; if( flashStatus&0x20 ) /printf(DQ5=1:%xn,flashStatus); old=_RD(BADDR2WADDR(0x0); flashStatus=_RD(BADDR

15、2WADDR(0x0); if( (old&0x40) = (flashStatus&0x40) ) return 0; else return 1; /printf(.); old=flashStatus; /printf(!n); return 1;图6 Toggle Bit Algorithm 以上的方法为查询数据线上的一个特定位Toggle位。此外还有2种检测方法,一种为提供额外的Busy信号,处理器通过不断查询Busy信号来得知Flash的擦除操作是否完成,一般较少应用;一种为查询Polling位。 3) NOR Flash 的编程操作int 29lv160db_Pr

16、ogFlash(U32 realAddr,U16 data) _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0xa0); _WR(BADDR2WADDR(realAddr),data); return _WAIT(BADDR2WADDR(realAddr); 对擦除过的Flash进行编程比较简单,但仍然用到以上提到的查询算法,速度比较慢,一般为20uS,最长的达到500uS 。 二NAND FLASHNAND FLASH 在对大容量的数据存储需要中日益发展,到现今,所有的数码相机、多数播放器、各种类型的盘、很多PDA里面都有NAND FLASH的身影。

17、1. Flash的简介NOR Flash:u 程序和数据可存放在同一片芯片上,拥有独立的数据总线和地址总线,能快速随机地读取,允许系统直接从Flash中读取代码执行,而无需先将代码下载至中再执行u 可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行编程之前需要对块或整片进行预编程和擦除操作。 NAND FLASHu 以页为单位进行读写操作,1页为256B或512B;以块为单位进行擦除操作,1块为4KB、8KB或16KB。具有快编程和快擦除的功能u 数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程u 芯片尺寸小,引脚少,是位成本(b

18、it cost)最低的固态存储器u 芯片存储位错误率较高,推荐使用 ECC校验,并包含有冗余块,其数目大概占1%,当某个存储块发生错误后可以进行标注,并以冗余块代替u Samsung、TOSHIBA和Fujistu三家公司支持采用NAND技术NAND Flash。目前,Samsung公司推出的最大存储容量可达8Gbit。NAND 主要作为SmartMedia卡、Compact Flash卡、PCMCIA ATA卡、固态盘的存储介质,并正成为Flash磁盘技术的核心。2. NAND FLASH 和NOR FLASH 的比较1) 性能比较 flash闪存是非易失存储器,可以对称为块的存储器单元块进

19、行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。 由于擦除NOR器件时是以64128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以832KB的块进行的,执行相同的操作最多只需要4ms。 执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须

20、权衡以下的各项因素。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少。2) 接口差别 NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据,共用8位总线(各个产品或厂商的方法可能各不相同)。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的页和32KB的块为单位,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘

21、或其他块设备。3) 容量和成本NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格,大概只有NOR的十分之一。NOR flash占据了容量为116MB闪存市场的大部分,而NAND flash只是用在8128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。4) 可靠性和耐用性采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,

22、Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。5) 位交换(错误率)所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就

23、可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。6) 坏块处理NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。现在的FLSAH一般都提供冗余块来代替坏块如发现某个块的数

24、据发生错误(ECC校验),则将该块标注成坏块,并以冗余块代替。这导致了在NAND Flash 中,一般都需要对坏块进行编号管理,让每一个块都有自己的逻辑地址。7) 易于使用可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。8) 软件支持当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于

25、磁盘仿真和闪存管理算法的软件,包括性能优化。在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡

26、。在掌上电脑里要使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。除了SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND FLASH 启动程序。因此,必须先用一片小的NOR FLASH 启动机器,在把OS等软件从NAND FLASH 载入SDRAM中运行才行。9) 主要供应商NOR FLASH的主要供应商是INTEL ,MICRO等厂商,曾经是FLASH的主流产品,但现在被NANDFLASH挤的比较难受。它的优点是可以直接从FLASH中运行程序,但是工艺复杂,价格比较贵。NAND FLASH的主要供应商是SAMSUNG和东芝,在U盘、各种存储卡

27、、MP3播放器里面的都是这种FLASH,由于工艺上的不同,它比NORFLASH拥有更大存储容量,而且便宜。但也有缺点,就是无法寻址直接运行程序,只能存储数据。另外NAND FLASH非常容易出现坏区,所以需要有校验的算法。 3NAND Flash的硬件设计NAND FLASH是采用与非门结构技术的非易失存储器,有8位和16位两种组织形式,下面以8位的NAND FLASH进行讨论。1) 接口信号与NOR Flash相比较,其数据线宽度只有8bit,没有地址总线,I/O接口可用于控制命令和地址的输入,也可用于数据的输入和输出,多了CLE和ALE来区分总线上的数据类别。信号类型描述CLEO命令锁存使能ALEO地址锁存使能nFCEONAND Flash片选NFREONAND Flash读使能nFWEONAND Flash写使能NCONINAND Flash配置R/nBINAND Flash Ready/Busy

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1