在SOC 中实现Nand Flash 控制器的一种方法

来源:互联网 发布:虚拟社交网络利 编辑:程序博客网 时间:2024/05/17 04:36

在当今数字技术飞速发展的时代, Flash 因其非易失性及可擦除性而在数码相机、手机、个人数字助理(PDA )、掌上电脑、MP3 播放器等手持设备中得到广泛的使用。Nor 和Nand 是两种主要的非易失闪存技术。自1989 年东芝公司发表了Nand Flash 结构以来,Nand Flash 以其具有更小的体积, 更快的写入和擦除速度, 更多次的可擦除次数, 及更低廉的每bit 价格得到了迅速发展。大容量的Nand Flash 特别适合现在数码设备中大数据量的存储携带, 可以降低成本、提高性能。 ARM7TDMI 是国际上广泛使用的32 位嵌入式RISC 低端处理器, 若在基于ARM 7TDM I 内核的SOC 芯片中集成Nand Flash 控制器, 必将大大扩宽芯片应用范围、降低芯片成本、提升产品性能。但是,Nand 型闪存的使用相对于Nor 型闪存在硬件设计和软件控制上都有相当的难度, 值得从技术上做进一步探索和研究。
2 Nand Flash 控制器的组成和时序
     图2 是Nand Flash 控制器和DMA 模块的组成框图, 控制器(DMAC) 都是AMBA (ARM 总线标准) 高速总线AHB 上的m aster 模块, 都包含符合 AMBA 标准的总线接口模块与之交互工作。 Nand Flash 控制器包含总线接口模块, 控制状态机转换的状态控制模块, 用以缓冲数据、收发命令和状态字的寄存器组, 提供ECC 校验纠错码的 ECC 算法编程ö解码器模块和直接控制“裸”Nand Flash 体的接口模块。总线接口模块负责接受ARM CORE (CPU 核) 发送的指令, 将收发数据送至相应数据寄存器和指令寄存器, 并将状态寄存器内容返回给CORE。寄存器组负责整个Flash 控制器的控制工作, 包含指令、状态、数据、错误地址寄存器等等, 是控制器的核心。 ECC 算法编程ö解码器模块提供校验功能, 提供纠错信息。状态控制模块提供包括命令字发送状态组, 地址发送状态组, 读状态组, 写状态组共21 种Nand Flash 状态的翻转, 用以发出对Nand flash 读写控制信号。与Nand Flash 直接连接的接口模块提供 Nand Flash 体工作电压、使能和动作时所需的相应电平状态, 例如图3 所示的读时序要求, 该模块受到状态机控制模块的控制。该控制器对电平的控制简化了软件工作, 驱动软件不必再按照读写时序来配置繁琐的控制电平。
4 结束语
     本文提出了在一款片上系统(SOC) 芯片设计中的Nand Flash 控制器实现方案, 并介绍了在 Uclinux 下的驱动移植和应用。该设计方案已在成品芯片的演示样机的应用中得到证实, 具有相当的应用价值, 达到了预期设计效果。

原创粉丝点击