一种应用于hid设备数据传输系统及方法
技术领域
1.本发明涉及hid设备数据传输技术领域,具体涉及一种应用于hid设备数据传输系统及方法。
背景技术:2.通常usb设备(usb电缆末端的一个硬件,以执行用户功能)都需要一个对应匹配的驱动程序才开正常工作。驱动程序编写通常较复杂,并且属于底层技术,一旦出错,很容易导致与之连接的整个系统出现故障。而hid设备在操作系统中内置了驱动程序,使用hid设备进行通信,通常不再需要单独安装驱动程序,防止系统出现问题。
3.hid设备的通信速度是受限制的,传输速率较小,通常是每个数据包只能发生64个字节,具体传输速度大小是受到hid协议规范约束的。因此,若需要采用hid设备传输大量的数据,往往需要很长时间,导致应用受到限制。考虑到usb设备传输速率更快的特点,以及hid设备传输速度慢、无需安装驱动程序的特点,可以考虑将两者结合,也即通过usb连接多个带有hid端口的hid设备,以提高hid设备传输速率且无需安装驱动程序。
技术实现要素:4.针对现有技术的不足,本发明的目的之一在于提供一种应用于hid设备数据传输系统,其能够解决hid设备数据传输速率低的问题;
5.本发明的目的之二在于提供一种应用于hid设备数据传输方法,其能够解决hid设备数据传输速率低的问题。
6.实现本发明的目的之一的技术方案为:一种应用于hid设备数据传输系统,包括数据分发终端、usb hub模块和usb
‑
hid设备,数据分发终端与usb hub模块连接,usb hub模块与usb
‑
hid设备连接,
7.数据分发终端用于通过usb hub模块将数据包进行分块,得到数据分块,并将各个数据分块下发给对应的usb
‑
hid设备,其中,下发给同一个usb
‑
hid设备数据分块的数量为该usb
‑
hid设备与usb hub模块连接的hid端口数量,每一个hid端口对应传输一个数据分块,
8.usb hub模块用于将同一个usb
‑
hid设备通过多个hid端口连接同一个数据分发终端,以使得数据分发终端通过一个usb接口扩展连接多个hid端口,通过多个hid端口连接若干个usb
‑
hid设备,
9.usb
‑
hid设备用于接收对应的所述数据分块,并将各个数据分块合并得到一个完整的数据包,从而完成数据传输。
10.进一步地,所述数据分发终端通过读取各个hid端口所连接的usb
‑
hid设备的设备id,根据各个hid端口对应的设备id判断出连接同一个usb
‑
hid设备的所有hid端口,以使得将各个所述数据分块下发给对应的usb
‑
hid设备。
11.进一步地,将所述设备id与连接的hid端口的端口编号绑定,数据分发终端根据端
口编号判断出连接同一个usb
‑
hid设备的所有hid端口。
12.进一步地,发送给同一个usb
‑
hid设备的各个所述数据分块大小相同,均为数据包大小/usb
‑
hid设备中连接usb hub模块的hid端口数量。
13.进一步地,所述数据分发终端将所有数据分块下发完后,发送结束指令,usb hub模块和usb
‑
hid设备接收到结束指令后,则停止接收数据分块。
14.进一步地,所述usb hub模块集成在usb
‑
hid设备内,usb
‑
hid设备的mcu通过多个hid端口与usb hub模块连接。
15.进一步地,所述usb hub模块通过外部数据线与usb
‑
hid设备连接。
16.进一步地,所述usb hub模块连接至少两个usb
‑
hid设备。
17.进一步地,各个所述usb
‑
hid设备通过预设对应的hid端口连接usb hub模块,以使得可直接通过hid端口判断出usb
‑
hid设备所属的所有hid端口。
18.实现本发明的目的之二的技术方案为:一种应用于hid设备数据传输方法,其基于所述应用于hid设备数据传输系统,包括:
19.将各个usb
‑
hid设备通过各自的hid端口连接到usb hub模块,usb hub模块通过一个usb接口连接到数据分发终端,
20.数据分发终端通过usb
‑
hid设备的设备id识别出属于连接同一个usb
‑
hid设备的各个hid端口,识别出各个端口所属的usb
‑
hid设备后,将数据包拆分出若干数据分块,并将属于对应usb
‑
hid设备的数据包的各个数据分块通过对应的hid端口发送给对应usb
‑
hid设备,
21.usb
‑
hid设备接收完所有数据分块后,将各个数据分块进行合并得到完整的数据包,从而完成数据传输。
22.本发明的有益效果为:本发明通过在usb
‑
hid设备上添加usb hub模块方式,将数据分块通过多个hid端口并行发送,提高了usb
‑
hid设备的数据传输速率,即提高通信速度。提高的通信速度相比于传统usb
‑
hid设备传输方式,提高了n倍,n等于同一个usb
‑
hid设备连接的hid端口数量。
附图说明
23.图1是本发明的结构框架示意图。
具体实施方式
24.下面,下面结合附图以及具体实施方案,对本发明做进一步描述。
25.如图1所示,一种应用于hid设备数据传输系统,包括数据分发终端、usb hub模块和usb
‑
hid设备,usb
‑
hid设备简称为hid设备,本实施例的hid设备即是指usb
‑
hid设备。数据分发终端与usb hub模块连接,以使得数据分发终端与usb hub模块之间能够相互数据传输,usb hub模块与usb
‑
hid设备连接,以使得usb hub模块与usb
‑
hid设备之间能够相互数据传输,最终使得三者之间能够实现数据相互传输。
26.数据分发终端用于将数据包进行分块并下发给usb hub模块,其中,将数据进行分块的数量为usb hub模块中连接同一个usb
‑
hid设备的hid端口数量,每一个hid端口对应传输一个数据分块。usb hub模块上的所有hid端口连接同一个usb
‑
hid设备或分开连接多个
usb
‑
hid设备。usb hub模块与usb
‑
hid设备的每一个hid端口,均为此端口配置一个hid描述符。当数据分发终端需要向usb
‑
hid设备下发数据包时,通过usb hub模块扫描usb hub模块连接的hid端口,从而识别出usb
‑
hid设备数量,从而使得数据分发终端可根据hid描述符数量判断出与usb
‑
hid设备连接的hid端口数量,为每一个hid端口设置对应的一个数据分块。在表征描述hid端口的hid描述符中,包括pid和vid字段,可以把vid字段设置为0xabcd,pid字段进行编号。例如,第一个hid端口为:0xef01,第二个端口为:0xef02等。数据分发终端通过vid识别usb hub模块所连接的usb
‑
hid设备是否为合法产品(例如是否为本公司产品),通过pid的低8位识别端口编号(即识别hid描述符)识别出不同的usb
‑
hid设备,进而识别出usb hub模块中与usb
‑
hid设备连接的hid端口总数量,以及判断哪些hid端口连接的是同一个usb
‑
hid设备。
27.数据分发终端相当于起到上位机的作用,可以采用常用的pc(电脑)或其他具有数据处理能力的计算机,例如平板电脑等。
28.优选地,数据分发终端将所有数据分块分发完后,给usb hub模块发送一个结束指令,表示数据分块全部下发完成,usb hub模块将结束指令继续下发给所有的usb
‑
hid设备。usb hub模块和usb
‑
hid设备接收到结束指令后,将停止接收数据分块。
29.优选地,数据分发终端将数据均等分块,每个数据分块的大小相同,均为数据包大小(即总数据量)/待传输同一个usb
‑
hid设备的hid端口数量。
30.usb hub模块用于将同一个usb
‑
hid设备通过多个hid端口连接同一个数据分发终端,以使得数据分发终端通过一个usb接口扩展连接多个hid端口,通过多个hid端口连接若干个usb
‑
hid设备。usb hub模块相当于起到usb分线器的作用,可以将一个usb接口扩展成多个。
31.usb
‑
hid设备用于接收所述数据分块,并将各个数据分块合并得到一个完整的数据包,从而完成数据传输。usb
‑
hid设备相当于是作为下位机,不断接收上位机发送过来的数据并进行合并,得到完整的数据包。
32.当一个usb hub模块连接多个(至少两个)usb
‑
hid设备时,每一个usb
‑
hid设备均通过多个(至少两个)hid端口连接到usb hub模块。为了正确将属于同一个数据包的各个数据分块发送给对应的usb
‑
hid设备,则需要读取hid端口所连接usb
‑
hid设备的设备id(即deviceid)实现,由于每一个usb
‑
hid设备的设备id是唯一的,因此,可以通过usb
‑
hid设备的设备id判断各个hid端口连接的usb
‑
hid设备是否为同一个。当然,也可以直接通过hid端口编号来实现,或者将设备id和连接的hid端口的端口编号进行绑定,从而可以根据端口编号判断出各个hid端口所连接的usb
‑
hid设备是否为同一个。在usb
‑
hid设备与数据分发终端之间的通信协议中,预先为每一个hid端口设置唯一的一个端口编号,端口编号可以在hid描述符中进行编码得到,进而可根据端口编号可以识别出当前的各个端口是否连接到同一个usb
‑
hid设备。例如,第一个usb
‑
hid设备的端口编号为hid端口1(即图1中的hid端口1)、hid端口2、
……
、hid端口n。第二个usb
‑
hid设备的端口编号为hid端口21、hid端口22、
……
、hid端口2n。
33.当然,在实际操作中,也可以不用在所述通讯协议中为每个hid端口预定义端口编号。可以采用将usb hub模块的前5个hid端口默认为连接第一个usb
‑
hid设备,后5个hid端口默认为连接第二个usb
‑
hid设备,并且严格要求每个usb
‑
hid设备按对应的hid端口连接,
不允许交叉连接,从而也可以将同属一个数据包的各个数据分块发送给对应的usb
‑
hid设备。
34.usb hub模块可以和usb
‑
hid设备集成在一起,将usb
‑
hid设备中的mcu通过多个hid端口连接到usb hub模块,从而将usb hub模块集成在usb
‑
hid设备内。当然,也可以通过多个电缆线(即外部的数据线)将usb
‑
hid设备和usb hub模块连接在一起。
35.另一方面,还提供一种应用于hid设备数据传输方法,其基于所述应用于hid设备数据传输系统,包括:
36.将各个usb
‑
hid设备通过各自的hid端口连接到usb hub模块,usb hub模块通过一个usb接口连接到数据分发终端,
37.数据分发终端通过通信协议中的端口编号识别出属于连接同一个usb
‑
hid设备的各个hid端口,识别出各个端口所属的usb
‑
hid设备后,将数据包拆分出若干数据分块,并将属于对应usb
‑
hid设备的数据包的各个数据分块通过对应的hid端口发送给usb
‑
hid设备。例如,某一数据包a需要发送给usb
‑
hid设备a,usb
‑
hid设备a通过hid端口1
‑
hid端口5连接至usb hub模块上,则数据分发终端将数据包a分成5个数据分块,第一个数据分块通过hid端口1发送给usb
‑
hid设备a,第二个数据分块通过hid端口2发送给usb
‑
hid设备a,依次类推,从而将5个数据分块准确发送给了对应的usb
‑
hid设备a,完成数据传输。
38.usb
‑
hid设备接收完所有数据分块后,将各个数据分块进行合并得到完整的数据包,从而完成数据传输。
39.其中,数据分发终端将所有数据分块发送完后,通过usb hub模块向usb
‑
hid设备发送结束指令,usb
‑
hid设备接收到结束指令后,则停止接收数据。
40.本发明通过在usb
‑
hid设备上添加usb hub模块方式,将数据分块通过多个hid端口并行发送,提高了usb
‑
hid设备的数据传输速率,即提高通信速度。提高的通信速度相比于传统usb
‑
hid设备传输方式,提高了n倍,n等于同一个usb
‑
hid设备连接的hid端口数量。
41.本说明书所公开的实施例只是对本发明单方面特征的一个例证,本发明的保护范围不限于此实施例,其他任何功能等效的实施例均落入本发明的保护范围内。对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。