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

发布者:乡村乐园最新更新时间:2015-04-20 来源: eechina关键字:ARM9内核  Processor  外部NAND  FLASH 手机看文章 扫描二维码
随时随地手机看文章
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数据。   

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

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

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

4 NAND FLASH在系统中的读写速度  

经过测试在该系统平台中,OS为Palm OS 5.4;CPU使用PXA270 312 MHz;SDRAM使用Samsung的16data width HYB25L256160AF-7.5@104 MHz;NANDFLASH选用Samsung 128 MB 8 b I/O NAND LASHK9F1G08U0A达到在文件系统下面的读/写的速度为3 MB/s,擦除的速度为65 MB/s,在手持式设备中运用性能已经够了。
关键字:ARM9内核  Processor  外部NAND  FLASH 引用地址:基于ARM9内核Processor外部NAND FLASH的控制实现

上一篇:基于32位微处理器的液晶显示系统的设计和实现
下一篇:AT91RM9200处理器同步串口SSC的特性分析与应用

推荐阅读最新更新时间:2024-03-16 13:58

利用Flash实现DSP对多个程序有选择的加载
摘要:主要介绍一种利用Flash存储器实现双DSP系统对多份用户代码有选择的上电加载的方法。其中,重点介绍M29W800AB Flash的使用和编程方法,TMS320VC54X DSP的上电自动引导过程,以及HPI模式和并行模式加载用户代码的方法。 关键词:Flash存储器 DSP 主机接口 Bootloader 引导表 引 言   在TMS320C54X系列DSP系统的开发中,由于DSP片内只有ROM和RAM存储器,如要将用户代码写入ROM中,必须要由DSP芯片厂家来完成;但这样做用户就不能再更改代码,很不实用。由于RAM在DSP掉电后不能再保存数据,因此,常常利用EPROM、 Flash等一些外部存储器来存放用户代码
[缓冲存储]
STM32F407 SPI flash
STM32F407 SPI 接口: STM32F4XX时钟计算 HCLK=168M PCLK1 =HCLK/4 =42M PCLK2 =HCLK/2 =84M SPI2、SPI3在PCLK1,最大时钟为42M SPI1在PCLK2,最大时钟为84M STM32F4 支持的最大SPI时钟为37.5Mbits/s 因此需要分频。 例程选择SPI2 分频后为21M 串行Flash W25Q64BVSSIG (最高支持80MHz)。 测试: 全部写入0XAA 数据长度8192K 擦除:20.798 写入耗时42.599S 读:9.008S 百度的参照时间 擦除:8.9S 写入
[单片机]
STM32F407 SPI <font color='red'>flash</font>
linux-2.6.38到tiny6410的移植手册(连载1)__nand flash
2440的linux移植手册满天飞,到了6410怎么就没有了呢? 既然源码都给了,为什么不把移植步骤写出来,好让大家学习呢? 今日,小弟自搞奋勇,想自己移植一遍linux-2.6.38,参考友善给的源码,觉得既然源码都有了,想发掘移植步骤应该不难吧,嘿嘿 环境 VirtualBox+ubuntu 10.04 编译器,友善自带arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 硬件,tiny6410,核心板号1107 linux-2.6.38到tiny6410的移植手册(连载2)__网卡&NF http://www.arm9home.net/read.php?tid-14211.html linux
[单片机]
SK 海力士公布新NAND Flash 发展规划,800+层,200TB 容量
目前,两大韩系NAND Flash 厂商──三星及SK 海力士在之前就已经公布了新NAND Flash 产品的发展规划。其中,三星宣布推出136 层堆叠的第6 代V-NAND Flash 之外,SK 海力士则是宣布成功开发出128 层堆叠的4D NAND Flash,并已经进入量产阶段。不过,虽然两家厂商竞相推出NAND Flash 的新产品,但是堆叠技术的发展至今仍未到达极限。所以,SK 海力士日前在一场会议上就公布了公司的规划,预计在2030 年推出800+ 层的NAND Flash,届时将可轻松打造出100 到200TB 容量的SSD。 在日前举行的「 Flash Memory Summit 」 大会上,SK 海
[嵌入式]
SK 海力士公布新<font color='red'>NAND</font> <font color='red'>Flash</font> 发展规划,800+层,200TB 容量
DSP处理器TMS320C6201与FLASH存储器接口设计
DSP是针对实时数字信号处理而设计的数字信号处理器,由于它具有计算速度快、体积小、功耗低的突出优点,非常适合应用于嵌入式实时系统。自世界上第一片通用D5P芯片TMS320C10于1982年在美国T1公司产生以来,DSP处理器便显示出强盛的生命力。短短二十多年,世界上许多公司便开发出各种规格的DSP处理器,并使它们在通信、自动控制、雷达、气象、导航、机器人等许多嵌入式实时领域得到了广泛应用。20世纪90年代后期美国TI公司推出的面向通讯领域的新一代32位的TMS320C6000系列DSP芯片(简称C6000)是目前世界上最先进的DSP处理器,其中C62XX和C64XX为通用32位定点系列DSP处理器,C67XX为通用32位浮点系列DS
[嵌入式]
FLASH和EEPROM的区别
FLASH和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有FLASH,早期可电擦写型MCU则都是EEPRM结构,现在已基本上停产了。在芯片的内电路中,FLASH和EEPROM不仅电路不同,地址空间也不同,操作方法和指令自然也不同,不论冯诺伊曼结构还是哈佛结构都是这
[单片机]
stm32专题二十九:Flash 读写保护
设置Flash的读写保护,其实就是操作内部Flash的选项字节。 选项字节在内部Flash的主存储页之后,由于是Flash,不能像内存RAM一样随意写入。由于Flash的写入特性,只能将 1 写成 0,而如果要确保写入数据的绝对正确,则需要先擦除再写入。如果直接对Flash写入,则只能确保写入 0 值是正确的。 选项字节,可以认为是掉电不会丢失的寄存器(Flash空间)。就是用Flash介质来存储配置,要修改选项字节,跟修改Flash一样。 RDP 读保护字节描述(可以通过j-link或st-link读Flash 加密等): RDP配置方式: 2个数据字节 Data0 Data1 3 设置写保护 RDP
[单片机]
stm32专题二十九:<font color='red'>Flash</font> 读写保护
HOLTEK新推出HT45F65、HT45F67血糖仪Flash MCU
Holtek持续在医疗量测领域不断追求卓越精进,再推出高度整合,高性价比的血糖仪系列专用MCU HT45F65及HT45F67。HT45F65、HT45F67整合了高精准度可程序调整的参考电压源、专用运算放大器、模拟数字转换器及温度传感器等功能;再搭配IAP ( In-Application Programming) 技术,对于程序更新及量测数据之储存都可轻易完成,非常适用于血糖仪或整合血糖、尿酸及胆固醇量测之多合一机型,并各项居家医疗健康器材等产品。 HT45F65、HT45F67包含有8K / 32K Word Flash程序内存、256 / 512 Byte数据存储器及12 Level Stack等核心规格;同时兼具实用
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved