标准键盘的USB HID报告描述符主要描述了键盘的输入报告(input report)和输出报告(output report)。输入报告用于描述键盘按键数据的传输,输出报告用于控制键盘上的LED指示灯。
标准键盘的输入报告共分为3个字节:
第一个字节包含8个bit,范围从0xE0到0xE7,表示左CTRL键到右GUI键;
第二个字节是保留位,必须返回0;
第三到第八字节包含6个8bit的数据,范围从0x00到0x65,表示键盘上绝大部分功能键和字符键。
所以标准键盘的输入报告可以表示出单次按键信息,通过这8个字节的数据,上位机可以识别出具体按下的是哪个键。
标准键盘的输出报告包含1个字节,前5个bit用于控制Num Lock、Caps Lock和Scroll Lock等3个LED指示灯,后3个bit是保留位,用于字节补齐。所以通过输出报告,上位机可以控制键盘LED灯的亮灭状态。
下面我们详细解析标准键盘描述符中的各个字段:
{
0x05, 0x01, // USAGE_PAGE (Generic Desk