1 NAND FLASH
NAND写回速度快、芯片面积小,特别是大容量使其优势显着。页是NAND中的根本存贮单元,一页一般为512 B(也有2 kB每页的large page NAND FLASH),多个页面组成块。不同存储器内的块内页面数不尽相同,通常以16页或32页比较常见。块容量计算公式比较简略,便是页面容量与块内页面数的乘积。依据FLASH Memory容量巨细,不同存储器中的块、页巨细或许不同,块内页面数也不同。例如:8 MB存储器,页巨细常为512 B、块巨细为8 kB,块内页面数为16。而2 MB的存储器的页巨细为256 B、块巨细为4 kB,块内页面数也是16。NAND存储器由多个块串行摆放组成。实践上,NAND型的FLASHMemory可认为是次序读取的设备,他仅用8 b的I/O端口就能够存取按页为单位的数据。NAND在读和擦写文件、特别是接连的大文件时,速度适当快。
2 NAND FLASH与NOR FLASH比较
NOR的特点是可在芯片内履行,这样程序应该能够直接在FLASH内存内运转,不用再把代码读到体系RAM中。NOR的传输功率很高,但写入和读出速度较低。而NAND结构能供给极高的单元密度,而且写入和擦除的速度也很快,是高数据存储密度的最佳挑选。
这两种结构功能上的异同首要为:NOR的读速度比NAND快;NAND的写入速度比NOR快许多;NAND的擦除速度远比NOR快;NAND的擦除单元更小,相应的擦除电路也愈加简略;NAND的实践运用办法要比NOR杂乱得多;NOR能够直接运用,并在上面直接运转代码,而NAND需求I/O接口,因而运用时需求驱动程序。
3 NAND FLASH在体系中的操控
在没有NAND FLASH硬件接口的环境中,通过软体操控CPU时序和硬件特别接线办法完结仿真NANDFLASH接口,然后完结在嵌入式体系中脱离NANDFLASH专用硬件接口进行对NAND FLASH读、写、擦除等操作的完结办法。
本办法首要作业在以下两个方面:
软件方面:针对特别硬件线路的软体规划和严厉的CPU时序操控;
硬件方面:硬件的线路规划,运用NOR FLASH专用硬件接口操控NAND FLASH。
首要树立的开发渠道如图1所示。
本渠道运用Intel的PXA270 Processor,无内建NAND FLASH Controller,运用NOR FLASH Controller操控NAND FLASH,详细的线路衔接办法如图2所示。
NAND FLASH的I/O0~I/07引脚用于对FLASH发送操作指令和收发数据,ALE用于指示FLASH当时数据为地址信息,CLE用于指示当时数据为操作指令信息,当两者都无效时,为数据信息。CE引脚用于FLASH片选。RE和WE分别为FLASH读、写操控,R/B指示FLASH指令是否现已完结。逭里选用的是CE dont care的NAND FLASH。
NAND FLASH的读写操作以page办法进行,一次读写均为一个page,erase办法以block办法进行。这种办法,使其读写速度大大提高。
在时序方面,以读操作为例,其时序如图3所示。
操作过程首要分为以下几个过程:
(1)发送读操作指令
CE有用,CLE有用,WE有用,I/O0~I/O8上面数据为command代码数据。
(2)发送地址数据(需求读取的FLASH地址)
CE有用,ALE有用,WE有用,I/O0~I/O8上面为所需地址数据。因为地址数据较多,所以需求分几回顺次发送。每次发送都需求发生WE信号以将其写入NANDFLASH芯片。
(3)等候R/B信号,最终读出数据
在最终一个地址数据写入FLASH之后,R/B信号即变低。等候芯片完结整个page数据读取之后,R/B信号变高。此刻,CE有用,ALE,CLE均拉低,顺次发生RE信号,从I/O0~I/O8读取出所需数据。
关于写操作和擦除操作,其根本原理相同,仅仅信号次序略有改动,就不再赘述。
因为运用了CPU地址线A1,A2衔接CLE,ALE引脚,对CPU低2、3位地址的读写操作就意味着对NANDFLASH进行读写指令/数据操作。假如此程序作业在OS上的application层的话,MMU现已屏蔽程序对底层硬件的直接拜访,所以需求对MMU进行设定,为NANDFLASH拓荒一块。Memory映像区域,这样就能够通过OS对底层的NAND FLASH进行操作。以该体系为例,运用CPU的CS1引脚操控NAND FLASH的CE信号,先将其映像为0x24000000地址,此刻,对0x24000000地址读写即对NAND FLASH芯片进行数据读写,而对Ox24000002地址写数据,使CPU的A1地址引脚为高,即对NAND FLASH发送command指令,相同,对0x24000004地址写数据,即对NAND FLASH发送address数据。
在对NAND FLASH发送指令/数据之后,因为程序运转速度比FLASH芯片快许多,需求在每一次操作之后刺进若干等候周期,并运用CPU的GPIO检测芯片R/B信号。直至芯片完结本次操作再进行下一步操作。
需求留意的是,在对FLASH发送指令数据过程中的等候,没有反应信号能够检测,只能通过重复调试确认其所需等候时间。
在规划中选用CPU的CS1信号对NAND FLASH进行CE(片选)操控。此处不能选用CPU的GPIO进行操控,因为在嵌入式设备的ARMCPU中,CPU自身选用了指令、数据主动预读的高速缓存技能和流水线技能。因而,当程序在NOR FLASH里边直接运转的时分(现在绝大多数嵌入式体系选用的办法),在运转任何两段相连的代码中心,CPU都有或许对NOR FLASH进行指令或数据的预读操作,然后发生很多的RE,OE信号和地址信号。 假如运用GPIO操控NAND FLASH的CE信号则无法防止这种影响。CPU的CS1信号是由CPU内部主动发生,因而在CPU预读期间,CS1信号能够有用屏蔽NANDFLASH芯片。而且,因为NAND FLASH芯片支撑CEdont care形式,在CE无效的情况下,芯片自身的作业状况并不会被搅扰,由此确保了NOR FLASH和NANDFLASH在同一CPU界面中互不搅扰的安稳运转。关于CS1信号的宽度等参数,也需求在试验中进行调理,才干确保整个体系快速安稳的运转。
4 NAND FLASH在体系中的读写速度
通过测验在该体系渠道中,OS为Palm OS 5.4;CPU运用PXA270 312 MHz;SDRAM运用Samsung的16data width HYB25L256160AF-7.5@104 MHz;NANDFLASH选用Samsung 128 MB 8 b I/O NAND LASHK9F1G08U0A到达在文件体系下面的读/写的速度为3 MB/s,擦除的速度为65 MB/s,在手持式设备中运用功能现已够了。