Nandflash参数探测方法

文档序号:6332338阅读:237来源:国知局
专利名称:Nandflash参数探测方法
技术领域
本发明涉及对存储介质的存储容量参数的探测方法,具体涉及一种NANDFLASH的参数探测方法。
背景技术
当前各类嵌入式系统开发设计中,存储模块是不可或缺的重要方面。flash存储器作为一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点。目前已经逐步取代其它半导体存储元件,成为嵌入式系统中数据和程序的主要载体。但市面上各种NANDFLASH的特性因厂商、工艺等的区别而大相径庭就主流厂商而言,有 Samsung、Hynix、Toshiba、Micron、ST、Intel 等;就单元级另ll而言,有 SLC(single level cell,单级单元)和MLC(multi level cell,多级单元)之分;就同一系列的
NANDFLASH而言,有M代、A代、B代......之分,如三星的K9G4G08X0M、K9G4G08X0A和
K9G4G08X0B ;当然除去上述几点,还有其他各种差异点。对采取NANDFLASH为存储器的嵌入式产品方案设计中,为了满足不同生产客户的实际要求,方案设计公司会提供方案支持的NANDFLASH支持列表,支持列表会详细列出所有支持的NANDFLASH参数。在具体的软件系统设计中,可以采取结构体数组的方式,存储所有支持NANDFLASH的参数。如下所示的结构体为对一款NANDFLASH基本参数的描述Typedef structNand_phy_info {τ__U32ChipId ;//chip id
τ__U16PageSize ;//page size
τ__U16PagesPerBlock ;//pages of one block
τ__U16BlockNum ;//total block number
τ__U8SpareSize ;//spare size}T_NAND_PHY_INF0其中ChipID 为 NANDFLASH 的 ID 号,PageSize 表示一个页的大小,PagesPerBlock 为一个 block 包含的 page 数目,BlockNum 为 NANDFLASH —个片选的 block 数,SpareSize 为一个页spare区域的大小。NANDFLASH种类繁多,参数各异,获取NANDFLASH的参数需要详尽阅读每个 NANDFLASH厂家每款NANDFLASH发布的芯片文档,工作量相当大,而若没有某款NANDFLASH 的datasheet时将无法使用该NANDFLASH。在实际的研发和生产过程中,由于生产厂家进货渠道的不同,可能采购到林林总总的NANDFLASH,有的可能没有相应的资料说明书(datasheet),有的可能表面被打磨后标识模糊不清。对于这种没有具体资料的“无名”NANDFLASH的使用,由于无法预知或获取其使用NANDFLASH的基本参数,成为了很多方案设计和生产厂家在使用和生产中的一道难题。本技术则可以根据NANDFLASH的特性,在没有NANDFLASH具体资料的情况下,仅通过对
4NANDFLASH进行一些基本操作(擦除、写数据和读数据),从而探测到其基本参数。

发明内容
本发明的目的在于提供一种NANDFLASH参数探测方法,本方法能够根据 NANDFLASH样片及其使用环境来自动获取NANDFLASH基本参数,而无需该NANDFLASH的资料说明书(datasheet) ο本发明的目的可通过以下的技术措施来实现一种NANDFLASH参数探测方法,其特征在于包括以下步骤(A)探测所述NANDFLASH中片选数量、所述每个片选中的块数量、所述每个块中页面数量和每个页面大小参数;(B)根据步骤(A)得到的片选数量、块数量、页面数量和页面大小参数计算所述 NANDFLASH的总容量参数。所述步骤㈧中页面大小参数的探测过程为(al)区分所述NANDFLASH的页面为大页或是小页,所述大页为I Bytes或者4K Bytes的页面大小参数,所述小页为512 Bytes的页面大小参数;如果为小页,则探测过程结束,否则进入步骤(a2);(a2)区分所述大页的页面大小参数为I Bytes或是4K Bytes。所述步骤(al)的区分大页和小页的过程为对所述NANDFLASH采取小页的 NANDFLASH的读取流程去读取数据,如果读取成功,则所述NANDFLASH的页面为小页,页面大小参数为512Bytes,否则,所述NANDFLASH的页面为大页。所述步骤(U)中区分I Bytes的页面数量和4K Bytes的页面大小参数的过程为(a21)在第一个块的首页偏移地址为0的位置开始写入4096Bytes的指定数据, 然后从写入位置去读取4096Bytes的数据;如果没有读取到的数据位4096Bytes的指定数据,则所述页面大小参数为I Bytes,结束本过程,否则进入步骤(a22);(a22)在第一个块的首页偏移为4096Bytes的位置写入256个值为0x5A的指定数据,然后从写入位置去读取128Bytes的数据,如果读取到的数据少于128Bytes大小,则所述页面大小参数为I Bytes,结束本过程,否则进入步骤(a23);(a23)在第一个块的首页偏移为2048Bytes的位置去写入64Bytes的指定数据,然后从写入位置读取128Bytes的指定数据,如果能够读取到64Bytes的指定数据,则所述页面大小参数为4K Bytes,否则所述页面大小参数为I Bytes。所述步骤(A)中页面数量的探测过程包括以下步骤(bl)如果所述NANDFLASH的页面为小页,则所述页面数量为32 ;(b2)如果所述NANDFLASH的页面为大页,则从可能的页面数量值中从小到大依次选取一个作为假定的页面数量值,并对所述假定的页面数量值所对应的下一个页面中写入指定数据,然后读取该页面,如果读取数据异常,则所述页面数量为所述假定的页面数量值,否则,如果能读取到指定数据,则选取下一个可能的页面数量值,并重复步骤(b2)。所述的可能的页面数量值为64乘以2的N次方,N的取值为0或自然数。所述步骤(A)中块数量的探测过程包括以下步骤
(cl)已知每个块中页面数量的前提下,将整个NANDFALSH的所有块的首页写入指定数据;(c2)从可能的块数量值中从小到大依次选取一个假定的块数量值,并读取所述假定的块数量值所对应的下一个块的首页数据,如果访问异常,则这个假定的块数量值即为所述块数量值,并结束本过程;否则,如果能读取到首页数据,则假定下一个可能的块数量值,并重复步骤(c2)。所述可能的块数量值为IOM乘以2的N次方,N的取值为0或自然数。所述步骤(A)中片选数目的探测过程为依次读取所述NANDFLASH的片选管脚 ID,根据读取到的合乎ID基本命名规则的合理ID号的个数确定所述NANDFLASH的片选数量。所述片选数量的大小即为读取到多少个合理ID号的数目。本发明方法具有以下有益效果本发明方法能够在没有任何其他参数资料的环境下,仅通过对NANDFALSH进行一些擦除、写数据和读数据的基本操作,即可探测到 NANDFALSH的总容量参数,同时可以精确到该NANDFALSH中具体包含多少个片选、多少个块、多少个页面,同时每个页面的具体大小参数都能够准确测得。


图1是某个NANDFLASH的物理存储组织结构示意图;图2是大页NANDFLASH的读取流程图;
图3是小页NANDFLASH的读取流程图;图4是本发明方法的区分I Bytes的页面数量和4K Bytes的页面大小参数的流程图。
具体实施例方式NANDFLASH作为一个存储器,其基本特征参数首先就是其容量大小,根据NANDFLASH的物理存储组织结构,其基本构成为页/块/总数块/片选。比如 SamsungK9F2G08U0M 这款 NANDFLASH 的组成如图 1 所示。从图1可以看到,对于NANDFLASH的存储单元组织结构中,该存储单元的一个片选 (Device)包含2048个块,每个块(Block)中有64个页(Page),每个页大小分为2K Bytes 和64Bytes,2KBytes可以称之为数据区,而64Bytes称之为Spare区,这里说的页大小均指其数据区的大小。本方法将详细阐述页大小(PageSize),一个块有多少个页O^agesPerBlock),一个片选有多少个块(BlockNum)和一片Nandflash有几个片选(ChipCnt)这四个参数的探测过程。Nandflash厂家在产品出厂时都会保证第一个块(BlockO)是好的,可以正常使用的块,因此在探测过程将选取第一个块作为探测实验的块。如无说明,下面描述的操作都是在第一个Wock(WockO)第一个page (pageO)上实验,而且写数据前均做擦除操作。图2至图4示出了本发明的NANDFLASH参数探测方法的具体流程,该方法包括以下步骤(A)探测所述NANDFLASH中片选数量、探测所述每个片选中的块数量、探测所述每个块中页面数量和每个页面大小参数;(B)根据步骤(A)得到的片选数量、块数量、页面数量和页面大小参数计算该 NANDFLASH的总容量参数。对于步骤㈧中的4个参数,具体的探测过程如下一、一片Nandflash有几个片选(ChipCnt),即片选数目的探测方法有三个1、一般厂家在购买Nandflash的时候,都已经知晓该类型Nandflash有几个片选;2,Nandflash 的型号,如 Samsung K9HCG08U1M 则是双片选的。不同 Nandflash 厂家都有自己的命名规则,具体要参考相应厂商的规格书;3、读取ID的探测方法,一般主控芯片会有若干个Nandflash片选管脚,可以依次连接到Nandflash器件上对应的片选管脚,观察能读到几个一致的合理ID。如主控芯片通过片选0和1都读到了 ID,则此片Nandflash有两个片选。即根据最后一个合理ID号确定 NANDFLASH的片选数量,片选数量的大小即为最后一个合理片选管脚ID号加1。二、页面大小参数的探测目前主流的 Nandflash 页大小分为512Bytes,2048Bytes QK Bytes), 4096Bytes(4K Bytes)。而根据其读取数据发送命令的不同,可以分为大页QK Bytes、 4KBytes)和小页(512Bytes)。如图2和图3分别为大页与小页nandflash读取数据发送命令流程。因此,页面大小参数的探测过程为(al)区分大页和小页,大页为I Bytes或者4 K Bytes的页面大小参数,具体过程为对NANDFLASH采取小页的NANDFLASH的读取流程去读取数据,如果读取成功,则说明 NANDFLASH的页面大小参数为512Bytes。由于现有技术中的大页的NANDFLASH读取流程如附图2所示,小页的NANDFLASH 的读取流程为如附图3所示,从两个图可以看出小页数据读取无需发送命令0x30,根据这个差别,对小页NANDFLASH只有按小页的流程才能读取成功,这样可以区分大页和小页。(a2)区分I Bytes的页面数量和4 K Bytes的页面大小参数。探测页大小为 2KBytes还是4K Bytes的原则在一个页中,若在一个页容量大小地址范围内,写入的数据能正确的读取出来,而超过其访问的地址读取的数据是不可靠的。对于页大小为观Bytes 的nandflash,其spare区大小为64Bytes,在一个页中访问地址范围为0到2112Bytes。而页大小为 4K Bytes 的nandflash,其 spare 大小有 128Bytes,192Bytes, 218Bytes, 224Bytes 等,但都落在[128,256)范围之内。下面讲述详细的探测过程(a21)页数据区正常原则因为如果页大小为4K Bytes, nandflash肯定能读取到4096Bytes写入的数据, 而若页大小为I Bytes,则可能因为读取异常也出现了读取到4096Bytes写入数据的现象,所以对结果一可确定页大小为观Bytes,对结果二则需要继续探测。因此,具体步骤是在pageO偏移地址为0的位置开始写入4096Bytes的指定数据,然后从写入位置去读取 4096Bytes的数据;如果没有读取到的数据位4096Bytes的指定数据,则页面大小参数为观 Bytes,结束本过程,否则进入步骤(b22);(a22) Spare 区正常原则
7
由于真实页大小为4K Bytes的nandflash其Spare区域的大小范围为[128, 256),而2K Bytes页大小的nandflash其Spare区域一定小于1 (事实上为64Bytes)。 因此,基于步骤A同样的原理,具体步骤是在pageO字节偏移为4096Bytes的位置写入256 个值为0x5A的指定数据,然后从写入位置去读取128Bytes的数据,如果读取到的数据少于 128Bytes大小,则页面大小参数为I Bytes,结束本过程,否则进入步骤(b23);(a23)折中搜索判断原则通过步骤(a21)和(a2》的探测以后,步骤(a2》没有确定页大小nandflash的特征全部的页大小为4K Bytes的nandflash和超过页容量地址读取数据异常的页大小为I Bytes的nandflash。这样如果写入范围在页大小为4K Bytes和I Bytes共有的范围内, 而读取时范围超过页大小为I Bytes的nandflash的页范围而不超过页大小为4K Bytes 的范围时,能正确地探测出页大小为4K Bytes的nandflash (因为它的读取必定正常)。因此,具体步骤是在PageO字节偏移为2048Bytes的位置去写入64Bytes的指定数据,然后从写入位置读取128Bytes的指定数据,如果能够读取到64Bytes的指定数据,则页面大小参数为4K Bytes,否则页面大小参数为I Bytes。综合步骤(a21)、(a22)、(a23),页大小为2K和4K Bytes的nandflash探测实验流程图如图4所示,其中PageO为为BlockO的首页。三、页面数量的探测探测大页nandflash值I^agesPerBlock的原则对于一个块如果写入的数据是在 I^gesPerBlock范围之内的页上面(这个块的页地址范围之内),这样的数据是可以正常读取(能读取数据,且数据是写入的值)。因此,页面数量的探测过程如下(bl)如果NANDFLASH的页面为小页,则页面数量为32 ;(b2)如果NANDFLASH的页面为大页,则从可能的页面数量值中从小到大依次选取一个作为假定的页面数量值,并对假定的页面数量值所对应的下一个页面中写入指定数据,然后读取该页面,如果读取数据异常,则页面数量为假定的页面数量值,否则,如果能读取到指定数据,则选取下一个可能的页面数量值,并重复步骤(b2)。可能的页面数量值为 64乘以2的N次方,N的取值为0或自然数。四、块数量的探测单个片选总数块的探测,首先必须清楚Nandflash的地址访问特征,Nandflash存储单元的访问分为Row地址和Column地址,Row地址对应访问整个nandflash中的页地址, 而Column对应访问一个页中的Byte地址,这样组成的一个矩阵使能访问到Nandflash的整个存储单元。如Samsung K9F2G08U0M的地址访问说明如下表所示
权利要求
1.一种NANDFLASH参数探测方法,其特征在于包括以下步骤(A)探测所述NANDFLASH中片选数量、所述每个片选中的块数量、所述每个块中页面数量和每个页面大小参数;(B)根据步骤㈧得到的片选数量、块数量、页面数量和页面大小参数计算所述 NANDFLASH的总容量参数。
2.根据权利要求1所述的NANDFLASH参数探测方法,其特征在于所述步骤(A)中页面大小参数的探测过程为(al)区分所述NANDFLASH的页面为大页或是小页,所述大页为I Bytes或者4 K Bytes的页面大小参数,所述小页为512Bytes的页面大小参数;如果为小页,则探测过程结束,否则进入步骤(a2);(a2)区分所述大页的页面大小参数为I Bytes或是4 K Bytes。
3.根据权利要求2所述的NANDFLASH参数探测方法,其特征在于所述步骤(al)的区分大页和小页的过程为对所述NANDFLASH采取小页的NANDFLASH的读取流程去读取数据,如果读取成功,则所述NANDFLASH的页面为小页,页面大小参数为512Bytes,否则,所述 NANDFLASH的页面为大页。
4.根据权利要求2所述的NANDFLASH参数探测方法,其特征在于所述步骤(^)中区分I Bytes的页面数量和4 K Bytes的页面大小参数的过程为(a21)在第一个块的首页偏移地址为0的位置开始写入4096Bytes的指定数据,然后从写入位置去读取4096Bytes的数据;如果没有读取到的数据位4096Bytes的指定数据,则所述页面大小参数为I Bytes,结束本过程,否则进入步骤(a22);(a22)在第一个块的首页偏移为4096Bytes的位置写入256个值为0x5A的指定数据, 然后从写入位置去读取128Bytes的数据,如果读取到的数据少于128Bytes大小,则所述页面大小参数为I Bytes,结束本过程,否则进入步骤(a23);(a23)在第一个块的首页偏移为2048Bytes的位置去写入64Bytes的指定数据,然后从写入位置读取128Bytes的指定数据,如果能够读取到64Bytes的指定数据,则所述页面大小参数为4K Bytes,否则所述页面大小参数为I Bytes。
5.根据权利要求1所述的NANDFLASH参数探测方法,其特征在于所述步骤(A)中页面数量的探测过程包括以下步骤(bl)如果所述NANDFLASH的页面为小页,则所述页面数量为32 ; (b2)如果所述NANDFLASH的页面为大页,则从可能的页面数量值中从小到大依次选取一个作为假定的页面数量值,并对所述假定的页面数量值所对应的下一个页面中写入指定数据,然后读取该页面,如果读取数据异常,则所述页面数量为所述假定的页面数量值,否则,如果能读取到指定数据,则选取下一个可能的页面数量值,并重复步骤(b2)。
6.根据权利要求5所述的NANDFLASH参数探测方法,其特征在于所述的可能的页面数量值为64乘以2的N次方,N的取值为0或自然数。
7.根据权利要求1所述的NANDFLASH参数探测方法,其特征在于所述步骤(A)中块数量的探测过程包括以下步骤(cl)已知每个块中页面数量的前提下,将整个NANDFALSH的所有块的首页写入指定数据;(c2)从可能的块数量值中从小到大依次选取一个假定的块数量值,并读取所述假定的块数量值所对应的下一个块的首页数据,如果访问异常,则这个假定的块数量值即为所述块数量值,并结束本过程;否则,如果能读取到首页数据,则假定下一个可能的块数量值,并重复步骤(c2)。
8.根据权利要求7所述的NANDFLASH参数探测方法,其特征在于所述可能的块数量值为IOM乘以2的N次方,N的取值为0或自然数。
9.根据权利要求1所述的NANDFLASH参数探测方法,其特征在于所述步骤(A)中片选数目的探测过程为依次读取所述NANDFLASH的片选管脚ID,根据读取到的合乎ID基本命名规则的合理ID号的个数确定所述NANDFLASH的片选数量。
10.根据权利要求9所述的NANDFLASH参数探测方法,其特征在于所述片选数量的大小即为读取到多少个合理ID号的数目。
全文摘要
本发明公开了一种NANDFLASH参数探测方法,包括以下步骤(A)探测所述NANDFLASH中片选数量、探测所述每个片选中的块数量、探测所述每个块中页面数量和每个页面大小参数;(B)根据步骤(A)得到的片选数量、块数量、页面数量和页面大小参数计算所述NANDFLASH的总容量参数。本方法能够根据NANDFLASH样片及其使用环境来自动获取NANDFLASH基本参数,而无需该NANDFLASH的资料说明书(datasheet)。
文档编号G06F12/06GK102402485SQ20101028686
公开日2012年4月4日 申请日期2010年9月16日 优先权日2010年9月16日
发明者姜迪辉, 易若翔, 胡胜发 申请人:安凯(广州)微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1