Human Interface Device (HID) Class Decoder

http://www.usblyzer.com/usb-human-interface-device-hid-class-decoder.htm

  Human Interface Device (HID) Class Decoder

Human Interface Device (HID) class is one of the most frequently used USB classes. The HID class consists primarily of devices that are used by humans to control the operation of computer systems. Examples of HID class devices include keyboards, pointing devices (such as mouse devices, joysticks and trackballs), control devices (such as steering wheels, throttles, rudder pedals, and data gloves), the devices that humans use to enter data directly into a computer (such as telephones, VCR remote controls, games and simulation devices), and other devices that may not require direct human interaction but provide data in a similar to HID class devices format (such as bar code readers, voltmeters, and thermometers).

The HID device class specification defines the configuration and communication protocols for human interface devices. USBlyzer includes fully comprehensive USB HID class decoder that helps you easily visualize various HID class specific requests. HID Descriptor, HID Report Descriptor and HID Reports are also decoded.

HID Class-Specific Protocols

All HID Class, SubClass and Protocols below are supported:

Class SubClass Protocol
03h - HID 00h - None
01h - Boot Interface
00h - None
01h - Keyboard
02h - Mouse

HID Class-Specific Descriptors

HID class devices use class-specific descriptors which are differ
from standard USB descriptors. USBlyzer decodes and displays the
following HID class-specific descriptors:

  • HID Descriptor

    A HID Descriptor
    specifies the number, type, and size of HID Report Descriptors and
    Physical Descriptors that are associated with a HID class device.

  • HID Report Descriptor

    The format of the data a
    HID class device can send or receive is not defined by the HID class
    specification. Instead, a HID device is required to provide HID Report
    Descriptor which enumerates all the data fields of a particular HID
    report the device can use. For each field in the HID report, the HID
    Report Descriptor defines how many bits the particular data item
    occupies, which usage it has, what range of values it uses, etc.

Below is an example of decoding Mouse HID Report Descriptor.



HID Class-Specific Requests

HID class-specific requests allow the host to inquire about the
capabilities and state of a HID compliant device and to set the state of
output and feature items.

All HID class-specific requests below are supported:

  • Get Report (GET_REPORT)
  • Set Report (SET_REPORT)
  • Get Idle (GET_IDLE)
  • Set Idle (SET_IDLE)
  • Get Protocol (GET_PROTOCOL)
  • Set Protocol (SET_PROTOCOL)

For complete description of USB HID class requests, refer to Device Class Definition for Human Interface Devices Specification.

Below are examples of decoding Get Descriptor (HID Report Descriptor) and Set Idle requests.



   

HID Reports

The basic communication mechanism for HID class devices is a HID Reports
that is used to transfer HID control data. HID Report Descriptor
defines the format of each report. Input and Output Reports specify
control data and Feature Reports specify configuration data. A device
may support more than one report type and more than one report of the
same type.

USBlyzer extracts the individual items from the HID Report based on
the HID Report Descriptor and displays them in an easy to view form.
Since USBlyzer uses its own HID Parser it‘s possible to decode HID
Reports at any time, even after the device has been unplugged or even if
you analize previously saved capture file.

Below is an example of Joystick HID Input Report analysis.



HID Usage Pages

HID usages are organized into usage pages of related controls. The
usage page and usage ID define a unique constant that describes a
particular type of control. The following table lists the currently
supported usage pages.

Page ID Page Name
01h Generic Desktop Controls
02h Simulation Controls
03h VR Controls
04h Sport Controls
05h Game Controls
06h Generic Device Controls
07h Keyboard/Keypad
08h LEDs
09h Button
0Ah Ordinal
0Bh Telephony Devices
0Ch Consumer Devices
0Dh Digitizer
0Fh Physical Input Device (PID)
10h Unicode
14h Alphanumeric Display
40h Medical Instruments
80h Monitor Devices
81h Monitor Enumerated Values
82h VESA Virtual Controls
83h VESA Command
84h Power Device
85h Battery System

Composite USB Device with Single or Multiple HID Class Interfaces

A composite USB device exposes multiple functions to a host by using
multiple interfaces which are separately managed by different drivers.
Each interface of a composite device is, in many respects, like a
separate device that has its own configuration descriptor and, in the
case of HID class interface(s), HID report descriptor(s). The default
control endpoint is shared by all the interfaces while separate HID
class interfaces require non-shareable interrupt endpoint(s).

USBlyzer provides support for USB composite devices with single or multiple HID interfaces.

时间: 2024-12-16 05:07:01

Human Interface Device (HID) Class Decoder的相关文章

【转】簡單講講 USB Human Interface Device

