您现在的位置是:主页 > USB百科 >

USB的VendorID、ProductID和BcdDevice有什么作用

发布时间:2022-12-13 13:45:04所属栏目:USB百科 已帮助编辑作者:【USB接口百科】

Vendor ID(VID)的商用需要向USB组织申请,开发者可直接使用开发平台的厂商ID。Product ID(PID)由厂商自行管理。VID和PID的作用是让主机快速识别某些著名的设备(Windows可以在完成枚举之前依此直接派发驱动),它们也常常作为搜索从机的条件(如libusb)。BcdDevice:用于标识USB当前产品的固件版本号,在Windows中生成的硬件ID中,不REV,如
USB\VID_12D1&PID_3A07&REV_0024

一个USB设备的VID和PID在USB设备描述符中指定,通过wIdVendor和wIdProduct指定。

#pragma data_alignment=1    //对齐方式为Byte
typedef struct _USB_Desc_Device_t {
    uint8_t   bLength;                  // 固定值18B
    uint8_t   bDescriptorType;          // 固定值Device(0x01)
    uint16_t  wBcdUSB;                  // USB Spec版本
    uint8_t   bDeviceClass;             // 设备类型
    uint8_t   bDeviceSubClass;          // 设备子类型
    uint8_t   bDeviceProtocol;          // 协议类型
    uint8_t   bMaxPacketSize0;           // EP0的最大包长度
    uint16_t  wIdVendor;                // 厂商ID
    uint16_t  wIdProduct;               // 产品ID
    uint16_t  wBcdDevice;               // 设备软件版本
    uint8_t   bStringIndexManufacturer; // 厂商名称字符串索引号
    uint8_t   bStringIndexProduct;      // 产品名称字符串索引号
    uint8_t   bStringIndexSerialNumber; // 序列号索字符串引号
    uint8_t   bNumConfigurations        // 配置数量>=1
}USB_Desc_Device_t;

大部分USB设备都是标准的兼容设备,如UVC摄像头,HID键盘等,都是使用USB设备分类的bDeviceClass、bDeviceSubClass和bDeviceProtocol生成的兼容ID进行驱动匹配的,Windows中提供了大量的兼容驱动。
对于使用自定义分类的bDeviceClass的设备,系统可能会因为无法找到驱动而并成未知设备,这时需要开发相应的USB设备驱动,这时可以使用由VendorID、ProductID和BcdDevice给成的硬件ID来进行匹配。

[Standard.NT$ARCH$]
%DeviceDesc%=UsbzhDevice, USB\VID_0A39&PID_0001&REV_0100;
%DeviceDesc%=UsbzhDevice, USB\VID_0A39&PID_0002;

     以上就是USB接口百科为您提供USB的VendorID、ProductID和BcdDevice有什么作用的解读,本文章链接: http://www.usb-hub.cn/usbbk/42132.html 欢迎分享转载,更多婚礼相关资讯请前往USB百科