当前位置:首页 >> 电脑基础知识 >>

自己整理的USB-HID鼠标、键盘通讯格式


自己整理的USB-HID鼠标、键盘通讯格式,欢迎指教
【详细说明】自己整理的USB-HID鼠标、键盘通讯格式,欢迎指教

想用STM32做个无线键鼠遥控、找了好几天没有找到完整的USB鼠标键盘协议介绍。最后自己收集整理了一份,希望对需要的朋友有所帮助。
废话不多说,进入正题:

鼠标发送给PC的数据每次4个字节
BYTE1 BYTE2 BYTE3 BYTE4
定义分别是:
BYTE1 --
|--bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|--bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|--bit5: Y 坐标变化的符号位,1表示负数,即鼠标向下移动
|--bit4: X 坐标变化的符号位,1表示负数,即鼠标向左移动
|--bit3: 恒为1
|--bit2: 1表示中键按下
|--bit1: 1表示右键按下
|--bit0: 1表示左键按下
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 -- 滚轮变化。
由于手上没有USB鼠标,对BYTE1的4-7位没有测试,对于BYTE2 BYTE3做个测试,BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向

键盘发送给PC的数据每次8个字节
BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8
定义分别是:
BYTE1 --
|--bit0: Left Control是否按下,按下为1
|--bit1: Left Shift 是否按下,按下为1
|--bit2: Left Alt 是否按下,按下为1
|--bit3: Left GUI 是否按下,按下为1
|--bit4: Right Control是否按下,按下为1
|--bit5: Right Shift 是否按下,按下为1
|--bit6: Right Alt 是否按下,按下为1
|--bit7: Right GUI 是否按下,按下为1
BYTE2 -- 暂不清楚,有的地方说是保留位
BYTE3--BYTE8 -- 这六个为普通按键
键盘经过测试。
例如:键盘发送一帧数据 02 00 0x04 0x05 00 00 00 00
表示同时按下了Left Shift + ‘a’+‘b’三个键
对于键码和PS2的键盘有所不同,具体请看附件。
USB HID to PS2 Scan Code 对照表.pdf
USB HID to PS2 Scan Code Translation Table.pdf (133.25 KB)

2011.6.23补充说明
补充对于键盘BYTE2的说明:
参照百合网(http://www.baiheee.com/OpenSourc ... 1%20Programer12.htm)键盘的报告描述符,如下
/*******************************************************************************************/
//这里只列出了第二个字节的说明
//这样的数据段个数为1
0x95, 0x01, // REPORT_COUNT (1)
//每个段长度为8bits
0x75, 0x08, // REPORT_SIZE (8)
//输入用,常量,值,绝对值
0x81, 0x03, // INPUT (Cnst,Var,Abs)

//上面这8个bit是常量,设备必须返回0
/*******************************************************************************************/
这里只是指明了这是一个以字节为单位的输入数据,并没有指明它的取值范围。

在HID1.11协议的Appendix B-->B.1 Protocol 1 (Keyboard) 的报告描述符中也有这样的说明(HID1.11协议的59页)
/*******************************************************************************************/
Report Count (1),
Report Size (8),
Input (Constant), ;Reserved byte
Report Count (5),
Report Size (1),
/*******************************************************************************************/
在注释中说明,这个字节是保留字节。
这里我也把HID1.11传上来给大家研究。

相关文章:
HID类键盘的报告描述符的理解
此软件可以观察到 USB 设备与主机(PC)之间的通讯 数据,特别那 11 个标准请求...自己整理的USB-HID鼠标、... 2页 免费 WIN7下键盘HID Keyboard... 2页 免费...
几种USB接线图 和 鼠标键盘口转USB图
1、 几种 USB 接线图 2、 鼠标口转 USB 3、 键盘口转 USB 1、几种 USB 接线图通用串行总线(英文:Universal Serial Bus,简称 USB)是连接外部装置的一个...
USB HID键盘扫描码
USB HID键盘扫描码_信息与通信_工程科技_专业资料。Windows Platform Design Notes...USB HID 学习实例之如何... 20页 免费 自己整理的USB-HID鼠标、... 2页 ...
USB鼠标键盘报告描述符介绍
USB鼠标键盘报告描述符介绍_信息与通信_工程科技_专业资料。USB鼠标键盘开发非常实用...USB HID设备类协议学习入... 7页 免费 USB设备请求和描述符整理... 8页 ...
PS2通信协议说明与接口定义(键盘和鼠标)
PS2通信协议说明与接口定义(键盘鼠标)_计算机硬件及...建造的键盘不是 PS/2,AT 就是 USB 的这篇文章...数据格式 1 个起始位 8 个数据位 1 个奇偶校验...
USB模拟鼠标与键盘使用说明
我们人和人之间唠嗑扯 淡那样直截了当,它们之间的这种通信,是有固定的数据格式...自己整理的USB-HID鼠标、... 2页 1下载券 c# 模拟键盘鼠标 3页 免费 硬件...
USB的HID通信协议
USB的HID通信协议_计算机软件及应用_IT/计算机_专业资料。USB的HID通信协议USB 事务处理是主机和设备之间数据传输的基本单位,由一系列具有特定格式的信息包组 成。因...
PS2键盘和USB键盘编码表
PS2键盘USB键盘编码表_信息与通信_工程科技_专业资料。PS2键盘 USB键盘的编码...USB HID 学习实例之如何... 9页 免费 PS2鼠标键盘协议-仅含PS... 28页 ...
键盘、鼠标针孔接口与USB接口互换简单连接
键盘鼠标针孔接口与 USB 接口 互换简单连接江苏省泗阳县李口中学 沈正中在电脑的硬件使用过程中,常会碰到键盘鼠标 USB 接口与针 孔接口需要互换,下面笔者给出...
usbHid
鼠标,USB 键盘,USB 游戏操纵杆,USB 触摸板,USB ...HID 通信所使用的额外描述符、 报表描述符的长度等...(BCD 码),采用 4 个 16 进制的 BCD 格式编 ...
更多相关标签: