今天小编要和大家分享的是FLASH存储器Flash 存储器的简介 FLASH存储器Flash 存储器的擦除,接下来我将从Flash存储器的简介,Flash存储器的擦除,FLASH存储器的测试方法研究,这几个方面来介绍。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
Flash存储器的简介
在众多的单片机中都集成了Flash存储器系统,该存储器系统可用作代码和数据的存储。它在整个存储器中所处的位置在最起始的位置,一般其起始地址从0开始,如图1所示。
图1存储器系统示意图
Flash是由一组可独立擦除的1KB区块所构成的,对一个区块进行擦除将使该区块的全部内容复位为1。
下面这幅图是Flash存储器的简单示意图,此图形象的体现了Flash存储器是由1KB区块构成,而且每个区块的基地址都固定的,其基地址如图2所示。
图2Flash存储器示意图
Flash存储器的操作
对Flash存储器的操作一般是进行读、写和擦除。Flash存储器的擦除必须是以1KB为单位对齐的地址并指定哪一区块被擦除,或者全部擦除。
Flash存储器的编程写入的地址必须以字(4个字节)为单位对齐,且指明要写入的具体地址。也就是说可以是任意地址,但必须满足写入的地址是字对齐的。
Flash存储器的读取也可以是任意地址的数据,但必须满足读取的地址是字对齐的,否则,读出的数据绝对不正确,结果也难以预料。
Flash存储器的擦除
Flash存储器的擦除必须是以1KB为单位对齐的地址并指定哪一区块被擦除,或者全部擦除。也就是说以区块是flash擦除的最小单位。
●执行1-KB页的擦除
执行1KB页的擦除步骤如下:
(1)将页地址写入FMA寄存器
(2)将Flash写入匙码(flashwritekey)写入FMC寄存器,并将ERASE位置位(写入0xA4420002)。
(3)查询FMC寄存器直至ERASE位被清零。
如图1所示:
图1执行1KB页的擦除步骤示意图
实例程序如程序清单1所示:
程序清单1
●执行Flash的完全擦除
执行完全擦除的步骤如下:
(1)将Flash写入匙码(flashwritekey)写入FMC寄存器,并将MERASE位置位(写入0xA4420004)。
(2)查询FMC寄存器直至MERASE位被清零。
如图2所示:
图2执行完全擦除的步骤示意图
实例程序如程序清单2所示:
FLASH存储器的测试方法研究
1.引言
随着当前移动存储技术的快速发展和移动存储市场的高速扩大,FLASH型存储器的用量迅速增长。FLASH芯片由于其便携、可靠、成本低等优点,在移动产品中非常适用。市场的需求催生了一大批FLASH芯片研发、生产、应用企业。为保证芯片长期可靠的工作,这些企业需要在产品出厂前对FLASH存储器进行高速和细致地测试,因此,高效FLASH存储器测试算法的研究就显得十分必要。
不论哪种类型存储器的测试,都不是一个十分简单的问题,不能只将存储器内部每个存储单元依次测试一遍就得出结论,这是因为每一个存储单元的改变都有可能影响存储器内部其他单元的变化(这种情况又是常常发生的)。这种相关性产生了巨大的测试工作量[1]。另外,FLASH存储器有其自身的特点,它只能将存储单元内的数据从“1”写为“0”,而不能从“0”写为“1”,若想实现“0”->“1”操作,只能把整个扇区或整个存储器的数据擦除,而擦除操作要花费大量的时间。FLASH存储器还有其他特性,比如读写速度慢、写数据之前要先写入状态字、很多FLASH只适于顺序读写而不适于跳转操作等,这些特点都制约了FLASH存储器的测试。
为解决FLASH测试中的这些问题,人们提出了应用内建自测试[2]或利用嵌入式软件[3]等测试方法测试相关性能,都取得了比较好的效果,但这些方法大多不适用于利用测试仪进行批量的产品测试。而多数对通用存储器测试很有效的算法,由于受到FLASH器件自身的限制(如不能不能直接从“0”写为“1”),很难直接适用于FLASH测试。
文本在简单介绍FLASH芯片的结构与特点之后,说明了FLASH存储器测试程序原理。在此基础上,分析和改进了几种通用的存储器测试方法,使之能有效地应用于FLASH测试中。这些方法简单高效,故障覆盖率高,并且可以快速预先产生,与其他一些测试算法[4][5]相比,更适于应用在测试仪中进行工程测试。本文分析了这些方法的主要特点,在此基础之上,介绍了实际FLASH存储器测试中应用的流程。
2.FLASH芯片的结构特征
FLASH存储器种类多样,其中最为常用的为NOR型和NAND型FLASH。通常,NOR型比较适合存储程序代码,其随机读写速度快,但容量一般较小(比如小于32MB),且价格较高;而NAND型容量可达lGB以上,价格也相对便宜,适合存储数据,但一般只能整块读写数据,随机存取能力差。它们对数据的存取不是使用线性地址映射,而是通过寄存器的操作串行存取数据。
一般来说,不论哪种类型的FLASH,都有一个ID寄存器,用来读取存储器信息,可根据供应商提供的芯片资料进行具体的类型判断。另外,FLASH存储器的擦除过程相对费时,且擦除流程相对复杂。图1为FLASH芯片擦除的一般流程。
可见,擦除数据的操作限制了FLASH芯片的工作速度。此外,其他一些特性,比如读写速度慢、写数据之前要先写入状态字、很多FLASH都设有冗余单元等等,这些特点都制约了测试速度的提高。因此,设计合理的方法,或将几块FLASH并测,并且应用测试算法减少测试时间就显得十分必要。
3.系统连接
本文选用的芯片为A公司的NOR型FLASH——Am29LV400B及三星公司的NAND型FLASHK9F5608UOB,它们都可通过44pIN专用为例,首先对存储器各单元写入0xAAAAAAAA,检验并擦除,然后对存储器写入0xCCCCCCCC,检验并擦除,以后依次写入0xF0F0F0F0,0x0F0F0F0F,0xFF00FF00,0x00FF00FF,0xFFFF0000,0x0000FFFF,0xFFFFFFFF,0x0,都在检验所写的正确性后再擦除数据。其原理与地址移动变反相同,在此不再赘述。
4.测试方法的综合使用和流水测试
以上,从算法的角度上提高了FLASH芯片的可测性。虽然NOR、NAND型FLASH结构不同,但由于以上算法都可通过计算,顺序产生测试图形,因此可通用于以上两类器件的测试中。
上述三种方法各有优点,在实际应用中可配合使用。地址奇偶性图形测试最为方便高效,因为在写入图形过程中每次只改变一位地址线,而且写入的是相反的数据,所以如果哪一位地址线出现短路立刻会被检查出来,使用该方法最适宜检验地址译码器的故障。齐步法适于用来检验多重地址选择与译码器的故障,并且可以检测写入时噪声对存储芯片特性的影响,它能保证正确的地址译码和每个存储单元存储“1”和“0”信息的能力。在大多数生产测试中,联合使用这两种方法可以判别出FLASH绝大多数的故障。当然,各个厂家生产的芯片在结构和工艺上有一定区别,因此出现各种错误的概率也不同,可以根据实际情况调整方法。由于设计问题,有些芯片还有可能出现其他一些不太常见的错误,这就需要进行更详尽的测试,这时使用移动变反测试法就比较合适。这种方法可以很好地测试芯片的动态错误,并且可根据具体需要详细展开测试或简化测试,对于产品性能分析十分有效。
在具体程序设计时,为简化算法执行,可以将读取产品型号、调用读写命令的语句作为子程序存储在测试仪中,每次需要时都可以无缝调用。
在测试过程中,最耗费时间的是程序擦除操作,一次擦除往往就需要几秒,其解决办法是将擦除工序单独处理。在实际应用中,可使用两台测试仪,其中,在擦除时几个芯片并行运行。这样,一台设备用于读、写、测试,另一台设备用于擦除数据,就可以有效地形成流水线操作,大大节省测试时间。此外,将几种方法综合使用,还有助于提高故障覆盖率。
5.实验结果
根据上述思想,我们在国产BC3192的测试系统平台[7][8]上,对AMD公司的NOR型FLASH——Am29LV400B及三星公司的NAND型FLASH——9F5608UOB都进行了测试。实验表明,和传统的以棋盘格为基础的测试图形[1]相比,奇偶校验法、齐步法和移动变反法产生的测试图形故障覆盖率更高,这些算法由于最多只有两次芯片擦除操作,所以测试时间完全能符合工程测试需要,其中,移动变反法没有擦除操作,所以测试速度最快。在实验中,我们采用上述三种方法中任意一种,按照流水的方法测试,在相同故障覆盖率下,都可以使测试效率可提高40%以上。
6.结论
本文是在传统存储器测试理论基础上对FLASH测试的尝试,该方法保留了传统方法的优点,较好地解决了FLASH存储器测试的困难。该方法方便快捷,流程简单,所有测试图形都可以事先生成,这样就可以直接加载到测试仪中,有利于直接应用于测试仪进行生产测试。
关于FLASH存储器,电子元器件资料就介绍完了,您有什么想法可以联系小编。