基于AT89C51实现海量存储系统的设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:fy_laile
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:解决MSC51单片机数据存储空间容量的访问容量限制,在很大程度上可以扩展和提高单片机应用系统的总体功能。文章以三星公司NAND型闪存芯片K9K2GXXU0M为例,扩展了AT89C51芯片的数据存储器,实现了单片机的海量存储系统。
  关键词:NAND;闪存;海量存储;汇编语言
  中图分类号:TP368 文献标识码:A文章编号:1009-3044(2011)10-2287-03
  Design of Mass Storage System for Metadata Based on AT89C51 SCM
  LIU Qing-hai, LIU Guang-feng, YANG Li-guo
  (Feixian Campus of Qingdao Technological University, Linyi 273400, China)
  Abstract: MSC51 microcontroller solve the access data storage capacity of capacity constraints, in large measure to extend and improve the overall function of SCM applications. Articles by Samsung NAND flash memory chips-K9K2GXXU0M, for example, extends the AT89C51 chip data memory, to achieve a single chip mass storage system.
  Key words: NAND; flash memory; mass storage; assembly language
  在开发单片机应用系统,经常需要存储海量数据,对于数据采集系统或嵌入式系统更是如此[1]。但是单就单片机本身的存储能力而言,存储这些数据的解决方案相当复杂或成本较大,甚至不现实。目前,多数研发人员开始寻找其他方式进行扩展存储能力,如文献[2]采用AT29C040芯片来解决此类问题,但是该闪存芯片容量太小,不能再满足系统的需求,于是本文采用超大容量闪存K9K2GXXU0M和AT89C51单片机相结合实现了海量数据的存储系统。
  1 系统引脚说明
  Atmel公司的AT89C2051是一种带2K字节闪烁可写操作可擦除只读存储器的高效单片机,而三星公司的K9K2GXXU0M是一种可以进行电擦写,功耗低,单片容量高达256MB的NAND型闪存芯片。正是闪存非易失性和可擦写性的特点,使得该文中的存储系统具有可靠性高、操作简便的优点。图1给出了该系统硬件设计的主要部分原理图。
  系统设计中用到的芯片引脚,主要有AT89C51的P0.0~P0.7、P1.0~P1.2、P1.4~P1.6引脚分别与闪存的I/O、CLE、ALE、RE、CE、WE、R/B引脚相连,其中P0在FIASH编程时,作为原码输入口;P1在FLASH编程和校验时,作为第八位地址接收[3]。
  CLE:指令锁存端:用于激活指令到指令寄存器的路径,并在WE上升沿且CLE为高电平时将指令锁存。
  ALE:地址锁存端:用于激活地址到内部地址寄存器的路径,并在WE上升沿且ALE为高电平时,将地址锁存。
  CE:片选端:用于控制设备的选择。当设备忙时,CE为高电平而被忽略,此时设备不能回到备用状态。
  RE:读使能端:用于控制数据的连续输出,并将数据送到I/O总线。只有在RE的下降沿时,输出数据才有效,同时,它还可以对内部数据地址进行累加。
  WE:写使能控制端,用于控制I/O口的指令写入,同时,通过该端口可以在WE脉冲的上升沿将指令、地址和数据进行锁存。
  R/B:就绪/忙输出,R/ B的输出能够显示设备的操作状态。R/B处于低电平时,表示有写操作、擦除或随机读操作正在进行。操作完成后,R/B会自动返回高电平[4]。
  2 存储结构
  NAND结构的K9K2GXXU0M由1K个块(BLOCK)组成,每个块有512页,每页有528字节,这528字节分成A、B、C三个区。对每一页的寻址需要通过I/O口送出4个地址,第二、三、四行地址(A9~A28)指明寻址到某一页,第一列地址指明寻址到页的指定区中某一字节。对页的分区命令如表1所列,其中00H、01H、50H为选区指针,选定区的内部寻址是由第一个列地址完成的,A0~A7可以最大寻址256字节。
  系统在对K9K2GXXU0M芯片进行写操作时,写页操作确认指令(10H)即可开始写操作操作,但写入指令(10H)前还必须输入连续数。连续装载数据在写入连续数据输入指令(80H)后,将开始4个周期的地址输入和数据装载,而字却不同于写操作的数据,它不需要装载。
  3 系统程序设计
  通过分析文献[4]中K9K2GXXU0M和AT89C51芯片的特点,给出了系统读、擦除和写操作的程序流程图(如图2所示),并用汇编语言实现了这3个程序。
  (a)读操作 (b)擦除操作 (c)写操作
  图2 程序流程图
  3.1 读操作子程序:READ.ASM
  PUSHPSW ;保存现场
  CLR P1.4 ;置片选有效
  MOVP0 , #00H ;送读操作命令字
  MOVR7 , #04H;送地址的次数
  ; 地址传送模块
  MOVR0 ,#00H ;地址指针的首地址
  CLR P1.0 ;置命令锁存无效
  SETBP1.1 ;置地址锁存有效
  SET:
  MOVP0 , @R0;将地址送入P0口
  NOP
  DECR7;地址次数减1
  INCR0;地址指针加1
  JNZSET ;地址未传送完,继续传送
  CLRP1.1 ;置地址锁存无效; 结束传送地址
  CLRP1.2 ;使读有效
  JNBP1.6,$;查看R/B是否忙
  MOVDPTR,OUTBUF;所送数据地址指针的首地址
  LOOP:
  MOV@DPTR , P0;将数据送入片内存储器内
  INCDPTR ;地址指针加1
  MOVR0,DPTR ;所送数据的个数放入R0中
  CJNER0,#512,LOOP;读不完继续读
  SETBP1.4 ;置片选无效
  POPPSW;恢复现场
  RET
  3.2 块擦除操作子程序:CLS.ASM
  PUSHPSW ;保存现场
  CLRP1.4 ;置片选有效
  CLRP1.1 ;置地址锁存无效
  SETBP1.0;置命令锁存有效
  MOVP0 , #60H;送块擦除预命令
  MOVR7 , #03H;送地址的次数
  ……; 此处省略地址传送模块(同读模块)
  SETBP1.0;置命令锁存有效
  MOVP0, #D0H;送块擦除确认命令
  CLRP1.0 ;置命令锁存无效
  CLRP1.2 ;使读有效
  JNBP1.6 , $ ;查看R/B是否忙
  SETBP1.0;置命令锁存有效
  MOVP0 , #70H ;送读擦除状态命令
  CLRP1.0 ;置命令锁存无效
  NOP
  NOP
  MOVR0 , P0.0;查看擦除是否成功
  SETBP1.4 ;置片选无效
  POP PSW
  MOVPSW.1 , R0
  RET
  3.3 写操作子程序:WRITE.ASM
  系统实现写操作时,先使闪存的片选信号有效,即CE引脚为低电平;接着通过I/O端口依次写入0X80、0X10;然后写入数据存储地址,再使才能将数据存储到闪存中。写入所要写操作数据地址,置写信号有效。
  PUSHPSW ;保存现场
  CLRP1.4 ;置片选有效
  CLRP1.1 ;置地址锁存无效
  SETBP1.0;置命令锁存有效
  MOV P0 , #80H;送写操作命令字
  MOV R7 , #04H;送地址的次数
  ……; 此处省略地址传送模块(同读模块)
  MOVDPTR,#INBUF;所写数据地址指针的首地址
  LOOP1:
  MOVP0,@DPTR ;将数据写到闪存中
   INC DPTR
   MOVR0 , DPTR
   CJNER0 , #512 , LOOP1 ;写不完继续写
  SETBP1.0
  MOVP0 , #10H ;送页编程操作命令字节
  CLRP1.0
  CLRP1.2 ;使读有效
  JNBP1.6 , $;查看R/B是否忙
  SETBP1.0;置命令锁存有效
  MOVP0 , #70H ;送读状态操作命令字节
  CLR P1.0 ;置命令锁存无
  MOVR0 , P0.0;查看编程是否成功
  SETBP1.4;置片选无效
  POP PSW
  MOVPSW.1 , R0
  RET
  4 结束语
  文章借助K9K2GXXU0M闪存芯片的大容量存储优点,提出了基于51系列单片机设计思想,并采用汇编语言给出软件系统的三个主要子程序。实验证明该设计方案,具有可行性且可靠性高,使得单片机应用系统用顺利能够存取海量数据。
  参考文献:
  [1] 杨忔凯,张为公,于兵.基于ARM的实验数据海量存储系统的设计[J].微计算机信息,2009,25(17):206-207.
  [2] 张晶,曾宪文.闪速存储器AT29C040与单片机的接口设计[J].半导体技术,2003,28(5):75-78.
  [3] 张鑫.单片机原理及应用[M].北京:电子工业出版社,2005.
  [4] 闫巍,李刚,林凌.新型大容量闪存芯片-K9K2GXXU0M[J].国外电子元器件,2003(10):60-63.
