fuzidage
专注嵌入式、linux驱动 、arm裸机研究

导航

 

1.nandflash的原理图如下:

引脚属性见下表:

引脚名称 引脚功能
IO0~IO7 数据输入输出(命令、地址、数据共用数据总线)
CLE 命令使能
ALE 地址使能
/CE 芯片使能(片选)
/RE 读使能
/WE 写使能
R/B 就绪/忙输出信号(低电平表示操作还在进行中,高电平表示操作完成)

2.nandflash内部存储结构

nandflash内部存储结构如下:

我们常见的Nand Flash,内部只有一个chip,每个chip只有一个plane。但也有些复杂的,容量更大的Nand Flash,内部有多个chip,每个chip有多个plane,这类的Nand Flash,其实就是多了一个主控将多块flash叠加在一起,如下图:

2.1 Block块

一个Nand Flash由很多个块(Block)组成,块的大小一般有64K,128KB,256KB,512KB,Block是Nand Flash的擦除操作的基本/最小单位。Nand Flash中,一个块中含有1个或多个位是坏的,就称为其为坏块Bad Block

2.2 Page页

每个块里面又包含了很多页(page)。每个页的大小,对于现在常见的Nand Flash多数是2KB,当然也有的nand flash的页大小为4KB、8KB等。页Page,是读写操作的基本单位

2.3. oob ( Spare Area)

每一个page页,对应还附加了一块区域,一般为64byte,叫做空闲区域(spare area)/oob区域(Out Of Band),由于nandflash在操作过程中容易产生位反转,这是nandflash的物理特性决定的,所以必须要有对应的检测和纠错机制,这种机制被叫做Error Checking and Correcting,所以设计了多余的oob区域,用于放置数据的校验值。oob的读写操作,一般是随着页的操作一起完成的,即读写页的时候,对应地就读写了oob。
关于oob具体用途,总结起来有:

标记是否是坏快
存储ECC数据
存储一些和文件系统相关的数据。如jffs2就会用到这些空间存储一些特定信息,

总结:一般情况下:1block = 64page = 64 * (2K+64B) = 128K + 4K

3.特性(以K9F2G08U0C为例)

  • 可以看出此款nandflash容量为256M,外加8M的冗余oob存储区。
  • page大小为2K,block大小为128K
  • 读一个page时顺序读取至少25*2048ns(数据可以每字节25ns的循环时间读出),随机读取不超过40us
  • 写一个page一般为250us
  • 擦除一个block一般为2ms
  • 封装上分为TSOP分装和FBGA封装(TSOP是指引脚在侧面,FBGA是引脚封在芯片底部,更能保障数据安全,有些客户为了保障数据安全性,防止被飞线进行数据破解,会要求用FBGA封装的flash)

4.常见的flash厂商

常见的flash厂商有:Micron(镁光)、Toshiba(东芝)、Samsung(三星)、MXIC(旺宏)、dosilicon(东芯),(Winbond)华邦、ESMT等。

posted on 2020-05-26 15:59  fuzidage  阅读(954)  评论(0编辑  收藏  举报