阅读:1332回复:8
每个URB传送的最大字节受何限制
使用的USB-SCSI转接头接SCSI设备,数据传输时, 发现每个URB只能传送最多4096字节,但在规范里却找不到这个限制来自何处。请多多指教,谢了!
|
|
|
沙发#
发布于:2003-03-20 11:05
性能还是有所提高的,起码我的程序不用分块了。
|
|
|
板凳#
发布于:2003-03-20 10:50
lvwj说的对,对bulk传输来说,每个EP都是有MAXSIZE限制的,你改也没用.
|
|
|
地板#
发布于:2003-03-20 10:46
各位大侠, 对不住,原来是我的机器的USB接有问题, 我今天到别人的机器上试了一下,MaximumTransferSize 可以设为64KB,真让人气愤公司的机器。还要谢谢各位的指点。
|
|
|
地下室#
发布于:2003-03-19 20:57
我用的是Mass Storage class Bulk-Only transfer. 看别人的程序没有分块,可是我的程序必须分块,以至影响传输速度。郁闷。
|
|
|
5楼#
发布于:2003-03-19 20:50
你用的什么传输模式?
ISO吗,查一下MSDN,是不是这个参数对ISO有特定的限制呀。没用过ISO,所以不打清楚。 |
|
6楼#
发布于:2003-03-19 20:47
但是我将MaximumTransferSize改为4097或更大, 设备就 STALL 了。我百思不得其解。
|
|
|
7楼#
发布于:2003-03-19 20:38
这个限制我觉得在设备驱动程序里,里面有为每个管道配置最大传输数据量的,最大为64kB。如下所示:
Interface = &urb->UrbSelectConfiguration.Interface; for (i=0; i< Interface->NumberOfPipes; i++) { // // perform any pipe initialization here // Interface->Pipes.MaximumTransferSize = 64*1024-1;//注意改动 } |
|
8楼#
发布于:2003-03-19 19:34
系统usb驱动程序给你限制的.这个值可以更改,但没有意义.因为 4096 本身在驱动程序里也是根据 端点最大数据长度 分成很多次传送.
|
|
|