接口描述符中bInterfaceClass的值必须为ox03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(BootDevice,一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设备才能成为BootDevice。如果为0则只有在操作系统启动后才能识别并使用您的HID设备)。另外bInterfaceProto...
一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设备才能成为Boot Device。如果为0则只有在操作系统启动后才能识别并使用您的HID设备),bInterfaceProtocol的取值含义如下表所示:
在报表描述符中,Report ID项目作用于其后续所有的项目,直到遇到下一个Report ID为止。如果报表描述符中没有Report ID项目,默认的ID值是0,描述符不能定义一个为0的Report ID,输入报表、输出报表与特征报表可以分享同一个Report ID。 在Set_Report和Get_Report请求传输中,主机在设置事务的wValue字段的低字节中指定...
为了让主机把设备识别为HID类别,定义设备接口描述符时类别这一字段的值必须设置为0x03(HID类别),这样主机就会继续请求获得设备的HID描述符和报告描述符。在主机Get_Descriptor请求中,当值字段的高位字节为0x21时,表示主机要求获得HID描述符;当值字段高字节为0x22时,就是主机要求获得报告描述符。对于报告描述符,可以参...
接口描述符中bInterfaceClass的值必须为0x03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(Boot Device,一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设备才能成为Boot Device。如果为0则只有在操作系统启动后才能识别并使用您的HID设备)。
表1、USB HID规范定义的HID设备可用端点 HID设备6种特定请求 HID类请求(命令)包格式 HID类请求 GET_REPORT:主机通过控制端点获取一个Report SET_REPORT:主机发送一个Report给设备,用以设置input,output或者feature GET_IDLE SET_IDLE GET_PROTOCOL SET_PROTOCOL...
HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议的相关内容。 USB设备描述符-概述 当插入USB设备后,主机会向设备请求各种描述符来识别设备。那什么是设备描述符呢? Descriptor即描述符,是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中,用于描述一个USB设备的所...
USB HID类可采用的通信管道 所有的HID设备通过USB的控制管道(默认管道,即端点0)和中断管道与主机通信。 控制管道主要用于以下3个方面: 接收/响应USB主机的控制请示及相关的类数据 在USB主机查询时传输数据(如响应Get_Report请求等) 接收USB主机的数据 中断管道主要用于以下两个方面: ...
HID类请求数值HID类请求描述符注释0x01GET_REPORT0x02GET_IDLE0x03GET_PROTOCOL仅仅适应于支持启动功能的HID设备(Boot Device)0x09SET_REPORT0x0ASET_IDLE0x0BSET_PROTOCOL仅仅适应于支持启动功能的HID设备(Boot Device)USB主机在请求HID设备的配置描述符时,设备首先返回的描述符为:配置描述符、接口描述符、HID描述符...
为了区别两个features,要用到全局项目中的report ID,每个feature报告有一个不同的report ID,因而主机请求指令要加上report ID的值:get report(feature,report ID)和Set report(feature,report ID)。 主项目用来定义报告中数据的种类和格式,而说明主项目之意义与用途为全局...