--1一.FLASH的发展历史:Flash存储器是在20世纪80年代末逐渐发展起来的一种新型半导体不挥发性存储器,它具有结构简单、高密度、低成本、高可靠性和在系统的电可擦除性等优点,是当今半导体存储器市场中发展最为迅速的一种存储器.。半导体不挥发性存储器((Non-VolatileSemiconductorMemory)的发展经历了从ROM、PROM、EPROM(紫外线擦除)、EEPROM到Flash存储器的各个阶段。Flash结合了以往EPROM结构简单、密度高和EEPROM在系统的电可擦除性的一些优点,实现了高密度、低成本和高可靠性。Flash存储器和传统存储器的最大区别在于它是按块(sector)擦除,按位编程,从而实现了快闪擦除的高速度。另外,块擦除还使单管单元的实现成为可能,从而解决了器件尺寸缩小和高集成度的问题。Flash存储器以其优越的性能,成为半导体存储器市场中发展最为迅速的一种,它广泛应用于PCBIOS(个人电脑BasicInputOutputSystem基本输入输出系统)、数字蜂窝电话、汽车领域和微控制器等许多领域,并为目前较大容量磁介质存贮媒体提供了一种理想的替代产品[1]。工艺技术的进步和Flash技术的不断成熟使Flash存储器集成度迅速提高,目前已经达到1Gbit。同时,其价格也随之不断下降,并能与DRAM(dynamic动态随机存取存储器)相比拟。未来,Flash存储器的发展主要集中在高集成度、高可靠性和嵌入式应用上。随着集成度的进一步提高,发展更小尺寸的存储单元,小尺寸器件的可靠性问题以及外围高低压CMOS(complementarymetaloxidesemiconductor互补金属氧化物半导体)兼容工艺的开发将显得尤为重要。--2二.与其他存储器的区别:FLASH是一种非易失性的存储器,即在掉电情况下仍能保证数据不丢失。与传统的ROM和EPROM相比,它可以通过与之相连的微处理器在线编程和擦除,这一优点使得FLASH十分适合嵌人式系统的设计和开发。--33.按数据访问方式,FLASH又可分为并行访问型、串行访问型和串行NAND访问型。并行访问型FLASH采用并行的数据和地址总线,并支持随机存取。在读数据时,它先将地址送到地址线,然后由控制线向FLASH发出读取指令,最后由FLASH将数据送到数据线。在写数据时,它先将地址和数据送到地址线和数据线,然后由控制线发出编程指令将数据锁存进相应的地址。其中,控制线的指令是向FLASH中的公共接口单元发出的,FLASH可在接到指令后判断微处理器进行何种操作。串行访问型FLASH则采用串行总线,常见的有SPI总线。其中地址和数据都是通过时钟来顺序传送的。串行NAND访问型FLASH尽管也采用8位并行总线,却不支持随机存取。它的命令字、地址和数据都是以8位并行传送的。一般用于与简单控制器的连接(如用于PC卡的ATA控制器),而不直接和微处理器连接使用。在以上类型中,并行访问型FLASH较为常用。8/16位FLASH可通过管脚BYTE选择8位或16位总线模式。--4三.工作原理:--5--6--7--8(program流程图)(erase流程图)--9三.微处理器与FLASH的连接方式:微处理器与FLASH的连接大致有如图1所示的几种方式:在图1(a)中,MCU按字节寻址,地址一一对应直接相连;在(b)中,MCU按字寻址,其中的两片FLASH,一片用于存储高字节,另一片存储低字节;(c)中的MCU按字节寻址,该方式可利用复用位A一1将FLASH划分成以字节为单位;在(d)中,MCU按字寻址,FLASH以字为单位。当然,上述连接方式也不是唯一的。通常不直接写人FLASH的主要原因是为了防止加电或去电时产生的脉冲信号写人FLASH而破坏原来的数据。当FLASH焊到电路板上之后,对其编程有两种方式:第一种是通过与板相连的PROM编程器来进行,第二种则是通过微处理器(比如DSP)软件来编程。在第一种方式下,系统通过PROM编程器提供编程电压和编程指令。而在第二种方式下,其编程电压则是经内部的供给泵DC/DC转换器将低电压上调而产生的,但在第二种方式下,需要根据FLASH支持的指令集编写驱动程序。这两种方式各有优点,但后者更适合于系统的在线升级。如前所述,对FLASH读写数据可以以字节或字为单位独立进行,但在写入之前必须先对所在的块进行删除操作。--10FLASH工作模式:读阵列、自动选择、编程/擦除和擦除。在读阵列模式下,它相当于ROM,也就是说可以在指定的地址上读取数据。而在自动选择模式下,它可以读取识别号(厂商号和器件号)以及块保护状态标志位。而在编程/擦除模式下,则可以进行编程和擦除,并且可在随后来读取状态寄存器的内容。而在擦除继续模式下,它可在擦除某一块的同FLASH存储器的编程模式与兼容性时读取另一块中的数据。FLASH可在不同的命令字序列输人方式下进行各个模式之间的转移。除了读、写和擦除等基本命令字外,FLASH通常还提供一些其它命令字,如用于防止数据被意外改写的加保护和去保护命令,可在执行擦除操作期间响应中断请求的擦除等待和擦除继续命令,另外,还有校验、复位等命令。在每一次命令操作之后,FLASH还可以支持状态寄存器查询,以使用户能够了解命令的执行情况。影响FLASH的最根本因素是其制造工艺,常见的有NOR,DINOR,NAND和AND等n种技术。采用不同制造工艺的FLASH一般是很难兼容的。所以讨论兼容性是建立在采用同一制造工艺这一前提下的。1.电气兼容性电气兼容性主要包括管脚连接、封装方式、直流和交流特性、电压和功率要求、数据存储容量、定时匹配要求以及工作温度范围等方面的兼容性内容。不同属性的器件之间是不能直接替换的,其中有些可以通过增加转换电路的方法来实现兼容匹配,而有些则无法实现兼容替换。2.命令集兼容性采用公共接口标准可使软件的升级变得十分方便。如ST公司的M29F400B定义的片擦除指令10h、读指令FOh、写指令AOh等.通常情况下不同公司的指令是不同的,同一家公司同一个系列的指令是相同的,可便于升级,比如AMD公司的Am29F400B和ST公司的M29F400B都属于M29系列,除了设备和生产商的--11标识号的不同之外,其它功能都是可以互换的[3。而M28和M29两个系列公共接口的命令集却是不兼容的。Intel公司的FLASH多采用M28系列,因此,无法替代M29系列的Flash存储芯片。3软件兼容性不同的软件只要做到输人输出的接口标准化,就可以相互调用和替代以实现同样的功能。比如只要知道支持的是(intel)M28还是(AMD)M29系列的Flash芯片,就可以设计相应的模块接口参数,从而使得多方合作开发成为可能。