当前位置: 首页 > news >正文

USB的VID、PID、PVN及分类(Class,SubClass,Protocol)

USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码),有的还有PVN(Product Version Number)VID由供应商向USB-IF(Implementers Forum,应用者论坛)申请每个供应商的VID是唯一的,PID由供应商自行决定。主机通过VID和PID来识别不同设备,根据它们(以及设备的版本号),可以给设备加载或安装相应的驱动程序。VID和PID的长度都是两个字节的。
常见的各大供应商的VID和PID,可以在这里查询到:http://www.linux-usb.org/usb.ids

USB定义了种类代码信息,它被用来识别设备的功能,根据这些功能,以加载设备驱动。这种信息包含在名为基类,子类和协议的3个字节里(注意:“基类”在本文中,用来标识三个字节的种类代码的的首字节;在USB规范中没有使用这个术语)。设备中有两个地方可以存放种类代码信息,一个是设备描述符,另一个是接口描述符。已经定义的种类代码,有些只能用在设备描述符里,有些只能用在接口描述符里,有些两种描述符里都可用。下表给出现在已经定了的基类的值的集合,通常用法是什么,基类用在什么场合(设备描述符或接口描述符)。
其具体定义参见USB官方网址:http://www.usb.org/developers/defined_class
各种类的定义参见:http://www.usb.org/developers/devclass_docs

Base Class

Descriptor Usage

Description

00h

Device

Use class information in the Interface Descriptors 种类信息定义在接口描述符中

01h

Interface

Audio 音频设备

02h

Both

Communications & CDC 通信设备(手机,Class_02&SubClass_02&Prot_01

03h

Interface

HID (Human Interface Device) 人机接口设备

05h

Interface

Physical 物理设备

06h

Interface

Image 图像设备(可能是IPhone手机,Class_06&SubClass_01&Prot_01)

07h

Interface

Printer 打印机

08h

Interface

Mass Storage 大容量存储(可能是手机,Class_08&SubClass_06&Prot_50)

09h

Device

Hub 集线器

0Ah

Interface

CDC-Data 通信设备(手机,Class_0A&SubClass_00&Prot_00

0Bh

Interface

Smart Card 智能卡

0Dh

Interface

Content Security 内容安全设备

0Eh

Interface

Video 视频设备(摄像头,Class_0e&SubClass_03&Prot_00)

0Fh

Interface

Personal Healthcare 个人健康设备

10h

Interface

Audio/Video Devices 音频/视频设备

DCh

Both

Diagnostic Device 诊断设备(USB2兼容设备)

E0h

Interface

Wireless Controller 无线控制器(蓝牙设备等)

EFh

Both

Miscellaneous 杂项(ActiveSync,PalmSync,各种协会等)

FEh

Interface

Application Specific 应用专有规范(固件升级,红外,USB测试与测量等)

FFh

Both

Vendor Specific 供应商自定义规范(手机,Class_FF&SubClass_FF&Prot_FF)

相关文章:

  • Windows下开发HID设备主机程序
  • Windows与自定义USB HID设备通信说明
  • usb server
  • window api 文件操作之CreateFile、ReadFile和WriteFile
  • 服务器硬件基础知识
  • XPath详解
  • XML详解
  • 串口是什么
  • USB接口
  • ch340是什么芯片
  • 最大路径长度限制
  • 启动配置数据(BCD)存储
  • 什么是EV 代码签名证书
  • 代码签名是什么
  • 使用DD_XOFT实现带有安全控件、U盾的输入
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • cookie和session
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • maya建模与骨骼动画快速实现人工鱼
  • node学习系列之简单文件上传
  • passportjs 源码分析
  • Promise面试题2实现异步串行执行
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Python打包系统简单入门
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 编写符合Python风格的对象
  • 简析gRPC client 连接管理
  • 前嗅ForeSpider教程:创建模板
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 微信小程序开发问题汇总
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​业务双活的数据切换思路设计(下)
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (9)目标检测_SSD的原理
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五)网络优化与超参数选择--九五小庞
  • (一)插入排序
  • (转)Google的Objective-C编码规范
  • (转)LINQ之路
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .jks文件(JAVA KeyStore)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net Signalr 使用笔记
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET多线程执行函数
  • .NET业务框架的构建
  • .NET与 java通用的3DES加密解密方法
  • @31省区市高考时间表来了,祝考试成功
  • @font-face 用字体画图标