zoukankan      html  css  js  c++  java
  • [USB]USB类代码备份[转]

    原始链接1:http://www.usb.org/developers/defined_class (USB官方论坛)

    原始链接2:http://www.baiheee.com/Documents/090518/090518112619.htm (百合电子)

    Home > Developers > Defined 1.0 Class Codes

    USB Class Codes                    

    December 7, 2011


    USB defines class code information that is used to identify a device’s functionality and to nominally load a device driver based on that functionality. The information is contained in three bytes with the names Base Class, SubClass, and Protocol. (Note that ‘Base Class’ is used in this description to identify the first byte of the Class Code triple. That terminology is not used in the USB Specification). There are two places on a device where class code information can be placed.One place is in the Device Descriptor, and the other is in Interface Descriptors. Some defined class codes are allowed to be used only in a Device Descriptor, others can be used in both Device and Interface Descriptors, and some can only be used in Interface Descriptors. The table below shows the currently defined set of  Base Class values, what the generic usage is, and where that Base Class can be used (either Device or Interface Descriptors or both).

     

    Base Class

    Descriptor Usage

    Description

    00h

    Device

    Use class information in the Interface Descriptors

    01h

    Interface

    Audio  

    02h

    Both

    Communications and CDC Control

    03h

    Interface

    HID (Human Interface Device)

    05h

    Interface

    Physical

    06h

    Interface

    Image

    07h

    Interface

    Printer

    08h

    Interface

    Mass Storage

    09h

    Device

    Hub

    0Ah

    Interface

    CDC-Data

    0Bh

    Interface

    Smart Card

    0Dh

    Interface

    Content Security

    0Eh

    Interface

    Video

    0Fh

    Interface

    Personal Healthcare

    10h

    Interface

    Audio/Video Devices

    DCh

    Both

    Diagnostic Device

    E0h

    Interface

    Wireless Controller

    EFh

    Both

    Miscellaneous

    FEh

    Interface

    Application Specific

    FFh

    Both

    Vendor Specific


    Base Class 00h (Device)

    This base class is defined to be used in Device Descriptors to indicate that class information should be determined from the Interface Descriptors in the device. There is one class code definition in this base class. All other values are reserved.

     

    This value is also used in Interface Descriptors to indicate a null class code triple.

     

    Base Class

    SubClass

    Protocol

    Meaning

    00h

    00h

    00h

    Use class code info from Interface Descriptors

     


    Base Class 01h (Audio)

    This base class is defined for Audio capable devices that conform to the Audio Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.Values outside of that defined spec are reserved. These class codes may only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    01h

    xxh

    xxh

    Audio device

     

     

    Base Class 02h (Communications and CDC Control)

     

    This base class is defined for devices that conform to the Communications Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved.  Note that the Communication Device Class spec requires some class code values (triples) to be used in Device Descriptors and some to be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    02h

    xxh

    xxh

    Communication device class

     

    Base Class 03h (HID – Human Interface Device)

    This base class is defined for devices that conform to the HID Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.   Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    03h

    xxh

    xxh

    HID device class

     

    Base Class 05h (Physical)

    This base class is defined for devices that conform to the Physical Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.  Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    05h

    xxh

    xxh

    Physical device class

     

     

    Base Class 06h (Still Imaging)

    This base class is defined for devices that conform to the Imaging Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.   Values outside of that defined spec are reserved.

     

    Base Class

    SubClass

    Protocol

    Meaning

    06h

    01h

    01h

    Still Imaging device

     

     

    Base Class 07h (Printer)

    This base class is defined for devices that conform to the Printer Device Class Specification found on the USB-IF website.  That specification defines the usable set of SubClass and Protocol values.  Values outside of that defined spec are reserved.  These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    07h

    xxh

    xxh

    Printer device

     

     

    Base Class 08h (Mass Storage)

    This base class is defined for devices that conform to the Mass Storage Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    08h

    xxh

    xxh

    Mass Storage device

     

     

    Base Class 09h (Hub)

    This base class is defined for devices that are USB hubs and conform to the definition in the USB specification.  That specification defines the complete triples as shown below.  All other values are reserved.  These class codes can only be used in Device Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    09h

    00h

    00h

    Full speed Hub

    01h

    Hi-speed hub with single TT

    02h

    Hi-speed hub with multiple TTs

     

     

    Base Class 0Ah (CDC-Data)

    This base class is defined for devices that conform to the Communications Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    0Ah

    xxh

    xxh

    CDC data device

     

     

    Base Class 0Bh (Smart Card)

    This base class is defined for devices that conform to the Smart Card Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values.Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    0Bh

    xxh

    xxh

    Smart Card device

     

     

    Base Class 0Dh (Content Security)

    This base class is defined for devices that conform to the Content Security Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    0Dh

    00h

    00h

    Content Security device

     

     

    Base Class 0Eh (Video)

    This base class is defined for devices that conform to the Video Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    0Eh

    xxh

    xxh

    Video device

     

    Base Class 0Fh (Personal Healthcare)

    This base class is defined for devices that conform to the Personal Healthcare Device Class Specification found on the USB-IF website. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes should only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    0Fh

    xxh

    xxh

    Personal Healthcare device

    Base Class 10h (Audio/Video Devices)

    The USB Audio/Video (AV) Device Class Definition describes the methods used to communicate with devices or functions embedded in composite devices that are used to manipulate audio, video, voice, and all image- and sound-related functionality. That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved. These class codes can only be used in Interface Descriptors. 

    Base Class

    SubClass

    Protocol

    Meaning

    10h

    01h

     

    02h

     

    03h 

     

    00h

    Audio/Video Device – AVControl Interface

    00h

    Audio/Video Device – AVData Video Streaming Interface

    00h

    Audio/Video Device – AVData Audio Streaming Interface

      

    Base Class DCh (Diagnostic Device)

    This base class is defined for devices that diagnostic devices. There is currently only one value defined. All other values are reserved. This class code can be used in Device or Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    DCh

    01h

    01h

    USB2 Compliance Device.  Definition for this device can be found athttp://www.intel.com/technology/usb/spec.htm

     

     

    Base Class E0h (Wireless Controller)

    This base class is defined for devices that are Wireless controllers. Values not shown in the table below are reserved. These class codes are to be used in Interface Descriptors, with the exception of the Bluetooth class code which can also be used in a Device Descriptor. 

    Base Class

    SubClass

    Protocol

    Meaning

     

    E0h

    01h

    01h

    Bluetooth Programming Interface.  Get specific information fromwww.bluetooth.com.

    02h

    UWB Radio Control Interface.  Definition for this is found in the Wireless USB Specification in Chapter 8.

    03h

    Remote NDIS.  Information can be found at:http://www.microsoft.com/windowsmobile/mobileoperators/default.mspx

    04h

    Bluetooth AMP Controller. Get specific information fromwww.bluetooth.com.

    2h

    01h

    Host Wire Adapter Control/Data interface.  Definition can be found in the Wireless USB Specification in Chapter 8.

    02h

    Device Wire Adapter Control/Data interface.  Definition can be found in the Wireless USB Specification in Chapter 8.

    03h

    Device Wire Adapter Isochronous interface.  Definition can be found in the Wireless USB Specification in Chapter 8.

     

    Base Class EFh (Miscellaneous)

    This base class is defined for miscellaneous device definitions. Values not shown in the table below are reserved. The use of these class codes (Device or Interface descriptor) are specifically annotated in each entry below.

    Base Class

    SubClass

    Protocol

    Meaning

    EFh

    01h

    01h

    Active Sync device. This class code can be used in either Device or Interface Descriptors. Contact Microsoft for more information on this class.

    02h

    Palm Sync. This class code can be used in either Device or Interface Descriptors.

    02h

    01h

    Interface Association Descriptor. The usage of this class code triple is defined in the Interface Association Descriptor ECN that is provided on www.usb.org . This class code may only be used in Device Descriptors.

    02h

    Wire Adapter Multifunction Peripheral programming interface. Definition can be found in the Wireless USB Specification in Chapter 8. This class code may only be used in Device Descriptors

    03h

    01h

    Cable Based Association Framework. This is defined in the Association Model addendum to the Wireless USB specification. This class code may only be used in Interface Descriptors.

    04h

    01h

    RNDIS over Ethernet.

    Connecting a host to the Internet via Ethernet mobile device. The device appears to the host as an Ethernet gateway device.

    This class code may only be used in Interface Descriptors.

    02h

    RNDIS over WiFi.

    Connecting a host to the Internet via WiFi enabled mobile device.  The device represents itself to the host as an 802.11 compliant network device.

    This class code may only be used in Interface Descriptors.

    03h

    RNDIS over WiMAX

    Connecting a host to the Internet via WiMAX enabled mobile device.  The device is represented to the host as an 802.16 network device.

    This class code may only be used in Interface Descriptors.

    04h

    RNDIS over WWAN

    Connecting a host to the Internet via a device using mobile broadband, i.e. WWAN (GSM/CDMA).

    This class code may only be used in Interface Descriptors.

    05h

    RNDIS for Raw IPv4

    Connecting a host to the Internet using raw IPv4 via non-Ethernet mobile device.  Devices that provide raw IPv4, not in an Ethernet packet, may use this form to in lieu of other stock types.

    This class code may only be used in Interface Descriptors.

    06h

    RNDIS for Raw IPv6

    Connecting a host to the Internet using raw IPv6 via non-Ethernet mobile device.  Devices that provide raw IPv6, not in an Ethernet packet, may use this form to in lieu of other stock types.

    This class code may only be used in Interface Descriptors.

    07h

    RNDIS for GPRS

    Connecting a host to the Internet over GPRS mobile device using the device’s cellular radio

    05h

    00h

    USB3 Vision Control Interface

    Machine Vision Device conforming to the USB3 Vision specification. This standard covers cameras and other related devices that are typically used in machine vision, industrial, and embedded applications.

    Reference:http://visiononline.org/

    This class code may only be used in Interface Descriptors.

    01h

    USB3 Vision Event Interface

    02h

    USB3 Vision Streaming Interface

    Base Class FEh (Application Specific)

    This base class is defined for devices that conform to several class specifications found on the USB-IF website.  That specification defines the usable set of SubClass and Protocol values. Values outside of that defined spec are reserved.  These class codes can only be used in Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    FEh

    01h

    01h

    Device Firmware Upgrade.  Device class definition provided on www.usb.org .

    02h

    00h

    IRDA Bridge device.  Device class definition provided on www.usb.org .

    03h

    00h

    USB Test and Measurement Device. Definition provided in the USB Test and Measurement Class spec found onwww.usb.org .

    01h

    USB Test and Measurement Device conforming to the USBTMC USB488 Subclass Specification found on www.usb.org.

     

     

    Base Class FFh (Vendor Specific)

    This base class is defined for vendors to use as they please.  These class codes can be used in both Device and Interface Descriptors.

     

    Base Class

    SubClass

    Protocol

    Meaning

    FFh

    xxh

    xxh

    Vendor specific

     

    /************************5是分割线***********************************************************************/

    表10、USB接口描述符的结构

    偏移量

    大小

    说明

           0

    bLength

    1

    数字

    此表的字节数

           1

    bDescriptorType

    1

    常量

    接口描述表类(此处应为0x04)

           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

    索引

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

    对于bInterfaceClass字段,表示接口所属的类别,USB协议根据功能将不同的接口划分成不的类,其具体含义如下表所示:

    表11、USB协议定义的接口类别(bInterfaceClass)
    值(十六进制) 类别
    0x01 音频类
    0x02 CDC控制类
    0x03 人机接口类(HID)
    0x05 物理类
    0x06 图像类
    0x07 打印机类
    0x08 大数据存储类
    0x09 集线器类
    0x0A CDC数据类
    0x0B 智能卡类
    0x0D 安全类
    0xDC 诊断设备类
    0xE0 无线控制器类
    0xFE 特定应用类(包括红外的桥接器等)
    0xFF 厂商定义的设备
  • 相关阅读:
    c语言 414 根据输入的整数,循环显示1234567890
    c语言 47 编写一段程序,显示小于输入的整数的所有2的乘方。
    c语言49 交替输出正负号,当输入0以下时什么也不显示
    c语言48 改写48的程序,当输入的值小于1时不输出换行符
    c语言 411 逆向输出输入的整数值(同时输出原始数据)
    c语言47 显示出小于输入的整数的所有2的乘方
    c语言412 输入一个整数值显示其位数
    c语言415 输出标准身高体重对照表
    c语言413 求1到n的和
    c语言 410 输出连续* \n
  • 原文地址:https://www.cnblogs.com/alimy/p/2982053.html
Copyright © 2011-2022 走看看