原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了一些問題,我想這些問題 不是三言兩語可以解釋完畢,但是我也不想又太細究 HID 內部描述表格的解說與視窗上 HID APIs 家族詳細使用方法,主要以偏向解決問題與實作面上的一些重點,希望可以有些 許幫助,因為詳細的文獻找 USB Complete: The Developer's Guide fo

iOS 人机交互指导方针(iOS Human Interface Guidelines)

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. UI 设计基础 UI Design Basics 为 iOS 7 设计 Designing for iOS 7 iOS 应用剖析 iOS App

【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)

1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来因工作及个人的兴趣开始逐步转向iOS开发,在这期间系统的学习了下斯坦福桥大学Paul老爷子关于iOS7,iOS8的视频公开课及苹果官方的开发文档.当然也包括这篇<iOS Human Interface Guildlines> ,半年的学习下来碰到最大的问题就是遗忘,很多知识点学过没多久就忘记了,必

《iOS Human Interface Guidelines》——Launch Files

启动文件 启动文件(或者图片)提供了简单的在你的app启动的时候iOS显示的占位图.这个占位图会让用户觉得你的app很快就有响应,因为它直接显示而且很快会被你的app的第一个屏幕代替.每个app都必须提供一个启动文件或者至少一个静态图片. 在iOS 8及以后的系统中,你可以创建一个XIB或者故事版文件来代替静态启动图片.当你在Interface Builder中创建一个启动文件时,使用尺寸类来定义不同显示环境的不同布局,使用Auto Layout来做小的调整.使用尺寸类和Auto Layout意

iOS Human Interface Guidelines(原创翻译)第三章

适配和布局 ·适配创建 通常来说,人们想要在他们所有的设备上使用他们最喜爱的app,不论是在设备什么样的定向上.在iOS8和稍后的版本中,你可以使用尺寸类和自动布局在设备放置环境改变时候通过定义屏幕布局,视图控制器和视图应当如何调整来帮助你满足这个期望.放置环境的概念可能会涉及到整个屏幕或者仅仅是屏幕的一部分,比如一个弹出菜单的区域或者是在一个分离的视图控制器中的主要视图. iOS定义了两种尺寸类别:常规和紧凑.常规尺寸类和宽松的空间联系到一起,紧凑尺寸类和有限的空间联系到一起.为了描述一种放置

《iOS Human Interface Guidelines》——Toolbar Bar

工具栏 工具栏包含了执行与屏幕视图中的对象相关的操作的控件. 一个工具栏: 是半透明的 在iPhone上永远出现在屏幕视图的底部边缘.在iPad上也可以出现在屏幕视图的顶部边缘. 可以在键盘出现时.用户做一个手势时或者抱哈你的视图控制器过渡成水平紧凑环境时隐藏. API NOTE 工具栏一般包含在导航控制器(管理一系列层级的自定义视图显示的对象)内.查看Displaying a Navigation Toolbar和UIToolbar Class Reference来学习更多关于在你的代码中定义

《iOS Human Interface Guidelines》——Page Control

页面控制器 页面控制器显示打开的视图的数量以及当前看到的是哪一个(如下所示在天气App中的例子). API NOTE 查看UIPageControl学习更多关于在你的代码中定义一个页面控制器的内容. 一个页面控制器: 为每个app中打开的视图显示一个点指示器(从左到右,点代表了视图打开的顺序) 默认情况下,使用不透明点来表示当前看到的视图,半透明的点表示所有打开的视图 不允许用户不连续地查看视图 不要在打开了很多视图的时候把点收缩到一起(如果你尝试显示超过视图大小的点数量,点会剪除一部分) 不要

《iOS Human Interface Guidelines》——Accessing User Data

访问用户数据 定位服务允许app来确定人们大致的地理位置.他们设备指向的方向以及他们移动的方向.其他系统服务--诸如联系人.日历.提醒以及相册--也允许app去访问用户存储在其中的数据. 即使人们喜爱app知道很多他们的信息带来的便利性,他们也会希望能够选择保护他们数据的隐私性.比如说,人们喜欢能够自动标记他们的物理位置或者寻找附近的朋友,但他们也希望在他们选择不分享他们的位置给别人时能够禁用这些特性.(查看Location and Maps Programming Guide学习更多关于如何让

《iOS Human Interface Guidelines》——Multitasking

多任务处理 多任务处理让人们在屏幕上(以及合适的iPad模式)查看多个app,并且在最近使用的app中快速地切换.在iOS 9中,人们可以使用多任务处理UI(如下所示)来选择一个最近使用的app. 在多任务处理环境中的成功取决于与设备上其他app的和谐共处.在高层面上,这意味着app应该: 用心地优化资源的使用来避免使用过多的CPU.内存.屏幕控件和其他资源 优雅地处理其他app的干扰和声音 停止和重新开始--即过渡到后台或从后台过渡--快速而平滑 当没有在前台时对行为负责 下面的特有的指南会帮