mhxsoft
驱动牛犊
驱动牛犊
  • 注册日期2003-06-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1689回复:4

为什么我在用单片机读写U盘时间哪么长?

楼主#
更多 发布于:2003-07-17 16:00
为什么我在写U盘的时候,时间哪么长?32MB大约需要1个小时,到底时间都消耗在哪里?而计算机只用了半分钟!我用的是MSP430F149(6MHz)+SL811(12MHz),在传输时,我把SOF同步关掉,但SOF在使用。请大家推测一下我的时间会消耗在哪里?是否是单片机的速度太慢?
hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-17 19:29
我是新手,分析可能有错,仅供参考。

先计算机器周期  1/(6M/12)=2us,
如果sl811的buffer为1024byte
以movx指令为例,读取一个byte指令大约要3个机器周期,
读取完1024byte要2×3×1024=6ms
考虑其它因素,最后1k的数据到达U盘时间不会高于60ms。
也就是说,这时也有100K byte的传输速度。
出错的原因不大可能是单片机太慢。

我个人认为:因为U盘是靠主机端来提供电源的,可能是由于
主机端电源的提供出了问题,结果是U盘的数据传输经常出错,
造成了传输速度下降。
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-17 16:20
是单片机程序设计不合理的缘故。
mhxsoft
驱动牛犊
驱动牛犊
  • 注册日期2003-06-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-17 16:19
请问诸位用的单片机是多大速度的晶振?
我的程序是这样设计的:
SL811的INTQ是用查询的方式,并且SL811只用了USB_A模式控制,当然,由于整个项目的模块化设计,程序也有部分冗余。我用的是汇编级语言。
我想了解一下在座的各位是如何具体处理这些速度问题的?


[编辑 -  7/17/03 by  mhxsoft]
z_bing
驱动中牛
驱动中牛
  • 注册日期2002-09-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-17 16:06
我认为是单片机速度太慢。你不妨换一个快的单片机试一试。
爱国守法,明理诚信,团结一致,战胜非典!
游客

返回顶部