一种在片上系统中实现NandFlash控制器的方法.docx
文本预览下载声明
PAGE 1
PAGE 1
一种在片上系统中实现NandFlash控制器的方法
摘要:Nand Flash以其优越的特性和更高的性价比,在现代数码产品中得到了广泛的应用。在片上系统芯片中集成Nand Flash掌握器成为一种趋势。本文提出了在一款基于ARM7TDMI CPU CORE的片上系统( SoC)芯片中的Nand Flash掌握器实现方案。通过直接内存存取(DMA)的数据传输方式,使Nand Flash的数据传输速率得到了肯定提高,满意了实际应用的设计要求。该设计方法已通过了RTL级验证、FGPA验证,并在实际芯片的演示样机上得到了详细实现。关键词:片上系统;Nand Flash;直接内存存取1 引 言Flash由于具有非易失性及可擦除性在数码相机、手机、个人数字助理( PDA)、掌上电脑、MP3播放器等手持设备中得到广泛的应用。自1989年东芝公司发表了Nand Flash结构以来, Nand Flash以其相对于Nor Flash具有更小的体积,更快的写入和擦除速度,更多次的可擦除次数,以及更低廉的每bit价格得到了快速进展。大容量的Nand Flash特殊适合现在数码设备中大数据量的存储携带,可以降低成本,提高性能。ARM7TDMI是世界上广泛使用的32位嵌入式RISC低端处理器内核,在基于ARM7TDMI内核的SoC( System on Chip )芯片中集成Nand Flash掌握器将大大扩宽芯片应用范围、降低芯片成本、提升产品性能。但是,Nand型闪存的使用相对于Nor型闪存在硬件设计和软件掌握上都有相当的难度,值得在技术上进一步探究和讨论。2 Nand Flash的结构特点对其读写的限制笔者选用的Nand Flash是东芝TC58512FT(见图1) ,该款的Nand Flash 以528个byte 组成一个页(page) , 32个页组成一个块( block) ,由4096个块组成整个Flash存储器。在每页中前512bytes是用于存储数据,而后16bytes则用于存放ECC数据校验码,称为OOB(Out of Bank)区。对Nand Flash读出和写入是以页为单位,而对其擦除则是以块为单位,在存储组织上和硬盘采纳的方式类似。在读出和写入时数据量都必需是页大小的整数倍,这一点上和NorFlash可以随机读写的方式完全不同,但对于大数据量的读写而言这正是Nand Flash其优点的体现。基于Nand Flash特别的组织结构,在设计时考虑了一种适合其读写按单位大小特点的传输方式,即利用DMA(DirectMemory Access)方式,每次读写配置DMA通道,使传输一整页的数据量。在传输过程中, DMA 模块占用总线,传输完成后,释放总线。由于DMA地数据传输效率要高于CPU CORE通过直接向Flash发送指令然后读写Nand Flash I/O口数据,所以这样的设计有利于提高读写速度,从而提高Nand Flash掌握器性能。图1 TC58512FT 512M-bit Nand Fla sh组织结构图3 Nand Flash掌握器的结构和工作流程如图2所示,Nand Flash掌握器和DMA掌握器(DMAC) 都是AMBA (ARM 总线标准) 高速总线AHB上的master模块,都包含符合AMBA标准的总线接口模块与之交互工作。图2 Nand Flash掌握器和DMA模块组织结构图Nand Flash掌握器包含总线接口模块,掌握状态机转换的状态掌握模块,用以缓冲数据、收发命令和状态字的寄存器组,供应ECC校验纠错码的ECC算法编程/解码器模块和直接掌握“裸”Nand Flash体的接口模块。总线接口模块负责接受ARM CORE(CPU核)发送的指令,将收发数据送至相应数据寄存器和指令寄存器,并将状态寄存器内容返回给CORE。寄存器组负责整个Flash掌握器的掌握工作,包含指令、状态、数据、错误地址寄存器等等,是掌握器的。ECC算法编程/解码器模块供应校验功能,供应纠错信息。状态掌握模块供应包括命令字发送状态组、地址发送状态组、读状态组、写状态组共21种Nand Flash状态的翻转,用以发出对Nand flash读写掌握信号。与Nand Flash直接连接的接口模块供应Nand Flash体工作电压、使能和动作时所需的相应的电平状态,例如图3所示读时序要求。该模块受到状态机掌握模块的掌握。该掌握器对电平的掌握 简化了软件工作,驱动软件不必再根据读写时序配置繁琐的掌握电平。图3 Nand Flash读时序图 以从Nand Flash中读取一页数据块到内存首地址0例,分析该掌握器的工作过程。首先,由
显示全部