APP下载

一种通用的NAND Flash参数识别方法

2011-04-23刘桂英

电子科技 2011年6期
关键词:数据位流程图总数

刘桂英

(湛江师范学院信息科学与技术学院,广东湛江 524048)

NAND Flash具有容量大、改写速度快、价格低廉等优点,得到了广泛应用,而且NAND Flash更新换代速度快。面对市面上不断推出的各种新款NAND Flash,如何从一个未知参数的NAND Flash芯片中获得相应的参数,以便一般实验室和爱好者研究和使用。本文介绍了一种通用的识别NAND Flash未知参数方法。

1 NAND Flash的参数识别流程

对于 NAND Flash中,基本参数为 Page大小,Spare区大小,Block数目,每个 Block中 Page的数量[1]。

确定Page大小和Spare区大小。NAND Flash的参数识别可以分为6个步骤:

(1)调节NAND Flash控制器Timing,将速度调慢,使得所有NAND Flash的Timing都能满足。

(2)识别NAND Flash的数据位宽。

(3)识别Page大小和Spare区大小。

(4)识别每个Block中包含多少个Page。

(5)识别NAND Flash包含的Block总数。

(6)不断调整速度测试,查找该NAND Flash比较稳定的高速频率。

1.1 设置慢速Timing

每个NAND Flash都有其最小Timing间隔,如图 1所示[2]。

图1 NAND Flash的最小Timing间隔示意图

NAND Flash一般只限定最小时间,没有限定最大时间,所以当各部分Timing设置为一个较大值时,比如100 kbit·s-1的速率,基本能满足所有 NAND Flash的要求,即一个通用的频率。

当然这个速度相对于NAND Flash所能承受的最大速度而言较慢,只是为下一步探索所有NAND Flash的通用参数作准备,这里不要求效率,只要满足兼容所有NAND Flash即可。

1.2 识别NAND Flash数据位宽

目前 NAND Flash数据位宽有:8 bit和16 bit两种。

这两个数据位宽的NAND Flash,都符合ONFI标准,惟一不用的是数据宽度,一个数据Clock分别接收或发送8 bit和16 bit,对于速度要求较高的应用可以选用 16 bit[3-6]。

图2 识别流程图

1.3 识别Page大小和Spare区大小

随着NAND Flash容量不断增大,NAND Flash的page大小规格也不断变化。上一代产品page大小为512 Byte。现在市场主流NAND Flash的page大小为2048 Byte,4096 Byte,市场最新的产品已出现page大小为8192 Byte。最后可以看到NAND Flash page大小规格有:512 Byte,2048 Byte,4096 Byte,8192 Byte,…。从NAND Flash发展规律可以看出,由2048以后都是倍数地增长,可以利用这个规律,不断地进行读写对比测试,获得最终结果,所以识别page大小的方法如图3所示。

相比之前,Spare区的大小规律性不强,收集到目前市场上NAND Flash的Spare区规格有16 Byte,64 Byte,128 Byte,218 Byte,224 Byte,…。虽然单从这些数字来看没有规律,实际上是有规则的。发现这样的搭配,当Page大小为512 Byte的NAND Flash,它的Spare区必定为16 Byte,Page大小为2048 Byte的芯片,Spare区的大小为64 Byte,但当Page大小为4 kB或者8 kB时,规律则不明显,不同厂家不同型号Spare区大小都可能不同,最后得出如图4所示的Spare区大小判断方法。

图3 识别Page大小的方法

图4 Spare区大小判断方法

1.4 识别每个Block里包含Page的数量

NAND Flash是以Block为擦除单位,即擦除即擦除了一个Block中所示Page的信息。这也是Linux mtd,Wince和各种NAND Flash驱动的必须参数之一。这个参数比较有规律,一般为 32,64,128,256,512,…。采用读写对比方法最终确定大小,方法流程如图5所示。

1.5 识别整个NAND Block总数

这个参数决定了NAND Flash的容量大小,判断NAND Flash Block总数中,有一个技巧就是当读写时Block号大于NAND Flash本身的Block个数时,它会忽略超出的高位部分,只取偏移。所以可以利用这个特性,不断累加Block,直到溢出为止,详细的流程如图6中所示。

图5 方法流程图

图6 识别整个NAND Block总数流程图

1.6 速度测试

速度测试常用方法是从大到小不断递增地配置速度,然后读写对比,这样即可获得最大速度。

2 实验结果

分别抽取了9个NAND Flash测试,表1为实验的识别结果。

表1 实验的识别结果

实验结果表明,实验准确率为100%,这个通用的识别方法不仅识别信息全,而且准确。

3 结束语

介绍了一个通用的NAND Flash参数识别方法,通过这种方法,可以获取有用的NAND Flash信息,进而可以在没有芯片资料的条件下不受约束,顺利地操作各种NAND Flash。

[1] The Open NAND Flash Interface Warking Group.Open NAND flash interface specification v2.0[S].USA:The Open NAND Flash Interface Warking Group,2006.

[2] Intel Conpration.Intel MD332B NAND Flash Memory Specification[M].Norway:Intel Conpration,2009.

[3] KirK Zurell.嵌入式系统的C程序设计[M].艾克武,张剑波,艾克文,译.北京:机械工业出版社,2002.

[4] 蔡浩.一种NAND Flash自启动的新方法[J].现代电子技术,2007(8):184-151.

[5] 刘思平,陈利学.基于 FPGA的 NAND Flash控制器[J].现代电子技术,2007(9):141-142.

[6] 夏涛.基于ARM9内核Processor对外部NAND Flash的控制实现[J].现代电子技术,2007(11):193-195.

猜你喜欢

数据位流程图总数
A320飞机大气数据的采集和计算在排故中的应用
◆我国“三品一标”产品总数超12万个
哈哈王国来了个小怪物
微弱GPS信号避开比特跳变的捕获算法
“一半”与“总数”
一种适用于FPGA系统中的变速箱电路设计
专利申请审批流程图
专利申请审批流程图
减少调度自动化设备通讯串口丢包率的措施
宁海县村级权力清单36条