其他文献
针对现有大部分隐写算法基于理想模型作为研究基础,而未考虑现实复杂网络环境对隐写载体传递产生影响的问题,提出一种基于奇异值修改的视频隐写算法。先对载体帧进行分块,然
我们必须冲破“标准答案”的樊篱,变“标准答案”为合理回答。鼓励学生独立思考,尊重个人见解,允许学生与同学争论答案,最后自己得出正确答案,而不是一味由教师下定语。
随着全球经济一体化进程的加快,信息技术使世界进入了普遍交往的时代,给大学生们带来了思维方式的变革;传统伦理、价值观念也发生了冲击、激荡和碰撞,由此引发大学生思想观念
考虑饱和土应力和位移沿深度的变化,将桩基等效为Timoshenko模型,对饱和土中竖向荷载作用下的端承桩水平振动响应进行了理论研究。基于Biot动力固结理论,通过引入势函数解耦
就我国欠发达地区而言,由于区域经济发展总体水平落后,尤其是教育文化和科学技术方面的落后,致使其经济要素不断流失,已有的资源要素也无法发挥其优势效应。基于此,我国欠发达地区
在有限(窄)方位各向异性叠前地震反演裂缝预测技术中,如何克服噪音对反演结果的影响,一直是地震反演预测裂缝中的难题。通过对Rüger公式的近似、简化与改进,有效分离地震
草鱼养殖一直以来是我国养殖量最大的品种,福建地区也不例外,福建地区有15万t左右草鱼饲料容量.人民币购买力逐年减弱,但近年来福建草鱼价格一直维持在4.5~6元/500g的状态,养
为使捕获到的信号估计参数可以更加精细化地初始化跟踪环路,在基于锁频环的牵引方法基础上进行了改进,根据卫星信号的特点,通过在一定时间内去除最值求平均的方法,消除了卫星
预见性自适应行为的自主管理过程和自主目标实现,是目前人工智能领域的一个重要研究方向。基于SOAR认知体系框架设计了一种预见性自适应行为模型,将SOAR认知体系中的问题解决