阅读:2001回复:13
usb速度
USB终于可以通讯了,但速度实在太慢 用BULK传输时 实时通讯太慢,谁能告知 一些 提速的意见或经验,小弟万分感谢
|
|
沙发#
发布于:2003-12-31 16:22
我用Bulk最快可以做到900KB/s,你的数据从哪里来?如果来自单片机那可能就是因为你的单片机不能提供足够的数据。
|
|
|
板凳#
发布于:2003-12-31 17:05
你的是900k byte /s or 900k bit /s ?
|
|
地板#
发布于:2003-12-31 17:29
我用dsp的,我只做下位机的驱动,速度应该没什么问题。我没做上位机程序,所有现在很郁闷,不知道是我的问题还是上位机的问题。
|
|
地下室#
发布于:2004-01-01 13:09
用bulk已经是最快的传输方式了,如果你的速度很慢
那么有两种可能: 1,你的设备方的mcu速度太慢,或者数据产生的速度太慢 2,你用的不是bulk! |
|
5楼#
发布于:2004-01-01 13:42
jinghuiren
发表于: 2004/1/1 - 13:09 用bulk已经是最快的传输方式了,如果你的速度很慢 那么有两种可能: 1,你的设备方的mcu速度太慢,或者数据产生的速度太慢 2,你用的不是bulk! ********************************** 谢谢你的回答,首先我在bushound上面的确是看到了64个字节一个数据包的传输,应该是BULK传输方式。 其次 我的设备方用的是DSP 240 速度应该没问题,产生速据的速度也改是在200us以内的。但是我的一个速据包传输出去 在BUSHOUND上却看到用了9ms, 我现在认为有可能是IN信号来的太慢了,导致 设备准备好了数据但没发出去。因为上位机的程序不是我编的,所有现在搞的我好苦恼,不知道是什么原因,你们遇到过这种情况吗 [编辑 - 1/1/04 by zengmg] |
|
6楼#
发布于:2004-01-01 14:21
呵呵,这样看速度是不太合适的,好一点的方法是要写上层软件的人写一个测试程序,不要一次只接收64字节,可以改的大一些,比如10k,这样软件损耗少一些,速度会相应提高。还有确认你用的不是int方式而是bulk,bulk和int的唯一区别就是int是每隔一定的时间请求一次数据,其它的和bulk一样。
|
|
7楼#
发布于:2004-01-02 14:01
我的USB是用来实时采样的,每次(约500us)需要40个字节的数据,所有我对于一个IN信号就发送64个字节的包出去了。 你说的“不要一次只接收64字节,可以改的大一些,比如10k” 是指上位机的吧,我感觉是上位机的IN信号来得太慢了,导致整个传输变慢(我认为的,实在不懂上位机的,发誓下次一定要自己写,唉)。:D还有我用usbcheck看了我的描述表返回,它显示也是BULK传输方式,我想应该没错吧。
[编辑 - 1/2/04 by zengmg] |
|
8楼#
发布于:2004-01-02 16:01
你的是900k byte /s or 900k bit /s ? 是900K Bytes/s 使用DMA方式,CPLD产生数据。 |
|
|
9楼#
发布于:2004-01-02 16:40
请教huoxy:
驱动程序怎么使用DMA方式?期待着你的回答,谢谢! |
|
10楼#
发布于:2004-01-04 09:22
顶一下
|
|
11楼#
发布于:2004-01-04 11:11
呵呵,我也用CPLD做了一个DMA控制器,速度一下子达到900K,包括协议的开销。
D12的DMA方式不是指驱动程序里面的,而是硬件如何工作。就是利用芯片提供的DMA引脚,控制读写。 |
|
12楼#
发布于:2004-01-04 12:06
对于bulk方式呢,大家有什么好意见吗,
|
|
13楼#
发布于:2004-01-04 13:10
bulk是协议方面,DMA是硬件方面,这两者并不矛盾。
如果你的MCU是51系列,又想达到很高的速度,DMA搭配bulk是个很好的选择。 如果MCU是DSP等高速芯片,就可以直接按字节读取了。 |
|