阅读:1689回复:4
为什么我在用单片机读写U盘时间哪么长?
为什么我在写U盘的时候,时间哪么长?32MB大约需要1个小时,到底时间都消耗在哪里?而计算机只用了半分钟!我用的是MSP430F149(6MHz)+SL811(12MHz),在传输时,我把SOF同步关掉,但SOF在使用。请大家推测一下我的时间会消耗在哪里?是否是单片机的速度太慢?
|
|
沙发#
发布于: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盘的数据传输经常出错, 造成了传输速度下降。 |
|
板凳#
发布于:2003-07-17 16:20
是单片机程序设计不合理的缘故。
|
|
地板#
发布于:2003-07-17 16:19
请问诸位用的单片机是多大速度的晶振?
我的程序是这样设计的: SL811的INTQ是用查询的方式,并且SL811只用了USB_A模式控制,当然,由于整个项目的模块化设计,程序也有部分冗余。我用的是汇编级语言。 我想了解一下在座的各位是如何具体处理这些速度问题的? [编辑 - 7/17/03 by mhxsoft] |
|
地下室#
发布于:2003-07-17 16:06
我认为是单片机速度太慢。你不妨换一个快的单片机试一试。
|
|
|