新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM9内核Processor外部NANDFLASH的控制实现

基于ARM9内核Processor外部NANDFLASH的控制实现

作者:时间:2012-11-05来源:网络收藏

  的读写操作以page方式进行,一次读写均为一个page,erase方式以block方式进行。这种方式,使其读写速度大大提高。

  在时序方面,以读操作为例,其时序如图3所示。

IC72新闻中心

  操作过程主要分为以下几个步骤:

  (1)发送读操作命令

  CE有效,CLE有效,WE有效,I/O0~I/O8上面数据为command代码数据。

  (2)发送地址数据(需要读取的FLASH地址)

  CE有效,ALE有效,WE有效,I/O0~I/O8上面为所需地址数据。由于地址数据较多,所以需要分几次依次发送。每次发送都需要产生WE信号以将其写入芯片。

  (3)等待R/B信号,最后读出数据

  在最后一个地址数据写入FLASH之后,R/B信号即变低。等待芯片完成整个page数据读取之后,R/B信号变高。此时,CE有效,ALE,CLE均拉低,依次产生RE信号,从I/O0~I/O8读取出所需数据。

  对于写操作和擦除操作,其基本原理相同,只是信号顺序略有改变,就不再赘述。

  由于使用了CPU地址线A1,A2连接CLE,ALE引脚,对CPU低2、3位地址的读写操作就意味着对进行读写命令/数据操作。如果此程序工作在OS上的application层的话,MMU已经屏蔽程序对底层硬件的直接访问,所以需要对MMU进行设定,为NANDFLASH开辟一块。Memory映像区域,这样就可以通过OS对底层的NANDFLASH进行操作。以该系统为例,使用CPU的CS1引脚控制NANDFLASH的CE信号,先将其映像为0x24000000地址,此时,对0x24000000地址读写即对NANDFLASH芯片进行数据读写,而对Ox24000002地址写数据,使CPU的A1地址引脚为高,即对NANDFLASH发送command命令,同样,对0x24000004地址写数据,即对NANDFLASH发送address数据。

  在对NANDFLASH发送命令/数据之后,由于程序运行速度比FLASH芯片快很多,需要在每一次操作之后插入若干等待周期,并利用CPU的GPIO检测芯片R/B信号。直至芯片完成本次操作再进行下一步操作。

  需要注意的是,在对FLASH发送命令数据过程中的等待,没有反馈信号可以检测,只能通过反复调试确定其所需等待时间。

  在设计中采用CPU的CS1信号对NANDFLASH进行CE(片选)控制。此处不能采用CPU的GPIO进行控制,因为在嵌入式设备的ARMCPU中,CPU本身采用了指令、数据自动预读的高速缓存技术和流水线技术。因此,当程序在NORFLASH里面直接运行的时候(目前绝大多数嵌入式系统采用的方式),在运行任何两段相连的代码中间,CPU都有可能对NORFLASH进行指令或数据的预读操作,从而产生大量的RE,OE信号和地址信号。如果使用GPIO控制NANDFLASH的CE信号则无法避免这种影响。CPU的CS1信号是由CPU内部自动产生,因此在CPU预读期间,CS1信号可以有效屏蔽NANDFLASH芯片。并且,由于NANDFLASH芯片支持CEdon'tcare模式,在CE无效的情况下,芯片本身的工作状态并不会被干扰,由此保证了NORFLASH和NANDFLASH在同一CPU界面中互不干扰的稳定运行。对于CS1信号的宽度等参数,也需要在实验中进行调节,才能保证整个系统快速稳定的运行。

4 NANDFLASH在系统中的读写速度

  经过测试在该系统平台中,OS为PalmOS5.4;CPU使用PXA270312MHz;SDRAM使用Samsung的16bdatawidthHYB25L256160AF-7.5@104MHz;NANDFLASH选用SAMSung128MB8bI/ONANDFLASHK9F1G08U0A达到在文件系统下面的读/写的速度为3MB/s,擦除的速度为65MB/s,在手持式设备中运用性能已经够了。

电机保护器相关文章:电机保护器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