蓝牙键盘通讯方法和蓝牙键盘与流程

文档序号:29041591发布日期:2022-02-25 20:53阅读:501来源:国知局
蓝牙键盘通讯方法和蓝牙键盘与流程

1.本发明涉及键盘技术领域,特别涉及一种蓝牙键盘通讯方法和蓝牙键盘。


背景技术:

2.键盘是一种常见的人机交互输入设备,键盘是以报告的形式向主机传送数据的,报告包括输入报告和输出报告,输入报告是键盘发送给主机的,输出报告是主机发送给键盘的,报告是一个数据包,里面包含的是所要传送的数据,而报告描述符是描述一个报告以及报告内的数据作用,主机通过报告描述符可知分析出报告内的数据所表示的意思。
3.现有键盘,尤其是蓝牙键盘的报告描述符规定了键盘与主机之间通讯的格式,只能传输规定格式的数据。但随着技术的进步和用户个性化需求的增加,键盘的功能需求日益丰富,通过规定格式的报告传输数据,主机无法通过hid请求来跟蓝牙键盘进行通讯,从而无法满足用户对键盘进行自定义配置的个性化需求。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种蓝牙键盘通讯方法和蓝牙键盘,使蓝牙键盘能够接收和响应主机的hid类请求。
5.第一方面,根据本发明实施例的蓝牙键盘通讯方法,应用于键盘和主机之间的通讯,所述键盘内置或外接有蓝牙模块,包括:
6.在键盘报告描述符中添加基于hid协议的in(进)报告描述符和out(出)报告描述符,所述in报告描述符用于描述in报告,所述out报告描述符用于描述out报告;
7.所述主机以所述out报告的形式向所述蓝牙模块发送hid类请求;
8.所述蓝牙模块根据所述out报告描述符接收并解析所述hid类请求;
9.所述蓝牙模块响应所述hid类请求,并以所述in报告的形式向所述主机进行反馈。
10.根据本发明实施例的蓝牙键盘通讯方法,至少具有如下有益效果:
11.基于hid协议的in报告描述符和out报告描述符可以通知主机以in报告或out报告的形式进行数据传输,使主机能够与键盘进行通讯以及键盘能够接收并响应来自主机的hid类请求。
12.根据本发明的一些实施例,所述in报告和所述out报告的逻辑最小值为0x00,逻辑最大值为0xff。
13.根据本发明的一些实施例,所述in报告和所述out报告均包括至少7个字节,每个字节包括8个位。
14.根据本发明的一些实施例,所述蓝牙模块响应所述hid类请求,并以所述in报告的形式向所述主机进行反馈,包括:
15.当所述hid类请求为读请求时,所述蓝牙模块在接收到所述读请求后将待通讯数据填入缓存内;
16.所述主机向所述蓝牙模块发送二次读请求;
17.所述蓝牙模块接收到所述二次读请求后,将所述待通讯数据填入具有in报告形式的回应包,并发送给所述主机。
18.根据本发明的一些实施例,所述蓝牙模块响应所述hid类请求,并以所述in报告的形式向所述主机进行反馈,包括:
19.当所述hid类请求为写请求时,所述蓝牙模块在接收到所述写请求后,将所述写请求发送给所述键盘的处理器进行响应;
20.所述蓝牙模块在响应完成后以所述in报告的形式向所述主机进行反馈。
21.根据本发明的一些实施例,蓝牙键盘通讯方法还包括:
22.当所述键盘向所述主机写数据时,所述蓝牙模块向所述主机发送通知;
23.所述主机接收到通知后向所述蓝牙模块发出读请求;
24.所述蓝牙模块将待发送的数据填入回应包返回给所述主机。
25.第二方面,根据本发明实施例的蓝牙键盘通讯方法,应用于键盘和主机之间的通讯,所述键盘内置或外接有蓝牙模块,包括:
26.在键盘报告描述符中添加基于hid协议的具有读写属性的feature(特征)报告描述符,所述feature报告描述符用于描述feature报告;
27.所述主机以所述feature报告的形式向所述蓝牙模块发送hid类请求;
28.所述蓝牙模块接收根据所述feature报告描述符接收并解析所述hid类请求;
29.所述蓝牙模块响应所述hid类请求,并通过以所述feature报告的形式向所述主机进行反馈。
30.根据本发明实施例的蓝牙键盘通讯方法,至少具有如下有益效果:
31.基于hid协议的具有读写属性的feature报告描述符可以通知主机以feature报告的形式进行数据传输,使主机能够与键盘进行通讯以及键盘能够接收并响应来自主机的hid类请求。
32.根据本发明的一些实施例,所述feature报告的逻辑最小值为0x00,逻辑最大值为0xff。
33.根据本发明的一些实施例,所述feature报告均包括至少7个字节,每个字节包括8个位。
34.第三方面,根据本发明实施例的蓝牙键盘,包括处理器,所述处理器用于执行上述的方法步骤。
35.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
36.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
37.图1为本发明实施例1的蓝牙键盘通讯方法的流程图;
38.图2为本发明实施例1的蓝牙键盘与主机的通讯示意图;
39.图3为本发明实施例2的蓝牙键盘与主机的通讯示意图。
具体实施方式
40.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
41.在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。
42.实施例1
43.请参照图1和图2,本实施例公开了一种蓝牙键盘通讯方法,包括应用于键盘和主机之间的通讯,键盘内置或外接有蓝牙模块,包括:
44.在键盘报告描述符中添加基于hid协议的in报告描述符和out报告描述符,in报告描述符用于描述in报告,out报告描述符用于描述out报告,通过新增的out报告描述符可以可以使主机与键盘之间传输的数据格式更加自由,避免原有报告的格式限制,主机以out报告的形式向蓝牙模块发送hid类请求,而蓝牙模块根据out报告描述符接收并解析hid类请求,使蓝牙模块响应hid类请求,并以in报告的形式向主机进行反馈,可以满足更多的个性化需求,例如设定键盘参数、定义键值、显示灯效甚至发送信息等。
45.在本实施例中,in报告描述符和out报告描述符基于hid协议,兼容于现有的协议,有利于降低设计难度。本实施例的in报告描述符和out报告描述符可参照以下示例:
46.1)以下是in報告描述符的示例:
47.0x06,0x00,0xff,//usage_page(vendor defined)
48.0x09,0x80,//usage(system control)
49.0xa1,0x01,//collection(application)
50.0x06,0x00,0xff,//usage_page(vendor defined)
51.0x09,0x01,//usage(vendor usage 1)
52.0x85,0x02,//report_id(2)
53.0x15,0x00,//logical_minimum(0x00)
54.0x26,0xff,0x00,//logical_maximum(0xff)
55.0x75,0x08,//report_size(8)
56.0x95,0x07,//report_count(7)
57.0x81,0x02,//input(data,var,abs)
58.0xc0,//end_collection
59.2)以下是out報告描述符的例子:
60.0x06,0x00,0xff,//usage_page(vendor defined)
61.0x09,0x80,//usage(system control)
62.0xa1,0x01,//collection(application)
63.0x06,0x00,0xff,//usage_page(vendor defined)
64.0x09,0x01,//usage(vendor usage 1)
65.0x85,0x02,//report_id(2)
66.0x15,0x00,//logical_minimum(0x00)
67.0x26,0xff,0x00,//logical_maximum(0xff)
68.0x75,0x08,//report_size(8)
69.0x95,0x07,//report_count(7)
70.0x91,0x02,//output(data,var,abs)
71.0xc0,//end_collection
72.从上述的报告描述符中可知,in报告和out报告的逻辑最小值为0x00,逻辑最大值为0xff,可以传输逻辑值在0~256之间的任意数据。例如,主机可以向键盘请求回传键盘的固件版本号,其中固件版本号为“s1234v10”,其hex格式为0x52 0x31 0x32 0x33 0x34 0x56 0x31 0x30,键盘以in报告的形式向主机回传数据,而不必受限于原有的报告格式,即只能向主机发送键码数据。
73.从上述的报告描述符中可知,in报告和out报告均包括至少7个字节,每个字节包括8个位,在上述实施例中,固件版本号的hex格式为0x53 0x31 0x32 0x33 0x34 0x56 0x31 0x30,因此在传输数据的示例如下:
74.0x53 0x31 0x32 0x33 0x34 0x56 0x31
75.0x30 0x00 0x00 0x00 0x00 0x00 0x00
76.报告具有多个字节,每个字节有8个位,使数据传输的自由度和效率更高,可以满足更多的命令传输需求。
77.在上述实施例中,蓝牙模块响应hid类请求,并以in报告的形式向主机进行反馈,包括:
78.s110、当hid类请求为读请求时,蓝牙模块在接收到读请求(第一次)后将待通讯数据填入缓存内,并等待主机再次发送读请求;
79.s120、主机向蓝牙模块发送二次读请求(第二次),其中二次读请求是主机以out报告形式向蓝牙模块发送的;
80.s130、蓝牙模块接收到二次读请求后,将待通讯数据填入具有in报告形式的回应包,并发送给主机。
81.在上述实施例中,蓝牙模块响应hid类请求,并以in报告的形式向主机进行反馈,包括:
82.s210、当hid类请求为写请求时,蓝牙模块在接收到写请求后,将写请求发送给键盘的处理器进行响应;
83.s220、蓝牙模块在响应完成后以in报告的形式向主机进行反馈。
84.蓝牙键盘通讯方法还包括:
85.s310、当键盘向主机写数据时,蓝牙模块向主机发送通知;
86.s320、主机接收到通知后向蓝牙模块发出读请求;
87.s330、蓝牙模块将待发送的数据填入回应包返回给主机。
88.本实施例的键盘在向主机写数据时,先向主机发送通知,等主机回应后再进行数据传输,可以降低键盘的能耗,有利于提高键盘的续航能力。
89.实施例2
90.请参照图3,本发明实施例提供一种蓝牙键盘通讯方法,应用于键盘和主机之间的通讯,键盘内置或外接有蓝牙模块,包括:
91.在键盘报告描述符中添加基于hid协议的具有读写属性的feature报告描述符,feature报告描述符用于描述feature报告;主机以feature报告的形式向蓝牙模块发送hid类请求;蓝牙模块接收根据feature报告描述符接收并解析hid类请求;蓝牙模块响应hid类请求,并通过以feature报告的形式向主机进行反馈,可以满足更多的个性化需求,例如设定键盘参数、定义键值、显示灯效甚至发送信息等。
92.与实施例1不同的是,本实施例通过具有读写属性的feature报告描述符代替in报告描述符和out报告描述符,由于feature报告描述符具备读写属性,主机能够以feature报告的形式向蓝牙模块发送hid类请求,而蓝牙模块也能够以feature报告的形式向主机发送或回传数据。
93.以下是本实施例的feature报告描述符的示例:
94.0x06,0x00,0xff,//usage_page(vendor defined)
95.0x09,0x80,//usage(system control)
96.0xa1,0x01,//collection(application)
97.0x06,0x00,0xff,//usage_page(vendor defined)
98.0x09,0x01,//usage(vendor usage 1)
99.0x85,0x02,//report_id(2)
100.0x15,0x00,//logical_minimum(0x00)
101.0x26,0xff,0x00,//logical_maximum(0xff)
102.0x75,0x08,//report_size(8)
103.0x95,0x07,//report_count(7)
104.0xb1,0x00,//feature(data,ary,abs)
105.0xc0,//end_collection
106.从上述报告描述符中可知,feature报告的逻辑最小值为0x00,逻辑最大值为0xff,可以传输逻辑值在0~256之间的任意数据。
107.从上述报告描述符中可知,feature报告均包括至少7个字节,每个字节包括8个位。报告具有多个字节,每个字节有8个位,使数据传输的自由度和效率更高,可以满足更多的命令传输需求。
108.需要说明的是,本实施例中为涉及的内容可参照实施例1。
109.实施例3
110.本发明实施例公开一种蓝牙键盘,包括处理器,处理器用于执行上述实施例1或实施例2的方法步骤。
111.上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1