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

工控自动化 时间:2010-03-02来源:网络

  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(FlagWrite64); //写满一页数据

  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

关键词: USB 2.0 性能 移动存储设备

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版