首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于USB2.0的高性能移动存储设备的设计
来源:本站整理  作者:佚名  2010-04-14 11:56:08



  K9K2G08U0A编程器件以页为单位编程,它允许在单页编程周期中对部分页或一个甚至连续的多达2112个连续字节编程。一个页编程周期由2个阶段组成[3]:(1)串行数据加载阶段:数据被加载到数据寄存器中,以输入命令80h为标志,紧接着是5个字节的地址输入和串行数据加载;(2)非易失性的编程阶段:命令10h标志着该编程阶段的开始,将已加载的数据写入实际的存储单元,编程典型时间为200μs。之后R/ 跳低,进入闪存内部编程,最后进入读状态确认操作,命令70h表示读状态命令,I/O0表示读到的状态。页编程实现代码如下:

  void PageWrite(void )   //页编程

  {

  CheckBlock(startpage);   //检测坏块列表

  if(FirstP)

  // FirstP为1,开始对一页进行写操作,否则为0

  {//片选信号有效

  F_CE=0; F_RE=1; F_ALE=0;F_CLE=1;F_WE=0;

  OutputCommand(0x80);   //输入命令0x80

  F_WE=1;

  F_ALE=1;//发送地址开始

  AddrOut (addr1); //得到页地址,五个周期

  AddrOut (addr2); AddrOut (addr3); AddrOut (addr4); AddrOut (addr5);

  F_ALE=0;

  FirstP =0; }

  WriteData(BuffBlock);   //将数据写入缓冲区

  FlagWrite =0;

  Do{

  F_WE=0;

  WriteFlash();      //将数据写入flash

  FlagWrite++;

  F_WE=1;

  }while(FlagWrite<64);  //写满一页数据

  OutputCommand (0x10);   //输入命令0x10

  while(!F_RB);     //等待读信号有效

  OutputCommand (0x70);   //输入命令0x70

  Wait();

  F_CE=1;    //片选结束

  startpage++;    //继续写下一页

  FirstP =1;

  }

  4.结束语

  本文在充分研究USB2.0协议、Bulk-Only传输协议和SCSI指令规范的基础上,设计出USB2.0高性能移动存储设备。本文作者创新点:将FLASH作为数据采集系统中的存储单元,应用在与计算机交互数据的采集过程之中;并采用中断驱动设计固件程序,提高了读写效率。实验证明,其性能稳定可靠,读写数据速度达到了令人满意的效果。移动数据的交换和存储是目前IT行业的热点,可以在此基础上,不断完善现有设计方案,继续研究开发嵌入式USB主机系统,使得在PC机不参与的情况下同样可以进行数据的存储与交换。

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:111,695.30000 毫秒