zoukankan      html  css  js  c++  java
  • s3c2440裸机-nandflash编程(一. nandflash原理及结构简介)

    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等。

  • 相关阅读:
    Log4php使用指南
    【JQuery】使用JQuery 合并两个 json 对象
    【前端】JS截取字符串常用方法详细整理
    【.Net】net 反射15分钟速成
    【.Net】win10 uwp unix timestamp 时间戳 转 DateTime
    【ASP.NET Core】ASP.NET Core 依赖注入
    【ASP.NET 框架系列】您所经历的,但未必研究的那些技术
    Visual Studio 中设置npm
    【数据库】SQL分组多列统计(GROUP BY后按条件分列统计)
    【数据库】同一字段根据不同条件更新的sql语句的写法
  • 原文地址:https://www.cnblogs.com/fuzidage/p/12966146.html
Copyright © 2011-2022 走看看