C8051F的超大容量Flash存储器扩展

发布者:InnovateMind最新更新时间:2007-03-09 手机看文章 扫描二维码
随时随地手机看文章
摘要:NAND结构Flash数据存储器件是超大容量数据存储的理想选择,当前被广泛应用于U盘、MP3和数码相机的数据存储。本文对该类型Flash的基本操作进行研究并对实际应用系统给予验证,揭示了NAND结构Flash的操作规律。 关键词:NAND Flash 数据存储 C8051F 引 言   大容量数据存储是单片机应用系统的瓶颈,受到容量、功耗、寻址方式的约束。突破容量限制,可以很大程度上扩展和提高应用系统的总体功能。Sumsung公司的NAND结构Flash存储器件是一款性价比很高的超大容量数据存储器件,在MP3、U盘、数码相机和PDA中有广泛的应用,且市场占有份额逐年加大。用该器件作为各种单片机尤其是嵌入式系统的数据存储器,可以完美地解决容量限制,实现灵活操作,势必成为数据存储的主流方向。 1 器件介绍   NAND结构Flash是Sumsung公司隆重推出并着力开发的新一代数据存储器件,电源电压1.7~3.6V,体积小,功耗低,容量最大可达1GB,按页进行读写,按块擦除,通过I/O口分时复用作为命令/地址/数据。本次应用开发的是NAND结构16MB的K9F2808UOB,其它大容量的器件只比该型号送出的地址多了几字节,操作指令和时序相同。具体结构说明如图1所示。   由图1可知,该器件由1K个块(block)组成,每个块有32页,每页有528字节,这528字节分成A、B、C三个区。对每一页的寻址需要通过I/O口送出三个地址,第二、三行地址(A9~A23)指明寻址到某一页,第一列地址指明寻址到页的指定区中某一字节。对页的分区命令如表1所列。 表1 起始指针位置与区域关系对照表 命 令 指针位置/字节 区 域 00H 0~255 阵列第一伴(A) 01H 256~511 阵列第二半(B) 50H 512~527 剩余阵列(C)   由表1可以看出,00H、01H、50H只是选区指针。 选定区的内部寻址是由第一个列地址完成的,A0~A7可以最大寻址256字节。 2 应用举例   在开发便携式心电信号采集监视仪中,K9F2808被用做心电采样数据存储器。MCU采用美国Cygnal公司的SoC增强型单片机C8051F020,内部RAM共有4352字节,I/O支持双向操作等。Flash的命令引脚要接到端口1上去,端口3是命令/地址/数据的复用形式。显然这里的数据是并行的,因此操作速度很快,达到了读页 1.2ns,写页200μs。图2给出了芯片的接口电路图。由于篇幅所限,图3只给出写页的命令时序,并对相关的指令代码做简要说明。   在写页之前,MCU的RAM中就应该存有采样来的528字节的数据。写操作时,先指出写开始地址。这由选区命令和第一个列地址来共同指定,以后在写页时就可以忽略不写。此处为了最大限度存储数据,开始地址定为A区的00H。为了指定这个地址,必须在送出命令80H之前送出选区命令00H,同时地址A0~A7置为0。紧跟在80H之后送出三个地址,第一个列地址已经是00H,第二、三页地址只要指定A9~A23就可以了。随后连续送出528个数据字节,为了把数据从Flash的数据寄存器写入对应存储单元,接下来再写入命令10H。经过约500μs的物理写入,就可以进行状态查询了。写入命令字70H后,从Flash的I/O0位就可以读出操作结果标志。在执行主代码之前,需要对单片机进行初始化和定义操作子函数。详细的写入程序清单请参看本刊网站www.dpj.com.cn。 图3 3 小 结   以上操作代码成功实现了对Sumsung公司NAND结构Flash的页写入,其它基本操作只要在写页的基础上进行修改即可。在使用该器件时要注意:①所选单片机最好是高速的,内部RAM要大,端口支持实时双向输入输出;②由于该Flash的操作时序是ns级,所以在调试时要注意指令的安排顺序和有选择地加入空操作指令,以满足其精确的时序要求;③对于实施信号检测采样的各种工业应用,本文的大容量Flash可圆满实现各种基本操作。
引用地址:C8051F的超大容量Flash存储器扩展

上一篇:C8051F021在远程诊断与急救支援系统中的应用
下一篇:C8051F040在基于CAN总线的分布式测控系统中的应用

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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