您现在的位置: USB开发网 > USB技术文档 > USB专题 > USB1.1协议中文完整在线版
USB1.1协议中文完整在线版

9.6 USB标准描述表的定义

------分隔线----------------------------

9.6 标准描述表的定义

  本说明中有关标准描述表的定义只能被本说明的校订本修改或扩展。

  注意:一个对USB 1.0标准结点描述表的扩展已由《声音设备类说明修订本1.0》公布。仅此是除USB说明外被许可的,将来的USB说明的修订本会用此来对标准节点描述表进行扩展来避免与《声音设备类说明修订本1.0》的冲突。

9.6.1 设备

  设备描述表给出了USB设备的一般信息。这包括对设备及所有设备配置起全程作用的信息。一个USB设备只能有一个设备描述表。

  所有的USB设备都有缺省控制通道。缺省控制通道的最大包长在设备描述表中得到了说明。一个配置的端节点与接口定义在配置描述表中,一个配置和它的接口不包括节点描述表。除最大包长外,缺少通道的特性由本说明定义,并且对所有的USB设备都一样。

  bNumberConfiguration s域表明此设备支持的配置数。表8-7为标准设备描述表。

 表8-7 标准设备描述表

偏移量

大小

描述

0

bLength

1

数字

此描述表的字节数

1

bDecriptorType

1

常量

描述表种类为设备

2

bcdUSB

2

BCD码

此设备与描述表兼容的USB设备说明版本号(BCD 码)

4

bDeviceClass

1

设备类码

如果此域的值为0则一个设置下每个接口指出它自己的类,并个接口各自独立工作。

如果此域的值处于1~FEH之间,则设备在不同的接口上支持不同的类。并这些接口可能不能独立工作。此值指出了,这些接口集体的类定义。

如果此域设为FFH,则此设备的类由厂商定义。

5

bDeviceSubClass

1

子类

子类码

   这些码值的具体含义根据bDeviceClass 域来看。

   如bDeviceClass 域为零,此域也须为零

如bDeviceClass 域为FFH,此域的所有值保留。

6

bDevicePortocol

1

协议

协议码

   这些码的值视bDeviceClass 和 bDeviceSubClass 的值而定。

     如果设备支持设备基础上的类相关的协议,此码标志了设备类说明上的值。

     如果此域的值为零,则此设备不在设备基础上支持设备类相关的协议。然而,它可能在接口基础上支持设备类相关的协议。

    如果此域的值为FFH,此设备使用厂商定义的协议。

7

bMaxPacketSize0

1

数字

端点0的最大包大小(仅8,16,32,64

为合法值)

8

idVendor

2

ID

厂商标志(由USB标准付值)

10

idProduct

2

ID

产品标志(由厂商付值)

12

bcdDevice

2

BCD 码

设备发行号(BCD 码)

14

iManufacturer

1

索引

描述厂商信息的字串的索引。

15

iProduct

1

索引

描述产品信息的字串的索引。

16

iSerialNumber

1

索引

描述设备序列号信息的字串的索引。

17

bNumConfigurations

1

数字

可能的设置数

9.6.2 配置

  配置描述表给出了一设备配置的信息,描述表包括一个b Configuration Value域,在SetConfiguration( )请时被用作参数来设置所需配置。

  此描述表给出了此配置下的接口数,每个接口可能独立操作。比如,一个ISDN设备可能配置有两个接口,每个都提供64KB/S的有独立数据源与数据接收者的双向通道在另一个配置下ISDN可能表现为单个接口,将两个通道合成一个128KB/S的双向通道。

  当主机发出请求要得配置描述表时,所有相关接口与端节点的描述表都被返回。

  一个USB设备有一个或多个配置。每个配置只有一个或多个接口。而每个接口又有0个或多个端节点。在一个配置下,一个端节不会在接口之间共享,除非端节点被同一个接口的不同设置使用。在不同配置端节点,可无此限制。

  一个配置好后,设备可支持对配置的有限调整,如果一个接口有备选设置,在配置好后可选择不同设置。表8-8是标准配置描述表。

表8-8 标准配置描述表

偏移量

大小

描述

0

bLength

1

数字

此描述表的字节数。

1

bDescriptorType

1

常量

配置描述表类型

2

wTotalLength

2

数字

此配置信息的总长(包括配置,接口,端点和设备类及厂商定义的描述表)

4

bNumInterfaces

1

数字

此配置所支持的接口个数

5

bCongfigurationValue

1

数字

在SetConfiguration()请求中用作参数来选定此配置。

6

iConfiguration

1

索引

描述此配置的字串描述表索引

7

bmAttributes

1

位图

配置特性:

D7:保留(设为一)

D6:自给电源

D5:远程唤醒

D4..0:保留(设为一)

一个既用总线电源又有自给电源的设备会在MaxPower域指出需要从总线取的电量。并设置D6为一。运行时期的实际电源模式可由GetStatus(DEVICE)请求得到。

8

MaxPower

1

mA

在此配置下的总线电源耗费量。以2mA为一个单位。

