阅读:3262回复:11
请问IN/OUT PACKET 是流向PC机还是USB设备
我在用MOTOROLA 的908JB8开发时,遇到一问题。说明书是这么写的。
When the device is configured, endpoint 1 is enable for interrupt transfer from PC. Endpoint 1 is capable of only sending information out from it. Therefore, only IN packets are accepted at the endpoint. 为什么Endpoint 1只能是中断端点,而且只能用于发送信息。但却是只有IN packets 能被接收。 请高手指教 |
|
最新喜欢:jinghu... |
沙发#
发布于:2001-06-12 22:49
USB芯片的每个端点被设计为支持何种类型,由硬件生产商决定的,你的芯片端点1设计只支持中断传输。
对于USB设备来说,每个端点通常有in 、out两个方向的端点(在某种情况下每个方向对应一个管道pipe),芯片的端点1分为endpoint1 in, endpoint1 out两个方向的端点。 必须说明的是在USB中的关于令牌包的IN、OUT均是对 主机 而言 的。 主机的IN是外设的输出。 |
|
板凳#
发布于:2001-06-13 12:33
那么在USB设备中一个端点是否只能是设置为IN/OUT。而不能两者共存。
|
|
地板#
发布于:2001-06-13 13:27
两者可以共存,如endpoint 0,可以作为输入也可为输出
[davy 编辑于 2001-06-13 13:30] |
|
|
地下室#
发布于:2001-06-13 13:39
通常端点0是双向的,其它的都是单向的.
USB是以主机为中心的,只能由主机读信息,设备是不能主动的向主机发信息的.IN新是主机读信息,OUT就是主机向设备发信息.这样方向就易懂了. |
|
5楼#
发布于:2001-06-13 15:06
[QUOTE]原本由 peng-416 发表
[B]通常端点0是双向的,其它的都是单向的. USB是以主机为中心的,只能由主机读信息,设备是不能主动的向主机发信息的.IN新是主机读信息,OUT就是主机向设备发信息.这样方向就易懂了. [/B][/QUOTE] 我也有个问题:除了endpoint 0以外,其他端点可以是双向的吗?最好有谁实际使用过的。 另外,如果做多个Configuration,是不是可以动态切换?怎么做? 多谢各位! |
|
|
6楼#
发布于:2001-06-13 17:47
[QUOTE]原本由 rayyang2000 发表
[B][QUOTE]原本由 peng-416 发表 [B]通常端点0是双向的,其它的都是单向的. USB是以主机为中心的,只能由主机读信息,设备是不能主动的向主机发信息的.IN新是主机读信息,OUT就是主机向设备发信息.这样方向就易懂了. [/B][/QUOTE] 我也有个问题:除了endpoint 0以外,其他端点可以是双向的吗?最好有谁实际使用过的。 另外,如果做多个Configuration,是不是可以动态切换?怎么做? 多谢各位! [/B][/QUOTE] 我认为除了ENDPOINT0以外的端点可否作为双向送信用,取决于DEVICE的仕样。如果DEVICE提供的话,HOST方是NO PROBLEM的。 多个CONFIGURATION的动态切换是肯定可行的,这在一些支持图像传送的电话中运用较普遍。它是由HOST方对BCONFIGURATION设置适当的值进行代替设定。不过,代替设定而激活的ENDPOINT是不能在当前已使用的ENDPOINT。 |
|
|
7楼#
发布于:2001-06-13 18:06
给定的端点类型决定它是什么传输方式,一般ep0为控制传输,
可以发送和接收。其他的端点要看芯片所赋予的功能,要么 interrupt,bulk in , bulk out, iso. |
|
8楼#
发布于:2001-06-14 09:18
是这样的。
PDIUSBD12有3个端点,我想把EP1和EP2设置成2种Configuration: 1. EP1 -> BULK IN/OUT, EP2 -> ISO OUT 2. EP1 -> BULK IN/OUT, EP2 -> ISO IN 在需要的时候,在这2个Configuration中切换。各位知道是否可行?有谁这样做过? |
|
|
9楼#
发布于:2001-06-14 09:30
应该不可以,每个端点在芯片设计时就已经定好了属性
|
|
10楼#
发布于:2001-06-14 10:26
[QUOTE]原本由 rayyang2000 发表
[B]是这样的。 PDIUSBD12有3个端点,我想把EP1和EP2设置成2种Configuration: 1. EP1 -> BULK IN/OUT, EP2 -> ISO OUT 2. EP1 -> BULK IN/OUT, EP2 -> ISO IN 在需要的时候,在这2个Configuration中切换。各位知道是否可行?有谁这样做过? [/B][/QUOTE] 你所说的想法应该是无法实现的。的确,DEVICE的EP的传送方式及传送方向都已经由DEVICE做死了。 然而,所谓的动态切换只不过是切换CONFIGURATION中的INTERFACE而已。 1。INTERFACE 1: EP1 -> BULK IN/OUT, EP2 -> ISO OUT 2。INTERFACE 2: EP1 -> BULK IN/OUT, EP3 ->ISO IN INTERFACE 1与INTERFACE 2的动态切换OK。 |
|
|
11楼#
发布于:2001-06-14 21:20
[QUOTE]原本由 Miki 发表
[B][QUOTE]原本由 rayyang2000 发表 [B]是这样的。 PDIUSBD12有3个端点,我想把EP1和EP2设置成2种Configuration: 1. EP1 -> BULK IN/OUT, EP2 -> ISO OUT 2. EP1 -> BULK IN/OUT, EP2 -> ISO IN 在需要的时候,在这2个Configuration中切换。各位知道是否可行?有谁这样做过? [/B][/QUOTE] 你所说的想法应该是无法实现的。的确,DEVICE的EP的传送方式及传送方向都已经由DEVICE做死了。 然而,所谓的动态切换只不过是切换CONFIGURATION中的INTERFACE而已。 1。INTERFACE 1: EP1 -> BULK IN/OUT, EP2 -> ISO OUT 2。INTERFACE 2: EP1 -> BULK IN/OUT, EP3 ->ISO IN INTERFACE 1与INTERFACE 2的动态切换OK。 [/B][/QUOTE] 1. PDIUSBD12的资料上说EP1可以做BULK IN/OUT,但我不知道它是说在同一种Interface中同时做IN和OUT,还是要分别在不同的Interface中?有没有人在除了EP0以外的某个端点上,在一个Interface中同时做IN和OUT的?别的芯片也可以。我现在想知道的是有谁实际实现过?或者从USB Spec上可以得到否定的结论; 2. 动态切换,到底是切换Interface还是Configuration?我看Driver里面有ActiveConfiguration,Interface只有Intialize。不管是哪一个,动态切换的时候,有哪些步骤? 多谢各位的热心回答。 |
|
|