由于 USB 的数据传输采用数据包的形式,因而使得连接到主机的所有的 USB 外设可以同时工作而互不干扰。不幸的是,所有这些 USB 外设必须同时分享 USB 协议所规定的 USB 带宽 ( 这个带宽在 USB 1.0 协议中为 12Mbps) ,虽然 USB 的分时处理机制可以使有限的 USB 带宽在各设备之间动态地分配,但如果两台以上的高速...
usb_get_status - Get status of a USB device/endpoint/interface Solaris DDI specific (Solaris DDI)
在USB规范里,对命令一词提供的单词为“Request”,但这里为了更好的理解主机与设备之间的主从关系,将它定义成“命令”。 所有的USB设备都要求对主机发给自己的控制命令作出响应,USB规范定义了11个标准命令,它们分别是:Clear_Feature、Get_Configuration、Get_Descriptor、Get_Interface、Get_Status、Set_Address、Set_Confi...
(0) 0 GET_STATUS:用来返回特定接收者的状态 (1) 1 CLEAR_FEATURE:用来清除或禁止接收者的某些特性 (x) 2 为将来保留 (2) 3 SET_FEATURE:用来启用或激活命令接收者的某些特性 (x) 2 为将来保留 (3) 5 SET_ADDRESS:用来给设备分配地址 (4) 6 GET_DESCRIPTOR:用于主机获取设备的特定描述符 (5) 7 SE...
5) usb_get_status() 这个有点特殊,它是专门给Hub又外接Hub而准备的。 6)usb_new_device() 这时USB设备已经进入了Configured状态,调用device_add()在USB总线上寻找驱动,若匹配成功,则加载对应的驱动程序。 3. USB OTG 引入OTG的概念是为了让设备可以充当主从两个角色,主设备即HCD,从设备即UDC,也就是Gadget...
获取状态(Get Status) 设置地址(Set Address) 设置特性(Set Feature) 清除特性(Clear Feature) 描述符 在USB设备的枚举过程中,USB设备需要对主机发来的命令请求作出正确回应,这些应答数据都有规定的数据格式,在USB规范里把这些有固定结构的数据包称为描述符,这些描述符存储在设备内存中。描述符中也包含了设备所用到...
UsbBuildGetStatusRequest 宏格式化 URB,以从 USB 设备上的设备、接口、终结点或其他设备定义目标获取状态。语法C++ 复制 void UsbBuildGetStatusRequest( [in, out] urb, [in] op, [in] index, [in, optional] transferBuffer, [in, optional] transferBufferMDL, [in] link ); ...
IOCTL_INTERNAL_USB_GET_PORT_STATUS I/O 请求查询 PDO 的状态。 IOCTL_INTERNAL_USB_GET_PORT_STATUS是内核模式 I/O 控制请求。 此请求面向 USB 集线器 PDO。 必须在 IRQL = PASSIVE_LEVEL 发送此 IOCTL。
2、主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。返回的消息告诉主机该设备是什么时候连接的。集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status请求的响应。 3、主机发送Set_Port_Feature(写端口状态)请求给集线器,要求它复位端口,请求集线器来重新设置端口。集线器使...
bRequest 为 DFU 相关操作,比如 Detach、Download、Upload、GetStatus、Abort 等 DFU 接口初始化的代码片段如下: Control Transfer 主要是在 ep0 上传输,因此 ep0 的读写回调中就会根据收到的数据来派发到不同的 handler,对于 DFU 协议的分发伪代码如下: ...