关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于USB2.0的高性能移动存储设备的设计

基于USB2.0的高性能移动存储设备的设计

作者:时间:2010-03-02来源:网络收藏

  K9K8U0A编程器件以页为单位编程,它允许在单页编程周期中对部分页或一个甚至连续的多达2112个连续字节编程。一个页编程周期由2个阶段组成[3]:(1)串行数据加载阶段:数据被加载到数据寄存器中,以输入命令80h为标志,紧接着是5个字节的地址输入和串行数据加载;(2)非易失性的编程阶段:命令10h标志着该编程阶段的开始,将已加载的数据写入实际的存储单元,编程典型时间为μ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(FlagWrite64); //写满一页数据

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

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

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

  Wait();

  F_CE=1; //片选结束

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

  FirstP =1;

  }

  4.结束语

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


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