wei1030
驱动牛犊
驱动牛犊
  • 注册日期2002-03-24
  • 最后登录2007-01-23
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1350回复:0

嵌入式USB host开发的几点感想

楼主#
更多 发布于:2007-01-16 15:39
  最近做完一个X86兼容 CPU控制SL811(USB 1.1)的U盘读写项目,有一点感想:
1   开始买来的开发板U盘写入速度很慢,采用以下方法提高速度
   --- write的buffer加大到16kb以上,由于每次写U盘的命令是 命令--数据--回应
      在命令过程中一次就通知U盘写32个扇区
   --- FAT/FAT32中创建文件时FAT也使用大buffer读写,而且分配文件cluster时
      必须分配连续的16kb的cluster分配,open时建立一个全局数组保存每个16kb
         的连续cluster块的开始cluster号,每次writefile时直接从这个表中取得每个连续
      的块写16kb
     --- 特别注意对于低速USB设备,会设置每个package在下一个SOF之后才传送,
       如果传送时SL811设置了该bit,则传送速度最多达到50kb/s,因为1ms传送
       一个64byte的bulk package
     --- 经测试1.5MB的文件写入U盘,创建时间需要2秒,USB 传送时间10秒,buffer数据准备及
      由IO口传送给SL811需要8秒,理论上可以在USB传送期间进行数据操作,这样可以把数据
      操作的时间省掉,但后来没有成功

2   USB传送过程中会出现NAK错误,此时需要把刚发送的那个package重新发送
游客

返回顶部