CN102281264B - 实现usb主机远程访问的虚拟usb系统和设备及方法 - Google Patents

实现usb主机远程访问的虚拟usb系统和设备及方法 Download PDF

Info

Publication number
CN102281264B
CN102281264B CN201010208342.4A CN201010208342A CN102281264B CN 102281264 B CN102281264 B CN 102281264B CN 201010208342 A CN201010208342 A CN 201010208342A CN 102281264 B CN102281264 B CN 102281264B
Authority
CN
China
Prior art keywords
usb
far
terminal
equipment
host
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.)
Expired - Fee Related
Application number
CN201010208342.4A
Other languages
English (en)
Other versions
CN102281264A (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.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201010208342.4A priority Critical patent/CN102281264B/zh
Publication of CN102281264A publication Critical patent/CN102281264A/zh
Application granted granted Critical
Publication of CN102281264B publication Critical patent/CN102281264B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种用于实现USB主机远程访问的虚拟USB系统和设备及方法。本发明分别在远端侧和近端侧设置可通过网络交互的虚拟USB设备,并由远端虚拟USB设备模拟终端USB设备被远程USB主机访问,并由远端虚拟USB设备通过IP网络和终端虚拟USB设备将该访问镜像为终端USB主机对终端USB设备的访问,从而即可实现远端USB主机对终端USB设备跨IP网络的远程访问。而且,由于远端USB主机对终端USB设备的远程访问不需要远端USB主机与终端USB主机之间的直接交互,因而也就不存在操作系统必须一致、以及USB主机设备类驱动必须完整的限制,从而能够提高USB主机远程访问的通用性。

Description

实现USB主机远程访问的虚拟USB系统和设备及方法
技术领域
本发明涉及通用串行总线(USB)技术,特别涉及一种用于实现USB主机远程访问的虚拟USB系统、一种用于实现USB主机远程访问的终端虚拟USB设备、一种实现USB主机远程访问的远端虚拟USB设备、以及一种实现USB主机远程访问的方法。
背景技术
按照USB规范定义,USB总线仅支持点到点的互联、且传输距离有限。但随着USB技术的发展,现有技术中已经能够实现USB主机通过网络访问USB设备。
如图1所示,IP网络远端侧的PC机作为远端USB主机、其可与IP网络(本文所述的“IP网络”是指以太网、ATM、WLAN、3G等任一中支持IP协议的网络)交互,IP网络终端侧的PC机作为终端USB主机、其可与IP网络交互,终端USB主机还通过USB线缆直连有终端USB设备。基于如图1所示的架构,远端USB主机能够通过IP网络与终端USB主机交互、并通过终端USB主机访问终端USB设备(如图1中的虚线双箭头曲线所示)。
参见图2并结合图1,远端USB主机和终端USB主机均采用标准的USB主机软硬件架构,即USB主机应用程序、USB主机设备类驱动、USB主机协议栈驱动、USB主机控制器驱动、USB主机控制器、以及USB主机接口,此外,远端USB主机和终端USB主机的USB主机应用程序与USB主机设备类驱动之间,均增设有支持网络传输的软件,以使远端USB主机对终端USB设备的读写请求和数据可通过支持网络传输的软件,在远端USB主机的USB主机应用程序与终端USB主机的USB主机设备类驱动之间以IP报文的方式传递,即,远端USB主机通过调用终端USB主机的USB主机设备类驱动、USB主机协议栈驱动、USB主机控制器驱动、USB主机控制器、以及USB主机接口(如图2中的虚线双箭头折线所示),从而相当于将终端USB主机连接管理的终端USB设备虚拟到远端USB主机上、并使远端USB主机的USB主机应用程序认为该终端USB设备直连于远端USB主机,进而实现远端USB主机对终端USB设备的远程访问。
上述方案虽然能够实现远端USB主机对终端USB设备的远程访问,但该方案要求远端USB主机和终端USB主机必须运行相同的操作系统(例如双方都是Windows操作系统)、以确保远端USB主机和终端USB主机的USB设备驱动软件架构和设备管理方式均相同,还要求远端USB主机和终端USB主机必须运行完整的USB主机设备类驱动(即除了支持基本功能的设备类驱动之外还需要包含支持其它所有功能的设备类驱动)、以确保终端USB设备既能够被终端USB主机访问也能被远端USB主机访问。因此,如图1和图2所示的方案仅适用于能够装在操作系统、以及完整USB主机设备类驱动的PC机之间。
而对于如图3所示的终端USB设备与终端USB主机(非PC机)集成于同一嵌入设备的情况,由于嵌入式操作系统种类繁多、其并不像PC机领域只有有限的几种操作系统,因而终端USB主机必须与远端USB主机采用相同的操作系统的这种要求,对于嵌入式的终端USB主机来说属于不可接受的限制;而且,嵌入式的USB主机中通常仅能够支持一款USB设备的基本功能、而无法支持其它功能,因而终端USB主机必须运行完整的USB主机设备类驱动的这种要求,对于嵌入式的终端USB主机来说也属于难以接受的限制;从而,就使得远端USB主机无法访问终端USB设备。
可见,现有USB主机远程访问仅适用于能够装在操作系统、以及完整USB主机设备类驱动的PC机之间,从而使得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设备的IP地址;
终端信息获取模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于获取与该终端USB主机直连的终端USB设备包含有USB设备地址的设备信息,并依据远端信息存储模块所存储的IP地址向对应的远端虚拟USB设备发送所获取的设备信息;
终端解析转发模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于通过对USB端点号和USB设备地址的解析将来自远端虚拟USB设备的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至远端虚拟USB设备。
远端虚拟USB设备包括:
终端信息存储模块,用于存储终端虚拟USB设备的IP地址、以及终端虚拟USB设备所发送的终端USB设备包含有USB设备地址的设备信息;
虚拟设备实现模块,其可调用网络接入设备的USB设备协议栈和网络协议栈,用于在远端USB主机访问终端USB设备时,将终端信息存储模块中的设备信息提供给远端USB主机;
远端解析转发模块,其可调用网络接入设备的USB设备协议栈和网络协议栈,用于接收并区分终端虚拟USB设备通过网络所发送的终端USB设备的设备信息和读数据;将该设备信息和终端虚拟USB设备的IP地址直接存放至终端信息存储模块;通过添加IP地址将远端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主机分别承载有一个IP地址不同的终端虚拟USB设备。
终端USB主机直连多个终端USB设备。
本发明提供的一种用于实现USB主机远程访问的终端虚拟USB设备,该终端虚拟USB设备设置于网络近端侧、并承载于具有网络接入功能并可与终端USB设备直连的终端USB主机,并且,网络远端侧设置有远端虚拟USB设备,该远端虚拟USB设备模拟终端USB设备被远端USB主机访问、并通过IP网络与该终端虚拟USB设备将远端USB主机对远端虚拟USB设备的访问镜像为终端USB主机对终端USB设备的访问;该终端虚拟USB设备包括:
终端信息获取模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于获取终端USB设备的设备信息、并通过网络提供给网络远端侧;
终端解析转发模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于在网络远端侧与终端USB设备之间,传递远端USB主机依据终端USB设备的设备信息而针对该终端USB设备的读写操作所涉及的读写请求和数据。
该终端虚拟USB设备进一步包括远端信息存储模块,其存储有预先设置的网络远端侧的IP地址;
且,终端信息获取模块获取的终端USB设备中进一步包含有USB设备地址的设备信息,以及,终端信息获取模块进一步依据远端信息存储模块所存储的IP地址向网络远端侧发送所获取的设备信息;
终端解析转发模块进一步通过对USB端点号和USB设备地址的解析将来自网络远端侧的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并进一步通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至网络远端侧。
本发明提供的一种用于实现USB主机远程访问的远端虚拟USB设备,该远端虚拟USB设备设置于网络远端侧、并承载于具有USB功能并可与远端USB主机直连的网络接入设备,并且,在网络近端侧设置有终端虚拟USB设备,以及,该远端虚拟USB设备模拟终端USB设备被远端USB主机访问、并通过IP网络与该终端虚拟USB设备将远端USB主机对远端虚拟USB设备的访问镜像为终端USB主机对终端USB设备的访问;该远端虚拟USB设备包括:
虚拟设备实现模块,其可调用网络接入设备的USB设备协议栈,用于在远端USB主机访问终端USB设备时,将来自网络终端侧的终端USB设备的设备信息提供给远端USB主机;
远端解析转发模块,其可调用网络接入设备的USB设备协议栈和网络协议栈,用于接收所述的来自网络终端侧的终端USB设备的设备信息,并在远端USB主机与网络终端侧之间,传递远端主机依据终端USB设备的设备信息而针对该终端USB设备的该读写操作所涉及的读写请求和数据。
该远端虚拟USB设备进一步包括:终端信息存储模块,用于存储来自网络终端侧的终端USB设备包含有USB设备地址的设备信息、以及网络终端侧的IP地址;
远端解析转发模块进一步区分网络终端侧所发送的终端USB设备的设备信息和读数据,将该设备信息和网络终端侧的IP地址直接存放至终端信息存储模块,并通过对USB端点号和USB设备地址的解析将该读数据发送至远端主机;以及,进一步通过添加IP地址将远端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设备,并进一步通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至远端虚拟USB设备;
远端虚拟USB设备进一步接收并区分终端虚拟USB设备通过网络所发送的终端USB设备的设备信息和读数据,并将该设备信息和终端虚拟USB设备的IP地址直接存放、以及通过对USB端点号和USB设备地址的解析将该读数据发送至远端USB主机;还通过添加IP地址将来自远端USB主机的包含有USB端点号和USB设备地址的读请求、或包含有USB端点号和USB设备地址的写请求和写数据传递至终端虚拟USB设备。
终端USB主机为多个、每个终端USB主机分别承载有一个IP地址不同的终端虚拟USB设备。
终端USB主机直连多个终端USB设备,且,该方法中,远端虚拟USB设备协同终端虚拟USB设备进一步依据IP地址和设备信息中所包含的终端USB设备的USB设备地址来区分各终端USB设备的读写请求和数据。
由上述技术方案可见,本发明分别在远端侧和近端侧设置可通过网络交互的虚拟USB设备,并由远端虚拟USB设备模拟终端USB设备被远程USB主机访问、以使远端USB主机认为该终端USB设备直连于远端USB主机,然后再由远端虚拟USB设备通过IP网络和终端虚拟USB设备,将远端USB主机对远端虚拟USB设备的访问镜像为终端USB主机对终端USB设备的访问,从而通过镜像的终端USB主机对终端USB设备的访问、即可实现远端USB主机对终端USB设备跨IP网络的远程访问。而且,由于远端USB主机对终端USB设备的远程访问,是通过虚拟USB设备通过IP网络的镜像来实现的、而并不需要远端USB主机与终端USB主机之间的直接交互,因而也就不存在操作系统必须一致、以及USB主机设备类驱动必须完整的限制,从而能够提高USB主机远程访问的通用性。
附图说明
图1为现有通过PC机之间实现USB主机远程访问的系统架构示意图;
图2为如图1所示系统架构中远端USB主机和终端USB主机的软硬件架构示意图;
图3为现有PC机与嵌入式设备之间的系统架构示意图;
图4为本发明实施例中实现USB主机远程访问的系统架构示意图;
图5a为本发明实施例中终端虚拟USB设备的连接方式示意图;
图5b为本发明实施例中远端虚拟USB设备的连接方式示意图;
图6为本发明实施例中实现USB主机远程访问的扩展架构示意图;
图7a为本发明实施例中终端虚拟USB设备的逻辑结构示意图;
图7b为本发明实施例中远端虚拟USB设备的逻辑结构示意图;
图8为本发明实施例中USB主机远程访问方法的示例性流程图;
图9为本发明实施例中USB主机远程访问方法含有切换过程的设备识别过程的流程图;
图10a为本发明实施例中USB主机远程访问方法的写访问过程的流程图;
图10b为本发明实施例中USB主机远程访问方法的读访问过程的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本实施例分别在远端侧和近端侧设置可通过网络交互的虚拟USB设备,即远端虚拟USB设备和终端虚拟USB设备均可实现USB设备功能和网络接入功能,并由远端虚拟USB设备模拟终端USB设备被远端USB主机访问、以使远端USB主机认为该终端USB设备直连于远端USB主机,然后再由远端虚拟USB设备通过IP网络和终端虚拟USB设备,将远端USB主机对远端虚拟USB设备的访问镜像为终端USB主机对终端USB设备的访问,从而通过镜像的终端USB主机对终端USB设备的访问、即可实现远端USB主机对终端USB设备跨IP网络的远程访问。而且,由于远端USB主机对终端USB设备的远程访问,是通过虚拟USB设备通过IP网络的镜像来实现的、而不需要远端USB主机与终端USB主机之间的直接交互,因而也就不存在操作系统必须一致、以及USB主机设备类驱动必须完整的限制,从而能够提高USB主机远程访问的通用性。
下面,先对本实施例中可实现USB主机远程访问、并包含有远端虚拟USB设备和终端虚拟USB设备的虚拟USB系统进行详细说明。
参见图4并结合图5a和图5b:
虚拟USB系统中的终端虚拟USB设备,其承载于具有网络接入功能并与终端USB设备直连的终端USB主机(可以是嵌入式USB主机、也可以是PC机,且其完全符合USB规范并可以使用任意操作系统),并可调用终端USB主机的USB主机协议栈(下文中将“USB主机协议栈驱动”均简称为“USB主机协议栈”)实现与终端USB设备的交互、以及可调用终端USB主机的网络协议栈(下文中将“网络协议栈驱动”均简称为“网络协议栈”)实现网络交互,从而利用终端USB主机的网络协议栈;
远端虚拟USB设备,其承载于具有USB功能并与远端USB主机(可以是PC机、服务器、或其它嵌入式USB主机,且其完全符合USB规范并可以使用Windows、Linux或Vxworks等任意操作系统)直连的网络接入设备,并可调用网络接入设备的USB设备协议栈(下文中将“USB设备协议栈驱动”均简称为“USB设备协议栈”)实现与远端USB主机的交互、以及可调用网络接入设备的网络协议栈实现网络交互;
其中,终端虚拟USB设备用于获取终端USB设备的设备信息(例如USB设备标准描述符信息)、并通过IP网络提供给远端虚拟USB设备;而远端虚拟USB设备则用于在远端USB主机需要访问(或称之为准备访问)终端USB设备时,将通过IP网络接收自终端虚拟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设备已拔出,并在间隔时间T(至少500ms以上)后再恢复USB数据线,使远端USB主机重新将虚拟USB设备识别为网络接入设备或终端USB设备。
假设网络接入设备具有U盘功能、终端USB设备具有3G模块功能,则当远端USB主机需要使用U盘功能时,远端虚拟USB设备可以通过在线热插拔而被远端USB主机重新识别为具有U盘功能的网络接入设备,从而使网络接入设备的U盘功能可通过直连的USB线缆而被远端USB主机所使用;而当远端USB主机需要使用3G模块功能时,远端虚拟USB设备只需再次触发一次在线热插拔,即可被远端USB主机重新识别为具有3G模块功能的终端USB设备,从而使终端USB设备的3G模块功能可利用前述通过IP网络镜像的方式而被远端USB主机所使用。
较佳地,为了实现对远端USB主机所访问设备的灵活切换,远端虚拟USB设备可维护一USB设备列表、并可提供给远端USB主机,以供远端USB主机选择所需要访问的USB设备,该USB设备列表中的可选USB设备包含该远端虚拟USB设备所在的网络接入设备、以及远端虚拟USB设备通过网络接收到的设备信息所对应的终端USB设备。
上述图4中仅示出了一个终端USB主机、以及与该终端USB主机直连的一个终端USB设备,但在实际应用中,如图6所示,终端USB主机可以为多个、且每个终端USB主机分别承载有一个IP地址不同的终端虚拟USB设备,和/或,一个终端USB主机可以支持多USB主机控制器,对于一个终端USB主机支持多USB主机控制器的情况,则需要增加控制器标识予以区分;进一步地,一个终端USB主机可以直连多个终端USB设备,此时,终端虚拟USB设备和远端虚拟USB设备可以利用IP地址和USB设备地址予以区分。
下面,再对终端虚拟USB设备和远端虚拟USB设备进行进一步说明。
如图7a所示,终端虚拟USB设备可以包括:远端信息存储模块、终端信息获取模块、以及终端解析转发模块。
远端信息存储模块,其存储有预先设置的远端虚拟USB设备的IP地址(其通常为远端虚拟USB设备所在的网络接入设备的IP地址)、或称之为可与终端虚拟USB设备交互的远端侧IP地址。
终端信息获取模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于获取与该终端USB主机直连的终端USB设备包含有USB设备地址的设备信息,并依据远端信息存储模块所存储的IP地址向对应的远端虚拟USB设备发送所获取的包含有USB设备地址的设备信息;
具体说,终端信息获取模块从终端USB主机的USB主机协议栈获取到终端USB主机直连的终端USB设备的设备信息、以及该设备信息中所包含的USB设备地址(USB设备地址可以一并存放在远端信息存储模块中,也可以再额外设置一个用于存放终端侧USB设备地址的终端地址存储模块,还可以采用其他方式存储),然后从远端信息存储模块获取远端虚拟USB设备IP地址,再调用终端USB主机的网络协议栈,将获取的设备信息、以及该设备信息中所包含的USB设备地址发送给指定该IP地址对应的远端虚拟USB设备。
终端解析转发模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于通过对USB端点号的解析以及IP地址和USB设备地址的识别,在网络远端侧的远端虚拟USB设备与该终端USB主机直连的终端USB设备之间,传递远端主机依据该终端USB设备的设备信息而对该终端USB设备的读写请求和数据;即,通过对USB端点号和USB设备地址的解析将来自远端虚拟USB设备的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至远端虚拟USB设备;
具体说,对于写操作,终端解析转发模块调用终端USB主机的网络协议栈,以通过网络接收来自远端虚拟USB设备的写请求和写数据,然后解析得到对应的USB端点号,再按照之前存放的USB设备地址和解析得到的USB端点号,调用终端USB主机的USB主机协议栈将写请求和写数据下发给对应的终端USB设备;对于读操作,终端解析转发模块调用终端USB主机的网络协议栈,以通过网络接收来自远端虚拟USB设备的读请求,然后解析得到对应的USB端点号,再按照之前存放的USB设备地址和解析得到的USB端点号,调用终端USB主机的USB主机协议栈将读请求下发给对应的终端USB设备、等待终端USB设备返回读数据,在通过终端USB主机的USB主机协议栈接收到终端USB设备返回的读数据后,终端解析转发模块从远端信息存储模块获取远端虚拟USB设备IP地址,再调用终端USB主机的网络协议栈,将终端USB设备返回的读数据发送给指定该IP地址对应的远端虚拟USB设备。
如图7b所示,远端虚拟USB设备包括:远端解析转发模块、终端信息存储模块、虚拟设备实现模块、以及设备选择切换模块。
终端信息存储模块,用于存储终端虚拟USB设备所发送的终端USB设备包含有USB设备地址的设备信息、即来自网络终端侧的终端USB设备包含有USB设备地址的设备信息,以及,存储终端虚拟USB设备的IP地址(其通常为终端虚拟USB设备所在的终端USB主机的IP地址)、或称之为网络终端侧的IP地址;其中,终端USB设备信息存储模块所存储的IP地址、以及设备信息,可提供给虚拟设备实现模块和设备选择切换模块。
虚拟设备实现模块,其可调用网络接入设备的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设备的IP地址直接存放至终端信息存储模块、以及通过对USB端点号和USB设备地址的解析将该读数据发送至远端主机;在远端USB主机将远端虚拟USB设备识别为该设备信息所对应的终端USB设备之后,通过对USB端点号的解析以及IP地址和USB设备地址的识别,在远端USB主机与终端虚拟USB设备之间传递该读写操作所涉及的读写请求和数据,即,通过添加IP地址将远端USB主机针对终端USB设备的包含有USB端点号和USB设备地址的读请求、或包含有USB端点号和USB设备地址的写请求和写数据传递至终端虚拟USB设备、以及通过对USB端点号和USB设备地址的解析将终端虚拟USB设备返回的终端USB设备的读数据发送至远端主机;从而,远端解析转发模块能够在远端USB主机与网络终端侧之间,传递远端主机依据终端USB设备的设备信息而针对该终端USB设备的该读写操作所涉及的读写请求和数据;
具体说,远端解析转发模块能够区分解析出承载于终端USB主机的终端虚拟USB设备所发送的包含有USB设备地址的设备信息和数据,并将包含有USB设备地址的设备信息联同终端虚拟USB设备的IP地址报送至终端信息存储模块存储;在参与实现远端USB主机和终端USB设备之间数据传输时,先依据远端USB主机指定的USB端点号,从终端信息存储模块中获取对应终端USB设备所直连的终端USB主机中承载的终端虚拟USB设备的IP地址、以及对应终端USB设备的USB设备地址,然后按照获取的IP地址和USB设备地址,将来自远端USB主机的包含USB端点号的读请求、或写请求和写数据通过网络发送至该终端虚拟USB设备,以使该终端虚拟USB设备可依据USB端点号和USB设备地址、并利用终端USB主机对相应的终端USB设备进行读写操作,与此同时,还可向远端USB主机回复响应信号NAK、通知远端USB主机读写操作已开始但尚未完成;此外,对于读操作,终端虚拟USB设备还会返回来自相应终端USB设备的读数据、并可选地返回操作完成响应,此时,远端解析转发模块按照解析出的USB端点号,将读数据和操作完成响应返回给远端USB主机。
以上,是对本实施例中包含有虚拟USB系统及其所在的USB主机远程访问系统的详细说明。上述说明中所采用的模块划分方式并不唯一,实际应用中可以依照功能任意划分。
下面,再对本实施例中USB主机远程访问方法进行详细说明。
图8为本发明实施例中USB主机远程访问方法的示例性流程图。如图8所示,在设置有前述的远端虚拟USB设备和终端虚拟USB设备之后,本实施例中的USB主机远程访问方法包括如下步骤:
步骤801,终端虚拟USB设备获取终端USB设备的设备信息、并通过网络提供给远端虚拟USB设备;
步骤802,远端虚拟USB设备在远端USB主机需要访问终端USB设备时,将通过网络接收自终端虚拟USB设备的终端USB设备的设备信息提供给远端USB主机,然后执行步骤803;
步骤803,远端虚拟USB设备模拟终端USB设备接受远端USB主机的读写操作、并协同终端虚拟USB设备在远端USB主机与终端USB之间传递该读写操作所涉及的读写请求和数据。
实际应用中,终端虚拟USB设备可以进一步通过对USB端点号和USB设备地址的解析将来自远端虚拟USB设备的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并进一步通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至远端虚拟USB设备;而远端虚拟USB设备则可以进一步接收并区分终端虚拟USB设备通过网络所发送的终端USB设备的设备信息和读数据,并将该设备信息和终端虚拟USB设备的IP地址直接存放、以及通过对USB端点号和USB设备地址的解析将该读数据发送至远端USB主机;还通过添加IP地址将来自远端USB主机的包含有USB端点号和USB设备地址的读请求、或包含有USB端点号和USB设备地址的写请求和写数据传递至终端虚拟USB设备。
至此,本流程结束。
此外,在上述流程步骤802之前、或步骤803之后,远端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设备。
图9为本发明实施例中USB主机远程访问方法含有切换过程的设备识别过程的流程图。如图9所示,该识别过程的一较佳流程可以包括如下步骤:
步骤901,终端虚拟USB设备将终端USB主机获取到的终端USB设备的设备信息,通过网络传输至远端虚拟USB设备。
步骤902,远端虚拟USB设备存储接收到的终端USB设备的设备信息、以及终端虚拟USB设备的IP地址,并将该终端USB设备作为可选设备提供给远端USB主机。
步骤903,在远端虚拟USB设备选择终端USB设备后,远端虚拟USB设备触发在线热插拔、并将所选终端USB设备的设备信息上报给远端虚拟USB主机,以使远端USB主机将远端虚拟USB设备识别为所选终端USB设备。
至此,将远端虚拟USB设备识别为终端USB设备的流程结束。
在结束上述流程后,远端虚拟USB设备即可模拟终端USB设备接受远端USB主机的读写操作、并协同终端虚拟USB设备在远端USB主机与终端USB之间传递该读写操作所涉及的读写请求和数据。
实际应用中,终端USB主机可以为多个、且每个终端USB主机分别承载有一个IP地址不同的终端虚拟USB设备,和/或,一个终端USB主机可以支持多USB主机控制器,对于一个终端USB主机支持多USB主机控制器的情况,则需要增加控制器标识予以区分;
进一步地,一个终端USB主机可以直连多个终端USB设备,此时,远端虚拟USB设备协同终端虚拟USB设备进一步依据IP地址和设备信息中所包含的终端USB设备的USB设备地址来区分各终端USB设备的读写请求和数据。
图10a为本发明实施例中USB主机远程访问方法的写访问过程的流程图。如图10a所示,该写访问过程的一较佳流程包括如下步骤:
步骤1001a,远端虚拟USB设备接收远端USB主机的写请求和写数据,并向远端USB主机返回响应信号NAK、通知远端USB主机写操作已开始但尚未完成。
步骤1002a,远端虚拟USB设备依据存储的终端虚拟USB设备的IP地址,将接收自远端USB主机的包含USB端点号的写请求和写数据通过网络发送至该终端虚拟USB设备;
步骤1003a,终端虚拟USB设备通过网络接收到写请求和写数据,并依据对USB端点号、以及USB设备地址的解析,通过终端USB主机将写请求和写数据下发至终端USB设备。
至此,一次完整的写操作流程结束。
图10b为本发明实施例中USB主机远程访问方法的读访问过程的流程图。如图10b所示,该读访问过程的一较佳流程包括如下步骤:
步骤1001b,远端虚拟USB设备接收远端USB主机的读请求,并向远端USB主机返回响应信号NAK、通知远端USB主机读操作已开始但尚未完成。
步骤1002b,远端虚拟USB设备依据存储的终端虚拟USB设备的IP地址,将接收自远端USB主机的包含USB端点号的读请求通过网络发送至该终端虚拟USB设备;
步骤1003b,终端虚拟USB设备通过网络接收到读请求,并依据对USB端点号、以及USB设备地址的解析,通过终端USB主机将读请求下发至终端USB设备。
步骤1004b,终端虚拟USB设备接收到终端USB设备的读数据、并依据存储的远端虚拟USB设备的IP地址通过网络发送至远端虚拟USB设备,再由远端虚拟USB设备通过对USB端点号和USB设备地址的解析返回给远端USB主机。
本步骤中的操作完成相应为可选的。
至此,一次完整的读操作流程结束。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种用于实现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设备之间传递该读写操作所涉及的读写请求和数据。
2.如权利要求1所述的系统,其特征在于,远端虚拟USB设备进一步向远端USB主机提供自身维护的USB设备列表、以供远端USB主机选择所要访问的USB设备,该USB设备列表中的可选USB设备包含该远端虚拟USB设备所在的网络接入设备、以及远端虚拟USB设备通过网络接收到的设备信息所对应的终端USB设备;
且,远端虚拟USB设备进一步在远端USB主机选择USB设备列表中的网络接入设备时,触发该远端虚拟USB设备所在的网络接入设备向远端USB主机提供该网络接入设备的设备信息、以使该远端虚拟USB设备所在的网络接入设备可作为独立的远端USB设备接受远端USB主机的读写操作;以及,进一步在远端USB主机变更其访问的USB设备时,触发在线热插拔。
3.如权利要求1所述的系统,其特征在于,终端虚拟USB设备包括:
远端信息存储模块,其存储有预先设置的远端虚拟USB设备的IP地址;
终端信息获取模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于获取与该终端USB主机直连的终端USB设备包含有USB设备地址的设备信息,并依据远端信息存储模块所存储的IP地址向对应的远端虚拟USB设备发送所获取的设备信息;
终端解析转发模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于通过对USB端点号和USB设备地址的解析将来自远端虚拟USB设备的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至远端虚拟USB设备。
4.如权利要求3所述的系统,其特征在于,远端虚拟USB设备包括:
终端信息存储模块,用于存储终端虚拟USB设备的IP地址、以及终端虚拟USB设备所发送的终端USB设备包含有USB设备地址的设备信息;
虚拟设备实现模块,其可调用网络接入设备的USB设备协议栈,用于在远端USB主机访问终端USB设备时,将终端信息存储模块中的设备信息提供给远端USB主机;
远端解析转发模块,其可调用网络接入设备的USB设备协议栈和网络协议栈,用于接收并区分终端虚拟USB设备通过网络所发送的终端USB设备的设备信息和读数据;将该设备信息和终端虚拟USB设备的IP地址直接存放至终端信息存储模块;通过添加IP地址将远端USB主机针对终端USB设备的包含有USB端点号和USB设备地址的读请求、或包含有USB端点号和USB设备地址的写请求和写数据传递至终端虚拟USB设备,以及,通过对USB端点号和USB设备地址的解析将该读数据发送至远端主机。
5.如权利要求4所述的系统,其特征在于,终端信息存储模块中进一步维护有USB设备列表,该USB设备列表中的可选USB设备包含所述终端USB设备、以及该远端虚拟USB设备所在的网络接入设备;
且,远端虚拟USB设备进一步包括:
设备选择切换模块,其可调用网络接入设备的USB设备协议栈,用于向远端USB主机提供所述USB设备列表、以供远端USB主机选择所要访问的USB设备;在远端USB主机访问终端USB设备之前,触发网络接入设备的USB设备协议栈向与远端USB主机提供该网络接入设备的设备信息、以使该远端虚拟USB设备所在的网络接入设备可作为独立的远端USB设备接受远端USB主机的读写操作;在远端USB主机访问终端USB设备时,触发虚拟设备实现模块将终端信息存储模块中的设备信息提供给远端USB主机;以及,在远端USB主机变更其访问的USB设备时,触发在线热插拔。
6.如权利要求1至5中任一项所述的系统,其特征在于,终端USB主机为多个、每个终端USB主机分别承载有一个IP地址不同的终端虚拟USB设备。
7.如权利要求6所述的系统,其特征在于,终端USB主机直连多个终端USB设备。
8.一种用于实现USB主机远程访问的终端虚拟USB设备,其特征在于,该终端虚拟USB设备设置于网络近端侧、并承载于具有网络接入功能并可与终端USB设备直连的终端USB主机,并且,网络远端侧设置有远端虚拟USB设备,该远端虚拟USB设备模拟终端USB设备被远端USB主机访问、并通过IP网络与该终端虚拟USB设备将远端USB主机对远端虚拟USB设备的访问镜像为终端USB主机对终端USB设备的访问;该终端虚拟USB设备包括:
终端信息获取模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于获取终端USB设备的设备信息、并通过网络提供给网络远端侧;
终端解析转发模块,其可调用终端USB主机的USB主机协议栈和网络协议栈,用于在网络远端侧与终端USB设备之间,传递远端USB主机依据终端USB设备的设备信息而针对该终端USB设备的读写操作所涉及的读写请求和数据。
9.如权利要求8所述的终端虚拟USB设备,其特征在于,该终端虚拟USB设备进一步包括远端信息存储模块,其存储有预先设置的网络远端侧的IP地址;
且,终端信息获取模块获取的终端USB设备中进一步包含有USB设备地址的设备信息,以及,终端信息获取模块进一步依据远端信息存储模块所存储的IP地址向网络远端侧发送所获取的设备信息;
终端解析转发模块进一步通过对USB端点号和USB设备地址的解析将来自网络远端侧的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并进一步通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至网络远端侧。
10.一种用于实现USB主机远程访问的远端虚拟USB设备,其特征在于,该远端虚拟USB设备设置于网络远端侧、并承载于具有USB功能并可与远端USB主机直连的网络接入设备,并且,在网络近端侧设置有终端虚拟USB设备,以及,该远端虚拟USB设备模拟终端USB设备被远端USB主机访问、并通过IP网络与该终端虚拟USB设备将远端USB主机对远端虚拟USB设备的访问镜像为终端USB主机对终端USB设备的访问;该远端虚拟USB设备包括:
虚拟设备实现模块,其可调用网络接入设备的USB设备协议栈,用于在远端USB主机访问终端USB设备时,将来自网络终端侧的终端USB设备的设备信息提供给远端USB主机;
远端解析转发模块,其可调用网络接入设备的USB设备协议栈和网络协议栈,用于接收所述的来自网络终端侧的终端USB设备的设备信息,并在远端USB主机与网络终端侧之间,传递远端主机依据终端USB设备的设备信息而针对该终端USB设备的读写操作所涉及的读写请求和数据。
11.如权利要求10所述的远端虚拟USB设备,其特征在于,该远端虚拟USB设备进一步包括:终端信息存储模块,用于存储来自网络终端侧的终端USB设备包含有USB设备地址的设备信息、以及网络终端侧的IP地址;
远端解析转发模块进一步区分网络终端侧所发送的终端USB设备的设备信息和读数据,将该设备信息和网络终端侧的IP地址直接存放至终端信息存储模块,并通过对USB端点号和USB设备地址的解析将该读数据发送至远端主机;以及,进一步通过添加IP地址将远端USB主机针对终端USB设备的包含有USB端点号和USB设备地址的读请求、或包含有USB端点号和USB设备地址的写请求和写数据传递至网络终端侧。
12.如权利要求11所述的远端虚拟USB设备,其特征在于,终端信息存储模块中进一步维护有USB设备列表,该USB设备列表中的可选USB设备包含所述终端USB设备、以及该远端虚拟USB设备所在的网络接入设备;
且,远端虚拟USB设备进一步包括:
设备选择切换模块,其可调用网络接入设备的USB设备协议栈,用于向远端USB主机提供所述USB设备列表、以供远端USB主机选择所要访问的USB设备;在远端USB主机访问终端USB设备之前,触发网络接入设备的USB设备协议栈向与远端USB主机提供该网络接入设备的设备信息、以使该远端虚拟USB设备所在的网络接入设备可作为独立的远端USB设备接受远端USB主机的读写操作;在远端USB主机访问终端USB设备时,触发虚拟设备实现模块将终端信息存储模块中的设备信息提供给远端USB主机;以及,在远端USB主机变更其访问的USB设备时,触发在线热插拔。
13.一种实现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设备之间传递该读写操作所涉及的读写请求和数据。
14.如权利要求13所述的方法,其特征在于,
该方法在远端USB主机访问网络接入设备时,进一步由远端虚拟USB设备触发该远端虚拟USB设备所在的网络接入设备向远端USB主机提供该网络接入设备的设备信息、以使该远端虚拟USB设备所在的网络接入设备可作为独立的远端USB设备接受远端USB主机的读写操作;
以及,该方法在远端USB主机变更其访问的USB设备时,进一步由远端虚拟USB设备触发在线热插拔。
15.如权利要求14所述的方法,其特征在于,该方法进一步由远端虚拟USB设备向远端USB主机提供自身维护的USB设备列表、以供远端USB主机选择所要访问的USB设备,该USB设备列表中的可选USB设备包含该远端虚拟USB设备所在的网络接入设备、以及远端虚拟USB设备通过网络接收到的设备信息所对应的终端USB设备。
16.如权利要求13至15中任一项所述的方法,其特征在于,
终端虚拟USB设备进一步通过对USB端点号和USB设备地址的解析将来自远端虚拟USB设备的读请求、或写请求和写数据传递至终端USB主机直连的终端USB设备,并进一步通过添加IP地址将来自终端USB主机直连的终端USB设备的读数据传递至远端虚拟USB设备;
远端虚拟USB设备进一步接收并区分终端虚拟USB设备通过网络所发送的终端USB设备的设备信息和读数据,并将该设备信息和终端虚拟USB设备的IP地址直接存放、以及通过对USB端点号和USB设备地址的解析将该读数据发送至远端USB主机;还通过添加IP地址将来自远端USB主机的包含有USB端点号和USB设备地址的读请求、或包含有USB端点号和USB设备地址的写请求和写数据传递至终端虚拟USB设备。
17.如权利要求13至15中任一项所述的方法,其特征在于,终端USB主机为多个、每个终端USB主机分别承载有一个IP地址不同的终端虚拟USB设备。
18.如权利要求17所述的方法,其特征在于,终端USB主机直连多个终端USB设备。
CN201010208342.4A 2010-06-13 2010-06-13 实现usb主机远程访问的虚拟usb系统和设备及方法 Expired - Fee Related CN102281264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010208342.4A CN102281264B (zh) 2010-06-13 2010-06-13 实现usb主机远程访问的虚拟usb系统和设备及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010208342.4A CN102281264B (zh) 2010-06-13 2010-06-13 实现usb主机远程访问的虚拟usb系统和设备及方法

Publications (2)

Publication Number Publication Date
CN102281264A CN102281264A (zh) 2011-12-14
CN102281264B true CN102281264B (zh) 2014-03-26

Family

ID=45106442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010208342.4A Expired - Fee Related CN102281264B (zh) 2010-06-13 2010-06-13 实现usb主机远程访问的虚拟usb系统和设备及方法

Country Status (1)

Country Link
CN (1) CN102281264B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970582A (zh) * 2013-01-28 2014-08-06 联想(北京)有限公司 Usb设备模拟方法
CN104484291B (zh) * 2014-11-24 2017-08-25 华为技术有限公司 一种建立设备映射的方法及装置
CN105872096B (zh) * 2016-06-02 2019-03-05 无锡辰云科技股份有限公司 一种外部设备的远端共享系统
CN106066841A (zh) * 2016-06-17 2016-11-02 山东超越数控电子有限公司 一种模拟远端usb设备热插拔的方法
CN111723042B (zh) * 2020-07-02 2022-05-10 宏远智控科技(北京)有限公司 远程高速usb透传方法、装置及设备
CN113179330B (zh) * 2021-05-25 2022-08-09 浙江浙大西投脑机智能科技有限公司 一种兼容多种硬件接口规范及硬件通信协议的外部设备连接管理系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1696914A (zh) * 2004-05-11 2005-11-16 深圳市朗科科技有限公司 数据远程存储的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181510B2 (en) * 2002-01-04 2007-02-20 Hewlett-Packard Development Company, L.P. Method and apparatus for creating a secure embedded I/O processor for a remote server management controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1696914A (zh) * 2004-05-11 2005-11-16 深圳市朗科科技有限公司 数据远程存储的方法及装置

Also Published As

Publication number Publication date
CN102281264A (zh) 2011-12-14

Similar Documents

Publication Publication Date Title
CN102281264B (zh) 实现usb主机远程访问的虚拟usb系统和设备及方法
TWI444833B (zh) Sas擴充器之資料預取
CN103946828B (zh) 数据处理系统和数据处理的方法
US6813698B2 (en) Concurrent configuration of drives of a data storage library
US7016974B2 (en) Image processing
CN107818021A (zh) 使用bmc作为代理nvmeof发现控制器向主机提供nvm子系统的方法
US8271665B2 (en) Internet protocol camera management system and method
US20040107304A1 (en) Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
CN104322037A (zh) 缓冲传输服务
CN104346200A (zh) 虚拟化atm
TW200907804A (en) Method for updating BIOS and computer and system using the same
JPS63292257A (ja) 複数の端末局へのデ−タまたはプログラムのロ−デイング方法
CN111327758A (zh) 摄像头共享方法及装置
CN101808010B (zh) 一种设备管理方法、装置和主控板
CN112579311A (zh) 访问固态硬盘的方法及存储设备
CN105488000A (zh) 实现usb设备快速访问的方法和系统
CN115080479B (zh) 传输方法、服务器、设备、裸金属实例及基板管理控制器
CN107493460B (zh) 一种图像采集方法及系统
CN103002790A (zh) 内窥镜系统以及内窥镜系统的控制方法
CN105634635B (zh) 一种共享rtc的方法、装置和系统
CN107992372A (zh) 一种机箱信息交互方法、系统、设备及计算机存储介质
CN107659621B (zh) 一种raid控制卡配置方法及装置
CN101251831B (zh) 支持主从设备互换的移动存储器和主从设备互换方法
EP1033658A2 (en) Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with said two communication apparatus
US20150281370A1 (en) Apparatus, communication control system, and communication control method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140326

Termination date: 20200613