初识Nand Flash

来源:互联网 发布:用户数据完整性保护 编辑:程序博客网 时间:2024/05/29 21:36

         Nand Flash在嵌入式中的地位和PC的硬盘类似,用于保存系统运行所需的操作系统、应用程序、用户数据、运行中所产生的各种数据,以内存不同,掉电后Nand Flash中的数据永久保存。

              常用的Flash有两种类型,Nand Flash和Nor Flash,Nor Flash支持XIP,即代码可以在Nor Flash上直接运行,无需复制到内存中,这是由于Nor Flash的接口与RAM完全相同,可以随机访问到任意地址的数据。在Nor Flash上读操作的效率非常高,但写操作和擦出操作效率很低,且容量较小,而Nand Flash的接口是I/O接口,没有单独的数据线和地址线,进行读写数据时需要复杂的时序,Nand Flash进行写和擦除操作的效率比较高,且容量较大,所以一般用于存储数据。


1、Nand Flash的物理结构




       命令,地址,数据都是通过8个I/O口输入输出,这种形式减少了芯片的引脚数,同时易于扩展容量。在读写数据时,通过各个锁存器和引脚的状态来区别是地址还是命令或是数据,所以时序复杂,不像Nor Flash。


2、Nand Flash的访问方法

Nand Flash的硬件连线:


Nand Flash与s3c2440的连线比较少:8个I/O引脚,5个使能信号(ALE、CLE、nCE、nRE、nWE),一个状态引脚(R/nB),一个写保护引脚(nWP),地址,数据,命令都是在这些引脚信号的配合下通过8个I/O引脚进行传输。写地址、命令、数据时,nCE,nWE必须是低电平,他们在nWE的上升沿被所存。命令使能所存信号CLE和地址所存信号ALE用来区分I/O上传输的是命令还是地址。


操作Nand Flash时,先传输命令,然后传输地址,最后读/写数据,期间要检查Flash的状态。

Nand Flash的操作次序如下:

1)设置NFCONF和NFCONT寄存器配置Nand Flash。

2)向NFCMD寄存器写入命令。

3)向NFADDR寄存器写入地址。

4)读/写数据:通过NFSTAT寄存器检测Nand Flash的状态,启动某个操作后,应该检测R/nB信号以确定该操作是否完成和成功。

Nand Flash的寄存器介绍:

1)NFCONF:Nand Flash的配置寄存器。

用来使能/禁止Nand Flash控制器、控制引脚信号nFCE,初始化ECC,设置Nand Flash的时序参数等。

2)NFCONT:Nand Flash控制寄存器

其功能和NFCONF类似。

3)NFCMD:Nand Flash的命令寄存器。

4)NFADDR:Nand Flash地址寄存器。

当写这个寄存器时,他将对Flash发出地址信息。

5)NFDATA:Nand Flash的数据寄存器。

只用到低8位,读写此寄存器将启动Nand Flash的读数据和写数据操作。

6)NFSTAT:Nand Flash状态寄存器。

只用到0位:0是busy  1是ready。


初始化Nand Flash:


读Nand Flash的函数:



可以看出,读Nand Flash的操作可分为6步:

1)选择芯片

2)发出读命令

3)发出地址

4)等待数据就绪

5)读取数据

6)结束后,取消片选信号。