HID规范
+ -

HID 设置空闲SetIdle

2020-10-31 本文链接为:http://www.usbzh.com/article/detail-116.html ,欢迎转载,转载请附上本文链接。

SetIdle用于设置HID设备空闲速率。

  • 键盘、鼠标等 HID 设备
  • 需要根据主机要求调整报告频率
  • 节省 USB 带宽或降低功耗

默认情况下,空闲速率为0。SetIdle是一个非必要请求。

  • bmRequestType(1):0x21
  • bRequest(1): SET_IDLE,值为0A.
  • wValue(2):高字节用于指定空闲速率,以4ms为单位,可选的值为4ms~1020ms,低字节为ReportId.
  • wIndex(2):接口ID
  • wLength(2):数据长度,为0
1字节 1字节 2字节 2字节 2字节
bmRequestType(1) bRequest(1) wValue(2) wIndex(2) wLength(2)
21 0a 空闲速率 接口ID 数据长度=00
  • 当空闲速率为0时表示只在数据变化时发送报告
  • 当空闲速率不为0时,表示至少每 n*4 ms发送一次

SetIdle由主机发输,用于向设备的中断端点设置无动作参数,该请求使中断输入管道上的特定报告不再输放到主机,直到发生新事件或经过指定的时间量再输入。

该请求使端点在其当前报告保持不变的情况下拒绝对端点中的中断进行任何轮询。 在没有变化的情况下,轮询将在给定的基于时间的持续时间内继续 NAK

SetIdle请求一般发生在HID设备枚举完成后用于设置HID设备,以节省USB带宽。

如果该中断端点可以返回多个报告,则 Set_Idle 请求可用于仅影响为指定报告 ID 生成重复报告的速率。 例如,具有两个输入报告的设备可以为报告 ID 1 指定 20 毫秒的空闲率,为报告 ID 2 指定 500 毫秒的空闲率。

键盘的推荐默认空闲率(设备初始化时的速率)为 500 毫秒和操纵杆和鼠标的为无穷大。

当然,当设备不支持该请求时,可以返回STALL.
SET_IDLE

本文链接为:http://www.usbzh.com/article/detail-116.html ,欢迎转载,转载请附上本文链接。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936     USB技术交流3:1031974172

0 篇笔记 写笔记

HID 设置空闲SetIdle
SetIdle用于设置HID设备空闲速率。键盘、鼠标等 HID 设备需要根据主机要求调整报告频率节省 USB 带宽或降低功耗默认情况下,空闲速率为0。SetIdle是一个非必要请求。bmRequestType(1):0x21bRequest(1): SET_IDLE,值为0A.wValue......
HID设备SET_IDLE时遇到c0000004
下午,USB中文网技术交流群里的一个同学,说他的HID设备时好时不好的,有时会花很长的时间才能枚举成功。没有抓包,没的截图…我是一顿乱扯,从硬件电路到各种抓包方法….晚上11点,这位同学发来了BUSHOUND抓的包,打开一看:Device Length Phase Data ......
HID传输 SetIdle传输
SetIdle传输由Setup事务和IN事务组成。SETUP事务SETUP令牌包DATA0ACKIN事务IN令牌包DATA1(无数据)ACK 通过USB总线分析仪抓包:......
关注公众号
  • HID人机交互
  • Linux&USB
  • TinyUSB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • XHCI 1.2b 规范
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!