9.6.3 接口

  此描述表在一个配置内给出一个接口的信息。如果一个配置支持不止一个接口,端节点的描述表会跟在接口描述表后被返回,接口描述表总是作为配置描述表的一部分被返回。接口描述不可直接用Set Description ( )和Get Descriptor ( )存取。

  一个接口可能包含备选设置,以使得端节点或他们的特性在设备配置好以后能改变。一个接口的缺省设置总是可选设置。SetInterface ( )与GetInterface ( )用来选择与返回选择了的接口设置。

  可选的接口设置使得部分的设备配置能在其它接口进行操作的情况下改变。如果一个配置对于它的一个或多个接口有备选设置,每一设置包括一个独立接口描述表和相关结点。

  如果一个设备配置支持单个接口,并此接口有两个可选设置,配置描述表返回以后会紧跟着返回bInterfaceNumber与bAlternateSetting域皆为0的第一个设置的接口描述表及相关的结点描述表,而随之后是另一个设置接口描述表与结点描述表。第二个接口描述表的bInterfaceNumber域也应为0,但bAlternate Setting域应为1。

  如果一个接口仅使用节点0,则接口描述表以后就不再返回节点描述表,并且此接口表示的是一个请求接口,它使用连在节点0上的缺省通道。在这种情况下bNumberEndpoints域应被设置成0。

  一个接口描述表的节点个数不把结点0计在内。表8-9是标准节口描述表。

表8-9 标准接口描述表

偏移量

大小

说明

0

bLength

1

数字

此表的字节数

1

bDescriptorType

1

常量

接口描述表类

2

bInterfaceNumber

1

数字

接口号,当前配置支持的接口数组索引(从零开始)

3

bAlternateSetting

1

数字

可选设置的索引值。

4

bNumEndpoints

1

数字

此接口用的端点数量,如果是零则说明此接口只用缺省控制管道。

5

bInterfaceClass

1

类值

零值为将来的标准保留。

如果此域的值设为FFH,则此接口类由厂商说明。

所有其它的值由USB说明保留。

6

bInterfaceSubClass

1

子类

子类码

这些值的定义视bInterfaceClass域而定。

如果bInterfaceClass域的值为零则此域的值必须为零。

bInterfaceClass域不为FFH则所有值由USB所保留。

7

bInterfaceProtocol

1

协议

协议码:bInterfaceClass和bInterfaceSubClass域的值而定.如果一个接口支持设备类相关的请求此域的值指出了设备类说明中所定义的协议.

 

8

iInterface

1

索引

描述此接口的字串描述表的索引值。

9.6.4 节点

  每个接口使用的结点都有自己的描述表,此描述表被主机用来决定每个节点的带宽需求。每个结点的描述表总是作为配置描述的一部分返回的,结点0无描述表。8-10为标准节点描述表。

表8-10 标准端点描述表

偏移量

大小

说明

0

bLength

1

数字

此描述表的字节数

1

bDescriptorType

1

常量

端点描述表类

2

bEndpointAddress

1

端点

此描述表所描述的端点的地址。此地址的编码如下:

Bit3..0:端点号.

Bit6..4:保留,为零

Bit7:方向,如果控制端点则略。

0:出端点

1:入端点

3

bmAttributes

1

位图

此域的值描述的是在bConfigurationValue域所指的配置下端点的特性。

Bit1..0:传送类型

00=控制传送

01=同步传送

10=批传送

11=中断传送

所有其它的位都保留。

 

4

wMaxPacketSize

2

数字

当前配置下此端点能够接收或发送的最大数据包的大小。

对与同步传送此值用于为每幀的数据净负荷预留时间。而通道可能在实际运行时不需要预留的带宽。实际带宽可由设备通过一种非USB定义的机制汇报给主机.

对于中断传送,批传送,控制传送.端点可能发送较小的数据包。并且在结束传送后既有可能间隙时间来重启,也有可能不需要这段时间。具体请参照第五章。

 

6

bInterval

1

数字

轮寻数据传送端点的时间间隙。

此域的值对于批传送的端点及控制传送的端点忽略。对于同步传送的端点此域必需为1。对于中断传送的端点此域值的范围为1到255。

9.6.5 字串

  字串描述表是可有可无的。如前所述,如果一个设备无字串描述表,所有其它描述表中有关字串描述表的索引都必须为0。

  字串描述表使用的是UNICODE编码,则《Unicode标准世界范围的字符编码》1.0版,第一和第二卷定义,字串描述表支持多语言编码。当请求字串描述表时,请求者用一个6位的语言标识指出语言,此语言ID由微软Windows定义(《开发Windows 95及Windows NT的国际化软件》,Nadine Kano,微软出版,华盛顿)。所有语言的0号字串索引返回一个字串描述表,该字串描述表为双字节的LANGID数组,表示设备支持的语言,表8-11表示了该LANGID数组。USB设备可删除所有的字串描述表。USB设备删了字串描述表后就不能返回LANGID码了。LANGID数组不是以NULL结尾的。它的大小为bLength-2。

 表8-11 体现设备所支持的语言的码字

偏移量

大小

描述

0

bLength

1

N+2

此描述表的字节数

1

bDescriptorType

1

常量

字串描述表类型

2

wLANGID[0]

2

数字

语言标识(LANGID)码0

 

 

 

 

 

N

wLANGID[x]

2

数字

语言标识(LANGID)码X

  NICODE字串也不是NULL结尾的(见表8-12),字串长为bLength-2。

表8-12 UNICODE 字串描述表

偏移量

大小

描述

0

bLength

1

数字

此描述表的字节数

1

bDescriptorType

1

常量

字串描述表类型

2

bString

N

数字

UNICODE编码的字串

------分隔线----------------------------
USB开源项目
联系我们
  • Q Q: 1148374829 点击这里给我发消息
  • 旺旺:jhoneqhsieh 点击这里给我发消息
  • 电话:(0)15923141204
  • 淘宝网店