Standard Audio Streaming Isochronous Audio Data Endpoint Descriptor
struct usb_standard_as_isochronous_endpoint_descriptor
{
U8 bLength; /*Size of this descriptor, in bytes : 9*/
U8 bDescriptorType; /*ENDPOINT descriptor type*/
U8 bEndpointAddress; /*The address of the endpoint on the USB
device described by this descriptor. The
address is encoded as follows:
D7: Direction.
0 = OUT endpoint
1 = IN endpoint
D6..4: Reserved, reset to zero
D3..0: The endpoint number,
determined by the designer.*/
U8 bmAttributes; /*D3..2: Synchronization type
01 = Asynchronous
10 = Adaptive
11 = Synchronous
D1..0: Transfer type
01 = Isochronous
All other bits are reserved.*/
U16 wMaxPacketSize; /*Maximum packet size this endpoint is
capable of sending or receiving when this
configuration is selected.
This is determined by the audio
bandwidth constraints of the endpoint.*/
U8 bInterval; /*Interval for polling endpoint for data
transfers expressed in milliseconds.
Must be set to 1.*/
U8 bRefresh; /*Reset to 0.*/
U8 bSynchAddress; /*The address of the endpoint used to
communicate synchronization information
if required by this endpoint. Reset to zero
if no synchronization pipe is used.*/
};
bLength = 0x09;
bDescriptorType = 0x05; endpoint descriptor;
bEndpointAddress: 含义如下
D7: Direction.
0 = OUT endpoint
1 = IN endpoint
D6..4: Reserved, reset to zero
D3..0: The endpoint number,
determined by the designer.
bmAttributes: 含义如下
D3..2: 同步类型
01 = Asynchronous
10 = Adaptive
11 = Synchronous
D1..0: 传输类型
01 = Isochronous
wMaxPacketSize: max packet size, 由带宽决定;
bInterval: 数据传输所需时间,单位milliseconds;
bRefresh = 0; 未使用;
bSynchAddress: 如果用此endpoint进行同步信息交互,则使用此地址,=0则不使用同步信息。
对于Standard Audio Streaming Isochronous Synch Endpoint Descriptor, 结构与此相同,但含义略有不同,不同点如下:
bmAttributes:
D3..2: Synchronization type
00 = None
D1..0: Transfer type
01 = Isochronous
bInterval = 1; 未使用,必须为1;
bRefresh: 同步管道提供新的同步feedback数据时的速率,必须是2的幂次方,范围是1(2ms)~9(512ms);
bSynchAddress = 0; 未使用;