qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:1567回复:12

请教pipe问题

楼主#
更多 发布于:2003-10-23 09:44
全速设备驱动是否一定要设置多个pipe?

一个pipe的全速设备能不能达到12Mbps呢?
 
假如设置多个PIPE,计算机向设备发的数据怎么样在多个pipe上平衡?
tomjin
驱动牛犊
驱动牛犊
  • 注册日期2002-12-16
  • 最后登录2006-03-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-23 10:04
12M的速度是理论值,实践中好象是很难达到的!
Usb是单向传输,只要是在处理机制上可以,应该是可以只设一个通道,具体要看控制芯片,但从用的来看,好象大家都至少用了2个通道。
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-23 10:33
谢谢,你用两个的意思是一个做为输入,一个做为输出吧!

还有一个问题,如果有两个pipe做为输入(输出),输入(数据)怎样平衡。即,输入10M,那么是不是每个管道分5M,那么在接收端这些数据怎么样按照发送的顺序重组呢?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-23 14:59
你的理解有点问题,在usb传输中,通常都是点对点的,也就是说如果你想往端点1写数据,那么只有这个端点能接收传下来的数据,其它端点是不能接收数据的,反之亦然,如果你同时往端点1和2写数据,那么只能是端点1接收端点1的数据,端点2接收端点2的数据,不会出现传往1、2得数据端点1都收到了。

另外,usb数据的传输是时分复用的,也就是说同一时间你不可能往不同的端点读或写数据,如果你想往1、2都写数据的话,只能是交替进行的,写完了1再写2,别无它法!

希望对你有所帮助。

qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-27 16:51
谢谢jinghuiren,
    既然同一时间里,只有一个端口可以读写,那么其它那么多的端口怎么用。我看书上说全速设备可用多个端口。
bjzps
驱动小牛
驱动小牛
  • 注册日期2003-03-06
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望22点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-27 17:49
我也来说2句
usb从物理上来看就是4根线d+,d-,电源和地
所以他只支持半双工双向传送,就是不能同时收和发
pipe除了开始用的控制端,一般都是要不做输入,要不做输出
多pipe可以省的配置了
必然u盘一般是3个
0默认控制
1bluk in
2bluk out
用了3个端口
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-27 18:40
谢谢bjzps,
    U盘用三个端口我了解过了。但是是不是再多用几个pipe可以达到更高的速度呢?
  
bjzps
驱动小牛
驱动小牛
  • 注册日期2003-03-06
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望22点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-28 15:23
我想是不可以的了
usb的12m的理论数据是不考虑协议,完全物理特性上计算出的
你多加了几个pipe,并没有修改物理上的性能,所以不会增加速度
我觉得这里的速度关键是看你写的驱动和协议的好坏,和你的处理芯品速度,中断响应都有关系。
你不必要的增加了几个pipe的话,可能增加了协议的复杂度,反而降低了速度。
不修改协议,加pipe的话,速度应该是一样的
就和你不修改水管,单是增加水龙头,水流出的最大速度是不会变的。
考虑到对水龙头出的水要处理,反而可能降低速度。
这样说明白了吧
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-28 16:41
bjzps的说法很对,pipe之间的切换是需要花费时间的,实际上使用一个端点是速度最快的,而且根本没有必要设置多个端点,端点越多速度反而会越降下来。
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-10-28 16:46
用户被禁言,该主题自动屏蔽!
qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-10-28 17:53
谢谢各位积极回帖子!真的感谢!

再次感谢
tomjin
jinghuiren
bjzps
pengenwen

qhyntjs
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2007-06-18
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-10-28 17:59
谢谢各位,我知道了增加pipe是不可以提高速度的。


但是设备里提供那么多pipe什么时候用呢?既然多个pipe不可以提高速度,那么要那么多pipe有何用?呵呵,大家是不是被问烦了?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-10-28 21:26
那是按协议要求做的,一般不需要那么多的,比如cy的68013总共有7个端点,其中3个可配置成控制端点,4个可配置另外三种传输的端点,比如如果你的设备需要同时支持控制传输,int/iso和bulk四种传输,那么就需要至少7个端点,端点0是默认的控制in/out,还有int、iso、bulk(in/out)等,这样你就不觉的端点多了吧
游客

返回顶部