文档详情

nand_flash驱动编写与移植.pdf

发布:2017-09-29约字共25页下载文档
文本预览下载声明
第七部分 Nand flash 驱动的编写与移植 1 Nand flash 工作原理 S3C2410 板的 Nand Flash 支持由两部分组成:Nand Flash 控制器(集成在 S3C2410 CPU)和 Nand Flash 存储 芯片(K9F1208U0B)两大部分组成 。当要访问Nand Flash 中的数据时,必须通过 Nand Flash控制器发送命 令才能完成 。所以 , Nand Flash相当于S3C2410 的一个外设 ,而不位于它的内存地址区 . 1.1 Nand flash 芯片工作原理 Nand flash 芯片型号为 Samsung K9F1208U0B,数据存储容量为 64MB ,采用块页式存储管理 。8 个I/O 引脚充当数据、地址 、命令的复用端口。 1.1.1 芯片内部存储布局及存储操作特点 一片 Nand flash 为一个设备(device), 其数据存储分层为: 1 设备(Device) = 4096 块(Blocks) 1 块(Block) = 32 页/ (Pages/rows) ;页与 是相同的意思,叫法不一样 1 块(Page) = 528 字节(Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes) 在每一页中,最后 16 个字节 (又称OOB)用于Nand Flash 命令执行完后设置状态用,剩余512 个字节又 分为前半部分和后半部分 。可以通过 Nand Flash 命令 00h/01h/50h 分别对前半部 、后半部 、OOB 进行定位通过 Nand Flash 内置的指针指向各自的首地址 。 存储操作特点: 1. 擦除操作的最小单位是块。 2. Nand Flash 芯片每一位(bit)只能从1 变为 0 ,而不能从0 变为 1,所以在对其进行写入操作之前要一定将相应 块擦除(擦除即是将相应块得位全部变为 1). 3. OOB 部分的第六字节(即517 字节)标志是否是坏块,如果不是坏块该值为FF ,否则为坏块。 4. 除OOB 第六字节外,通常至少把 OOB 的前3 个字节存放Nand Flash 硬件 ECC 码(关于硬件 ECC 码请参看 Nandflash 控制器一节). 1.1.2 重要芯片引脚功能 I/O0­I/O7 :复用引脚 。可以通过它向nand flash 芯片输入数据、地址 、nand flash 命令以及输出数据和操作 状态信息 。 CLE(Command Latch Enable): 命令锁存允许 ALE(Address Lactch Enable): 地址锁存允许 ­CE: 芯片选择 ­RE: 读允许 ­WE: 写允许 ­WP: 在写或擦除期间,提供写保护 R/­B: 读/忙输出 1.1.3 寻址方式 Samsung K9F1208U0B Nand Flash 片内寻址采用 26 位地址形式 。从第 0 位开始分四次通过 I/O0 -I/O7 进 传送,并进行片内寻址。具体含义如下: 0 -7 位:字节在上半部 、下半部及 OOB 内的偏移地址 8 位:值为0 代表对一页内前256 个字节进行寻址 值为 1 代表对一页内后256 个字节进行寻址 9 -13 位:对页进行寻址 14-25 位:对块进行寻址 当传送地址时,从位0 开始 1.1.4 Nand flash 主要内设命令详细介绍 Nand Flash 命令执 是通过将命令字送到 Nand Flash 控制器的命令寄存器来执 。 Nand Flash 的命令是分周期执行的,每条命令都有一个或多个执 周期,每个执 周期都有相映代码表示该周 期将要执行的动作 。 主要命令有:Read 1 、Read 2 、Read ID 、Reset 、Page Program 、Block Erase 、Read Status 。 详细介绍如下: 1. Read 1 : 功能:表示将要读取 Nand flash 存储空间中一个页的前半部分,并且将内置指针定位到前半部分的第一个字节。 命令代码:00h 2. Read 2 : 功能:表示将要读取 Nand flash 存储空间中一个页的后半部分,并且将内置指针定位到后半部分的第一个字节。 命令代码:01h 3. Read ID : 功能:读取 Nand flash 芯片的 ID 号
显示全部
相似文档