snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1720回复:14

要那么多个端点干嘛?

楼主#
更多 发布于:2004-08-15 15:15
  看了一些USB资料,我觉得数据只需输入和输出,也就是IN/OUT,那样的话一件产品事实上除了ENDPOINT 0做控制传输外,只需另外用一个端点做双向的数据传输就OK了,那为什么好多人还用上了3,4个端点呢?
snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-15 15:17
比如,假如我做U盘的话,端点0做控制,我再用上EP 1 IN,EP 1 OUT,两个都是BULK传输,是否就可以了?
usb_crazy
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2006-04-13
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-15 20:48
usb控制芯片又不是专为某一个特定设备而作的,u盘只是其中一个,还有hid类设备(中断传输),音频类设备(同步传输)等等,它可以同时满足很多设备的要求
snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-15 22:24
我的意思是说假如我只做一款特定用途产品的话,是不是除控制端点外只使用一个端点就够了。
usb_crazy
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2006-04-13
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-17 20:22
当然可以,这完全由你的固件程序来控制了,但是值得注意的是,usb控制芯片是已经做好了,他的内部结构不可能改变的,你仅能做的就是通过程序来控制,至于你想要用几个端点,你完全可以自己来设置,不过要符合芯片器件的要求(请参见其芯片资料)
vennychang
驱动牛犊
驱动牛犊
  • 注册日期2003-02-07
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-17 20:37
这位朋友,你是一个节省的人..得鼓励你…

不过如果end point 1被拿来作bulk in
那end point 1就不能作bulk out啦…
你可能要宣告end point 2 作bulk out

因为每一种端点宣告出来特性不一样,所以你可能会有超过一个的端点。
就你的说法理论上是可以的,比如说我拿end point0来作资料的传输和一般control 控制。但是如果你的control command 卡在线上回不来,那你其它的control command 也都不用下了。

再者 control bulk interrupt isocho..每一种端点的特性不一样,像你有四个小老婆,.每个个性不一样,你得用不同的方法对待她们,她们才会做正确的事情。
snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-17 20:46
当然可以,这完全由你的固件程序来控制了,但是值得注意的是,usb控制芯片是已经做好了,他的内部结构不可能改变的,你仅能做的就是通过程序来控制,至于你想要用几个端点,你完全可以自己来设置,不过要符合芯片器件的要求(请参见其芯片资料)

明白了,谢谢,也就是假如图省事的话用一个端点就够了,若是采用2个以上端点的话,那就要自己的软件控制好他们的使用了。不过再讨论一下,用2个以上同类型的端点会有什么优势呢?如我在一个U盘上用了2个端点,EP1 IN/OUT,EP2 IN/OUT,且都为BULK传输,一次数据传输的话只需一个端点就够了,难道我软件控制同时用2个端点来传数据增加带宽么?哦,对了,是不是可以通过这样来实现多任务,例如同时在写2个文件到一个U盘。

送分了,谢谢usb_crazy.

[编辑 -  8/17/04 by  snow2moutain]
snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-17 20:57
这位朋友,你是一个节省的人..得鼓励你…

不过如果end point 1被拿来作bulk in
那end point 1就不能作bulk out啦…
你可能要宣告end point 2 作bulk out

因为每一种端点宣告出来特性不一样,所以你可能会有超过一个的端点。
就你的说法理论上是可以的,比如说我拿end point0来作资料的传输和一般control 控制。但是如果你的control command 卡在线上回不来,那你其它的control command 也都不用下了。

再者 control bulk interrupt isocho..每一种端点的特性不一样,像你有四个小老婆,.每个个性不一样,你得用不同的方法对待她们,她们才会做正确的事情。
 

好象你的说法不严谨,每个endpoint可以双向使用,应该这么说吧,当endpoint1做BULK IN时,它不能同时做BULK OUT,得等做完了IN后,再可使用endpoint1的BULK OUT。
vennychang
驱动牛犊
驱动牛犊
  • 注册日期2003-02-07
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-08-18 09:52
就我的认知是这样的
除了endpoint 0 ,其它的endpoint都是在宣告的时候就决定方向了..

