首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于VxWorks的NAND FLASH驱动程序设计 02

基于VxWorks的NAND FLASH驱动程序设计 02

  注:起始地址是列地址;L表示必须置为低电平
  对NAND FLASH的操作流程比较简单,即在第一个周期里送操作相关的命令字,然后送地址,以及相应的数据,最后送确认字。需要说明的是,由于地址、命令和数据都共用8个I/O管脚来进行传输,因此在硬件上必须要有专用的管脚来区分传输类型(在传输命令的时候,命令锁存使能信号CLE有效;在传输地址的时候,地址锁存使能信号ALE有效)。具体的命令字、时序和操作流程在K9F2G08Q0M的数据手册上有较详细的描述,在此不一一详述。
  2 PPC440epx的NAND FLASH接口
  AMCC公司的PPC440epx芯片是一款性能指标较高的嵌入式CPU芯片,其主频可以达到667 MHz,拥有DDR2接口,可支持千兆以太网,USB 2.0接口,支持浮点运算,同时还支持NAND FLASH芯片。
  PPC440epx使用一个NAND FLASH Controller作为外部NAND FLASH与其外部总线通信的接口电路,该控制器最多可以支持4个NAND FLASH芯片,每个芯片的容量可以为4~256 MB,每页的大小可以为512 B+16 B或者2 KB+64 B。NDFC(NANDFLASH Controller)的存在使得对NAND FLASH的操作变的非常简单。根据前面对K9F2G08Q0M的介绍可知,对NAND FLASH的操作需要在硬件上产生ALE,CLE信号来区分传输类型。NDFC给程序设计人员提供两种实现时序的方法:硬件实现,软件实现。如果是前者, NDFC提供了几个寄存器:命令寄存器、地址寄存器、数据寄存器、配置寄存器和状态寄存器。通过对这几个寄存器执行相应的读/写操作就可以产生相应的时序。例如,如果需要对NAND FLASH写命令字80H,则只需将80H写人命令寄存器即可。NDFC自动将80H送到I/O7~I/O0上,同时置CLE为有效状态。而软件实现方法是根据K9F2G08Q0M的时序要求,通过对硬件控制寄存器中相应的bit写1或者0,使得对应的控制信号为高电平或者低电平。设计人员可以根据自己的情况,选择实现方法。这里推荐采用硬件实现的方法。不过,在有问题时,可采用软件实现的方法来进行调试。
  3 TrueFFS简介
  TureFFS(Ture Flash File System)是M-Systems公司为VxWorks操作系统定制的实现FLASH块设备的接口。通过使用TFFS,应用程序对FLASH的读写就像对拥有MS-DOS文件系统的磁盘设备操作一样。对于上层设计人员,TFFS屏蔽了底层多种多样FLASH设备的具体细节。同时,由于FLASH存储芯片自身的一些特性(如擦除、编程次数有限并且操作时间较长;容易进入过度编程状态等),TFFS采用虚拟块、损耗均衡、碎片回收、错误恢复等机制来提高 FLASH的使用寿命,确保数据完整,优化性能。
返回列表