
USB2.0规范
最近更新
-
USB 接口关联描述符
对于复合USB设备的接口描述符,可以在每个类(Class)要合并的接口描述符之前加一个接口关联描述符(Interface Association Descriptor,IAD),其作用就是把多个接口定义成一个类设备,即多个接口作用于一个设备。 接口关联描述符的定义如下: typedef struct _USB_INTERFACE_ASSOCI...
2022-11-17【USB2.0规范】
阅读全文 -
USB 端点描述符
端点描述符 USB设备中的每个端点都有自己的端点描述符,由接口描述符中的bNumEndpoint决定其数量 struct _ENDPOIN_DESCRIPTOR_STRUCT { BYTE bLength; //设备描述符的字节数大小,为0x7 BYTE bDescriptorType; //描述符类型编号,为0x05 BYTE bEndpointAddress; //端点地址及输入输出属性 BYTE bmAttrib...
2022-11-18【USB2.0规范】
阅读全文 -
USB 高速高带宽端点wMaxPacketSize
USB的端点可以设置为高速高带宽端点。 我们知道,USB的数据传输类型有4种,分别为控制传输,中断传输,批量传输和同步传输。而端点类型与之要对应。除过控制传输外,其余三种传输使用于应用的数据传输。 USB使用端点描述符的wMaxPacketSize来配置端点为高速高带宽...
2022-12-04【USB2.0规范】
阅读全文 -
USB端点描述符bInterval的时间周期解释
USB 端点描述符用于描述主机查询端点的时间间隔,这个值根据USB的版本和端点的类型而不同。 中断传输 同步传输 控制传输 批量传输 低速 1-255,单位为ms / / / 全速 1-255,单位为ms 1-16,2^(N-1)个周期单位 / / 高速 1-16,2^(N-1)个周期单位 1-16 ,2^(N-1)个周期单位 解释...
2022-12-25【USB2.0规范】
阅读全文 -
USB 设备功能描述符(Device Capability Descriptor)
设备功能描述符(Device Capability Descriptor)是用于存储特定某项技术或设备功能信息的描述符,和BOS描述符(BOS Descriptor)一起由Wireless Universal Serial Bus Specification Revision 1.0规范引入,之后在USB 2.0 ECN: Link Power Management (LPM) 、USB3.x Specification、Microsoft OS 2.0 Descriptors Specification 等...
2022-12-25【USB2.0规范】
阅读全文 -
USB 设备限定描述符
设备限定描述符描述符用在当一个设备能够工作在不同的速度下时,会获取设备限定描述符。 同时 支持全速与高速的设备 ,必须有一个Device Qualifier Descriptor。当设备转换速度的时候,设备描述符中的某些字段可能改变。Device Qualifier Descriptor描述符储存当前不适用的速...
2022-12-15【USB2.0规范】
阅读全文 -
USB 其它速率配置描述符
其它速率配置描述符(OTHER_SPEED_CONFIGURATION)。 其它速率配置描述符与设备限定描述符(Device Qualifier Descriptor)配合使用, 当工作在其他速度下时使用, 除了描述符类型, 其他字段含义格式与配置描述符完全一致。 位移 字段名称 长度(字节) 字段值 意义 0 bLength 1 0x09 描...
2022-12-29【USB2.0规范】
阅读全文 -
USB 设备同时支持全速模式与高速模式
当一个USB高速设备接入全速的HUB时,这时会出现高速模式协商失败,这时为了设备能正常使用,会自动使用全速模式来运行。 所以为了同时 支持全速与高速的设备 ,必须有Device Qualifier Descriptor和其它速率配置描述符(OTHER_SPEED_CONFIGURATION),用于描述全速模式下的配置信...
2022-12-11【USB2.0规范】
阅读全文 -
USB 字符串描述符
字符串描述符是可选的.如果不支持字符串描述符,其设备描述符,配置描述符,接口描述符内的所有字符串描述符索引都必须为0. 字符串描述符的功能 USB规范中定义了大量的标识,而这些标识都是以十六进制显示的,这个机器来说是很方便的,但对于人来说,就比...
2022-11-26【USB2.0规范】
阅读全文 -
USB设备语言ID-索引为0的字符串索引
对于如设备描描述符等相关的描述符,都会有一些字符串索引。主机通过GET_DESCRIPTOR获取对应的字符串索引内容,可以获取这些关于设备的一些描述符信息。如对于设备描述符的iManufacturer,iProduct和iSerialNumber。 我们又知道,当对于某些设备没有与之对应的字符串时,...
2022-12-31【USB2.0规范】
阅读全文 -
USB 描述符分类及关系
标准的描述符有5种,USB为这些描述符定义了编号: 1——设备描述符 2——配置描述符 3——字符串描述符 4——接口描述符 5——端点描述符 0x21——HID描述符 0x22——报表描述符/报告描述符 上面的描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备...
2022-12-18【USB2.0规范】
阅读全文 -
USB 标准请求
USB定义了8个字节的标准请求,通过这些请求,可以对设备的状态进行更改或对设备进行枚举。 USB的标准请求的数据传输方式都是控制传输方式,所以使用的端点是设备的默认端点0。 USB这8个字节的的控制请求不包括传输过程中的数据,但包括了控制请求的数据长度。...
2022-12-24【USB2.0规范】
阅读全文 -
USB标准请求、类特定请求总结
做USB开发,最常见的就是USB的控制请求的那8个字节的分析,如果抓包工具有协议分析那还好说,但是如果不带速协议分析,那其实还是挺郁闷的。所以说,如何快速的通过USB请求的那几个字段定位出是何请求,是可以大大的提高我们的协议分析效率的。 USB的请求这里...
2022-11-07【USB2.0规范】
阅读全文 -
USB 设置请求地址SetAddress
ID 请求码 说明 5 SET_ADDRESS 用来给设备分配地址 SetAddress 用于枚举(enumeration)阶段为设备分配一个唯一的地址,地址在 wValue 字段中且最大值为 127。该请求特别的地方在于,直到状态阶段完成,设备才完成地址设置。其他所有请求必须在状态阶段之前完成。该请求同样...
2022-12-18【USB2.0规范】
阅读全文 -
USB获取描述符GetDescriptor
描述述包括设备描述符请求,配置描述符请求、字符串描述符请求和其它描述符请求。 ID 请求码 说明 6 GET_DESCRIPTOR 用于主机获取设备的特定描述符 GetDescriptor用于USB主机读取设备的描述符,在请求数据阶段,USB设备将向主机返回指定的描述符。 bmRequestType(1) bRequest(...
2022-12-07【USB2.0规范】
阅读全文 -
USB 设置描述符SetDescriptor
ID 请求码 说明 7 SET_DESCRIPTOR 修改设备中有关的描述符,或者增加新的描述符 SetDescriptoret用于设置USB的描述符,在SetDescriptor请求的数据阶段,主机将向USB设备发送指定的描述符类型 。 bmRequestType(1) bRequest(1) wValue(2) wIndex(2) wLength(2) 00 07 类型和索引 00或语言...
2022-12-11【USB2.0规范】
阅读全文 -
USB 设置接口SetInterface
ID 请求码 说明 11 SET_INTERFACE 用于主机要求设备用某个描述符来描述接口 SetInterface请求用于USB主机为设备指定的接口选择一个合适的替换值,该请求没有数据阶段。。 bmRequestType(1) bRequest(1) wValue(2) wIndex(2) wLength(2) 01 0B 可替换接口值 接口 0 bmRequestType:x01表示...
2022-12-01【USB2.0规范】
阅读全文 -
USB 设置配置 SetConfiguration
ID 请求码 说明 9 SET_CONFIGURATION 用于主机指示设备采用的要求的配置 SetConfiguration请求与GetConfiguration相对应,用于主机为USB设备设置一个合适的配置值 ,该请求无数据阶段。 一般的设备只有一个配置,当有多个配置时,会让用户选择。一个设备只能工作在一个配置状态...
2022-11-29【USB2.0规范】
阅读全文 -
USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
在USB设备枚举的最后,主机都会对设备发送设置配置置(SetConfiguration)请求和对接口发送设置接口(SetInterface)请求,这两个控制请求在USB设备的工作中,具有重要的作用。 CTL 00 09 01 00 00 00 00 00 SET_CONFIGURATION 117us CTL 01 0b 00 00 00 00 00 00 SET_INTERFACE 1.5ms 这里我们对设置配置...
2022-12-21【USB2.0规范】
阅读全文 -
USB 设置特性请求SetFeature
ID 请求码 说明 3 SET_FEATURE 用来启用或激活命令接收者的某些特性 SetFeature请求用于设置或使能USB设备、接口或端点的特性值,和CLEAR_FEATURE请求相对应。 SetFeature请求同样没有数据阶段。 bmRequestType(1) bRequest(1) wValue(低) wValue(高) wIndex(2) wLength(2) 00 03 特性选...
2022-12-16【USB2.0规范】
阅读全文 -
USB 清除特性请求ClearFeature
SetFeature 和 ClearFeature 可用于设置 boolean 型的功能。指定设备作为接收者,支持的选项只有DEVICE_REMOTE_WAKEUP 和 TEST_MODE,Test 模式允许设备到处多种条件。 ID 请求码 说明 1 CLEAR_FEATURE 用来清除或禁止接收者的某些特性 ClearFature请求用于清除或禁用USB设备、接口或端点的某...
2022-11-17【USB2.0规范】
阅读全文 -
USB 读取状态GetStatus
ID 请求码 说明 0 GET_STATUS 用来返回特定接收者的状态 GetStatus请求主要用于USB主机读取USB设备、接口或端点的状态。USB设备返回2字节的设备状态。 读取设备 " class="reference-link"> 读取设备 请求数据 bmRequestType(1) bRequest(1) wValue(2) wIndex(2) wLength(2) 80 00 0000 0000 0...
2022-11-05【USB2.0规范】
阅读全文 -
USB 同步帧SynchFrame
ID 请求码 说明 12 SYNCH_FRAME 用于设备设置和报告一个端点的同步帧 SynchFrame用于设置并报告端点的同步帧号,用于同步传输,只适用于同步端点。在SynchFrame请求的数据阶段,USB设备将向USB主机返回2个字节的帧号数据 bmRequestType(1) bRequest(1) wValue(2) wIndex(2) wLengt...
2022-11-27【USB2.0规范】
阅读全文 -
USB 读取配置GetConfiguration
ID 请求码 说明 8 GET_CONFIGURATION 用于主机获取设备当前设备的配置值 GetConfiguration用于主机读取USB设备当前的配置值,在 GetConfiguration的数据阶段,USB设备将向主机返回一个字节的配置值。 bmRequestType(1) bRequest(1) wValue(2) wIndex(2) wLength(2) 80 08 0 0 1 bmRequestType:...
2022-12-30【USB2.0规范】
阅读全文 -
USB 读取接口GetInterface
ID 请求码 说明 10 GET_INTERFACE 用于获取当前某个接口描述符编号 GetInterface请求用于USB主机读取指定接口的设置值,即获取接口描述符中bAlternateSetting。 字段中的值。在GetInterface请求的数据阶段,USB设备向USB主机返回1个字节的可替换设置值。 bmRequestType(1) bRequest(1) w...
2022-12-07【USB2.0规范】
阅读全文 -
USB 集线器HUB
通过USB集线器,可以很简单的实现主机扩展USB设备的数量。 在USB协议规范中,USB集线器作为了一种特殊的设备在存在,USB规范专门为其定义了一种设备类。 USB集线器的结钩 集线器由6个组件组成: 上行端口:用于连接上层的USB集线器或者根集线器。下行端口:用于连...
2022-11-06【USB2.0规范】
阅读全文 -
USB集线器HUB的枚举过程及集线器状态
USB集线器和其他USB设备一样,都需要在上电时进行配置。在USB协议中,使用默认的端0点。进行上电初期的通信。USB集线器除了配置其自身外,还需要对下行端口连接的其他USB设备进行识别。 USB集线器HUB枚举过程 USB集线器的上电配置过程如下: USB集线器连接到USB主机...
2022-12-02【USB2.0规范】
阅读全文 -
USB集线器设备描述符
USB集线器设备描述符的定义和USB设备的描述符定义一致,详见:http://www.usbzh.com/article/detail-104.html USB3.2的集线器设备描述符示例 本人手中的一个USB3.2的集线器设备描述符内容如下: ---------------------- Device Descriptor ----------------------bLength : 0x12 (18 bytes)bDescriptorType : 0x01 (D...
2022-11-24【USB2.0规范】
阅读全文 -
USB2.0集线器功能模块及设备连接路由
USB集线器HUB用于在USB设备与主机之间建立起连接的桥梁。所以USB设备都是通过USB集线器连接到USB主机。 为了让用户更加方便简洁地使用USB设备,USB集线器和USB主机实现了很多复杂的幕后工作,从而大大提高了USB设备的使用和开发的友好性。 USB集线器必须支持的功能如...
2022-11-22【USB2.0规范】
阅读全文 -
USB2.0集线器的连接行为
USB2.0集线器的连接行为Connectivity behavior表现出的各种不同的连接行为,决于它们是否在传输数据包、恢复信号或者空闲状态。 一个USB集线器包含一个上游端口(用于连接上级HUB或USB控制器)和多个下游端口(用于连接下游设备)。上游连接定义为朝向主机,下游连接定...
2022-12-03【USB2.0规范】
阅读全文