当前位置: 首页 > news >正文

《USB技术应用与开发》第四讲:实现USB鼠标

一、标准鼠标分析与演示

1.1简介

1.2页面显示

其中页面显示的“×”不用管它,因为鼠标作为物理抓包,里面有时候会抓到一些错误,不一定是真正的通讯错误,很可能是本身线路接触质量不好等原因才打印出来的“×”。

1.3按下鼠标左键

(按键测试时尽量保证不移动鼠标)

1.4按下鼠标右键

1.5按下鼠标中键

1.6鼠标横向向左移动

数据的第二字节发生改变,变成 FF 、FE。

1.7鼠标横向向右移动

数据的第二字节发生改变,变成 01、02。

1.8鼠标纵向上下移动

1.9鼠标滚轮上下滚动

1.10双击SETUP

颜色还是没有变化,黄色是SETUP的起始。

该逻辑分析仪(软件)具有一个功能:双击SETUP起始包,软件会显示自带的标准命令分析,一方面会将主机发出命令的具体含义以及它属于的字段标注出来,另一方面(这条命令是获取设备描述符的)将IN上来的设备描述符按照USB协议本身属于的字段以及对应的含义也都标注出来。

上面的通讯过程就是:

1、获取设备描述符,设备反馈 3 包数据 

2、为设备设置地址为 36H

3、再次获取设备描述符,设备反馈 3 包数据

二、过程简要分析

中间省略很多类似的获取各种描述符的过程,直到:

2.1 SET CONFIGURE 设置配置

到此处设备的功能开始被启用

2.2 SET IDLE 设置 HID 设备上传速率

下图表示:遇到设备参数改变的情况下才上传,平时不用上传,所以后续不动鼠标的时候会看到很多 NAK 的回应。

2.3获取鼠标的报表描述符

是鼠标告诉计算机:鼠标是如何表达自身状态改变的,如何表示按键按下、光标移动等 。

后续有详细讲解。

2.4

从这里开始,虽然地址没有变化(仍然是 36H),但端点已经变了(从 00 → 01)。
上节有讲过,黄色的都是控制传输,控制传输一定是以端点 0 进行通讯的,到数据传输的时候会有具体的端点号。

这后面的演示就是第一章的所有页面。

二、软件实现

三、效果演示

四、HID设备异同


http://www.mrgr.cn/news/100339.html

相关文章:

  • 树状数组底层逻辑探讨 / 模版代码-P3374-P3368
  • C++指针(三)
  • matplotlib画图工具使用(1) 画折线统计图python代码
  • 海思ISP调试记录
  • Java实现HTML转PDF(deepSeekAi->html->pdf)
  • ubantu中下载编译安装qt5.15.3
  • 使用java代码注册onloyoffice账号 || 注册onloyoffice账号
  • WPF之项目创建
  • Flutter 弹窗队列管理:支持优先级的线程安全通用弹窗队列系统
  • 前端面试之吊打面试官 HTML篇
  • k8s 1.26版部署
  • 网络攻防第一~四集
  • windows下查看idea运行的进程占的JVM情况工具
  • 从后端研发角度出发,使用k8s部署业务系统
  • 在Linux虚拟机下使用vscode,#include无法跳转问题
  • Vue3实现高仿word自定义颜色选择器组件(支持 v-model)
  • 3:QT联合HALCON编程—海康相机SDK二次程序开发
  • CSS简单实用的加载动画、骨架屏有效果图
  • TP4056 电池管理芯片介绍及电路应用
  • java每日精进 4.26【多租户之过滤器及请求处理流程】