基于ARM9内核Processor外部NAND FLASH的控制实现
2009-11-18 11:36
239 查看
基于ARM9内核Processor外部NAND FLASH的控制实现
技术分类: 嵌入式系统 | 2007-09-27
来源:现代电子技术 | 作者:夏 涛
1 NAND FLASH
NAND写回速度快、芯片面积小,特别是大容量使其优势明显。页是NAND中的基本存贮单元,一页一般为512 B(也有2 kB每页的large page NAND FLASH),多个页面组成块。不同存储器内的块内页面数不尽相同,通常以16页或32页比较常见。块容量计算公式比较简单,就是页面容量与块内页面数的乘积。根据FLASH Memory容量大小,不同存储器中的块、页大小可能不同,块内页面数也不同。例如:8 MB存储器,页大小常为512 B、块大小为8 kB,块内页面数为16。而2 MB的存储器的页大小为256 B、块大小为4 kB,块内页面数也是16。NAND存储器由多个块串行排列组成。实际上,NAND型的FLASHMemory可认为是顺序读取的设备,他仅用8 b的I/O端口就可以存取按页为单位的数据。NAND在读和擦写文件、特别是连续的大文件时,速度相当快。
2 NAND FLASH与NOR FLASH比较
NOR的特点是可在芯片内执行,这样程序应该可以直接在FLASH内存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,但
写入和读出速度较低。而NAND结构能提供极高的单元密度,并且写入和擦除的速度也很快,是高数据存储密度的最佳选择。
这两种结构性能上的异同主要为:NOR的读速度比NAND快;NAND的写入速度比NOR快很多;NAND的擦除速度远比NOR快;NAND的擦除单元更小,相应的擦除电路也更加简单;NAND的实际应用方式要比NOR复杂得多;NOR可以直接使用,并在上面直接运行代码,而NAND需要I/O接口,因此使用时需要驱动程序。
3 NAND FLASH在系统中的控制
在没有NAND FLASH硬件接口的环境中,通过软体控制CPU时序和硬件特殊接线方式实现仿真NANDFLASH接口,进而实现在嵌入式系统中脱离NANDFLASH专用硬件接口进行对NAND FLASH读、写、擦除等操作的实现方法。
本方法主要工作在以下两个方面:
软件方面:针对特殊硬件线路的软体设计和严格的CPU时序控制;
硬件方面:硬件的线路设计,利用NOR FLASH专用硬件接口控制NAND FLASH。
首先建立的开发平台如图1所示。
本平台使用Intel的PXA270 Processor,无内建NAND FLASH Controller,使用NOR FLASH Controller控制NAND FLASH,具体的线路连接方式如图2所示。
NAND FLASH的I/O0~I/07引脚用于对FLASH发送操作命令和收发数据,ALE用于指示FLASH当前数据为地址信息,CLE用于指示当前数据为操作命令信息,当两者都无效时,为数据信息。CE引脚用于FLASH片选。RE和WE分别为FLASH读、写控制,R/B指示FLASH命令是否已经完成。逭里选用的是CE don't care的NAND FLASH。
NAND FLASH的读写操作以page方式进行,一次读写均为一个page,erase方式以block方式进行。这种方式,使其读写速度大大提高。
在时序方面,以读操作为例,其时序如图3所示。
操作过程主要分为以下几个步骤:
(1)发送读操作命令
CE有效,CLE有效,WE有效,I/O0~I/O8上面数据为command代码数据。
(2)发送地址数据(需要读取的FLASH地址)
CE有效,ALE有效,WE有效,I/O0~I/O8上面为所需地址数据。由于地址数据较多,所以需要分几次依次发送。每次发送都需要产生WE信号以将其写入NANDFLASH芯片。
(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位地址的读写操作就意味着对NANDFLASH进行读写命令/数据操作。如果此程序工作在OS上的application层的话,MMU已经屏蔽程序对底层硬件的直接访问,所以需要对MMU进行设定,为NANDFLASH开辟一块。Memory映像区域,这样就可以通过OS对底层的NAND FLASH进行操作。以该系统为例,使用CPU的CS1引脚控制NAND FLASH的CE信号,先将其映像为0x24000000地址,此时,对0x24000000地址读写即对NAND FLASH芯片进行数据读写,而对Ox24000002地址写数据,使CPU的A1地址引脚为高,即对NAND FLASH发送command命令,同样,对0x24000004地址写数据,即对NAND FLASH发送address数据
技术分类: 嵌入式系统 | 2007-09-27
来源:现代电子技术 | 作者:夏 涛
1 NAND FLASH
NAND写回速度快、芯片面积小,特别是大容量使其优势明显。页是NAND中的基本存贮单元,一页一般为512 B(也有2 kB每页的large page NAND FLASH),多个页面组成块。不同存储器内的块内页面数不尽相同,通常以16页或32页比较常见。块容量计算公式比较简单,就是页面容量与块内页面数的乘积。根据FLASH Memory容量大小,不同存储器中的块、页大小可能不同,块内页面数也不同。例如:8 MB存储器,页大小常为512 B、块大小为8 kB,块内页面数为16。而2 MB的存储器的页大小为256 B、块大小为4 kB,块内页面数也是16。NAND存储器由多个块串行排列组成。实际上,NAND型的FLASHMemory可认为是顺序读取的设备,他仅用8 b的I/O端口就可以存取按页为单位的数据。NAND在读和擦写文件、特别是连续的大文件时,速度相当快。
2 NAND FLASH与NOR FLASH比较
NOR的特点是可在芯片内执行,这样程序应该可以直接在FLASH内存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,但
这两种结构性能上的异同主要为:NOR的读速度比NAND快;NAND的写入速度比NOR快很多;NAND的擦除速度远比NOR快;NAND的擦除单元更小,相应的擦除电路也更加简单;NAND的实际应用方式要比NOR复杂得多;NOR可以直接使用,并在上面直接运行代码,而NAND需要I/O接口,因此使用时需要驱动程序。
3 NAND FLASH在系统中的控制
在没有NAND FLASH硬件接口的环境中,通过软体控制CPU时序和硬件特殊接线方式实现仿真NANDFLASH接口,进而实现在嵌入式系统中脱离NANDFLASH专用硬件接口进行对NAND FLASH读、写、擦除等操作的实现方法。
本方法主要工作在以下两个方面:
软件方面:针对特殊硬件线路的软体设计和严格的CPU时序控制;
硬件方面:硬件的线路设计,利用NOR FLASH专用硬件接口控制NAND FLASH。
首先建立的开发平台如图1所示。
本平台使用Intel的PXA270 Processor,无内建NAND FLASH Controller,使用NOR FLASH Controller控制NAND FLASH,具体的线路连接方式如图2所示。
NAND FLASH的I/O0~I/07引脚用于对FLASH发送操作命令和收发数据,ALE用于指示FLASH当前数据为地址信息,CLE用于指示当前数据为操作命令信息,当两者都无效时,为数据信息。CE引脚用于FLASH片选。RE和WE分别为FLASH读、写控制,R/B指示FLASH命令是否已经完成。逭里选用的是CE don't care的NAND FLASH。
NAND FLASH的读写操作以page方式进行,一次读写均为一个page,erase方式以block方式进行。这种方式,使其读写速度大大提高。
在时序方面,以读操作为例,其时序如图3所示。
操作过程主要分为以下几个步骤:
(1)发送读操作命令
CE有效,CLE有效,WE有效,I/O0~I/O8上面数据为command代码数据。
(2)发送地址数据(需要读取的FLASH地址)
CE有效,ALE有效,WE有效,I/O0~I/O8上面为所需地址数据。由于地址数据较多,所以需要分几次依次发送。每次发送都需要产生WE信号以将其写入NANDFLASH芯片。
(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位地址的读写操作就意味着对NANDFLASH进行读写命令/数据操作。如果此程序工作在OS上的application层的话,MMU已经屏蔽程序对底层硬件的直接访问,所以需要对MMU进行设定,为NANDFLASH开辟一块。Memory映像区域,这样就可以通过OS对底层的NAND FLASH进行操作。以该系统为例,使用CPU的CS1引脚控制NAND FLASH的CE信号,先将其映像为0x24000000地址,此时,对0x24000000地址读写即对NAND FLASH芯片进行数据读写,而对Ox24000002地址写数据,使CPU的A1地址引脚为高,即对NAND FLASH发送command命令,同样,对0x24000004地址写数据,即对NAND FLASH发送address数据
相关文章推荐
- PXA270-基于ARM9内核Processor外部NAND FLASH的控制实现
- 基于ARM9内核Processor外部NAND FLASH的控制实现
- 基于角色的权限控制在springMVC框架中的实现
- 基于visual c++之windows核心编程代码分析 实现Windows服务并安装,控制
- 基于mini2440嵌入式linux上整合一套Domoticz智能家居系统(六)使用domoticz联合arm上的mosquitto实现Android客户端远程控制
- 基于MSP430G2系列实现的步进电机控制
- 基于JZ2440的NAND FLASH的驱动程序的实现
- 基于jquery实现控制经纬度显示地图与卫星
- AJAX+JSP实现基于WEB的文件上传的进度控制,作者:刘作晨
- [转载]AJAX实现基于WEB的文件上传的进度控制
- AJAX实现基于WEB的文件上传的进度控制
- JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
- 利用基于@AspectJ的AOP实现权限控制
- 基于AOP实现权限管理:访问控制模型RBAC和ACL
- 利用 AOP 实现 .NET 上完整的基于角色的访问控制(RBAC)模型{zhuang}
- 基于java语言的给cube添加custom view来实现权限控制
- 基于Spring cloud ribbon实现多版本控制
- 基于BIND实现DNS的解析、主从、子域、请求转发、访问控制
- AngularJs实现基于角色的前端访问控制