NAND Flash的驱动程序设计 NAND Flash的驱动程序设计 摘要 以三星公司K9F2808UOB为例,设计了NAND Flash与S3C2410的接口电路,介绍了NAND Flash在ARM嵌入式系统中的设计与实现方法,并在UBoot上进行了验证。所设计的驱动易 于移植,可简化嵌入式系统开发。 关键词 ARM UBoot NAND Flash K9F2808UOB 驱动程序 引言 当前各类嵌入式系统开发设计中,存储模块设计是不可或缺的重要方面。NOR和 NAND是目前市场上两种主要的非易失闪存技术。NOR Flash存储器的容量较小、写入速度较慢,但因其随机读取速度快,因此在嵌入式系统中 ,常用于程序代码的存储。与NOR相比,NAND闪存的优点是容量大,但其速度较慢,因为它 的I/O端口只有8或16个,要完成地址和数据的传输就必须让这些信号轮流传送。NAND型F lash具有极高的单元密度,容量可以比较大,价格相对便宜。 本文以三星公司的 K9F2808UOB芯片为例,介绍了NAND Flash的接口电路与驱动的设计方法。文中介绍了开发NAND Flash驱动基本原理,意在简化嵌入式系统开发过程。 1 NAND Flash工作原理 S3C2410板的NAND Flash支持由两部分组成:集成在S3C2410 CPU上的NAND Flash控制器 和NAND Flash存储芯片。要访问NAND Flash中的数据,必须通过NAND Flash控制器发送命令才能完成。所以, NAND Flash相当于S3C2410的一个外设,并不位于它的内存地址区。 1.1 芯片内部存储布局及存储操作特点 一片NAND Flash为一个设备, 其数据存储分层为:1设备=4 096块;1块=32页;1页=528字节=数据块大小(512字节)+OOB块大小(16字节)。在每一页中 ,最后16……