一种USB复合设备通信方法、系统及存储介质与流程

文档序号:29440396发布日期:2022-03-30 10:02阅读:129来源:国知局
一种USB复合设备通信方法、系统及存储介质与流程
一种usb复合设备通信方法、系统及存储介质
技术领域
1.本发明涉及云电脑领域,特别涉及一种usb复合设备通信方法、系统及存储介质。


背景技术:

2.随着网络技术的发展,云电脑得到了广泛的应用,用户可在云电脑技术的帮助下,将瘦终端(低配计算机、手机、浏览器、机顶盒等)与远端高性能主机建立网络连接,以此在瘦终端上使用高性能主机。由于用户所使用的usb设备均连接在瘦终端上,如何让远端的高性能主机识别到这些usb设备,是云电脑领域所需解决的重要技术问题。
3.相关技术中,通常使用usbip技术(基于网络的usb设备透传技术)实现usb设备数据在多终端上的透明传输。然而该技术仅能满足基础的键鼠功能操作,即只能让远端主机识别单接口的usb设备,而对于具有多接口的usb复合设备而言(例如带有侧键等多功能的鼠标),由于usbip技术无法传输usb复合设备的物理信息,因此远端主机无法正确识别usb复合设备,进而也无法满足用户在远端主机上使用usb复合设备的需求。


技术实现要素:

