首页 > 其他分享 >USB的设备描述符

USB的设备描述符

时间:2024-03-17 19:31:47浏览次数:15  
标签:表示 字节 版本号 描述符 设备 USB

1.设备描述符

每个USB设备都有有且仅仅有一个设备描述符,它也是主机与设备连接时候读取到的第一个描述符,其总长度为18字节,一共包含了14个字段

第一个字段(bLength)代表设备描述符的长度,固定为18字节(0x12),所有标准描述符的第一个字节都代表相应描述符的长度信息。

第二个字段(bDescriptorType)表示描述符的类型。USB主机就是通过该字段进行描述符类型的区分的。如下表,所以这字段的值为0x01.

第三个字段(bcdUSB)表示USB设备所遵守的USB规范版本号,其长度为2字节,并且以BCD码给出,相应的格式为0xJJMN,JJ为主版本号,M为次版本号,N为子次版本号,例如USB的版本号为2.0,则相应的字段为0x0200.这是小端模式,低字节在前,高字节在后,

第四个字段(bDeviceClass)表示该USB设备所属的设备类,当该字段值为0xFF时,表示其是由厂商自定义的设备类,当为0的时候,表示USB设备各个接口相互独立,分别属于不同的设备类,也就是说你的接口可以使用相同或不同的设备类,我们称为复合设备,这取决于你的设备定义。

当该字段数值是0x01到0xFE的时候,表示设备在不同接口支持不同的类,各个接口只能属于相同的设备类,只能是音频类,人机接口设备类等等

第五个字段(bDeviceSubClass)表示设备所属的设备子类,主要就是进一步定义第四个字段(bDeviceClass)代表的设备类,如果bDeviceClass为0,则该字段也必须为0,如果为非0xFF,则该字段的所有值保留作为USB-IF组织分配。

第六个字段(bDeviceProtocol)表示USB设备所使用的设备类协议,也被定义在相应的设备类规范中,其值与第四个字段(bDeviceClass)和第五个字段(bDeviceSubClass)有关,也就是说这三个字段共同标识了设备的功能,到时候主机加载什么设备驱动就是依据这个,为0就是不使用设备类类型,为0xFF则表示设备类协议由厂商自定义。

第七个字段(bMaxPacketSize)表示USB设备端点0所支持的最大数据包的长度。低速设备为8字节,全速可以为8,16,32,64字节,高速设备直接为64字节。

第八个字段(idVendor)表示USB设备的厂商标识符(VID)

第九个字段(idProduct)表示产品表示符(PID) 

VID是由厂商向USB-IF组织申请的,PID是可以供应商自己决定的

第十个字段(bcdDevice)表示设备的版本号

第十一个字段(imanufacturer)和第十二个字段(iproduct)分别表示厂商与产品字符串描述符的索引值。后面字符串描述符哪里会具体说一下。

第十三个字段(iserialNumber)表示设备序列号字符串描述的索引值,如果没有就是0,它可以区分多个相同设备,就是同一个USB系统连接了多个相同厂家生产的同一型号设备,这些设备的VID,PID,设备的版本号都是一样的,那该怎么区分,厂商会根据该iserialNumber字段中针对每一个产品设置不同的序列号即可,我们ST的官方例程也是这样做的,它根据单片机的唯一96位ID来设置iserialNumber字段。如果一个设备有序列号有序列号,当我们将他连接到一个PC的不同端口时,操作系统就不需要重新载入该设备的驱动。

最后一个字段(bNumConfigurations)表示该USB设备所支持的配置数量。

标签:表示,字节,版本号,描述符,设备,USB
From: https://blog.csdn.net/Z1799369927/article/details/136767212

相关文章

  • USB配置描述符
    配置描述符我们的主机枚举过程中,是没有单独获取接口和端点描述符的,这是因为他们都是配置描述符的,当主机获取配置描述符时候,也就意味着会同时获取从属的接口,端点(及其他特定类描述符)。USB主机对于设备描述符的获取是有两次的,第一次只是获取如上图的8个字段,也就是前9个字节,这......
  • USB接口与端点描述符
    主机在第一次发送获取配置描述符的命令时,只会读取配置描述符的前九个字节,它包含了配置描述符以及所有从属的接口,端点(及其他特定类描述符)的总长度。获取其他长度不固定的描述符也是这样分成两步执行如果一个配置描述符不只支持一个接口描述符,并且每个接口描述符都有自己从属......
  • 带你了解USB Type-C的原理!!!
    USBType-C是一种通用串行总线接口标准,主要用于连接智能手机、平板电脑、笔记本电脑等便携式电子设备。它具有正反插、传输速度快、数据传输能力强、支持大功率充电等优点。USBType-C是一种通用的串行总线接口标准,它具有24个引脚,这些引脚的功能和用途如下: 1. VBUS:电......
  • Zabbix Server监控eNSP网络设备-1
    ZabbixServer搭建环境准备LinuxServer:Ubuntu22.04ZabbixServer:6.0LTSMySQLServer:8.0.361.Ubuntu配置阿里源1.1备份原始源sudomv/etc/apt/sources.list/etc/apt/sources.list.bak1.2新建源文件sudovim/etc/apt/sources.list1.3添加以下源链接debhtt......
  • 电力设备电磁设计原理(一)
    本篇为西安交通大学本科课程《电力设备设计原理》的笔记。本篇为这一单元的第一篇笔记。电磁场设计的目标和原则耐复杂应力性、长期稳定性、协同性、经济性和安全性。电磁场设计的控制方程和本构方程麦克斯韦方程组和本构方程麦克斯韦方程组含有四个定律:安培-麦克斯韦......
  • 【计算机网络】网络层——网络层设备
    路由器路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。路由选择处理机:根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。交换结构:根据转发表(路由表得来)对分组进行转发。转发VS路由选择不......
  • XM22010-3直流电源设备:开启高效稳定供电
    XM22010-3直流电源设备:稳定输出,高效供电新典范在直流电源领域,稳定、高效的供电设备是确保各类电子设备正常运行的关键。XM22010-3直流电源设备以其出色的稳定性和高效性,成为市场上的佼佼者。XM22010-3直流电源设备采用了先进的电源转换技术和智能控制算法,能够实现稳定、连续......
  • 铭瑄主板重启后USB3.0失效键盘鼠标无反应需要重新插拔
    铭瑄主板重启后USB3.0失效键盘鼠标无反应需要重新插拔 环境:铭瑄B760主板,使用鼠标键盘使用USB3.0HUB连接到主板USB3.0口。 重启后,键盘鼠标无反应,需要重新插拔。 解决方法:在主板BIOS-USB设置中开启" xHCI hand-off ",中文名叫“可扩展的主机控制器接口”。 ......
  • 业务需求:用户登录后,再新的设备上又登录一次(提示用户是否继续登录)
    需求:用户点击"取消"则当前登录取消,点击"确认"则把退出上个设备的登录,并在当前设备登录思路在login时判断该用户是否有token有:表示已经登录过了,回状态码和信息给前端"用户进行二次登录"无:表示用户第一次登录//用户进行新设备登录,判断当前用户token是否存在redi......
  • 如何阻止重要信息通过U盘、硬盘等设备被带出单位而导致泄密
    在企业数据安全的管理问题上,特别是防止重要信息泄露,起着关键的作用。信息泄露不仅可能损害企业的业务,还可能给企业的声誉带来巨大打击。因此,如何预防重要信息通过U盘、硬盘等设备被带出单位至关重要。下面将为您介绍几种有效的防止信息泄露的方法。1.管理U盘部门间应该对U盘......