深度分析NandFlash—物理结构及地址传送(以TQ2440开发板上的K9F2G08U0A为例)

本文详细分析了三星K9F2G08U0A NandFlash的内部结构,包括Block和Page的组织形式,以及256M容量的分布。强调了NandFlash以页为最小读写单位,块为最小擦除单位。此外,还介绍了地址传输的过程,包括5-step addressing,通过实例展示了如何将物理地址转化为Nand Flash所需的格式。
摘要由CSDN通过智能技术生成

        K9F2G08U0A是三星公司生产的总容量为256M的NandFlash,常用于手持设备等消费电子产品。还是那句话,搞底层就得会看datasheet,我们就从它的datasheet看起。

    

 

        这就是 K9F2G08U0A的内部结构,具体的各个部件的介绍,就不详细介绍了,想了解的话可以参考伟东山的《嵌入式linux应用开发完全手册》。

      现在就看一下重点的,NandFlash的存储单元的组织结构,K9F2G08U0A的存储单元的组织结构如下:

结合上面的图,我们现在来分析一下:

      NandFlash的存储单元是由Block组成的,Block又是由Page组成的,数据就是存储在Page上。

   K9F2G08U0A的总容量是256M,由图可以看出,它一共有2048块,每一块有64页,每一页有(2K+64)Bytes。每一页又分为main区和spare区,2K就是指main区,64就是指spare区。

2K是指每一页上存放数据的有效空间,64是指每一页附加的空间,它不能用来存放我们写入的数据,它主要是用来存放ECC校验和坏块标记的信息数据。

      还有一个比较重要的知识就是对NandFlash的访问,你不会访问它,那你肯定不会用它!

    首先要明白NandFlash是以页(Page)为最小单位进行读写的,以块(Block)为最小单位进行擦除的,也就是说当我们给定了读取的起始位置后,读操作将从该位置开始,连续读取到本Page的最后一个 Byte为止(可以包括Spare Field)。

    在弄清楚怎么读写NandFlash之前,还有一个准备工作要做,那就是我们要告诉NandFlash,我要读写哪个地方的数据,如果我们不告诉它地址,那它就不知道我们到读哪些数据。那如何计算我们要传入的地址呢?以一个例子来说明

     K9F2G08U0A为例,此nand flash,一共有2048个块,每个块内有64页,每个页是

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值