4.本发明的目的是提供一种usb复合设备通信方法、系统及存储介质,可将接入第一设备的usb复合设备完整配置到第二设备,使得第二设备中的软件可识别usb复合设备并通过网络与其进行通信,能够满足用户在远端主机上使用usb复合设备的需求。
5.为解决上述技术问题,本发明提供一种usb复合设备通信方法,应用于第一设备和第二设备,所述第一设备中设置有接管模块,所述第二设备中设置有虚拟总线模块和pnp管理器,所述方法包括:
6.所述接管模块获取接入所述第一设备的usb复合设备的设备信息,并将所述设备信息发送至虚拟总线模块;
7.所述虚拟总线模块利用所述设备信息创建虚拟物理设备对象,并向pnp管理器发送所述虚拟物理设备对象;
8.所述pnp管理器利用所述虚拟物理设备对象将所述usb复合设备配置到所述第二设备,以使所述第二设备的软件识别所述usb复合设备,并通过所述接管模块和所述虚拟总线模块与所述usb复合设备通信。
9.优选地,所述接管模块获取接入所述第一设备的usb复合设备的设备信息,并将所述设备信息发送至虚拟总线模块,包括:
10.所述接管模块获取接入所述第一设备的usb设备,并判断所述usb设备的服务名中是否包含预设字段;
11.若是,则确定所述usb设备为所述usb复合设备,并为所述usb复合设备安装接管驱动,以使所述接管驱动获取所述设备信息,并将所述设备信息发送至所述虚拟总线模块。
12.优选地,在为所述usb复合设备安装接管驱动之前,还包括:
13.所述接管模块获取预设设备名单,并提取所述usb复合设备的设备硬件id;
14.判断所述设备硬件id是否存于所述预设设备名单;
15.若是,则忽略所述usb复合设备;
16.若否,则为所述usb复合设备安装接管驱动。
17.优选地,所述pnp管理器利用所述虚拟物理设备对象将所述usb复合设备配置到所述第二设备,包括:
18.所述pnp管理器利用所述虚拟物理设备对象为所述usb复合设备分配系统资源,并启动所述usb复合设备,以使所述第二设备的操作系统在检测到所述usb复合设备启动时,初始化所述usb复合设备,并为所述usb复合设备挂载驱动程序。
19.优选地,所述设备信息中包含设备硬件id和设备兼容id,所述设备兼容id中包括usb复合设备标识符;
20.相应的,所述为所述usb复合设备挂载驱动程序,包括:
21.所述操作系统根据所述设备硬件id、所述设备兼容id及所述usb复合设备标识符挂载所述驱动程序。
22.本发明还提供一种usb复合设备通信系统,包括:第一设备和第二设备,所述第一设备中设置有接管模块,所述第二设备中设置有虚拟总线模块和pnp管理器,其中
23.所述接管模块,用于获取接入所述第一设备的usb复合设备的设备信息,并将所述设备信息发送至虚拟总线模块;
24.所述虚拟总线模块,用于利用所述设备信息创建虚拟物理设备对象,并向pnp管理器发送所述虚拟物理设备对象;
25.所述pnp管理器,用于利用所述虚拟物理设备对象将所述usb复合设备配置到所述第二设备,以使所述第二设备的软件识别所述usb复合设备,并通过所述接管模块和所述虚拟总线模块与所述usb复合设备通信。
26.优选地,所述接管模块,还用于获取接入所述第一设备的usb设备,并判断所述usb设备的服务名中是否包含预设字段;若是,则确定所述usb设备为所述usb复合设备,并为所述usb复合设备安装接管驱动,以使所述接管驱动获取所述设备信息,并将所述设备信息发送至所述虚拟总线模块。
27.优选地,所述接管模块,还用于获取预设设备名单,并提取所述usb复合设备的设备硬件id;判断所述设备硬件id是否存于所述预设设备名单;若是,则忽略所述usb复合设备;若否,则为所述usb复合设备安装接管驱动。
28.优选地,所述pnp管理器,还用于利用所述虚拟物理设备对象为所述usb复合设备分配系统资源,并启动所述usb复合设备,以使第二设备的操作系统在检测到所述usb复合设备启动时,初始化所述usb复合设备,并为所述usb复合设备挂载驱动程序。
29.本发明还提供一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述的usb复合设备通信方法。
30.本发明提供一种usb复合设备通信方法,应用于第一设备和第二设备,所述第一设备中设置有接管模块,所述第二设备中设置有虚拟总线模块和pnp管理器,所述方法包括:所述接管模块获取接入所述第一设备的usb复合设备的设备信息,并将所述设备信息发送至虚拟总线模块;所述虚拟总线模块利用所述设备信息创建虚拟物理设备对象,并向pnp管理器发送所述虚拟物理设备对象;所述pnp管理器利用所述虚拟物理设备对象将所述usb复
合设备配置到所述第二设备,以使所述第二设备的软件识别所述usb复合设备,并通过所述接管模块和所述虚拟总线模块与所述usb复合设备通信。
31.可见,在本发明中,位于第一设备的接管模块首先会获取接入第一设备的usb复合设备的完整设备信息,并将这一信息发送至位于第二设备的虚拟总线模块,以此将usb复合设备的物理信息传输至第二设备;虚拟总线模块在接收到设备信息后,则会利用该信息创建虚拟物理设备对象,并将虚拟物理设备对象发送至pnp管理器进行设备配置。由于虚拟物理设备对象中包含了usb复合设备完整的设备信息,因此pnp管理器能够正确识别usb复合设备并进行相应配置,使得usb复合设备能够正确配置到第二设备,以便第二设备中的软件识别usb复合设备,并通过接管模块和虚拟总线模块与usb复合设备进行通信,能够满足用户在远端主机上使用usb复合设备的需求,进而提升了用户使用云电脑的用户体验。本发明还提供一种usb复合设备通信系统及存储介质,具有上述有益效果。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
33.图1为本发明实施例所提供的一种usb复合设备通信方法的流程图;
34.图2为本发明实施例所提供的一种将瘦终端usb复合设备配置到主机端的示意图;
35.图3为本发明实施例所提供的一种usb复合设备通信系统的结构框图。
具体实施方式
36.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.相关技术中,通常使用usbip技术(基于网络的usb设备透传技术)实现usb设备数据在多终端上的透明传输。然而该技术仅能满足基础的键鼠功能操作,即只能让远端主机识别单接口的usb设备,而对于具有多接口的usb复合设备而言(例如带有侧键等多功能的鼠标),由于usbip技术无法传输usb复合设备的物理信息,因此远端主机无法正确识别usb复合设备,进而也无法满足用户在远端主机上使用usb复合设备的需求。有鉴于此,本发明提供一种usb复合设备通信方法,可将接入第一设备的usb复合设备完整配置到第二设备,使得第二设备中的软件可识别usb复合设备并通过网络与其进行通信,能够满足用户在远端主机上使用usb复合设备的需求。请参考图1,图1为本发明实施例所提供的一种usb复合设备通信方法的流程图,该方法应用于第一设备和第二设备,第一设备中设置有接管模块,第二设备中设置有虚拟总线模块和pnp管理器。需要说明的是,本发明实施例并不限定第一设备的具体类型,只要第一设备为电脑设备且具有usb接口即可,例如可以为个人电脑(pc)、手机、平板电脑等;本发明实施例也不限定第二设备的具体类型,例如可以为个人电脑、服务器等。该方法可以包括:
38.s101、接管模块获取接入第一设备的usb复合设备的设备信息,并将设备信息发送至虚拟总线模块。
39.在本发明实施例中,接管模块和虚拟总线模块均用于将接入第一设备的usb复合设备配置到第二设备,并为usb复合设备与第二设备之间的数据通信提供数据通路。对于接管模块而言,其首先会在第一设备中查找接入第一设备的usb复合设备的设备信息。具体的,usb复合设备在接入第一设备时,首先会被配置到第一设备的设备管理器,在完成配置后,usb复合设备便可被接管模块查询到。由于usb复合设备对应的服务名中通常会包含预设字段(例如usbccgp),因此接管模块首先可查找接入第一设备的usb设备,并判断usb设备对应的服务名中是否包含预设字段,以此判断该usb设备是否为usb复合设备。进一步,为了将usb复合设备从第一设备的操作系统中接管至第二设备,接管模块会为usb复合设备安装接管驱动,以替代usb复合设备原有的usb通用父驱动程序(usbccgp.sys)。
40.在一种可能的情况中,接管模块获取接入第一设备的usb复合设备的设备信息,并将设备信息发送至虚拟总线模块,可以包括:
41.步骤11:接管模块获取接入第一设备的usb设备,并判断usb设备的服务名中是否包含预设字段;若是,则进入步骤12;若否,则忽略该usb设备;
42.步骤12:确定usb设备为usb复合设备,并为usb复合设备安装接管驱动,以使接管驱动获取设备信息,并将设备信息发送至虚拟总线模块。
43.需要说明的是,本发明实施例并不限定需要向虚拟总线模块发送的设备信息,例如可以发送设备描述符、配置描述符、接口描述符等信息,可参考usb设备的相关技术。
44.进一步,考虑到第一设备可能遇到故障情况,此时维护人员需要在第一设备本地进行维护,进而可能在第一设备上使用usb复合设备。为避免所有usb复合设备均被接管至第二设备,导致无法在第一设备上使用usb复合设备,接管模块还可预设设备名单,并将不需要被接管至第二设备的usb复合设备信息记录至该名单。在每次获取到usb复合设备的设备信息后,接管模块将会利用该设备信息与名单中的信息进行比对,仅在不同时才将这一usb复合设备接管至第二设备。本发明实施例并不限定需要被记录至预设设备名单中的设备信息,例如可记录usb复合设备对应的设备硬件id。本发明实施例并不限定设备硬件id的具体形式,可参考usb设备的相关技术。
45.在一种可能的情况中,在为usb复合设备安装接管驱动之前,还可以包括:
46.步骤21:接管模块获取预设设备名单,并提取usb复合设备的设备硬件id;
47.步骤22:判断设备硬件id是否存于预设设备名单;若是,则进入步骤23;若否,则进入步骤24;
48.步骤23:忽略usb复合设备;
49.步骤24:为usb复合设备安装接管驱动。
50.s102、虚拟总线模块利用设备信息创建虚拟物理设备对象,并向pnp管理器发送虚拟物理设备对象。
51.在本发明实施例中,虚拟总线模块用于在第二设备中虚拟usb复合设备。具体的,虚拟总线模块会利用设备信息创建虚拟的物理设备对象(pdo,physical device object),并向pnp管理器发送这一虚拟物理设备对象,其中pnp管理器(plug-and-play,即插即用)用于自动配置底层计算机中的板卡及其它设备。本发明实施例并不限定虚拟物理设备对象的
创建方式,可参考pdo的相关技术。具体的,由于usb复合设备为特殊的usb设备,因此虚拟总线模块在创建虚拟物理设备对象时,除了需要填充设备硬件id和设备兼容id,以及在设备兼容id中填充设备类信息之外,还需要向设备兼容id中填充usb复合设备标识符(usb\composite)。换而言之,接管模块向虚拟总线模块中发送的设备信息应当包含设备硬件id和设备兼容id,而设备兼容id中包括usb复合设备标识符。
52.s103、pnp管理器利用虚拟物理设备对象将usb复合设备配置到第二设备,以使第二设备的软件识别usb复合设备,并通过接管模块和虚拟总线模块与usb复合设备通信。
53.具体的,pnp管理器将会为usb设备分配系统资源,并通过由虚拟总线模块和接管模块所构成的通信链路启动usb复合设备,以使第二设备中的操作系统在检测到usb复合设备启动时,对usb复合设备进行初始化并挂载相应的驱动程序。可以理解的是,第二设备中的操作系统正是根据上述提及的设备硬件id、设备兼容id及usb复合设备标识符进行驱动挂载的。
54.在一种可能的情况中,pnp管理器利用虚拟物理设备对象将usb复合设备配置到第二设备,包括:
55.步骤31:pnp管理器利用虚拟物理设备对象为usb复合设备分配系统资源,并启动usb复合设备,以使第二设备的操作系统在检测到usb复合设备启动时,初始化usb复合设备,并为usb复合设备挂载驱动程序。
56.在一种可能的情况中,设备信息中包含设备硬件id和设备兼容id,设备兼容id中包括usb复合设备标识符;
57.相应的,为usb复合设备挂载驱动程序,包括:
58.步骤41:操作系统根据设备硬件id、设备兼容id及usb复合设备标识符挂载驱动程序。
59.需要说明的是,本发明实施例并不限定pnp管理器及操作系统对usb复合设备进行资源分配及驱动程序挂载的具体过程,可参考pnp管理器及操作系统的相关技术。
60.基于上述实施例,在本发明中,位于第一设备的接管模块首先会获取接入第一设备的usb复合设备的完整设备信息,并将这一信息发送至位于第二设备的虚拟总线模块,以此将usb复合设备的物理信息传输至第二设备;虚拟总线模块在接收到设备信息后,则会利用该信息创建虚拟物理设备对象,并将虚拟物理设备对象发送至pnp管理器进行设备配置。由于虚拟物理设备对象中包含了usb复合设备完整的设备信息,因此pnp管理器能够正确识别usb复合设备并进行相应配置,使得usb复合设备能够正确配置到第二设备,以便第二设备中的软件识别usb复合设备,并通过接管模块和虚拟总线模块与usb复合设备进行通信,能够满足用户在远端主机上使用usb复合设备的需求,进而提升了用户使用云电脑的用户体验。
61.下面基于具体的例子介绍上述usb复合设备通信方法,请参考图2,图2为本发明实施例所提供的一种将瘦终端usb复合设备配置到主机端的示意图。该流程可以包括:瘦终端(即第一设备)接管模块会通过setupdienumdeviceinfo接口枚举瘦终端系统上的usb设备,通过设备服务名是否为usbccgp区分是否为复合设备,通过设备硬件id匹配白名单区分是否为可接管设备,随后,接管模块会为每个设备安装接管驱动。接管前usb复合设备的驱动结构如瘦终端一侧的“设备接管前”部分所示,在usb composite device(usb复合设备)这
一父驱动下包含多个子驱动,如鼠标(hid-compliant mouse)和键盘(hid-keyboard device);接管前usb复合设备的驱动结构如瘦终端一侧的“设备接管后”部分所示,usb复合设备的驱动被usb接管驱动替代。
62.接管驱动会获取usb设备的设备描述符、配置描述符、接口描述符等信息并将该信息发送到主机端(即第二设备),主机端虚拟总线驱动会创建一个虚拟pdo,虚拟总线驱动初始化虚拟pdo信息时需要填充设备硬件id和设备兼容id。对于复合设备,设备兼容id不仅需要填充设备类信息,还需包含usb\composite。虚拟总线驱动将设备报告给系统pnp管理器后,pnp管理器会来查询设备信息,分配资源并启动设备。虚拟pdo在虚拟总线驱动中的驱动结构如主机端一侧所示,可见该结构与usb复合设备原先在瘦终端上的驱动结构一致。
63.启动设备后系统会进行usb设备初始化流程,获取设备描述符信息,选择配置等操作,设备配置完成后主机会根据设备接口信息为设备挂载驱动。此时,在设备管理器中就可以看到设备了,与设备插入本地计算机识别出的设备是一模一样。usb设备厂商的软件也能轻易识别出自己厂商的usb设备,并安装自己的控制软件,功能正常。
64.下面对本发明实施例提供的一种usb复合设备通信系统及存储介质进行介绍,下文描述的usb复合设备通信系统及存储介质与上文描述的usb复合设备通信方法可相互对应参照。请参考图3,图3为本发明实施例所提供的一种usb复合设备通信系统的结构框图,该系统可以包括:第一设备310和第二设备320,第一设备310中设置有接管模块311,第二设备320中设置有虚拟总线模块321和pnp管理器322,其中,
65.接管模块311,用于获取接入第一设备310的usb复合设备的设备信息,并将设备信息发送至虚拟总线模块321;
66.虚拟总线模块321,用于利用设备信息创建虚拟物理设备对象,并向pnp管理器322发送虚拟物理设备对象;
67.pnp管理器322,用于利用虚拟物理设备对象将usb复合设备配置到第二设备320,以使第二设备320的软件识别usb复合设备,并通过接管模块311和虚拟总线模块321与usb复合设备通信。
68.优选地,接管模块311,还用于获取接入第一设备310的usb设备,并判断usb设备的服务名中是否包含预设字段;若是,则确定usb设备为usb复合设备,并为usb复合设备安装接管驱动,以使接管驱动获取设备信息,并将设备信息发送至虚拟总线模块321。
69.优选地,接管模块311,还用于获取预设设备名单,并提取usb复合设备的设备硬件id;判断设备硬件id是否存于预设设备名单;若是,则忽略usb复合设备;若否,则为usb复合设备安装接管驱动。
70.优选地,pnp管理器322,还用于利用虚拟物理设备对象为usb复合设备分配系统资源,并启动usb复合设备,以使第二设备320的操作系统在检测到usb复合设备启动时,初始化usb复合设备,并为usb复合设备挂载驱动程序。
71.优选地,设备信息中包含设备硬件id和设备兼容id,设备兼容id中包括usb复合设备标识符;
72.相应的,该第二设备320中的操作系统根据设备硬件id、设备兼容id及usb复合设备标识符挂载驱动程序。
73.本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序
被处理器执行时实现上述任意实施例的usb复合设备通信方法的步骤。
74.由于存储介质部分的实施例与usb复合设备通信方法部分的实施例相互对应,因此存储介质部分的实施例请参见usb复合设备通信方法部分的实施例的描述,这里暂不赘述。
75.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
76.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
77.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
78.以上对本发明所提供的一种usb复合设备通信方法、系统及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1