usb键盘鼠标协议Word格式.docx
- 文档编号:15702849
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:6
- 大小:19.67KB
usb键盘鼠标协议Word格式.docx
《usb键盘鼠标协议Word格式.docx》由会员分享,可在线阅读,更多相关《usb键盘鼠标协议Word格式.docx(6页珍藏版)》请在冰豆网上搜索。
而报告描述符,是描述一个报告以及报告里面的数据是用来干什么用的。
通过它,usbhost可以分析出报告里面的数据所表示的意思。
它通过控制输入端点0返回,主(usb键盘鼠标协议)机使用获取报告描述符命令来获取报告描述符,注重这个哀求
是发送到接口的,而不是到设备。
一个报告描述符可以描述多个报告,不同的
报告通过报告id来识别,报告id在报告最前面,即第一个字节。
当报告描述符中没有规定报告id时,报告中就没有id字段,开始就是数据。
更详细的说明请参看usbhid协议,该协议可从http:
//www.usb.org下载。
usb报告描述符可以通过使用hiddescriptortool来生成,这个工具可以
到http:
//www.usb.org下载,为了方便大家,我顺便上传了一份。
/upload/blog/20xx/4/2/af7c3443-ad61-4465-adc7-a74d28bbc322.zipuploadfile-/20xx-4/42672233.zip下面通过由hiddescriptortool生成的usb鼠标和usb键盘来说明一下报告
描述符和报告。
codecharkeyboardReportdescriptor[63]={
//表示用途页为通用桌面设备
0x050x01//usage_page(genericdesktop)
//表示用途为键盘
0x090x06//usage(keyboard)
//表示应用集合,必须要以end_collection来结束它,见最后的end_collection0xa10x01//collection(application)
//表示用途页为按键
0x050x07//usage_page(keyboard)
//用途最小值,这里为左ctrl键
0x190xe0//usage_minimum(keyboardleftcontrol)
//用途最大值,这里为右gui键,即键
0x290xe7//usage_maximum(keyboardRightgui)
//逻辑最小值为0
0x150x00//logical_minimum(0)
//逻辑最大值为1
0x250x01//logical_maximum
(1)
//报告大小(即这个字段的宽度)为1bit,所以前面的逻辑最小值为0,逻辑最大值为10x750x01//RepoRt_size
(1)
//报告的个数为8,即总共有8个bits
0x950x08//RepoRt_count(8)
//输入用,变量,值,绝对值。
像键盘这类一般报告绝对值,
//而鼠标移动这样的则报告相对值,表示鼠标移动多少
0x810x02//input(dataVarabs)
//上面这这几项描述了一个输入用的字段,总共为8个bits,每个bit表示一个按键
//分别从左ctrl键到右gui键。
这8个bits刚好构成一个字节,它位于报告的第一个字节。
//它的最低位,即bit-0对应着左ctrl键,假如返回的数据该位为1,则表示左ctrl键被按下,//否则,左ctrl键没有按下。
最高位,即bit-7表示右gui键的按下情况。
中间的几个位,//需要根据hid协议中规定的用途页表(hidusagetables)来确定。
这里通常用来表示//特别键,例如ctrl,shift,del键等
//这样的数据段个数为1
0x950x01//RepoRt_count
(1)
//每个段长度为8bits
0x750x08//RepoRt_size(8)
//输入用,常量,值,绝对值
0x810x03//input(cnstVarabs)
//上面这8个bit是常量,设备必须返回0
//这样的数据段个数为5
0x950x05//RepoRt_count(5)
//每个段大小为1bit
0x750x01//RepoRt_size
(1)
//用途是led,即用来控制键盘上的led用的,因此下面会说明它是输出用
0x050x08//usage_page(leds)
//用途最小值是numlock,即数字键锁定灯
0x190x01//usage_minimum(numlock)
//用途最大值是kana,这个是什么灯我也不清晰^_^
0x290x05//usage_maximum(kana)
//如前面所说,这个字段是输出用的,用来控制led。
变量,值,绝对值。
//1表示灯亮,0表示灯灭
0x910x02//output(dataVarabs)
//每个段大小为3bits
0x750x03//RepoRt_size(3)
//输出用,常量,值,绝对
0x910x03//output(cnstVarabs)
//由于要按字节对齐,而前面控制led的只用了5个bit,
//所以后面需要附加3个不用bit,设置为常量。
//报告个数为6
0x950x06//RepoRt_count(6)
//每个段大小为8bits
//逻辑最小值0
//逻辑最大值255
0x250xFF//logical_maximum(255)
//用途页为按键
//使用最小值为0
0x190x00//usage_minimum(Reserved(noeventindicated))
//使用最小值为0x65
0x290x65//usage_maximum(keyboardapplication)
//输入用,变量,数组,绝对值
0x810x00//input(dataaryabs)
//以上定义了6个8bit宽的数组,每个8bit(即一个字节)用来表示一个按键,所以可以同时
//有6个按键按下。
没有按键按下时,全部返回0//无法区分按键时,则全部返回0x01,即6个0x01。
如果有一个键按下,则这6个字节中的第一
//个字节为相应的键值(具体的值参看hidusagetables),如果两个键按下,则第1、2两个
//字节分别为相应的键值,以次类推。
//关集合,跟上面的对应
0xc0//end_collection
};
通过上面的分析,我们知道这个报告中只有一个报告,所以没有报告id,
因此返回的都是实际使用的数据。
总共有8字节输入,1字节输出。
其中输入的第一字节用来表示特别按键,第二字节保留,后面的六字节为普通按键。
如果
只有左ctrl键按下,则返回0100000000000000(十六进制),如果
只有数字键1按下,则返回0000590000000000,如果数字
键1和2同时按下,则返回0000595a00000000,如果
再按下左shift键,则返回020xx95a00000000,
然后再释放1键,则返回020xxa0000000000,
然后全部按键释放,则返回0000000000000000。
这些数据(即报告)都是通过中断端点返回的。
当按下numlock键时,pc会发送输出报告,从报告描述符中我们知道,numlock的led对应着输出报告的最低位,当数字小键盘打开时,输出xxxxxxx1(二进制,打x的由其它的led状态决定);
当数字小键盘关闭时,输出xxxxxxx0(同前)。
取出最低位就可以控制数字键锁定led了。
篇二:
键盘、鼠标针孔接口与usb接口互换简单连接
键盘、鼠标针孔接口与usb接口
互换简单连接
江苏省泗阳县李口中学沈正中
在电脑的硬件使用过程中,常会碰到键盘、鼠标usb接口与针孔接口需要互换,下面笔者给出简单连接方法。
需要注意的是:
不同的鼠标和键盘用线的颜色可能不一样,必须按序号替换即可。
一、usb(公插)即插头,各个接线的定义:
1红线:
电源正极(标识为:
+5V或Vcc);
2白线:
电源负极(标识为:
-d或data-或usbport-);
3绿线:
正电压数据线(标识为:
+d或data+或usbport+);
4黑线:
负电压数据线(标识为:
gnd)。
二、ps/2(公插)即插头(针),各个接线的定义1红线:
数据(标识为:
data);
2保留空着不用(标识为:
n/c);
3黑线:
电源地(标识为:
gnd);
4白线:
电源(标识为:
5蓝线:
时钟(标识为:
clk);
6保留空着不用(标识为:
n/c)。
三、键盘、鼠标usb接口与针孔接口互换连接
篇三:
基于stm32的usb简易鼠标
毕业设计[论文]
题目:
学院:
电气与信息工程学院专业:
电子信息工程姓名:
学号:
指导老师:
完成时间:
20xx年06月01日
摘要
随着设备的越来越智能化,嵌入式计算机大量应用到各种电子设备中,基于嵌入式系统的usb鼠标及键盘的应用也变得越来越广泛。
在本次设计中,研究的是一款基于stm32的usb鼠标,即插即用,免驱动自动识别,很好的解决了鼠标设备智能化和低延迟的设计要求。
由于是基于hid的usb设备,所以编程非常方便,贴近工程实践,应用前景广阔。
嵌入式系统hid,即人机接口设备,是humaninterfacedevice的缩写。
hid是计算机周边设备中非常常见的设备类型,是可以直接与进行人交互的usb设备,例如鼠标、摄像头、u盘等。
在种类繁多usb设备中,hid类设备的成本一般情况下是比较低的。
实际上,只要是符合hid标准的设备都是hid设备,不一定非要具有人机交互功能。
最早支持hid设备的计算机操作系统是windows98系统。
hid设备的驱动程序内置在这些系统中,不需要单独开发与安装驱动,应用程序可以直接使用这些驱动程序来与设备通信。
近年来,受计算机性能提升和游戏软件等的影响,人们对鼠标的要求越来越高,特别是一些即时作战游戏,人们希望能达到“零”延迟,这就对原来的鼠标技术提出了挑战。
老式的圆孔鼠标早已不再适用,特别是笔记本电脑根本不再设计老式插孔。
随着usb2.0以及usb3.0的不断完善,再加上高速而价廉的单片机,一款基于stm32的usb简易鼠标正是本课题的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- usb 键盘 鼠标 协议