阅读:1568回复:12
请教pipe问题
全速设备驱动是否一定要设置多个pipe?
一个pipe的全速设备能不能达到12Mbps呢? 假如设置多个PIPE,计算机向设备发的数据怎么样在多个pipe上平衡? |
|
沙发#
发布于:2003-10-28 21:26
那是按协议要求做的,一般不需要那么多的,比如cy的68013总共有7个端点,其中3个可配置成控制端点,4个可配置另外三种传输的端点,比如如果你的设备需要同时支持控制传输,int/iso和bulk四种传输,那么就需要至少7个端点,端点0是默认的控制in/out,还有int、iso、bulk(in/out)等,这样你就不觉的端点多了吧
|
|
板凳#
发布于:2003-10-28 17:59
谢谢各位,我知道了增加pipe是不可以提高速度的。
但是设备里提供那么多pipe什么时候用呢?既然多个pipe不可以提高速度,那么要那么多pipe有何用?呵呵,大家是不是被问烦了? |
|
地板#
发布于:2003-10-28 17:53
谢谢各位积极回帖子!真的感谢!
再次感谢 tomjin jinghuiren bjzps pengenwen |
|
地下室#
发布于:2003-10-28 16:46
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2003-10-28 16:41
bjzps的说法很对,pipe之间的切换是需要花费时间的,实际上使用一个端点是速度最快的,而且根本没有必要设置多个端点,端点越多速度反而会越降下来。
|
|
6楼#
发布于:2003-10-28 15:23
我想是不可以的了
usb的12m的理论数据是不考虑协议,完全物理特性上计算出的 你多加了几个pipe,并没有修改物理上的性能,所以不会增加速度 我觉得这里的速度关键是看你写的驱动和协议的好坏,和你的处理芯品速度,中断响应都有关系。 你不必要的增加了几个pipe的话,可能增加了协议的复杂度,反而降低了速度。 不修改协议,加pipe的话,速度应该是一样的 就和你不修改水管,单是增加水龙头,水流出的最大速度是不会变的。 考虑到对水龙头出的水要处理,反而可能降低速度。 这样说明白了吧 |
|
7楼#
发布于:2003-10-27 18:40
谢谢bjzps,
U盘用三个端口我了解过了。但是是不是再多用几个pipe可以达到更高的速度呢? |
|
8楼#
发布于:2003-10-27 17:49
我也来说2句
usb从物理上来看就是4根线d+,d-,电源和地 所以他只支持半双工双向传送,就是不能同时收和发 pipe除了开始用的控制端,一般都是要不做输入,要不做输出 多pipe可以省的配置了 必然u盘一般是3个 0默认控制 1bluk in 2bluk out 用了3个端口 |
|
9楼#
发布于:2003-10-27 16:51
谢谢jinghuiren,
既然同一时间里,只有一个端口可以读写,那么其它那么多的端口怎么用。我看书上说全速设备可用多个端口。 |
|
10楼#
发布于:2003-10-23 14:59
你的理解有点问题,在usb传输中,通常都是点对点的,也就是说如果你想往端点1写数据,那么只有这个端点能接收传下来的数据,其它端点是不能接收数据的,反之亦然,如果你同时往端点1和2写数据,那么只能是端点1接收端点1的数据,端点2接收端点2的数据,不会出现传往1、2得数据端点1都收到了。
另外,usb数据的传输是时分复用的,也就是说同一时间你不可能往不同的端点读或写数据,如果你想往1、2都写数据的话,只能是交替进行的,写完了1再写2,别无它法! 希望对你有所帮助。 |
|
11楼#
发布于:2003-10-23 10:33
谢谢,你用两个的意思是一个做为输入,一个做为输出吧!
还有一个问题,如果有两个pipe做为输入(输出),输入(数据)怎样平衡。即,输入10M,那么是不是每个管道分5M,那么在接收端这些数据怎么样按照发送的顺序重组呢? |
|
12楼#
发布于:2003-10-23 10:04
12M的速度是理论值,实践中好象是很难达到的!
Usb是单向传输,只要是在处理机制上可以,应该是可以只设一个通道,具体要看控制芯片,但从用的来看,好象大家都至少用了2个通道。 |
|