hswqs
驱动小牛
驱动小牛
  • 注册日期2001-03-27
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:2472回复:9

USB带宽疑问

楼主#
更多 发布于:2003-03-03 20:29
我在一个USB端口挂了十多个设备(级连了HUB),可一个设备就要占用11%的带宽(协议是否如此),剩下的设备便无法找开,如何是好?
hswqs
驱动小牛
驱动小牛
  • 注册日期2001-03-27
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-05 00:01
的确,我用set alt setting并未减小带宽,始终占用了11%。
我现在只能在需要操纵设备时才打开,真是麻烦。

在出现带宽警告时,会弹出一个窗口,里面显示了每个设备所占用的带宽,不知这个窗口可以用什么命令打开,在任务管理器里所显示的进程是EXPLORE。
xyzxian
驱动牛犊
驱动牛犊
  • 注册日期2002-02-19
  • 最后登录2007-06-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-04 13:46
赞同楼上的,补充一点,ISO时从底层的视点看是通过set alt setting来改变数据包的大小,从而改变设备占用带宽,但是
并不可以为了减小占用带宽而任意调整数据包的大小,这需要
验证才行,因为减小数据包大小同时也意味着数据传输速率的降低,
这对于ISO设备来说很重要。
金用驱动开发
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-04 10:30
补充一下liutang的回答。

对于Alternate Setting,一般是对应于ISO 模式来说的。因为根据USB协议,ISO模式每次传送的包的最大数据量是1023个字节。但是有时候用不了这么多,就可以通过设置 Alternate Setting 来减少每个包的字节数,这样做的同时也减少了带宽的占用。 对于其它3种工作方式(Control,interrupt,bulk),根据USB协议,他们每个包的数据量是固定的,不能通过设置 Alternate Setting 来降低带宽的占用。

我个人认为,USB2.0 和 USB1.1 的区别主要在于传送速率,对于带宽的分配以及解决带宽占用好像区别不大。

至于查看每个设备所占用的带宽,不知道有没有专门的仪器设备,用软件的话,看看带宽总的占用应该可以,看每个设备各自的好像比较难实现。
hswqs
驱动小牛
驱动小牛
  • 注册日期2001-03-27
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-03 22:31
谢谢二位!

如果用一张USB2.0的主控制器,这个问题是否会得到一定程度上的解决?

每个设备所占用的带宽如何查看?

请帮忙解答。
LIUTANG
驱动大牛
驱动大牛
  • 注册日期2001-03-30
  • 最后登录2020-12-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望58点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-03-03 21:33
PIPE带宽的使用是和每个数据包尺寸有关系的,一般每个ENDPOINT有很多ALTERNATE SETTING可供选择,每个ALTERNATE SETTING的数据包尺寸是不一样的,包尺寸越大占用带宽越多,在一个ENDPOINT不用时,把它的ALTERNATE SETTING设置为包尺寸为0的那个,就不会再占用带宽。
xyzxian
驱动牛犊
驱动牛犊
  • 注册日期2002-02-19
  • 最后登录2007-06-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-03 21:01
一般来说,pipe越少硬件需求的带宽就少。
但是对于用户来说,从OS这个角度来看,你的设备(除非很少很特殊很复杂的情况)的control,interrupt,bulk pipe通信时都是使用系统保留的11%左右的带宽就OK了。但是ISO PIPE时就肯定需要很大带宽,数据量大小一般的(大约28Mb/s),也就是需要15%以上就OK
金用驱动开发
hswqs
驱动小牛
驱动小牛
  • 注册日期2001-03-27
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-03 20:52
另外,如果我用一张USB2.0的主控制器,这个问题是否会得到一定程度上的解决?

每个设备所占用的带宽如何查看?

[编辑 -  3/3/03 by  hswqs]
hswqs
驱动小牛
驱动小牛
  • 注册日期2001-03-27
  • 最后登录2012-03-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-03 20:45
一个设备的管道(PIPE)越少,其占用的带宽就越少吗?

如果是这样,一个PIPE大概占用多少带宽?
xyzxian
驱动牛犊
驱动牛犊
  • 注册日期2002-02-19
  • 最后登录2007-06-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-03 20:38
本来就是如此,每个设备需求带宽不同的,硬件设计时尽量少用
带宽比较好,即需要很大,也最好提供一个软件接口,使用户在不使用设备的时候可以选折调整该设备带宽为极少(0~1%)。但是一些占用带宽较高设备如流类设备等,估计计算机就只能带动两~3个。


[编辑 -  3/3/03 by  xyzxian]
金用驱动开发
游客

返回顶部