一种USB HID信号延长传输方法及系统
技术领域
本发明涉及信号传输技术领域,特别涉及一种USB HID信号延长传输方法及系统。
背景技术
在指挥调度和会议讨论等场合,主机和用户之间的物理距离可能会比较远,在将主机的视频传输至用户侧的同时,也需要对USB HID信号进行延长传输,使得用户可以远程操作主机。
目前主要有两种技术方案:
1、透传方案。如图1,延长器由连接USB HID设备的发送器和连接USB HOST的接收器组成。发送器将采集到的来自USB HID设备的USB协议数据通过两者的之间的通讯线路(有线或者无线)传输至接收器,接收器接收到这些数据后,将其恢复成标准的USB协议数据传输给USB HOST。另一方向的机制类似,来自USB HOST的USB协议数据被接收器采集后传输至发送器,发送器再将其恢复成标准的USB协议数据传输给USB HID。
这种方案由发送器、接收器及其之间的通讯线路组成了一个虚拟USB线缆,发送器和接收器都不需要对USB HID协议数据做任何解析,而是对所有USB协议数据进行透明传输,因此称之为“透传方案”。
2、解析方案。如图2,发送器内部设有完整功能的USB HOST、接收器中设置相应的USB HID协议栈,对USB HID协议数据进行解析,得到诸如“某个键被按下或抬起”、“鼠标移动若干单位”或“某坐标处被按下或松开”等事件,然后将这些描述输入设备状态变化的事件数据通过通讯线路传输至接收端;接收器则模拟出一个标准的USB HID设备,根据接收到的来自发送器的事件数据生成相应的USB HID协议数据,并传递给USB HOST。
采用这种方案,发送器和接收器之间传递的是发送器对USB HID协议数据进行解析之后的事件数据,可称之为“解析方案”。
然而,对于“透传方案”,目前很多带有大尺寸触控屏的交互式电子白板都会声明多个不同种类的USB设备(Device),需要较多的接口(Interface)和端点(Endpoint)资源,透传方案并不区分具体的USB设备类型,必须将所有的设备、接口和端点全部加以传输,而常用的SoC芯片支持的端点数量是有限的,如果要支持更多的端点,只能采用更高等级的SoC芯片或专用的USB延长硬件模块,从而导致成本增加。
对于“解析方案”,USB HID协议相对复杂,灵活性也比较高,厂家通常都只针对Windows和X86等桌面环境提供驱动程度,而SoC芯片常用Linux/ARM环境,必须自行开发驱动程序才能正确解析,且必须针对不同厂家不同型号逐一适配开发,否则无法保证兼容性。
发明内容
现有技术中,延长方案中的“透传方案”成本较高,而“解析方案”的兼容性差。
针对上述问题,提出一种USB HID信号延长传输方法及系统,通过对HID报表描述符进行初步解析,以获取符合用途要求的HID报表描述符,例如含有数据结构Usage Page和Usage等表述HID设备类型的HID报表描述符,设备类型通常包括键盘、鼠标及触控屏,降低了要求发送数据的端点数量,使得绝大部分的SoC芯片都能满足要求。并通过该HID报表描述符获得对应的端点地址,将该HID报表描述符及对应端点地址传输的HID报表数据通过透传的方式传输到接收器,提高了兼容性。
第一方面,提出一种USB HID信号延长传输方法,包括:
步骤100、对从USB HID设备传输过来的第一HID报表描述符进行筛选,获取规定用途的第二HID报表描述符;
步骤200、获取所述第二HID报表描述符对应的端点地址;
步骤300、发送器模块将所述第二HID报表描述符及所有从所述端点地址接收到的HID报表数据分别透明转发给接收器模块;
步骤400、PC主机对所述接收器模块传输过来的所述第二HID报表描述符及其HID报表数据进行第二解析;
其中,所述步骤100包括步骤101:
对从USB HID设备传输的所有第一HID报表描述符进行第一解析。
结合本发明所述的USB HID信号延长传输方法,第一种可能的实施方式中,所述方法还包括:
步骤500、接收器模块根据接收到的所述第二HID报表描述符重构接收到的剩余描述符;
步骤600、接收器模块将接收到的HID报表数据及第二HID报表描述符通过USBHOST设备传输到PC主机。
结合本发明第一种可能的实施方式,第二种可能的实施方式中,所述方法还包括:
步骤700、将所述USB HOST设备配置为标准USB HOST;
步骤800、接收器模块将所述标准USB HOST的规格信息通过通讯连接传输到所述发送器模块。
结合本发明第二种可能的实施方式,第三种可能的实施方式中,所述步骤100包括:
步骤110、对所述第一HID报表描述符进行第一解析,找出符合用途声明的第二HID报表描述符;
步骤120、将不符合用途声明的第一HID报表描述符整体丢弃。
结合本发明第三种可能的实施方式,第四种可能的实施方式中,所述步骤200包括:
步骤210、获取所述第二HID报表描述符的数据结构;
步骤220、根据所述数据结构获取发送器模块SoC芯片的端点地址信息及连接的USB HID设备类型;
其中,所述USB HID设备类型包括鼠标、键盘、触控屏中的一种或者多种。
结合本发明第四种可能的实施方式,第五种可能的实施方式中,所述步骤500包括:
步骤610、所述接收器模块通过USB HOST设备向PC主机声明所述USB HID设备;
步骤620、所述PC主机对接收到的第二HID报表描述符及其HID报表数据进行第二解析。
一种USB HID信号延长传输系统,采用第一方面的延长传输方法,包括:
USB HID设备;
发送器模块;
接收器模块;
USB HOST设备;
PC主机;
所述USB HID设备与所述发送器模块连接,所述发送器模块还与所述接收器模块通讯连接;
所述接收器模块通过所述USB HOST设备与所述PC主机连接;
所述USB HID设备用于HID报表描述符及其报表数据传输到所述发送器模块;
所述发送器模块用于将固定用途的HID报表描述符及其报表数据透明转发到所述接收器模块;
所述接收器模块用于根据接收到的HID报表描述符构建接收到的剩余描述符并将固定用途的HID报表描述符及其报表数据传输到所述PC主机;
所述PC主机用于对所述固定用途的HID报表描述符及其报表数据进行完全解析,以获取交互信息。
结合第二方面的USB HID信号延长传输系统,第一种可能的实施方式中,所述发送器模块包括:
第一解析单元;
分析单元;
确定单元;
所述第一解析单元用于对所述USB HID设备传输的所有HID报表描述符进行描述符解析;
所述分析单元用于根据用途对解析后的HID报表描述符的数据结构进行分析,以获取规定用途的HID报表描述符;
所述确定单元用于根据所述规定用途的HID报表描述符获取端点地址及USB HID设备的设备类型。
结合第二方面第一种可能的实施方式,第二种可能的实施方式中,所述接收器模块包括:
重构单元;
所述重构单元用于根据接收到的HID报表描述符构建接收到的剩余描述符。
结合第二方面第二种可能的实施方式,第三种可能的实施方式中,所述PC主机包括:
第二解析单元;
所述第二解析单元用于对接收到的第二HID报表描述符及其HID报表数据进行完全解析,以获取交互信息。
实施本发明所述的USB HID信号延长传输方法及系统,具有以下技术效果:
本申请仅通过对HID报表描述符进行初步解析,以获取符合用途要求的HID报表描述符,例如含有数据结构Usage Page和Usage等表述HID设备类型的HID报表描述符,设备类型通常包括键盘、鼠标及触控屏,降低了要求发送数据的端点数量,使得绝大部分的SoC芯片都能满足要求。并通过该HID报表描述符获得对应的端点地址,将该HID报表描述符及对应端点地址传输的HID报表数据通过透传的方式传输到接收器,提高了兼容性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中USB HID信号延长传输系统第一实施例示意图;
图2是现有技术中USB HID信号延长传输系统第二实施例示意图;
图3是本发明中USB HID信号延长传输方法第一实施例示意图;
图4是本发明中USB HID信号延长传输方法第二实施例示意图;
图5是本发明中USB HID信号延长传输方法第三实施例示意图;
图6是本发明中USB HID信号延长传输方法第四实施例示意图;
图7是本发明中USB HID信号延长传输方法第五实施例示意图;
图8是本发明中USB HID信号延长传输方法第六实施例示意图;
图9是本发明中USB HID信号延长传输系统第一实施例示意图;
图10是本发明中USB HID信号延长传输系统第二实施例示意图;
附图中各数字所指代的部位名称为:110——PC主机、111——第二解析单元、120——USB HOST设备、130——接收器模块、131——重构单元、210——发送器模块、211——第一解析单元、212——分析单元、213——确定单元、220——USB HID设备。
具体实施方式
下面将结合发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
现有技术中,延长方案中的“透传方案”成本较高,而“解析方案”的兼容性差。
针对上述问题,提出一种USB HID信号延长传输方法及系统,第一方面,提出一种USB HID信号延长传输方法,如图3,图3是本发明中USB HID信号延长传输方法第一实施例示意图,包括:
步骤100、对从USB HID设备220传输过来的第一HID报表描述符进行筛选,获取规定用途的第二HID报表描述符;步骤200、获取第二HID报表描述符对应的端点地址;步骤300、发送器模块将第二HID报表描述符及所有从端点地址接收到的HID报表数据分别透明转发给接收器模块;步骤400、PC主机110对接收器模块传输过来的第二HID报表描述符及其HID报表数据进行第二解析。
优选地,步骤100包括步骤101:对从USB HID设备220传输的所有第一HID报表描述符进行第一解析。
本申请中,第一解析仅用于对第一HID报表描述符进行初步解析,以便筛选出符合要求的HID报表描述符,优选地,第一解析仅对第一HID报表描述符的用途信息Usage Page和Usage字段进行解析,不对定义HID报表格式以及厂家私有扩展的字段进行解析,也不对HID报表数据进行解析,将HID报表数据及筛选出来的第二HID保密描述符直接透明传输。
本发明中对HID报表描述符的第一解析是为了过滤出符合要求的HID报表描述符,一旦找到了符合要求的HID报表描述符,就会将这个报表描述符透传给接收端。
通过对HID报表描述符进行初步解析,以获取符合用途要求的HID报表描述符,例如含有数据结构Usage Page和Usage等表述HID设备类型的HID报表描述符,设备类型通常包括键盘、鼠标及触控屏,降低了要求发送数据的端点数量,使得绝大部分的SoC芯片都能满足要求。并通过该HID报表描述符获得对应的端点地址,将该HID报表描述符及对应端点地址传输的HID报表数据通过透传的方式传输到接收器模块,提高了兼容性。
优选地,在一个实施方式中,如图4,图4是本发明中USB HID信号延长传输方法第二实施例示意图,方法还包括:步骤500、接收器模块根据接收到的第二HID报表描述符重构接收到的剩余描述符;步骤600、接收器模块将接收到的HID报表数据及第二HID报表描述符通过USB HOST设备120传输到PC主机110。
第二HID报表描述符对应的HID报表数据对应的其他的描述符,由接收器模块进行重构。
优选地,在一个实施方式中,如图5,图5是本发明中USB HID信号延长传输方法第三实施例示意图,方法还包括:
步骤700、将USB HOST设备120配置为标准USB HOST;步骤800、接收器模块将标准USB HOST的规格信息通过通讯连接传输到发送器模块。
优选地,如图6,图6是本发明中USB HID信号延长传输方法第四实施例示意图,步骤100包括:步骤110、对第一HID报表描述符进行第一解析,找出符合用途声明的第二HID报表描述符;步骤120、将不符合用途声明的第一HID报表描述符整体丢弃。
优选地,如图7,图7是本发明中USB HID信号延长传输方法第五实施例示意图,步骤200包括:步骤210、获取第二HID报表描述符的数据结构;步骤220、根据数据结构获取发送器模块SoC芯片的端点地址信息及连接的USB HID设备220类型;其中,USB HID设备220类型包括鼠标、键盘、触控屏中的一种或者多种。
与现有的透传方案相比,本发明根据HID报表描述符中的Usage Page和Usage取值进行过滤,仅对符合用途要求的USB HID接口和端点的数据进行传输,从而将对USB端点的数量要求降低到绝大部分SoC芯片都能支持的水准(3个端点),如表1,解决了现有透传方案的经济性问题。
表1常见设备用途取值组合
设备类型 |
Usage Page |
Usage |
鼠标 |
Generic Desktop Ctrls |
Mouse |
键盘 |
Generic Desktop Ctrls |
Keyboard |
触控屏 |
Digitizer |
Touch Screen |
优选地,如图8,图8是本发明中USB HID信号延长传输方法第六实施例示意图,步骤600包括:步骤610、接收器模块通过USB HOST设备120向PC主机110声明USB HID设备220;步骤620、PC主机110对接收到的第二HID报表描述符及其HID报表数据进行第二解析。
第二解析在接收端由PC主机110进行完全解析,也就是在发送器模块模块210与接收器模块模块130之间传输的通讯数据,为未解析的HID报表数据及筛选后的第二HID报表数据描述符,在透传之前基本上不进行解析,对HID报表数据描述符的第一解析仅仅是为了筛选出符合要求的第二HID报表描述符。
一种USB HID信号延长传输系统,如图9,图9是本发明中USB HID信号延长传输系统第一实施例示意图,采用第一方面的延长传输方法,包括USB HID设备220、发送器模块210、接收器模块130、USB HOST设备120、PC主机110;USB HID设备220与发送器模块210连接,发送器模块210还与接收器模块130通讯连接;接收器模块130通过USB HOST设备120与PC主机110连接;USB HID设备220用于HID报表描述符及其报表数据传输到发送器模块210;发送器模块210用于将固定用途的HID报表描述符及其报表数据透明转发到接收器模块130;接收器模块130用于根据接收到的HID报表描述符构建接收到的剩余描述符并将固定用途的HID报表描述符及其报表数据传输到PC主机110;PC主机110用于对固定用途的HID报表描述符及其报表数据进行完全解析,以获取交互信息。
进一步地,如图10,图10是本发明中USB HID信号延长传输系统第二实施例示意图;发送器模块210包括第一解析单元211、分析单元212、确定单元213;第一解析单元211用于对USB HID设备220传输的所有HID报表描述符进行描述符解析;分析单元212用于根据用途对解析后的HID报表描述符的数据结构进行分析,以获取规定用途的HID报表描述符;确定单元213用于根据规定用途的HID报表描述符获取端点地址及USB HID设备220的设备类型。
发送器模块210中的第一解析单元211首先将采集到的来自USB HID设备220的所有的报表描述符进行初步解析,符合要求的HID报表描述符,找到该描述符对应的端点地址,将所有从该HID报表描述符及端点传输过来的HID报表数据恢复成标准的USB协议数据传输给接收器模块130。
通过对HID报表描述符进行初步解析,以获取符合用途要求的HID报表描述符,例如含有数据结构Usage Page和Usage等表述HID设备类型的HID报表描述符,设备类型通常包括键盘、鼠标及触控屏,降低了要求发送数据的端点数量,使得绝大部分的SoC芯片都能满足要求。
进一步地,接收器模块130包括:重构单元131;重构单元131用于根据接收到的HID报表描述符构建接收到的剩余描述符。
优选地,PC主机110包括第二解析单元111;第二解析单元111用于对接收到的第二HID报表描述符及其HID报表数据进行完全解析,以获取交互信息。
实施本发明的USB HID信号延长传输方法及系统,具有以下技术效果:
本申请仅通过对HID报表描述符进行初步解析,以获取符合用途要求的HID报表描述符,例如含有数据结构Usage Page和Usage等表述HID设备类型的HID报表描述符,设备类型通常包括键盘、鼠标及触控屏,降低了要求发送数据的端点数量,使得绝大部分的SoC芯片都能满足要求。并通过该HID报表描述符获得对应的端点地址,将该HID报表描述符及对应端点地址传输的HID报表数据通过透传的方式传输到接收器,提高了兼容性。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。