欢迎来到天天文库
浏览记录
ID:38217977
大小:349.09 KB
页数:10页
时间:2019-06-07
《NAND的资料整理(通俗易懂)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NAND的资料整理(通俗易懂)K9F2G08U0A的一页为(2K+64)字节(加号前面的2K表示的是main区容量,加号后面的64表示的是spare区容量),它的一块为64页,而整个设备包括了2048个块。这样算下来一共有2112M位容量,如果只算main区容量则有256M字节(即256M×8位)。要实现用8个IO口来要访问这么大的容量,K9F2G08U0A规定了用5个周期来实现。第一个周期访问的地址为A0~A7;第二个周期访问的地址为A8~A11,它作用在IO0~IO3上,而此时IO4~IO7必须为低电平;第三个周期访问的地址为A12~A19;第四个周期访问的地址为A20~
2、A27;第五个周期访问的地址为A28,它作用在IO0上,而此时IO1~IO7必须为低电平。前两个周期传输的是列地址,后三个周期传输的是行地址。通过分析可知,列地址是用于寻址页内空间,行地址用于寻址页,如果要直接访问块,则需要从地址A18开始。 (2的12次方是4096,并不是2048,这是为什么?个人理解:为了兼容以后更大的NAND,NAND的地址序列可以把“列地址的长度”预留出来,虽说送的是A0-A7,A8-A11,实际取得是A0-A7,A8-A10;(页内地址空间))··········一共是2048*64=131072页,2的17次方 由于所有
3、的命令、地址和数据全部从8位IO口传输,所以nandflash定义了一个命令集来完成各种操作。有的操作只需要一个命令(即一个周期)即可,而有的操作则需要两个命令(即两个周期)来实现。下面的宏定义为K9F2G08U0A的常用命令:#defineCMD_READ1 0x00 //页读命令周期1#defineCMD_READ2 0x30 //页读命令周期2#defineCMD_READID 0x90 //读ID命令#defin
4、eCMD_WRITE1 0x80 //页写命令周期1#defineCMD_WRITE2 0x10 //页写命令周期2#defineCMD_ERASE1 0x60 //块擦除命令周期1#defineCMD_ERASE2 0xd0 //块擦除命令周期2#defineCMD_STATUS 0x70 //读状态命令#defineCMD_
5、RESET 0xff //复位#defineCMD_RANDOMREAD1 0x05 //随意读命令周期1#defineCMD_RANDOMREAD2 0xE0 //随意读命令周期2#defineCMD_RANDOMWRITE 0x85 //随意写命令在这里,随意读命令和随意写命令可以实现在一页内任意地址地读写。读状态命令可以实现读取设备内的状态寄存器,通过该命令可以获知写操作或擦除操作是否完成(判断第6位),以及是否成功完成(判断第0位)。在网上找
6、了一些资料,又结合自己的经历谈一下我对NANDFlash的了解。S3C2440板的NandFlash支持由两部分组成:NandFlash控制器(集成在S3C2440CPU)和NandFlash存储芯片(K9F1208U0B)两大部分组成。当要访问NandFlash中的数据时,必须通过NandFlash控制器发送命令才能完成。所以,NandFlash相当于S3C2440的一个外设,而不位于它的内存地址区. NANDFlash的数据是以bit的方式保存在memorycell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bitline,形成所
7、谓的byte(x8)/word(x16),这就是NANDDevice的位宽。这些Line会再组成Page.Nand Flash 有多种结构,我使用的Nand Flash 是K9F1208,下面内容针对三星的K9F1208U0M,数据存储容量为64MB ,采用块页式存储管理。一共有4096个block(块),每个block有32个page(页),每个page有 528Byte。 1block = 32page, 1page=528byte=512byte(Main Area)+16byte(Spare A
此文档下载收益归作者所有