USB HID重要知识点

这篇具有很好参考价值的文章主要介绍了USB HID重要知识点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 报告描述符
1.1 自定义一个输入和输出64字节数据的报告描述符(无Report ID)
读写数据格式:1字节ReportID + payload

STM32高级教程之USB HID双向数据传输
http://www.embed-net.com/thread-5-1-1.html
-STM32这个例子有bushound抓图。注意,第一个字节0x00为ReportID,后面的为64字节payload。

1.2 例子1
当前例子数据长度是64字节,没有ReportID,所以ReportID取0,数据格式是:0x00 + 64 bytes payload(负载如果不足64字节,一定要补齐64字节,否则Windows ReadFile()和WriteFile()会失败。)
static const unsigned char report_descriptor[] = {
  0x06, 0xA0, 0xFF,    //用法页(FFA0h, vendor defined)
  0x09, 0x01,            //用法(vendor defined)
  0xA1, 0x01,            //集合(Application)
  0x09, 0x02,            //用法(vendor defined)
  0xA1, 0x00,            //集合(Physical)
  0x06, 0xA1, 0xFF,    //用法页(vendor defined)
        //输入报告
  0x09, 0x03,            //用法(vendor defined)
  0x09, 0x04,            //用法(vendor defined)
  0x15, 0x80,            //逻辑最小值(0x80 or -128)
  0x25, 0x7F,            //逻辑最大值(0x7F or 127)
  0x35, 0x00,            //物理最小值(0)
  0x45, 0xFF,            //物理最大值(255)
  0x75, 0x08,            //报告长度Report size (每个字段8位)
  0x95, 0x40,            //报告数值(64 字节)
  0x81, 0x02,            //输入(data, variable, absolute)
        //输出报告
  0x09, 0x05,            //用法(vendor defined)
  0x09, 0x06,            //用法(vendor defined)
  0x15, 0x80,            //逻辑最小值(0x80 or -128)
  0x25, 0x7F,            //逻辑最大值(0x7F or 127)
  0x35, 0x00,            //物理最小值(0)
  0x45, 0xFF,            //物理最大值(255)
  0x75, 0x08,            //报告长度(每个字段8位)
  0x95, 0x40,            //报告数值(64 字节)
  0x91, 0x02,            //输出(data, variable, absolute)
  0xC0,                      //集合结束(Physical)
  0xC0                       //集合结束(Application)
};

1.3 例子2
static const unsigned char CustomHID_ReportDescriptor[] =
{
    0x05, 0x8c, /* USAGE_PAGE (ST Page) */
    0x09, 0x01, /* USAGE (Demo Kit) */
    0xa1, 0x01, /* COLLECTION (Application) */

    // The Input report
    0x09,0x03, // USAGE ID - Vendor defined
    0x15,0x00, // LOGICAL_MINIMUM (0)
    0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
    0x75,0x08, // REPORT_SIZE (8bit)
    0x95,0x40, // REPORT_COUNT (64Byte)
    0x81,0x02, // INPUT (Data,Var,Abs)

    // The Output report
    0x09,0x04, // USAGE ID - Vendor defined
    0x15,0x00, // LOGICAL_MINIMUM (0)
    0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
    0x75,0x08, // REPORT_SIZE (8bit)
    0x95,0x40, // REPORT_COUNT (64Byte)
    0x91,0x02, // OUTPUT (Data,Var,Abs)

    0xc0 /* END_COLLECTION */
}; /* CustomHID_ReportDescriptor */

2 Linux HID调试
USB Host每间隔x时间发起一次读取HID数据操作,如果设备没有数据,则设备NAK告知Host没有数据。
/sys/kernel/debug/hid
usbhid-dump

3 PS/2和USB双协议键鼠控制器
3.1 Cypress
CY7C63722C
CY7C63723C
CY7C63743C

3.2 Holtek
HT82K95A
HT82K95E

4 Legacy USB
键盘的工业标准是8042,访问8042的编程标准则是两个IO端口,60H和64H。Legacy USB就是模拟8042控制器的2个IO口。
An 8051-based ITE IT8586E EC built into a Lenovo Ideapad 310-15IKB laptop. The EC (Embedded Controller) evolved from the original Intel 8042 keyboard controller.

5 Cypress WirelessUSB
2.4 GHz无线键鼠使用的芯片,譬如CYRF9935。

6 USBKey
1)client发送报文给server,请求登录验证
2)challenge:server发随机数给client
3)response:client使用server发送的随机数和本地保存的密匙计算MD5,并发送给server
4)与此同时,server也用这个随机数和客户保存在服务器端的密匙进行MD5计算,与从client发送过来的MD5值比较,一致就允许登录

7 Abbreviations
ARC:Argonant RISC Core
AT91SAM9260:SAM means Smart ARM-based Microcontroller
BFM模式:Betop Full Match,北通安卓全匹配模式
DWC2:Design Ware Controller 2,Apple的嵌入式设备,包括iPad和iPhone都是使用的DWC2
ISP1161:Philips' Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?doc_id=1290054
Quirks:the attributes of a device that are considered to be noncompliant with expected operation
SL811HS:Cypress/ScanLogic 811 Host/Slave,性能上与ISP1161(Integrated host Solution Pairs 1161)相当
TDI:TransDimension Inc.,该公司首先发明了将TT集成到EHCI RootHub中的方法,这样对于嵌入式系统来说,就省去了OHCI/UHCI的硬件,同时降低了成本,作为对该公司的纪念,Linux内核定义了宏ehci_is_TDI(ehci);产品UHC124表示USB Host Controller;收购了ARC USB技术;现已被chipidea收购,chipidea又被mips收购
TT:Transaction Translator(事务转换器,将USB2.0的包转换成USB1.1的包)文章来源地址https://www.toymoban.com/news/detail-666005.html

