专栏中心

EEPW首页 > 专栏 > Nand Flash存储结构及控制方法(K9F1G08)

Nand Flash存储结构及控制方法(K9F1G08)

发布人:hong60104 时间:2011-10-10 来源:工程师 发布文章
Nand Flash存储结构及控制方法(K9F1G08)  

 

 
 

一、NAND Flash介绍和NAND Flash控制器的使用
NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘
常见的Flash有NOR Flash和NAND Flash,NOR Flash上进行读取的效率非常高,但是擦除和写操作的效率很低,容量一般比较小;NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般NOR Flash用于存储程序,NAND Flash用于存储数据。
1)NAND Flash的物理结构
笔者用的开发板上NAND Flash型号是K9F1G08,大小为128M,下图为它的封装和外部引脚

Nand Flash存储结构及控制方法(K9F1G08) - cyan - cyan的博客

I/O0-I/O7        数据输入/输出
CLE        命令锁存使能
ALE        地址锁存使能
CE        芯片使能
RE        读使能
WE        写使能
WP        写保护
R/B        就绪/忙输出信号
Vcc        电源
Vss        地
N.C        不接
 
K9F1G08功能结构图如下
 Nand Flash存储结构及控制方法(K9F1G08) - cyan - cyan的博客

K9F1G08内部结构有下面一些功能部件
①X-Buffers Latches & Decoders:用于行地址
②Y-Buffers Latches & Decoders:用于列地址
③Command Register:用于命令字
④Control Logic & High Voltage Generator:控制逻辑及产生Flash所需高压
⑤Nand Flash Array:存储部件
⑥Data Register & S/A:数据寄存器,读、写页时,数据存放此寄存器
⑦Y-Gating
⑧I/O Buffers & Latches
⑨Global Buffers
⑩Output Driver
NAND Flash 存储单元组织结构图如下:
Nand Flash存储结构及控制方法(K9F1G08) - cyan - cyan的博客

K9F1G08容量为1056Mbit,分为65536行(页)、2112列,每一页大小为2kb,外加64字节的额外空间,这64字节的额外空间的列地址为2048-2111
命令、地址、数据都通过IO0-IO7输入/输出,写入命令、地址或数据时,需要将WE、CE信号同时拉低,数据在WE信号的上升沿被NAND FLash锁存;命令锁存信号CLE、地址锁存信号ALE用来分辨、锁存命令或地址。
K9F1G08有128MB的存储空间,需要27位地址,以字节为单位访问Flash时,需要4个地址序列
 
2)NAND Flash访问方法
NAND Flash硬件连接如下图:

Nand Flash存储结构及控制方法(K9F1G08) - cyan - cyan的博客

 NAND Flash和S3C2440的连线包括,8个IO引脚,5个使能信号(nWE、ALE、CLE、nCE、nRE)、1个状态引脚(R/B)、1个写保护引脚(nWP)。地址、数据和命令都是在这些使能信号的配合下,通过8个IO引脚传输。写地址、数据、命令时,nCE、nWE信号必须为低电平,它们在nWE信号的上升沿被锁存。命令锁存使能信号CLE和地址锁存使能信号ALE用来区别IO引脚上传输的是命令还是地址。
 
命令字及操作方法
        操作NAND Flash时,先传输命令,然后传输地址,最后读写数据,这个期间要检查Flash的状态。K9F1G08容量为128MB,需要一个27位的地址,发出命令后,后面要紧跟着4个地址序列。
下图为K9F1G08的命令字

Nand Flash存储结构及控制方法(K9F1G08) - cyan - cyan的博客

下图为K9F1G08的地址序列

Nand Flash存储结构及控制方法(K9F1G08) - cyan - cyan的博客

K9F1G08有2112列,所以必须使用A0-A11共12位来寻址,有65535行,所以必须使用A12-A27共16位来寻址。
 
3)S3C2440 NAND Flash控制器介绍
NAND Flash的读写操作次序如下:
①设置NFCONF配置NAND Flash
②向NFCMD寄存器写入命令
③向NFADDR寄存器写入地址
④读写数据:通过寄存器NFSTAT检测NAND Flash的状态,在启动某个操作后,应该检测R/nB信号以确定该操作是否完成、是否成功。
 
下面介绍这些寄存器:
①NFCONF:配置寄存器
        用来设置NAND Flash的时序参数,设置数据位宽,设置是否支持其他大小的页等。
②NFCONT:控制寄存器
        用来使能NAND Flash控制器、使能控制引脚信号nFCE、初始化ECC,锁定NAND Flash等功能
③NFCMD:命令寄存器
        用来发送Flash操作命令
④NFADDR:地址寄存器
        用来向Flash发送地址信号
⑤NFDATA:数据寄存器
        读写此寄存器启动对NAND Flash的读写数据操作
⑥NFSTAT:状态寄存器
        0:busy,1:ready
 
二、NAND Flash控制器操作实例:读Flash
1)读NAND Flash的步骤
①设置NFCONF
        在HCLK=100Mhz的情况下,TACLS=0,TWRPH0=3,TWRPH1=0,则
        NFCONF = 0x300
        使能NAND Flash控制器、禁止控制引脚信号nFCE,初始化ECC
        NFCONT = (1<<4) | (1<<1) | (1<<0)
②操作NAND Flash前,复位
        NFCONT &= ~(1<<1)        发出片选信号
        NFCMD = 0xff        reset命令
        然后循环查询NFSTAT位0,直到等于1,处于就绪态
        最后禁止片选信号,在实际使用时再使能
        NFCONT |= 0x2        禁止NAND Flash
③发出读命令
        NFCONT &= ~(1<<1)        发出片选信号
        NFCMD = 0        读命令
④发出地址信号
⑤循环查询NFSTAT,直到等于1
⑥连续读NFDATA寄存器,得到一页数据
⑦最后禁止NAND Flash片选信号
        NFCONT |= (1<<1)

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

用一个FPGA实现多个工业以太网协议

视频 2009-09-24

如何在数in2组成430W均流输出

视频 2010-07-19

黄仁勋:若被排除在中国AI市场之外将是“巨大的损失”

Yue Dong 设计的ZigBee计量解决方案

视频 2009-08-27

光程研创和采钰合作推出新世代硅基Metalens超颖透镜

最经典的看图工具ACDSee3.1

仅用一颗葡萄供电的微处理器

视频 2009-10-16

AI需求给力,AMD营收及指引超预期增长,盘后冲高回落

智能计算 2025-05-07

1,700V反激式DC-DC转换器的五种汽车用途

台积电2nm需求超所有其它制程!苹果、NVIDIA、AMD都想要

EDA/PCB 2025-05-07

阿联酋大学研发非侵入式血流监测 采压电传感器实现高精准度

1,000V 125A MEMS 继电器概念验证

字模,图像提取软件

制作LOGO和开机动画的工具(bitmap,主要用在MP3上)

TI DSP开发工具CCS上AET调试功能

视频 2009-10-16

直接总线连接的CMOS实时时钟_日历 msm6242b

英特尔宣布实现 MLPerf Client 0.6 基准测试首个全 NPU 支持

制作MP3的一个实例程序

资源下载 2007-03-20

用AI协助儿童听力检测 以深度学习姿势识别技术提升准确性

安森美公布 2025 年第一季度业绩

2025-05-07
更多 培训课堂
更多 焦点
更多 视频

技术专区