阅读:2327回复:10
51控制usb速度问题求教用51控制usb接口芯片,用的是全速模式,但最终测试发现传送18kbytes的文件要用2.5秒左右,相当于57kbits/ps,这也太慢了啊,虽然我的单片机有点慢!(用的是bulk传输) 还有,我的单片机原先用12M的晶振时,大概是这个速度,后来,我换用12M的晶振发现传输速度并没有太大的提高,难道传送速度不是受限于我的单片机速度? 请大侠们多加指点。谢谢! |
|
|
沙发#
发布于:2001-08-29 09:58
你用的是什么芯片?我的是89C52+D12,情况比你稍微好一点,只有16KByte/s。
|
|
|
板凳#
发布于:2001-08-29 10:51
我用的是scanlogic的sl11h,单片机也是89c52,我想是不是换一个牛一点的单片机试一试有用呢?
|
|
|
地板#
发布于:2001-08-29 15:27
你在发送数据时有没有把端点的缓冲装
|
|
地下室#
发布于:2001-08-29 16:47
刚才我去买了winbond的w77e58回来,mcu速度大概提高了10倍,发现传输速度比原来提高了3倍左右,现在大概是21kbytes/s了,还是不是太快。
Truly,你说的缓冲区装满是不是就写满64字节就够了啊?我是这么做的呀。你用的mcu是什么啊? |
|
|
5楼#
发布于:2001-08-29 21:24
各位,怎么我做的USB通信速率为888Kbps,离12M还差个数量级呢!
|
|
|
6楼#
发布于:2001-08-30 08:00
我用51和9603做了,最快也只能到200KB,现在用DSP做CPU,最快到了500KB,但如果对数据做处理的话,速度自然就慢下来了!按理论最大速率顶多也就到1MB!我觉得用CRYPRESS的USB控制器可能好一些!
|
|
|
7楼#
发布于:2001-08-30 09:12
我用的是AT89C52和PDIUSBD12,当时只是为了试验出能否达到64KB/S以上的速度,我开了BULK RX端点的中断,在主程序发了一个包,在中断中只是清除中断状态然后就直接确认数据发送,这样就把第一个包的内容再次发出去了,我用WINDRIVE自动生成的测试程序的READ FROM PIPE82读1048576BYTES(1MB)用了三秒,(数据显示了半天才显完),那就是三百多了。还有要注意上位机的测试程序问题,我开始用LISTEN TO PIPE82,这项是边读边显示的,速度会很慢!
|
|
8楼#
发布于:2003-07-25 15:04
哦?怎么这么快的速度啊?我也是这么做的阿,而且我得cpu很快的,36M的阿,我得host的缓冲区360B的时候是10ms接收完,也就是36B/s,Truly,你是怎么提供速度的那?仅仅只是每次写满吗?我这里写满了也是这个速度的阿,而且跟xsg一样,不管用18M还是38M晶振,数度都不变,我怀疑是不是上位机的原因阿?
|
|
9楼#
发布于:2003-07-25 15:08
感觉不是MCU的问题,应该是固件或上位机的原因,优化一下程序吧!
|
|
10楼#
发布于:2003-07-27 18:19
我固件只是发数据,上位机接受,速度只有50K左右,他们有人说是驱动程序有问题
|
|