我在一个USB端口挂了十多个设备(级连了HUB),可一个设备就要占用11%的带宽(协议是否如此),剩下的设备便无法找开,如何是好?
回复(9) 2003-03-03 20:29 来自版块 - USB驱动开发
表情
hswqs的确,我用set alt setting并未减小带宽,始终占用了11%。 我现在只能在需要操纵设备时才打开,真是麻烦。 在出现带宽警告时,会弹出一个窗口,里面显示了每个设备所占用的带宽,不知这个窗口可以用什么命令打开,在任务管理器里所显示的进程是EXPLORE。(2003-03-05 00:01)
xyzxian赞同楼上的,补充一点,ISO时从底层的视点看是通过set alt setting来改变数据包的大小,从而改变设备占用带宽,但是 并不可以为了减小占用带宽而任意调整数据包的大小,这需要 验证才行,因为减小数据包大小同时也意味着数据传输速率的降低, 这对于ISO设备来说很重要。(2003-03-04 13:46)
luckyrex补充一下liutang的回答。 对于Alternate Setting,一般是对应于ISO 模式来说的。因为根据USB协议,ISO模式每次传送的包的最大数据量是1023个字节。但是有时候用不了这么多,就可以通过设置 Alternate Setting 来减少每个包的字节数...(2003-03-04 10:30)
hswqs谢谢二位! 如果用一张USB2.0的主控制器,这个问题是否会得到一定程度上的解决? 每个设备所占用的带宽如何查看? 请帮忙解答。 (2003-03-03 22:31)
LIUTANGPIPE带宽的使用是和每个数据包尺寸有关系的,一般每个ENDPOINT有很多ALTERNATE SETTING可供选择,每个ALTERNATE SETTING的数据包尺寸是不一样的,包尺寸越大占用带宽越多,在一个ENDPOINT不用时,把它的ALTERNATE SETTING设置...(2003-03-03 21:33)
xyzxian一般来说,pipe越少硬件需求的带宽就少。 但是对于用户来说,从OS这个角度来看,你的设备(除非很少很特殊很复杂的情况)的control,interrupt,bulk pipe通信时都是使用系统保留的11%左右的带宽就OK了。但是ISO PIPE时就肯定需要很大带宽,数据量大小...(2003-03-03 21:01)
hswqs另外,如果我用一张USB2.0的主控制器,这个问题是否会得到一定程度上的解决? 每个设备所占用的带宽如何查看? [编辑 - 3/3/03 by hswqs](2003-03-03 20:52)
hswqs一个设备的管道(PIPE)越少,其占用的带宽就越少吗? 如果是这样,一个PIPE大概占用多少带宽?(2003-03-03 20:45)
xyzxian本来就是如此,每个设备需求带宽不同的,硬件设计时尽量少用 带宽比较好,即需要很大,也最好提供一个软件接口,使用户在不使用设备的时候可以选折调整该设备带宽为极少(0~1%)。但是一些占用带宽较高设备如流类设备等,估计计算机就只能带动两~3个。 [编辑 - 3/3/03 b...(2003-03-03 20:38)

返回顶部