是否如果你所可以用宣告为bulk out的pipe,然后在使用的时候仍然在URB中加上方向为in的旗标,没试过..不知道结果如何…
有趣的是
device要怎么识别现在是 bulk in 还是bulk out呢?
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-18 14:18
就我的认知是这样的
除了endpoint 0 ,其它的endpoint都是在宣告的时候就决定方向了..

是否如果你所可以用宣告为bulk out的pipe,然后在使用的时候仍然在URB中加上方向为in的旗标,没试过..不知道结果如何…
有趣的是
device要怎么识别现在是 bulk in 还是bulk out呢?
 


device 只是一个被动的设备, 它只要能告诉 host 自己是什么就可以了.
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-08-18 14:23
usb控制芯片又不是专为某一个特定设备而作的,u盘只是其中一个,还有hid类设备(中断传输),音频类设备(同步传输)等等,它可以同时满足很多设备的要求


对, 特别是当用在于一此复合设备的时候, 这时你可能会用到好几个 Endpoint 来进行不会属性数据的传输.

以前也有人问我,  你们的 IC 怎么要两个 EP OUT, 的确是有不同的需求而已.  就向一个人有两只手, 其实一个人有一只手也可以呀.
leadphone
驱动牛犊
驱动牛犊
  • 注册日期2002-11-28
  • 最后登录2008-09-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-08-18 15:10
除了0端点,其他端点都是单向的,这是没错的。
其实他说的ep1in和ep1out是两个端点,完成in的第一个端点和完成out的第一个端点,而不是一个ep1既in又out。philips的芯片好像就是这么命名的,呵呵,得搞清楚。/

这位朋友,你是一个节省的人..得鼓励你…

不过如果end point 1被拿来作bulk in
那end point 1就不能作bulk out啦…
你可能要宣告end point 2 作bulk out

因为每一种端点宣告出来特性不一样,所以你可能会有超过一个的端点。
就你的说法理论上是可以的,比如说我拿end point0来作资料的传输和一般control 控制。但是如果你的control command 卡在线上回不来,那你其它的control command 也都不用下了。

再者 control bulk interrupt isocho..每一种端点的特性不一样,像你有四个小老婆,.每个个性不一样,你得用不同的方法对待她们,她们才会做正确的事情。
 
snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-08-18 23:10
呵呵,只不过是命名的问题而已。
我概念没弄清,呵呵,事实上是单向的。

除了0端点,其他端点都是单向的,这是没错的。
其实他说的ep1in和ep1out是两个端点,完成in的第一个端点和完成out的第一个端点,而不是一个ep1既in又out。philips的芯片好像就是这么命名的,呵呵,得搞清楚。/
 
snow2moutain
驱动牛犊
驱动牛犊
  • 注册日期2003-07-09
  • 最后登录2009-12-16
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-08-18 23:14
我知道不同属性有不同用处,但我现在想弄清假如你两个EP OUT都是同一属性的话,那这样用的优势在哪?是不是如我所说的可同时进行多任务处理?


[quote]usb控制芯片又不是专为某一个特定设备而作的,u盘只是其中一个,还有hid类设备(中断传输),音频类设备(同步传输)等等,它可以同时满足很多设备的要求


对, 特别是当用在于一此复合设备的时候, 这时你可能会用到好几个 Endpoint 来进行不会属性数据的传输.

以前也有人问我,  你们的 IC 怎么要两个 EP OUT, 的确是有不同的需求而已.  就向一个人有两只手, 其实一个人有一只手也可以呀. [/quote]
usb_crazy
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2006-04-13
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-08-19 21:01
有一点要搞清楚,同样的属性只会用于同样的传输,而不同的传输必须要使用不同的属性来完成!这是毫无疑问的,可以仔细看看usb协议!
usb协议定义四种不同属性的端点类型也就是为了满足不同类型设备的不同传输罢了!
我认为同一个设备使用多个同样属性的端点是没有多大优势的,再说人家芯片开发商设计的端点传输模式也很少使用多个属性相同的端点,实在是没有必要!
游客

返回顶部