《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设备异同