CN110069288B - Usb设备共享方法、装置及系统 - Google Patents

Usb设备共享方法、装置及系统 Download PDF

Info

Publication number
CN110069288B
CN110069288B CN201910192806.8A CN201910192806A CN110069288B CN 110069288 B CN110069288 B CN 110069288B CN 201910192806 A CN201910192806 A CN 201910192806A CN 110069288 B CN110069288 B CN 110069288B
Authority
CN
China
Prior art keywords
usb
descriptor information
descriptor
host
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910192806.8A
Other languages
English (en)
Other versions
CN110069288A (zh
Inventor
关文杰
王志涛
高波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tricolor Technology Co ltd
Original Assignee
Beijing Tricolor Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Tricolor Technology Co ltd filed Critical Beijing Tricolor Technology Co ltd
Priority to CN201910192806.8A priority Critical patent/CN110069288B/zh
Publication of CN110069288A publication Critical patent/CN110069288A/zh
Application granted granted Critical
Publication of CN110069288B publication Critical patent/CN110069288B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

本发明提供了一种USB设备共享方法、装置及系统,涉及通信技术领域,该方法应用于USB处理终端,包括:接收第一USB主机发送的共享请求;其中,共享请求中携带有一种或多种设备描述符;从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;基于查找到的描述符信息,确定待共享的目标USB设备。本发明能够提升对USB设备的控制效率。

Description

USB设备共享方法、装置及系统
技术领域
本发明涉及通信技术领域,尤其是涉及一种USB设备共享方法、装置及系统。
背景技术
根据USB(Universal Serial Bus,通用串行总线)传输协议,诸如鼠标、键盘等外接USB设备在枚举阶段、业务阶段的数据传输必须由主机设备发起,且一个USB设备在同一时刻内仅能被一个主机设备占用或控制。
目前,通常直接将USB设备插在某一主机设备的特定接口上,若另一主机设备想要使用该USB设备时,只能将该USB设备从前述某一主机设备中拔出,再插入前述另一主机设备。尤其当两个主机设备布置较远时,频繁的插拔USB设备极为不便,影响对USB设备的控制,效率较低。
发明内容
有鉴于此,本发明的目的在于提供一种USB设备共享方法、装置及系统,以提升对USB设备的控制效率。
第一方面,本发明实施例提供了一种USB设备共享方法,应用于USB 处理终端,USB处理终端连接有多个USB设备,该方法包括:接收第一 USB主机发送的共享请求;其中,共享请求中携带有一种或多种设备描述符;从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;基于查找到的描述符信息,确定待共享的目标USB设备。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,接收第一USB主机发送的共享请求的步骤之前,还包括:接收第二USB主机发送的枚举请求;将枚举请求分别转发至每个USB设备,以在每个USB设备响应枚举请求时,获取每个USB设备的描述符信息;将每个USB设备的描述符信息保存至描述符信息存储区,并将每个USB设备的描述符信息发送至第二USB主机,以使每个USB设备挂载于第二USB主机上。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,当USB处理终端通过USB总线与第一USB主机进行通信时,上述方法还包括:调节USB总线的电平,将USB处理终端中预设的控制模块模拟为挂载于第一USB主机的USB从设备;当监测到第一USB主机对 USB从设备进行枚举操作时,将目标USB设备的描述符信息转发至第一 USB主机。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,第一USB主机关联有预设的客户端;其中,预设的客户端用于在接收到用户输入的配置信息时,根据配置信息生成配置文件,并将配置文件发送至第一USB主机;其中,配置信息包括目标USB设备的描述符信息。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,当USB处理终端通过网络总线或者控制总线与第二USB主机进行通信时,在从描述符信息存储区中查找与共享请求相匹配的描述符信息之前,上述方法还包括:判断共享请求中携带的设备描述符的类型是否包括每个USB设备的设备描述符的类型;如果是,将描述符信息存储区中的描述符信息封装为网络数据包,并将网络数据包上传至第一USB主机,以使第一USB主机从网络数据包中筛选出与配置文件匹配的第一目标描述符信息;当接收到第一USB主机发送的第一目标描述符信息时,根据第一目标描述符信息确定目标USB设备;如果否,执行步骤:从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,基于查找到的描述符信息,确定待共享的目标USB设备的步骤,包括:当共享请求中携带的设备描述符的类型属于预设子类时,将与查找到的描述符信息对应的USB设备,确定为目标 USB设备;当共享请求中携带的设备描述符的类型为预设基类时,将查找到的描述符信息上传至第一USB主机,以使第一USB主机根据配置文件对查找到的描述符信息进行筛选,得到第二目标描述符信息;当接收到第一 USB主机发送的第二目标描述符信息时,根据第二目标描述符信息确定目标USB设备。
第二方面,本发明实施例提供了一种USB设备共享装置,设置于USB 处理终端,USB处理终端连接有多个USB设备,上述装置包括:共享请求接收模块,用于接收第一USB主机发送的共享请求;其中,共享请求中携带有一种或多种设备描述符;描述符信息匹配模块,用于从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;待共享设备确定模块,用于基于查找到的描述符信息,确定待共享的目标USB 设备。
第三方面,本发明实施例提供了一种USB设备共享系统,包括:USB 处理终端、第一USB主机、第二USB主机和多个USB设备;其中,USB 处理终端分别与第一USB主机、第二USB主机和多个USB设备通信连接; USB处理终端中设置有如第二方面所述的USB设备共享装置。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,USB处理终端通过USB总线与第一USB主机进行通信;USB 处理终端通过USB总线或者非USB总线与第二USB主机进行通信;其中,非USB总线为网络总线或者控制总线。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面至第一方面的第五种可能的实施方式任一项所述的方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供了一种USB设备共享方法、装置及系统,USB处理终端在接收第一USB主机发送的共享请求时;其中,共享请求中携带有一种或多种设备描述符;首先从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;其中,描述符信息存储区中存储有挂载于第二USB 主机上的多个USB设备对应的描述符信息;然后基于查找到的描述符信息,确定待共享的目标USB设备。本发明实施例通过USB处理终端在将多个 USB设备挂载至第二USB主机的同时,根据第一USB主机发送的共享请求确定第一USB主机想要控制的USB设备,也即目标USB设备,可以实现第一USB主机和第二USB主机对于目标USB设备的共享,避免现有技术中因频繁插拔USB设备的情况,能够有效提升对USB设备的控制效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种USB设备共享方法的流程图;
图2为本发明实施例提供的另一种USB设备共享方法的流程图;
图3为本发明实施例提供的一种USB设备共享装置的结构框图;
图4为本发明实施例提供的一种USB设备共享系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据USB(Universal Serial Bus,通用串行总线)传输协议,诸如鼠标、键盘等外接USB设备在枚举阶段、业务阶段的数据传输必须由主机设备发起,且一个USB设备在同一时刻内仅能被一个主机设备占用或控制。
目前,通常直接将USB设备插在某一主机设备的特定接口上,若另一主机设备想要使用该USB设备时,只能将该USB设备从前述某一主机设备中拔出,再插入前述另一主机设备。尤其当两个主机设备布置较远时,频繁的插拔USB设备极为不便,影响对USB设备的控制,效率较低。
基于此,本发明实施例提供的一种USB设备共享方法、装置及系统,可以提升对USB设备的控制效率。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种USB 设备共享方法进行详细介绍,该方法应用于USB处理终端,该USB处理终端连接有多个USB设备。在一种可选的实施方式中,可通过设置集线器 (HUB)来规整简化连接线路,具体实施时,可在集线器一端连接多个USB 设备,另一端连接USB处理终端,从而间接通过集线器将USB处理终端与多个USB设备连接起来,其中,前述UBS设备包括人机交互设备(如鼠标。键盘)、外置存储设备、打印机、扫描仪等。
参见图1所示的一种USB设备共享方法的流程图,上述方法包括:
步骤S102,接收第一USB主机发送的共享请求;其中,共享请求中携带有一种或多种设备描述符。
步骤S104,从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;描述符信息存储区中存储有挂载于第二USB主机上的多个 USB设备对应的描述符信息。其中,描述符信息包括设备描述符、配置描述符、接口描述符、端点描述符等信息。
在一种可选的实施方式中,还可预先在描述符信息存储区中构建设备类型表,当获取到第二USB主机上的多个USB设备对应的描述符信息时,优先的可为描述符信息进行编号,并从多个USB设备对应的描述符信息中分别提取出设备描述符,然后对提取出的设备描述符的类型进行统计,根据统计的结果将提取出的设备描述符的类型与描述符信息编号的对应关系存储于前述设备类型表中,以便当USB处理终端接收到第一USB主机发送的共享请求时,可直接在设备类型表中查找与共享请求中所携带的设备描述符对应的描述符信息,能够有效提升查找的效率。
步骤S106,基于查找到的描述符信息,确定待共享的目标USB设备。
本发明实施例提供了一种USB设备共享方法,USB处理终端在接收第一USB主机发送的共享请求时;其中,共享请求中携带有一种或多种设备描述符;首先从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;其中,描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;然后基于查找到的描述符信息,确定待共享的目标USB设备。本发明实施例通过USB处理终端在将多个USB设备挂载至第二USB主机的同时,根据第一USB主机发送的共享请求确定第一 USB主机想要控制的USB设备,也即目标USB设备,可以实现第一USB 主机和第二USB主机对于目标USB设备的共享,避免现有技术中因频繁插拔USB设备的情况,能够有效提升对USB设备的控制效率。
进一步,本发明实施例还提供了另一种USB设备共享方法,参见图2,在图1所示的一种USB设备共享方法基础上还示意出了将多个USB设备挂载于第二USB主机上的步骤,具体的,该方法包括如下步骤:
步骤S202,接收第二USB主机发送的枚举请求。
步骤S204,将枚举请求分别转发至每个USB设备,以在每个USB设备响应枚举请求时,获取每个USB设备的描述符信息。
步骤S206,将每个USB设备的描述符信息保存至描述符信息存储区,并将每个USB设备的描述符信息发送至第二USB主机,以使每个USB设备挂载于第二USB主机上。
步骤S208,接收第一USB主机发送的共享请求;其中,共享请求中携带有一种或多种设备描述符。
步骤S210,从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;描述符信息存储区中存储有挂载于第二USB主机上的多个 USB设备对应的描述符信息。
步骤S212,基于查找到的描述符信息,确定待共享的目标USB设备。
具体实施时,USB处理终端分别通过USB总线与Host1(也即前述第二USB主机)以及多个USB设备连接,USB总线各节点上电并完成初始化后,Host1通过USB处理终端分别对挂载于USB处理终端的每个USB 设备进行枚举,在枚举过程中,每个USB设备响应Host1的枚举请求反馈描述符信息,USB处理终端在获取到每个USB设备的描述符信息时,一方面将其转发至Host1以使每个USB设备挂载于Host1上,若多个USB设备是通过HUB挂载在USB处理终端上的,则当多个USB设备响应Host1的枚举请求反馈描述符信息时,则形成Host1←→USB处理终端←→HUB←→多个USB设备的USB信号传输链路;另一方面将其保存至预设描述符信息存储区,根据后续Host0(也即,前述第一USB主机)的共享请求,确定Host0所想要共享的USB设备,也即前述待共享的目标USB设备。
在一种可选的实施方式中,判断一个USB设备是否为Host0想要共享的设备,可通过解析其描述符信息中的设备描述符判断该USB设备符合 Host0所需的设备类型,其中,设备描述符中包含代表USB设备具体属于哪一种设备类型的信息。具体实施时,USB处理终端可通过USB总线、网络控制线或者控制总线与第一USB主机进行通信,选用不同的总线,对应第一USB主机所起到的作用并不相同。详细说明如下:
(一)USB处理终端通过USB总线与第一USB主机进行通信。
在此连接模式下,Host0可视为与Host1同级的USB主机,由于同一个USB设备在同一时间只能受一个主机设备控制,故已经挂载于Host1的 USB设备不能同时挂载于Host0。但USB处理终端中存储有挂载于Host1 的每个USB设备的描述符信息,故可通过USB处理终端间接将多个USB 设备模拟地挂载于Host0,以构建Host0与多个USB设备的数据传输链路。
在一种可选的实施方式中,基于上述步骤S106中确定待共享的目标 USB设备后,还可将USB处理终端具体模拟为Host0所想要共享的USB 设备,从而为后续Host0通过USB处理终端设备对目标USB设备进行控制或占用,也即进行业务数据交互,预先构建起Host0与目标USB设备的数据传输链路。为便于理解,本发明实施例提供了一种将USB处理终端模拟为一个插入Host0的目标USB设备的实施方式,包括如下步骤:
步骤(1),调节USB总线的电平,将USB处理终端中预设的控制模块模拟为挂载于第一USB主机的USB从设备。
具体实施时,USB处理终端将直连于Host0的USB总线中USB-P由低电平0置为高电平1,以仿真USB设备的插入操作,也即将USB处理终端中预设的控制模块模拟为USB从设备,使Host0认为USB处理终端是一个新插入的USB从设备,从而触发Host0对USB从设备的枚举操作。其中,前述控制模块可以是一种FPGA芯片,其中预先存储有当USB-P为高电平 1自动仿真USB设备的插入操作时,则触发Host0开启对USB从设备的枚举操作的逻辑判断程序。
步骤(2),当监测到第一USB主机对USB从设备进行枚举操作时,将目标USB设备的描述符信息转发至第一USB主机,以实现模拟将目标 USB设备插入第一USB主机。
本发明实施例提供的上述方式通过将USB处理终端中的预设控制模块模拟成一个USB从设备,使Host0与USB处理终端中USB从设备进行枚举,由于USB处理终端中存储有所有真实USB设备的描述符信息,因此 Host0在与USB从设备进行枚举时,USB处理终端能够将真实USB设备的描述符信息反馈给Host0,从而间接实现了Host0与USB设备的枚举,进一步基于Host0的共享需求将USB处理终端中的预设控制模块模拟成与该共享请求所对应的USB从设备类型,也即模拟生成的USB从设备不仅限制于一种类型,能够根据所需实时变化成不同类型的USB设备,相较于现有技术中仅通过调节USB总线电平而将某一特定USB设备设定为插入主机的固定类型的USB从设备,具备较强的复用性。
在一种可选实施方式中,上述第一USB主机关联有预设的客户端;其中,该预设的客户端用于在接收到用户输入的配置信息时,根据配置信息生成配置文件,并将配置文件发送至第一USB主机;其中,配置信息包括目标USB设备的描述符信息。基于此,Host0在向USB设备发送共享请求使USB处理终端匹配出与共享请求对应的一种或多种设备描述符对应的 USB设备后,可直接将对应的USB设备视为待共享的USB设备并反馈给 Host0,也可在此基础上再次基于用户预先设置的配置文件具体筛选出 Host0所要控制的一个或多个USB设备。本发明实施例提供的上述方式通过设置配置文件,支持用户自定义Host0所要控制的USB设备,适用于可根据用户指示对USB设备进行控制的应用场景,较为灵活。
(二)USB处理终端通过网络总线或者控制总线与第一USB主机进行通信。
在此连接模式下,Host0无法进行枚举操作,同时也不受同一时间仅能控制一个设备的限制,Host0可视为网络监听设备,用于监听系统中各个节点的信号传输状态。USB处理终端通过网络总线或者控制总线可以同时将多个USB设备的相关数据信息打包上传至Host0,以便于后续Host0与不同USB设备的实时交互。具体实施时,基于Host0发送的共享请求中所携带的设备描述符的类型,前述相关数据信息的上传可参照如下方式实施:
首先,判断共享请求中携带的设备描述符的类型是否包括每个USB设备的设备描述符的类型。在一种可选的实施方式中,可直接从前述设备类型表中获取设备描述符的类型,并将其与共享请求中携带的设备描述符的类型做比对,判断共享请求中携带的设备描述符的类型是否涵盖设备类型表中所有的设备描述符类型。
当上述判断结果为是时,也即表示Host0想要USB处理终端上传其描述符信息存储区中存储的所有USB设备的描述符信息。此时USB处理终端执行如下步骤:将描述符信息存储区中的描述符信息封装为网络数据包,并将网络数据包上传至第一USB主机,以使第一USB主机从网络数据包中筛选出与配置文件匹配的第一目标描述符信息;当接收到第一USB主机发送的第一目标描述符信息时,根据第一目标描述符信息确定目标USB设备。
当上述判断结果为否时,也即表示Host0想要USB处理终端上传其描述符信息存储区中存储的部分USB设备的描述符信息。此时USB便继续执行上述步骤:从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;基于查找到的描述符信息,确定待共享的目标USB设备。
进一步,基于第一USB主机中的配置文件,在一种可选的实施方式中,上述基于查找到的描述符信息,确定待共享的目标USB设备,可参照以下方式实施:
(1)当共享请求中携带的设备描述符的类型属于预设子类时,将与查找到的描述符信息对应的USB设备,确定为目标USB设备。其中,预设子类表示对应到某一USB设备的细分小类,诸如鼠标、键盘、音响和打印机等。可根据实际情况设置,在此不进行限制。
(2)当共享请求中携带的设备描述符的类型为预设基类时,将查找到的描述符信息上传至第一USB主机,以使第一USB主机根据配置文件对查找到的描述符信息进行筛选,得到第二目标描述符信息;当接收到第一USB 主机发送的第二目标描述符信息时,根据第二目标描述符信息确定目标 USB设备。其中,预设基类表示对应到某种较前述小类范围更大的分类,诸如音频类、通信类、人机接口设备(HID)类及芯片/智能卡类等。可根据实际情况设置,在此不进行限制。
实际应用时,也可由Host0向USB处理终端发送配置文件,首先建立起Host0与目标USB设备之间的业务数据传输链路,此时目标USB设备仍然与Host1正常进行通信,若USB处理终端通过USB总线与Host0进行通信,则USB处理终端反馈给Host0无任何操作;若USB处理终端通过网络总线或者控制总线与Host进行通信,则USB处理终端不反馈给Host0任何数据。
当Host0要使用目标设备时,USB处理终端根据配置文件确定Host0 所需要共享的USB设备,也即待共享的目标设备;USB处理终端在接收到目标USB设备的业务数据时,一方面将目标USB设备的业务数据转发至 Host0,另一方面当USB处理终端通过USB总线与Host0进行通信时,反馈给Host1设备无任何操作;当USB处理终端通过网络总线或者控制总线与Host进行通信时不再将目标USB设备的业务数据发送到Host1。当Host0 使用目标USB设备完毕后,由Host0再次配置USB处理终端解除对设备的占用,进而使USB处理终端将目标USB设备的业务数据发送到Host1。
为便于理解,本发明实施例还提供了对应上述方法的实际应用场景,实际应用时,可在USB处理终端中设置用于与USB设备以及Host主机进行交互的核心模块,USB包处理模块。具体设计时将USB包处理模块封装为硬件芯片,其真实物理形态可以为一种FPGA芯片,根据实际情况USB 包处理模块可以集成在单一设备中,也可以集成在不同设备中。如下例所示:
例1:在集中式控制设备的应用场景中,诸如KVM(Keyboard Video Mouse,键盘视频鼠标)控制器场景,在KVM控制器中即可配置USB包处理模块,用于使操作端的一套HID设备可以分时、分区域控制多台PC 计算机。
例2:在分布式KVM控制系统的应用场景中,分布式KVM控制系统包括KVM信号发送终端、KVM信号接收终端、KVM信号接收设备和HID 设备。其中,KVM信号发送终端,用于连接信号源设备,将信号源设备的视频信号进行编码,并通过公网传输给下游的接收终端;KVM信号接收终端,用于通过接收网络信号,将其解码为视频格式信号,再根据预先配置的视频信号显示策略,将视频信号推送至显示设备;同时,KVM信号接收设备采集HID设备发来的控制指令,将其通过公网传输至上游的KVM信号发送终端,进一步传输至信号源设备,对信号源设备进行远程控制。
在此场景中,USB包处理模块可分别封装在KVM信号发送终端和 KVM信号接收终端。此外,USB处理终端中除了包含有USB包处理模块,还需要相应接口模块的配合,诸如:当USB处理终端通过网络总线或者控制总线连接Host0时,需要添加网络接口或者控制接口模块。
综上所述,本发明实施例提供的上述方式通过USB处理终端将多个 USB设备与多台USB主机进行连接,为后续业务阶段建立数据传输链路。具体的以前述第二USB主机通过USB处理终端与多个USB设备之间的交互为基本数据传输链路,在此基础上支持USB处理终端根据第一USB主机的共享需求,确定待共享的目标设备,并建立起第一USB主机与目标USB设备的数据传输链路。基于此,对于分布式控制系统中的多个USB主机来说,无论是做业务节点功能的USB主机,还是做网络监控功能、配置功能的USB主机,均可以共享任意类型的USB设备。任意类型USB设备可即插即用适时供两个以上的主机使用且不影响该总线挂载的其他类型设备。采用这样的方式无需频繁的插拔USB设备更换主机,即可实现第一USB 主机与第二USB主机对USB设备的使用,从而有效的提升对USB设备的控制效率。
对应上述一种USB设备共享方法,本发明实施例还提供了一种USB 设备共享装置,该装置设置于USB处理终端,其中USB处理终端连接有多个USB设备,参见图3,该装置包括:
共享请求接收模块302,用于接收第一USB主机发送的共享请求;其中,共享请求中携带有一种或多种设备描述符;
描述符信息匹配模块304,用于从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;描述符信息存储区中存储有挂载于第二 USB主机上的多个USB设备对应的描述符信息;
待共享设备确定模块306,用于基于查找到的描述符信息,确定待共享的目标USB设备。
本发明实施例提供了一种USB设备共享装置,USB处理终端在接收第一USB主机发送的共享请求时;其中,共享请求中携带有一种或多种设备描述符;首先从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息;其中,描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;然后基于查找到的描述符信息,确定待共享的目标USB设备。本发明实施例通过USB处理终端在将多个USB设备挂载至第二USB主机的同时,根据第一USB主机发送的共享请求确定第一 USB主机想要控制的USB设备,也即目标USB设备,可以实现第一USB 主机和第二USB主机对于目标USB设备的共享,避免现有技术中因频繁插拔USB设备的情况,能够有效提升对USB设备的控制效率。
在一种实施方式中,上述装置还包括:
枚举请求接收模块,用于接收第二USB主机发送的枚举请求。
描述符信息获取模块,用于将枚举请求分别转发至每个USB设备,以在每个USB设备响应枚举请求时,获取每个USB设备的描述符信息。
描述符信息保存发送模块,用于将每个USB设备的描述符信息保存至描述符信息存储区,并将每个USB设备的描述符信息发送至第二USB主机,以使每个USB设备挂载于第二USB主机上。
在一种实施方式中,当USB处理终端通过USB总线与第一USB主机进行通信时,上述装置还包括:调节模块,用于调节USB总线的电平,将 USB处理终端中预设的控制模块模拟为挂载于第一USB主机的USB从设备;描述符信息转发模块,用于当监测到第一USB主机对USB从设备进行枚举操作时,将目标USB设备的描述符信息转发至第一USB主机。
在一种实施方式中,上述第一USB主机关联有预设的客户端;其中,预设的客户端用于在接收到用户输入的配置信息时,根据配置信息生成配置文件,并将配置文件发送至第一USB主机;其中,配置信息包括目标 USB设备的描述符信息。
在一种实施方式中,当USB处理终端通过网络总线或者控制总线与第二USB主机进行通信时,上述装置还包括:
判断模块,用于判断共享请求中携带的设备描述符的类型是否包括每个USB设备的设备描述符的类型;
第一目标描述符信息确定模块,用于在判断模块的结果为是时,将描述符信息存储区中的描述符信息封装为网络数据包,并将网络数据包上传至第一USB主机,以使第一USB主机从网络数据包中筛选出与配置文件匹配的第一目标描述符信息。
目标USB设备第一确定模块,用于当接收到第一USB主机发送的第一目标描述符信息时,根据第一目标描述符信息确定目标USB设备。
执行模块,用于在判断模块的结果为否时,执行步骤:从预设的描述符信息存储区中查找与设备描述符相匹配的描述符信息。
在一种实施方式中,上述待共享设备确定模块还用于:
当共享请求中携带的设备描述符的类型属于预设子类时,将与查找到的描述符信息对应的USB设备,确定为目标USB设备。
当共享请求中携带的设备描述符的类型为预设基类时,将查找到的描述符信息上传至第一USB主机,以使第一USB主机根据配置文件对查找到的描述符信息进行筛选,得到第二目标描述符信息。
当接收到第一USB主机发送的第二目标描述符信息时,根据第二目标描述符信息确定目标USB设备。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
进一步,对应上述方法和装置,本发明实施例还提供了一种USB设备共享系统,参见图4所示的一种USB设备共享系统的结构示意图,该系统包括:USB处理终端402、第一USB主机404、第二USB主机406和多个 USB设备(图4中示意出3个USB设备,分别为人机交互设备408、USB 存储设备410和USB摄像头412);其中,USB处理终端分别与第一USB 主机、第二USB主机和多个USB设备通信连接,USB处理终端中设置有上述USB设备共享装置。
具体实施时,如图4所示,上述USB处理终端通过USB总线与第一 USB主机进行通信;USB处理终端通过USB总线或者非USB总线与第二 USB主机进行通信;其中,非USB总线为网络总线或者控制总线。上述第一USB主机个数可以为一个或者多个,图4中示意出一个第一USB主机 404。此外,图4中还示意出USB处理终端通过集线器(HUB)与多个USB 设备进行连接的一种具体实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一项USB设备共享方法的步骤。具体实现可参见方法实施例,在此不再赘述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种USB设备共享方法,其特征在于,应用于USB处理终端,所述USB处理终端连接有多个USB设备,所述方法包括:
接收第一USB主机发送的共享请求;其中,所述共享请求中携带有一种或多种设备描述符;
从预设的描述符信息存储区中查找与所述设备描述符相匹配的描述符信息;所述描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;
基于查找到的描述符信息,确定待共享的目标USB设备;
其中,所述第一USB主机关联有预设的客户端;其中,所述预设的客户端用于在接收到用户输入的配置信息时,根据所述配置信息生成配置文件,并将所述配置文件发送至所述第一USB主机;其中,所述配置信息包括所述目标USB设备的描述符信息;
其中,当所述USB处理终端通过网络总线或者控制总线与所述第二USB主机进行通信时,在从所述描述符信息存储区中查找与所述共享请求相匹配的描述符信息之前,所述方法还包括:
判断所述共享请求中携带的设备描述符的类型是否包括每个所述USB设备的设备描述符的类型;
如果是,将所述描述符信息存储区中的描述符信息封装为网络数据包,并将所述网络数据包上传至所述第一USB主机,以使所述第一USB主机从所述网络数据包中筛选出与所述配置文件匹配的第一目标描述符信息;
当接收到所述第一USB主机发送的所述第一目标描述符信息时,根据所述第一目标描述符信息确定所述目标USB设备;
如果否,执行步骤:从预设的描述符信息存储区中查找与所述设备描述符相匹配的描述符信息。
2.根据权利要求1所述的方法,其特征在于,接收第一USB主机发送的共享请求的步骤之前,还包括:
接收所述第二USB主机发送的枚举请求;
将所述枚举请求分别转发至每个所述USB设备,以在每个所述USB设备响应所述枚举请求时,获取每个所述USB设备的描述符信息;
将每个所述USB设备的描述符信息保存至所述描述符信息存储区,并将每个所述USB设备的描述符信息发送至所述第二USB主机,以使每个所述USB设备挂载于所述第二USB主机上。
3.根据权利要求1所述的方法,其特征在于,当所述USB处理终端通过USB总线与所述第一USB主机进行通信时,所述方法还包括:
调节所述USB总线的电平,将所述USB处理终端中预设的控制模块模拟为挂载于所述第一USB主机的USB从设备;
当监测到所述第一USB主机对所述USB从设备进行枚举操作时,将所述目标USB设备的描述符信息转发至所述第一USB主机。
4.根据权利要求1所述的方法,其特征在于,所述基于查找到的描述符信息,确定待共享的目标USB设备的步骤,包括:
当所述共享请求中携带的设备描述符的类型属于预设子类时,将与查找到的描述符信息对应的USB设备,确定为所述目标USB设备;
当所述共享请求中携带的设备描述符的类型为预设基类时,将查找到的描述符信息上传至所述第一USB主机,以使所述第一USB主机根据所述配置文件对所述查找到的描述符信息进行筛选,得到第二目标描述符信息;
当接收到所述第一USB主机发送的所述第二目标描述符信息时,根据所述第二目标描述符信息确定所述目标USB设备。
5.一种USB设备共享装置,其特征在于,设置于USB处理终端,所述USB处理终端连接有多个USB设备,所述装置包括:
共享请求接收模块,用于接收第一USB主机发送的共享请求;其中,所述共享请求中携带有一种或多种设备描述符;
描述符信息匹配模块,用于从预设的描述符信息存储区中查找与所述设备描述符相匹配的描述符信息;所述描述符信息存储区中存储有挂载于第二USB主机上的多个USB设备对应的描述符信息;
待共享设备确定模块,用于基于查找到的描述符信息,确定待共享的目标USB设备;
其中,所述第一USB主机关联有预设的客户端;其中,所述预设的客户端用于在接收到用户输入的配置信息时,根据所述配置信息生成配置文件,并将所述配置文件发送至所述第一USB主机;其中,所述配置信息包括所述目标USB设备的描述符信息;
其中,当所述USB处理终端通过网络总线或者控制总线与所述第二USB主机进行通信时,在所述描述符信息匹配模块之前,所述装置还包括:
类型判断模块,用于判断所述共享请求中携带的设备描述符的类型是否包括每个所述USB设备的设备描述符的类型;
信息封装模块,用于如果是,将所述描述符信息存储区中的描述符信息封装为网络数据包,并将所述网络数据包上传至所述第一USB主机,以使所述第一USB主机从所述网络数据包中筛选出与所述配置文件匹配的第一目标描述符信息;
设备确定模块,用于当接收到所述第一USB主机发送的所述第一目标描述符信息时,根据所述第一目标描述符信息确定所述目标USB设备;
信息查找模块,用于如果否,执行步骤:从预设的描述符信息存储区中查找与所述设备描述符相匹配的描述符信息。
6.一种USB设备共享系统,其特征在于,包括:USB处理终端、第一USB主机、第二USB主机和多个USB设备;其中,所述USB处理终端分别与所述第一USB主机、所述第二USB主机和多个所述USB设备通信连接;
所述USB处理终端中设置有如上述权利要求5所述的USB设备共享装置。
7.根据权利要求6所述的系统,其特征在于,所述USB处理终端通过USB总线与所述第一USB主机进行通信;所述USB处理终端通过USB总线或者非USB总线与所述第二USB主机进行通信;其中,所述非USB总线为网络总线或者控制总线。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至4任一项所述的方法的步骤。
CN201910192806.8A 2019-03-13 2019-03-13 Usb设备共享方法、装置及系统 Active CN110069288B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910192806.8A CN110069288B (zh) 2019-03-13 2019-03-13 Usb设备共享方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910192806.8A CN110069288B (zh) 2019-03-13 2019-03-13 Usb设备共享方法、装置及系统

Publications (2)

Publication Number Publication Date
CN110069288A CN110069288A (zh) 2019-07-30
CN110069288B true CN110069288B (zh) 2022-03-04

Family

ID=67365263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910192806.8A Active CN110069288B (zh) 2019-03-13 2019-03-13 Usb设备共享方法、装置及系统

Country Status (1)

Country Link
CN (1) CN110069288B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339014A (zh) * 2020-03-02 2020-06-26 芯启源(上海)半导体科技有限公司 一种usb设备共享装置
CN112672091B (zh) * 2020-12-18 2023-05-09 厦门亿联网络技术股份有限公司 基于网络的视频通信方法、系统、存储介质及uvc设备
CN112612423A (zh) * 2020-12-29 2021-04-06 芯启源电子科技有限公司 一种usb共享存储装置
CN115442083B (zh) * 2022-08-08 2023-08-25 黄建邦 设备接入方法、数据交换方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638397A (zh) * 2012-03-21 2012-08-15 华为终端有限公司 一种usb设备通信传输方法、设备及系统
CN106452838A (zh) * 2016-08-31 2017-02-22 广州视睿电子科技有限公司 Usb设备模拟装置及方法
CN107506324A (zh) * 2017-07-26 2017-12-22 西安万像电子科技有限公司 转接设备、远程通信系统、数据传输方法及装置
CN107590090A (zh) * 2016-07-06 2018-01-16 哈尔滨卓晋科技有限公司 一种计算机外挂式虚拟仪器usb总线接口

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523243B2 (en) * 2006-04-14 2009-04-21 Standard Microsystems Corporation Multi-host USB device controller
US8661164B2 (en) * 2010-08-24 2014-02-25 Mediatek Inc. Method of USB device enumeration including detecting the operating system type of the USB host
WO2012140668A2 (en) * 2011-04-11 2012-10-18 Ineda Systems Pvt. Ltd Usb virtualization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638397A (zh) * 2012-03-21 2012-08-15 华为终端有限公司 一种usb设备通信传输方法、设备及系统
CN107590090A (zh) * 2016-07-06 2018-01-16 哈尔滨卓晋科技有限公司 一种计算机外挂式虚拟仪器usb总线接口
CN106452838A (zh) * 2016-08-31 2017-02-22 广州视睿电子科技有限公司 Usb设备模拟装置及方法
CN107506324A (zh) * 2017-07-26 2017-12-22 西安万像电子科技有限公司 转接设备、远程通信系统、数据传输方法及装置

Also Published As

Publication number Publication date
CN110069288A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110069288B (zh) Usb设备共享方法、装置及系统
US10997092B2 (en) Enabling out-of-band hardware management via an in-band communications channel
US9804859B2 (en) Re-enumeration of USB 3.0 compatible devices
US8032353B1 (en) Method and apparatus for providing peripheral connection management in a remote computing environment
WO2015074536A1 (zh) 智能电视及其升级方法和升级装置
JP5129770B2 (ja) ネットワーク装置
JP5307276B2 (ja) Usb装置の遠隔制御方法及びこれを実行するシステム
US10042800B2 (en) Active USB device and switching method for operating mode thereof
WO2018090720A1 (zh) 实现即插即用传屏的方法及装置
WO2019042421A1 (zh) Usb数据传输的速率调整方法、装置、设备和存储介质
TWI445374B (zh) 遠端管理系統及遠端管理方法
WO2012094853A1 (zh) 终端软件的安装方法、装置和系统
JP6665190B2 (ja) ネットワーク共有実施方法及び装置
CN114827967B (zh) 软件更新方法、蓝牙设备及存储介质
KR100775210B1 (ko) 범용 시리얼 버스 통신 장치 프로그램 업데이트 방법
CN108965368B (zh) 具有网络功能的数据管理电路及基于网络的数据管理方法
CN116915602A (zh) 软件升级方法及系统、电子设备、存储介质
WO2022111277A1 (zh) 热插拔设备信息传输方法、计算机设备和可读介质
CN114416656A (zh) 一种远程操作文件夹的方法、设备及存储介质
CN112084099B (zh) 基于主机获取报警状态值的方法、装置、设备及存储介质
WO2014173249A1 (zh) 终端及其升级方法
CN108848182B (zh) 一种bmc固件的更新方法、相关设备及系统
CN112771497A (zh) 设备升级的方法、装置及存储介质
EP3413205A1 (en) Re-enumeration of usb 3.0 compatible devices
WO2017004908A1 (zh) 智能平台管理接口设备的通讯方法及装置、通讯设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant