打印
[USB接口]

关于HID键盘底层协议的一点疑问

[复制链接]
2271|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TXQDM|  楼主 | 2017-7-7 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

USB HID协议关于键盘部分是:键盘会向PC发送8个字节,每个字节有不同的含义,表示按下的键值。

今天用BUSHOUND查看了HID键盘按下1个键值向PC端发现的数据,然后我发现BUSHOUND解析出来最底层的数据格式和PS/2协议中第一套扫码值格式是一样的。如下图:

USBHID键盘插入PC后会解析出1个USB输入设备,将这个设备在做1次解析,是1个HID Keyboard Device。

file:///C:/Users/qianc/AppData/Roaming/Tencent/Users/3060632331/QQ/WinTemp/RichOle/98(BN%60ZZX$85YS)MVZ26ZDD.png

当你只抓取USB输入设备的时候发现跟USB协议一样定义的一样,是8个字节数据包。下图是按"P"键的数据包。2个数据包,1个表示按下,1个表示弹起。

file:///C:/Users/qianc/AppData/Roaming/Tencent/Users/3060632331/QQ/WinTemp/RichOle/HA%W%K$GQEO3%7BC%60ZZ%2WRPJ.png

但是当你要住区HID Keyboard Device这层数据包时,发现是12字节,格式和PS/2第一套扫码值格式对应的一样。下图是按“P”值的数据包。

两个12字节数据包相比较变化的1个字节应该是表示按下与弹起。

一个PS/2标准协议键盘按下“P”键收到的数据包:

两组数据比较,发现第一个字节是不一样的。这个字节会不会是PC分给键盘的设备号,有待考证。我一直查不到这12个字节代表什么意思。

难道说USBHID键盘最后在PC端解析出来的还是PS/2的协议?还是说这个协议是BUSHOUND自己将HID解析出来PS/2协议?

说像PS/2协议的话,从数据包来看只看到了通码,没有看到断码,用的是1个字节代表弹起或者释放。难道是第三套PS/2扫码表吗?没找到这套扫码表。

有大牛看到希望可以指导下。


相关帖子

沙发
L14133| | 2017-7-11 10:36 | 只看该作者
自己查协议吧

使用特权

评论回复
板凳
ningling_21| | 2017-7-14 15:06 | 只看该作者
读一下:圈圈教你玩USB一书  
书中有USB键盘的相关原理及说明

使用特权

评论回复
地板
jinxuan97| | 2017-7-19 14:06 | 只看该作者
最好贴上Device configuration and Report Descriptor!
抓取启动开始的USB 传输数据.

使用特权

评论回复
5
zhs2007| | 2017-7-23 22:53 | 只看该作者
USB HID键盘发送的数据各字节含义不是固定不变的,含义是在Report Descriptor中描述的。

使用特权

评论回复
6
wnj08129| | 2018-1-9 16:08 | 只看该作者
楼主这个疑问解决了吗?我也有类似的问题呢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

110

主题

593

帖子

11

粉丝