到了这里,关于USB HID重要知识点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯重要知识点和赛题直通车

     蓝桥杯软件赛零基础备赛20周 第 1周(2023-10-23): 蓝桥杯软件赛介绍+官方链接+零基础能得奖吗? 第 2周(2023-10-30): 常考知识点+蓝桥杯怎么判题+备赛计划 第 3周(2023-11-06): 填空题(分数少但越来越不好做) 第 4周(2023-11-13): (练习再多也不够的)杂题1 第 5周(2023-11-20): 杂题2 第

    2024年01月24日
    浏览(81)
  • 论文笔记--网络重要节点排序方法综述(概念性知识点)

    任晓龙, 吕琳媛 度中心性:节点的直接邻居数目 半局部中心性:节点四层邻居的信息 k-shell分解:度中心性的扩展,根据节点在网络中的位置来定义,越在核心的节点越重要 1.1度中心性(DC) 节点的度分为入度和出度;权重为与节点相连的边的权重之和 优缺点: 优点:简单

    2024年02月05日
    浏览(26)
  • quarkus依赖注入之十三:其他重要知识点大串讲(终篇)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇是《quarkus依赖注入》系列的终篇,前面十二篇已覆盖quarkus依赖注入的大部分核心内容,但依然漏掉了一些知识点,今天就将剩下的内容汇总,来个一锅端,轻松愉快的结束这个系列 总的来说,

    2024年02月13日
    浏览(25)
  • Hadoop/HDFS/MapReduce/Spark/HBase重要知识点整理

    本复习提纲主要参考北京大学计算机学院研究生课程《网络大数据管理与应用》课程资料以及厦门大学计算机科学系研究生课程 《大数据技术基础》相关材料整理而成,供广大网友学习参考,如有版权问题请联系作者删除:guanmeige001@pku.edu.cn Hadoop简介 Hadoop的功能和作用: 高

    2024年02月02日
    浏览(46)
  • USB HID

    文章目录 目录 一、USB简介 二、USB(HID)协议及描述符 1.USB描述符简介 2.USB描述符    USB根据速度可分为: 低速USB  Low Speed Device (LS)   全速USB Full Speed Device (FS)   高速USB设备 Hight Speed Device (HS) 具体应用以及特性如下: 一般USB接口有4根线,分别是VCC DM DP GND。DM,DP是数据线。 USB的

    2024年02月04日
    浏览(24)
  • 动态规划算法学习一:DP的重要知识点、矩阵连乘算法

    三部曲如下三步: 基本原则:“空间换时间” 存储重复子问题的解,减少运算时间 底层运算:“表格操作” 用表格存储子问题的解 实现路线:“子问题划分、自底向上求解” 利用表格中存储的子问题的解,求上一层子问题的解。 矩阵连乘计算次序 可以用 加括号的方式

    2024年02月09日
    浏览(32)
  • 从Referer到XMLHttpRequest:探究Web安全中的重要知识点

    目录 Referer 概念 Referrer-policy(可以一定程度上防御CSRF攻击) 同源 iframe sandbox(沙箱): cookie的原理: 如何设置Referrer? 盗链 盗链的工作原理 三种情况下可以引用图片: XMLHTTPRequest AJAX(Asynchronous JavaScript and XML) XMLHttpRequest的实例属性 XMLHttpRequest.readyState XMLHttpRequest.onreadystat

    2024年02月08日
    浏览(29)
  • STM32设置USB HID模式

    使用USBHID模式与电脑、手机终端通讯,速率和准确率比虚拟串口和CH340转接速度要快。 在USB_OTG_FS中,选择Device_Only,其它默认。 在Middleware中的Class For FS IP中,如下选择 在Device Descriptor中可以按需要填写 设置USB频率为48Mhz 在Project Manager里,修改Heap和Stack的大小 在程序里main.c中

    2024年02月11日
    浏览(86)
  • STM32的USB HID通用模式,双向通讯USB数据库参数配置

    目录 一、 usb_desc.c 1.配置描述符 2.报文描述符 二、usb_prop.c 三、usb_conf.h 四、usb_endp.c #define USB_HID_IN_SIZE    26         /*发送数据大小*/ #define USB_HID_OUT_SIZE  0x08   /*接收数据大小*/ 1.配置描述符         配置USB设备为HID设备,配置IN端点1,发送数据;OUT端点2接收数据;

    2024年02月05日
    浏览(29)
  • USB HID转蓝牙&鼠键宏&指纹解锁

    将有线鼠标键盘游戏手柄等USB HID转换为蓝牙设备,附带鼠键宏和指纹解锁功能。 硬件开源地址  前作 使用esp32-c3的GPIO模拟USB HOST,识别低速USB HID设备并读取其报告描述符和报告 TEANSLATE 工作模式: 检测设备类型,尝试对鼠标和键盘的报告描述符进行解析,将其报告翻译成预

    2024年02月06日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包