阅读:2621回复:15
USB+MCU的速度问题,采用BULK传输为什么只有5KB/S?
USB+MCU的速度问题,采用BULK传输为什么只有5KB/S?是什么影响了我的速度,是否是数据缓冲区太小,我的只有64字节的数组?你们的
有多大? |
|
沙发#
发布于:2002-05-24 23:07
你是不是用的HID类,我看书上说的就是最快512Kb/s.
|
|
板凳#
发布于:2002-05-24 23:33
你用的是什么MCU?哪一款USB芯片?
正常说来,MCU的速度应该是这个方案的速度瓶颈! |
|
|
地板#
发布于:2002-05-25 13:34
我用的MCU是89C52,USB芯片是D12,现在我知道是D12的中断次数太少,只有86次/S,我每次都READFILE(512)的呀?
|
|
地下室#
发布于:2002-05-25 15:24
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2002-05-25 15:44
那就是了,89C52的处理速度远远不及D12,MCU是瓶颈!
|
|
|
6楼#
发布于:2002-05-25 23:31
我发现不是单片机的速度问题,只有传输速度大于几十KB/s
|
|
7楼#
发布于:2002-05-27 20:10
应该是89C52的速度慢的问题,你可以用以下方法试验:
1、用D12自己的指令系统中最快的数据移动指令向Buffer中填入任意数据(数据源不从89C52得到,这样可以防止89C52的执行速度成为瓶颈),然后发往PC机,看数据传输速度是不是有提高。 2、采用文件传输方法:从PC机向D12传输一定大小的文件,用BULK传输方式,在D12的firmware中将得到的数据丢掉而不做处理,同时绕开89C52,这样可以大大减少firmware的执行时间,提高代码效率,从整个传输花费的时间看一下D12的传输速度如何。 另外,我不是用的D12,无法在细节上帮你的忙,只能提供这样一个思路,请斟酌。 |
|
|
8楼#
发布于:2002-05-28 08:51
谢谢你,我现在没发给分,过一会儿我再给分.我还想问一下,用D12自己的指令系统怎么用,是把它作为一个MCU来用吗?可以给一个范例吗?
|
|
9楼#
发布于:2002-05-29 00:36
很抱歉,我不是用的D12,无法在细节上帮忙,只能提供一个思路。
|
|
|
10楼#
发布于:2002-06-03 11:41
换单片机,用菲利普的可以把速度提到40mhz。
|
|
11楼#
发布于:2002-06-03 14:42
用AVR单片机
|
|
12楼#
发布于:2002-07-04 11:00
USB+MCU的速度问题,采用BULK传输为什么只有5KB/S?是什么影响了我的速度,是否是数据缓冲区太小,我的只有64字节的数组?你们的 |
|
13楼#
发布于:2002-07-04 11:08
跟我遇到一样,我52+12只能达到17K左右 。
原因在52发送数据太慢了。每64B需要3.8ms左右。 你可以换单片机试试, 只有5K的话可能是firmware有问题。 |
|
|
14楼#
发布于:2002-07-05 08:36
主要问题还是单片机的MCU瓶颈问题,这在GUIDE中有提到。
|
|
|
15楼#
发布于:2002-07-06 08:26
我想请问各位大虾,在发送数据时没有进入D12的发送中断是怎么回事啊?具体是这样的,我先给D12的缓存写了Inquery 的数据,然后往上发CSW数据,却没法进入发送中断了,不知道是什么原因,也不知道数据发送出去了没有?
|
|