1.get report.

2.set report

report request.

Get report范例:

下面这张图是Host跟Device来要设备描述符.

USB主机向设备控制器请求数据时,用户需要预先准备相关的数据到指定的断点缓存.在将数据写入缓冲区后,用户需要写入实际数据长度到指定的MAXPLD寄存器.

一旦这个寄存器被写入数据,内部信号IN_Rdy会被置位,当收到主机发送过来的IN token之后,缓冲数据将透过相应断点被发送,在传送指定数据之后,信号'IN_Rdy'会由硬件自动清除.

整个数据传输可以分为三个部分.

1.SETUP-->这个阶段用来表明data传输方向以及请求什么数据(Device ACK)

2.IN-->传输data(Host ACK)

3.OUT-->0byte空封包结束传输(Device ACK)

Set report范例:

USB主机要发送数据到设备控制器的OUT断点(可以是控制断点EP0也可以是自定义OUTPUT断点),硬件将这些数据存在指定的断点缓存里,通信完成后,硬件在相关的MAXPLD寄存器记录数据长度,并清除'OUT_Rdy'信号,这将会避免硬件在用户没有取走当前数据时接收下一个数据.一旦用户处理了这次通信时,由软件写入相关的寄存器MAXPLD来设置'OUT_Rdy'信号以接收下一次通信.

整个传输分为两个部分.

1.SETUP-->同上(Device ACK)

2.IN-->设备发送0byte空封包来结束此次通信(Host ACK)

Notethat:从USB主机到USB设备的中断输出数据传输是可选的,当不支持中断输出数据传输时,USB主机通过控制管道将数据传输给USB设备.

HID class request.的更多相关文章

  1. Python Django的分页,Form验证,中间件

    本节内容 Django的分页 Form 中间件 1 Django 分页 1.1 Django自带的分页 1.首先来看下我的测试数据环境 ############ models.py ######### ...

  2. 【转】簡單講講 USB Human Interface Device

    原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了 ...

  3. JavaWeb使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 1.什么是表单 ...

  4. USB之HID类Set_Report Request[调试手记1]

    请翻开<Device Class Definition for Human Interface Devices (HID) Version 1.11 >7.2.2 Set_Report R ...

  5. 蓝牙HID协议笔记

    1.概述     The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议.特征和使用规程.典型的应用包括蓝牙鼠标.蓝牙键盘.蓝牙游戏手柄等.该协议改编自USB ...

  6. android usb Host模式下与usb Hid 设备的通信

    做android 与USB HID设备的通信有段时间了,总结一下遇到的问题和解决方法: 1,第一次遇到的问题:android 版本低不支持usb hid, 被要求做相关项目的时候,就从mUsbMana ...

  7. Android USB Host 与 HID 之通讯方法

    Android USB Host与HID通讯,就目前Google Developer提供的方法有bulkTransfer()与controlTransfer(),看是简简单单的两个方法,要实现真正的通 ...

  8. s3c6410 linux gadget hid驱动

    s3c6410 linux gadget hid驱动调了我一个多星期了今天终于搞定了,来跟大家分享下. 上一个星期纠结了一个星期的寄存器,试了N次,不管把3.1和3.7的hid驱动移植过来也是一样的情 ...

  9. STM32实现HID和u盘复合设备

      USB设备可以定义一个复合设备,复合设备分两种,一种是一个设备多个配置,还有一种是一个配置多个接口,在本例中采用一个配置多个接口的方式 首先修改设备描述符,标准设备描述符和报告描述符都不需要修改, ...

随机推荐

  1. C# LINQ 基本操作实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. PHP 函数的引用传递

    $a = "nowamagic";$b =& $a;echo $b.$a; 这意味着 $a 和 $b 指向了同一个变量.同一个变量内容有不同的变量名,引用就是这么个回事. ...

  3. sql server使用说明

    什么是sql server? SqlServer是微软的一款数据库系统产品. 是DBMS中的一种. 当每一个数据库安装到每一台电脑后,都会与计算机名称(有的是IP地址)关联.因为服务器用途的电脑不能经 ...

  4. IO流(数据流

    数据流 创建一个输入或者输出流只想底层的输入输出流 File file1=new File("test1.txt"); FileOutputStream out1=new File ...

  5. java事件处理3

    鼠标拖动事件 接口MouseMotionListener 两个方法 mouseDragged(MouseEvent)//拖动鼠标 mouseMoved(MouseEvent)//移动鼠标 一个拖动按钮 ...

  6. 关于操作DC时的资源泄露

    首先应明确一个概念 句柄, 关于句柄的详细介绍请见这里 对于句柄的使用小结:借来的要归还,创建的要释放,选出的要选入[尤其是针对GDI的一些句柄而言,如HPEN,HBRUSH等] 1. 使用GetDC ...

  7. 数据(数组,json)的处理

    有些时候我们在做联动事件以及获取动态的数据是,给到我们的都是数组,json格式的数据. 为了方便快速的处理这些数据,jq给我们提供了很多简便的方法. each()方法 在jQuery里有一个each方 ...

  8. Thinkphp 空操作、空控制器、命名空间

    1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Hom ...

  9. php设计模式 1单例模式

    之前很长时间之前就学习过设计模式,但是因为在实践中很少应用,所以忽略了,但现在却意识到设计模式很重要的,程序设计简介高效冗余性代码少. 今天开始把前几天学习的几个设计模式整理一下,首先当然是单例模式. ...

  10. iOS开发——C篇&结构体与枚举

    一:结构体与枚举的介绍: 结构体与枚举:是一种存储复杂的数据结构体:是用户自定义的一种类型,不同类型的集合,而数组是相同类型变量的集合. 二:结构体的创建 struct user {     char ...