CN1976310B - 在网络中通过总线接口进行通信的方法 - Google Patents
在网络中通过总线接口进行通信的方法 Download PDFInfo
- Publication number
- CN1976310B CN1976310B CN200610100129.5A CN200610100129A CN1976310B CN 1976310 B CN1976310 B CN 1976310B CN 200610100129 A CN200610100129 A CN 200610100129A CN 1976310 B CN1976310 B CN 1976310B
- Authority
- CN
- China
- Prior art keywords
- usb
- remote
- remote system
- client
- equipment
- 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
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
一种在网络中实现通用串行总线(USB)重定向(USB-R)的方法和系统,其中包括在本地客户端设备上通过网络接收与连接在远程系统的远程客户端设备相应的远程客户端设备检测数据。本地客户端设备通过发送设备访问数据请求访问连接在所述远程系统的所述远程客户端设备。连接在所述远程系统的所述远程客户端设备可映射为所述本地客户端设备上的USB设备。本地客户端设备可通过网络接收来自远程系统的信息,以确认对连接到远程系统的远程客户端设备的访问请求。
Description
技术领域
本发明涉及网络接口领域,更具体地说,涉及一种在网络中实现通用串行总线(USB)重定向(USB-R)的方法和系统。
背景技术
通用串行总线(USB)最初由一公司联盟于1995年开发得到。USB的主要目的是定义外部扩展总线,从而使外围设备可以像把电话连接到插入墙面插孔一样简单地连接到个人计算机(PC)上。USB的易用性和低成本使其在市场上大获成功,全球大部分的外围设备提供商都根据其技术规范来开发产品。
系统软件的一个任务就是为所有应用软件提供统一的系统视图。可采用系统软件以隐藏硬件实现的细节,从而使应用软件更容易移植便携。系统软件可管理外围设备的动态连接和移除。该阶段称为枚举(enumeration),其中包括与外围设备通信进而发现其应该安装的设备驱动,如果该驱动尚未安装的话则系统软件应将其载入。在枚举期间每个外围设备都被分配了一个唯一地址,以便用于运行期间的数据传递。在运行期间,主机PC启动对特定外围设备的处理,各外围设备接受其各自的处理并相应做出响应。此外,主机PC软件将外围设备集成到系统能源管理机制中,无需用户干预即可管理所有的系统能源。
集线器可将为USB外围设备和已连接外围设备的被管理的能源提供附加连接性连接到附加的外围设备。集线器可识别外围设备的动态连接,并为外围操作提供设备能源。可为新连接的集线器分配一个唯一地址,且级联的集线器最多可高达例如五层。在运行期间,集线器可以作为双向转发器,也可根据需要在上行线缆向主机转发USB信号以及在下行线缆向设备转发USB信号。
可采用USB外围设备来请求得到主机PC发送的处理。外围设备可对控制处理做出响应,例如,请求得到关于设备及其配置的详细信息。外围设备可利 用标准USB数据格式向主机传送数据或从主机接收数据。向/来自PC主机的标准数据移动以及外围设备的数据判读,加上PC主机软件的微小变化即可为USB带来很大的灵活性,几乎不会改变PC主机的软件。USB 1.1外围设备的传输速率为12Mb/s或1.5Mb/s。
USB 2.0规范是由USB 1.1规范演变而来的,可提供更高性能的接口。USB1.1的连接器和全速线缆无需任何改变即可支持更高速率的USB 2.0。更高传输速率是由设备与设备之间协商决定的,如果某外围设备不支持更高速率,则设备间的链路传输速率由以该外围设备决定的低于12Mb/s或1.5Mb/s的,即为传输速率运行。外部USB 2.0集线器可能在其各端口上有不同的信号发送速率。USB 2.0使用USB 2.0的40x倍增器,对于已连接的高速USB 2.0外围设备,USB 2.0集线器输入速率为480Mb/s且输出速率为480Mb/s;而对于已连接的USB 1.1外围设备,USB 2.0集线器输入输出速率为12Mb/s或1.5Mb/s。USB 2.0集线器可将使其下行端口发送出去的数据速率与已连接设备的合适数据速率相匹配。USB 2.0的更高数据速率有可能提供新的外围设备,例如,可接入更高带宽后视频会议相机的性能会更好。
系统软件可得到(comprehend)包括USB 2.0外围设备的新增功能,这样即可优化其性能、检测次优配置并推荐连接该外围设备的更好配置,例如,所述次优配置是例如连接到USB 1.1集线器上的包括将USB 2.0外围设备连接到USB 1.1集线器上。USB 2.0集线器可用于接收更高帧速率的高速处理,并将数据它们传输到高速USB 2.0外围设备和USB 1.1外围设备中。数据速率匹配功能可能需要增加集线器的复杂性以及用于保存临时缓存输入高速数据的临时缓存。与已连接的USB 2.0外围设备通信的情形下,集线器向在适当的USB2.0上行和下行线缆转发高速信号。这样可使USB 2.0外围设备能使用USB 2.0的大部分带宽。
为了与USB 1.1外围设备进行通信,USB 2.0集线器应包括一种机制,该机制支持用于与下行设备性能的数据速率与下行设备能力的实现匹配。该集线器可用于管理数据速率从主机控制器的高速数据速率到USB 1.1设备的低速数据速率的转换。
USB设备可由本地USB主机控制器和适当主机软件进行管理,进而对USB设备进行配置、操作、监控和管理。不过,为了使带有有限本地智能的主机可支持某些USB设备,当可本地实体基于向远程位置发送信号的本地实体时,可在该远程位置上执行USB处理。例如,在客户机/服务器设置中,其中客户机为带有有限本地处理功能的智能终端,但可为支持外围设备提供灵活性,如键盘、鼠标和打印机等USB 1.1外围设备。
参照附图和下文所述的本发明,通过本发明与传统解决方案的比较,本领域技术人员可更清楚地了解传统解决方案的限制和缺点。
发明内容
一种在网络中实现通用串行总线(USB)重定向(USB-R)的方法和系统,可结合至少一幅附图中所示或所述进行充分说明,而在权利要求中可得到更完整说明。
根据本发明的一方面,提供了一种在网络中通过总线接口进行通信的方法,该方法包括:
通过网络在本地客户端设备上接收与连接在远程系统的远程客户端设备相应的远程客户端设备检测数据;
所述本地客户端设备请求访问连接在所述远程系统的所述远程客户端设备;以及
将连接在所述远程系统的所述远程客户端设备映射为所述本地客户端设备上的USB设备。
优选地,该方法进一步包括将与连接在所述远程系统的所述远程客户端设备相应的所述已接收远程客户端设备检测数据输出到位于所述本地客户端设备中的操作系统。
优选地,该方法进一步包括根据所述输出在所述本地客户端设备检测连接在所述远程系统的所述远程客户端设备。
优选地,该方法进一步包括通过将设备访问数据经所述网络传送到所述远程系统中,所述本地客户端设备请求访问连接在所述远程系统的所述远程客户 端设备。
优选地,该方法进一步包括对已通过所述网络传送到所述远程系统中的设备访问数据进行编码。
优选地,该方法进一步包括在所述本地客户端设备,将与连接在所述远程系统的所述远程客户端设备相应的所述远程客户端设备检测数据转译为相应的USB设备检测事件。
优选地,该方法进一步包括将连接在所述远程系统的所述远程客户端设备表示为所述本地客户端设备的所述USB设备。
优选地,该方法进一步包括在所述本地客户端设备通过所述网络从所述远程系统接收信息,确认对连接在所述远程系统的所述远程客户端设备的所述访问请求。
优选地,所述远程客户端设备为远程USB客户端设备。
优选地,所述远程客户端设备为远程非USB客户端设备。
根据本发明的一方面,提供了一种机器可读存储,其中存储了至少包括一个代码段的计算机程序,该程序可通过总线接口在网络中传输,所述至少一个代码段可由机器执行,进而使机器完成下述步骤:
通过网络在本地客户端设备上接收与连接在远程系统的远程客户端设备相应的远程客户端设备检测数据;
所述本地客户端设备请求访问连接在所述远程系统的所述远程客户端设备;以及
将连接在所述远程系统的所述远程客户端设备映射为所述本地客户端设备上的USB设备。
优选地,该机器可读存储还包括代码,用于将与连接在所述远程系统的所述远程客户端设备相应的所述已接收远程客户端设备检测数据输出到位于所述本地客户端设备中的操作系统。
优选地,该机器可读存储还包括代码,用于根据所述输出,在所述本地客户端设备检测连接到所述远程系统的所述远程客户端设备。
优选地,该机器可读存储还包括代码,用于通过将设备访问数据经所述网 络传送到所述远程系统中,所述本地客户端设备请求访问连接在所述远程系统的所述远程客户端设备。
优选地,该机器可读存储还包括代码,用于对已通过所述网络传送到所述远程系统中的设备访问数据进行编码。
优选地,该机器可读存储还包括代码,用于在所述本地客户端设备,将与连接在所述远程系统的所述远程客户端设备相应的所述远程客户端设备检测数据转译为相应的USB设备检测事件。
优选地,该机器可读存储还包括代码,用于将连接在所述远程系统的所述远程客户端设备表示为所述本地客户端设备的所述USB设备。
优选地,该机器可读存储还包括代码,用于在所述本地客户端设备通过所述网络从所述远程系统接收信息,确认对连接在所述远程系统的所述远程客户端设备的所述访问请求。
优选地,所述远程客户端设备为远程USB客户端设备。
优选地,所述远程客户端设备为远程非USB客户端设备。
根据本发明的一方面,提供了一种在网络中通过总线接口进行通信的系统,该系统包括:
用于通过网络在本地客户端设备上接收与连接在远程系统的远程客户端设备相应的远程客户端设各检测数据的处理器;
所述处理器可使所述本地客户端设备请求访问连接在所述远程系统的所述远程客户端设备;以及
所述处理器可将连接在所述远程系统的所述远程客户端设备映射为所述本地客户端设备上的USB设备。
优选地,所述处理器可将与连接在所述远程系统的所述远程客户端设备相应的所述已接收远程客户端设备检测数据输出到位于所述本地客户端设备中的操作系统。
优选地,所述处理器可根据所述输出在所述本地客户端设备检测连接到所述远程系统的所述远程客户端设备。
优选地,所述处理器可通过将设备访问数据经所述网络传送到所述远程系 统中,请求访问连接在所述远程系统的所述远程客户端设备。
优选地,所述处理器对已通过所述网络传送到所述远程系统中的设备访问数据进行编码
优选地,所述处理器可在所述本地客户端设备,将与连接在所述远程系统的所述远程客户端设备相应的所述远程客户端设备检测数据转换为相应的USB设备检测事件。
优选地,所述处理器可将连接在所述远程系统的所述远程客户端设备表示为所述本地客户端设备的所述USB设备。
优选地,所述处理器可在所述本地客户端设备通过所述网络从所述远程系统接收信息,确认对连接在所述远程系统的所述远程客户端设备的所述访问请求。
优选地,所述远程客户端设备为远程USB客户端设备。
优选地,所述远程客户端设备为远程非USB客户端设备。
优选地,位于本地客户端设备的所述处理器为网络接口控制器。
在下文和附图中,将进一步说明本发明的上述及其它优点、创新点和具体实施例的细节。
附图说明
图1是可与本发明实施例结合使用的USB子系统的驱动器和控制器接口的方框图;
图2是根据本发明实施例的在本地系统和远程系统之间的USB重定向连接的方框图;
图3是根据本发明实施例的实现USB重定向的客户端PC的示例性架构的方框图;
图4是可与本发明实施例结合使用的带有USB 2.0集线器的单个计算机USB系统的方框图;
图5a是根据本发明实施例的定位并确定连接在远程客户端中的USB设备的典型步骤流程图;
图5b是根据本发明实施例的定位并确定连接在远程客户端中的非USB设备的典型步骤流程图;
图6是根据本发明实施例的访问连接在远程客户端中的设备的典型步骤流程图。
具体实施方式
一种在网络中实现通用串行总线(USB)重定向(USB-R)的方法和系统包括:通过网络在本地客户端设备上接收与连接在远程系统的远程客户端设备相应的远程客户端设备检测数据。通过传输设备访问数据,该本地客户端设备可请求访问连接在所述远程系统的所述远程客户端设备。连接在所述远程系统的所述远程客户端设备可映射为所述本地客户端设备上的USB设备。本地客户端设备通过网络接收来自远程系统的信息,并确认对连接在远程系统的远程客户端设备的访问请求。
USB重定向无需将USB设备物理连接在本地系统中,因为尽管实际设备可能位于远程端,但本地系统可利用任何类型的USB设备。可由软件映射USB功能,并模拟不同的设备,例如,在本地系统中,已连接设备看起来是USB记忆棒而存储内容可被映射到远程系统中的文件或目录。当映射到本地系统时,该设备的看起来正如用户刚插入新的USB设备一样。映射结束时,该设备看起来正如用户将USB设备拔出一样。远程系统服务的多样性和系统位置变得灵活多变,因为映射和USB功能重定向在局域网中完成。
图1是可与本发明实施例结合使用的USB子系统的驱动器和控制器接口的方框图。如图1所示,其中包括客户端驱动器102、USB驱动器(USBD)104、主控器驱动器(HCD)106、主控器硬件模块108和USB设备模块110。
客户端驱动器102可包括适当逻辑、电路和/或代码,可用于通过USBD 104管理附加的USB设备。USBD 104可包括适当逻辑和/或代码,可用于实现主机和附加USB外围设备之间的数据交换。附加外围设备可通过由主机调度的基于令牌的协议来共享USB带宽。HCD 106可用于为主控器108资源分配和解除分配提供抽象(abstraction),从而为USB设备110提供有保证的服务。HCD 106 可提供用于执行所需抽象的软件接口。HCD 106可能位于软件堆栈中的最低层,且带有一个客户端,即通用串行总线驱动器(USBD)。
USBD可将来自多个客户端的请求映射到适当的HCD,而HCD反过来可管理多个主控器。主控器108可包括适当逻辑、电路和/或代码,用于为主系统存储的输入输出提供高速总线接口。当数据缓存需要填充或清空时,主控器108将通知USB系统。USB设备模块110可包括多个USB设备,如闪存设备、网络摄影机、数码相机、调制解调器、打印机、扫描仪、鼠标、键盘或电话。
当连接上USB设备110时,集线器检测到该变化,集线器驱动器从该集线器接收通知。集线器驱动器利用集线器提供的信息从USBD请求设备识别符。USBD反过来向集线器驱动器返回设备识别符。对于各USB设备110,在设备可使用之前,可能要求多项配置。设备配置包括设置设备的USB参数和分配对设备可见的USB主机资源。配置软件将读取设备描述符并请求对各可能配置的描述。该信息可用于载入特定客户端,如设备驱动器,而设备驱动器最初与设备交互作用并为设备选择配置。设备配置可设置设备上的端点并返回可由USBD客户端用于数据传输的接口集合。初始配置可使用接口的默认设置和各端点的默认带宽。选择初始配置时,USBD设备还可允许客户端指定接口。USB系统可验证支持端点所需的资源是否可用并相应地分配所需的带宽。
图2是根据本发明实施例的在本地系统和远程系统之间的USB重定向连接的方框图。如图2所示,其中包括客户端PC 204、远程PC 206以及连接客户端PC 204和远程PC 206的以太网链路208。远程PC 206包括管理控制台210和资源模块212。
客户端PC 204可包括适当逻辑、电路和/或代码,用于请求来自服务器的信息或应用。客户端PC 204可包括固件和/或其它代码,用于通过通信协议将连接到远程PC 206的USB设备映射到客户端PC 204,该通信协议可以是例如以太网链路208使用的以太网协议。管理控制台210可包括USB重定向虚拟化和映射软件,进而通过诸如以太网链路208等的通信协议将连接到远程PC 206的USB设备映射到客户端PC 204。资源模块212可包括实际USB设备和/或软件映射模拟资源,模拟资源可通过诸如以太网链路208等的通信协议映射到客 户端PC 204。
远程USB-R虚拟化和映射软件或其它代码可提供设备映射的创建、设备映射的终止以及在网络中传输和接收虚拟USB-R命令和数据。远程USB-R虚拟化和映射软件或其它代码同样可提供USB设备虚拟化,用于将来自USB-R的USB命令和数据转译为所映射的设备或数据。在本发明的一个实施例中,由于USB-R硬件、USB-R固件或其它代码、以及网络接口控制器(NIC)间的相互依赖性,这些部件可集成为单个芯片,从而降低成本并提供更好的集成解决方案。安装有集成USB-R设备的系统,根据USB-R虚拟化软件中发生的映射,可以有各种各样的附加USB设备。
图3是根据本发明实施例的实现USB重定向的客户端的示例性架构的方框图。如图3所示,其中包括客户端PC 304、存储模块306、USB重定向子系统302和以太网链路316。USB重定向子系统302可包括寄存器310、外围部件互连(PCI)桥312和处理器,处理器可以被看作是网络接口控制器(NIC)314。
客户端PC 304可包括适当逻辑、电路和/或代码,用于请求来自服务器的信息或应用。客户端PC 304可通过诸如以太网链路316等通信协议将连接到远程PC的USB设备映射到客户端PC 304。客户端PC 304可存储数据,并通过PCI总线或本地总线访问存储模块306中的已存数据。USB重定向子系统302可包括USB重定向虚拟化和映射软件,从而通过诸如以太网链路316等的通信协议将连接到远程PC的USB设备映射到客户端PC 304。在本发明的一个实施例中,由于USB-R硬件、USB-R固件或其它代码、以及网络接口控制器(NIC)314间的相互依赖性,这些部件可集成为单个芯片,从而降低成本并提供更好的集成解决方案。寄存器310可包括适当逻辑、电路和/或代码,用于管理和/或转译由连接到远程PC的USB设备通过以太网链路316接收得到的数据。PCI桥312可包括适当逻辑、电路和/或代码,用于将从连接到远程PC的USB设备接收得到的数据通过PCI或PCI外扩总线连接到客户端PC 304和存储306中。NIC 314可包括合适的逻辑、电路和/或代码,可从连接到远程PC的USB设备接收数据。通过从发送工作站接收数据,NIC 314可为多个网络附加设备提供服务,如工作站和打印机等,将该数据编码为特定数据包格式,如以太网包格 式,并将已接收的数据传送到寄存器310和PCI桥312。USB重定向(USB-R)子系统302的固件可嵌入到USB-R硬件中,并可监视USB-R硬件功能以及网络流量,同时在USB-R硬件和NIC 314间执行USB到以太网流量之间的转换。
USB重定向子系统302的固件和NIC 314可转译通过以太网链路316从远程PC接收的数据包。如果已接收数据包为USB 1.1数据包,则将其传送到开放主控器接口(OHCI),而如果已接收数据包为高速USB 2.0数据包,则将其传送到扩展主控器接口(EHCI)。在远程PC端,可在软件中模拟OHCI和EHCI功能,该软件可用于接收来自己连USB设备的设备访问信息,并将接收到的数据通过以太网链路316传送到本地客户端的NIC 314。
USB重定向子系统302可用于执行部分USB主控器功能,对于客户端PC 304和操作系统(OS)而言,相当于基于PCI的主控器。可保持主控寄存器和存储接口结构,无需任何重大变化。除了USB上的数据串行,该数据可通过以太网链路316以编码形式在LAN中发送或接收,从而不会影响USB总线定时。在本发明的一个典型实施例中,数据传输错误可由OS或BIOS级别的超时设定来解决。在本发明的一个实施例中,根据其能耗需求,连接到远程PC的USB设备数目没有限制,因为连接到远程系统的设备可映射为本地客户端系统的虚拟设备。
图4是可与本发明实施例结合使用的带有USB 2.0集线器的单个计算机USB系统的方框图。如图4所示,其中包括服务器401、USB 2.0集线器411和USB 1.1设备412。服务器401包括适当的逻辑、电路和/或代码,可用于处理来自客户机的各种请求,例如,打印,或语音邮件、电子邮件和传真服务等的访问控制。服务器401也可用于处理大量数据。USB 2.0集线器411包括适当的逻辑、电路和/或代码,可用于增加个人计算机(PC)上的USB端口数。USB 1.1设备模块412可以是闪存设备、网络摄影机、数码相机、调制解调器、打印机、扫描仪、鼠标、键盘或电话。
USB系统400可用于将几个USB设备412通过一系列USB 2.0集线器411连接到服务器401上的主控器中。USB设备和集线器有相关的管线或逻辑信道,所述管线或逻辑信道从服务器401上的主控器连接到名为端点的设备上的逻 辑实体。
各端点可按一个方向传输数据,即输入到设备或从设备输出,所以各管线是单向的。所有USB设备至少有两个这样的管线/端点,即用于控制总线上的设备的端点0。各设备上都有编号为0的输入和输出管线。根据传输类型,这些管线可分为四种不同的类型,即控制传输、同步传输、中断传输和批量传输。控制传输可用于针对设备的短小而简单的命令,以及来自总线控制管线编号0的状态响应。可使用同步传输,有一定速率保证但可能丢失数据,如实时语音或视频。中断传输可用于需要可靠快速响应或有限延迟的设备,例如,指针设备和键盘。批量传输可用于大量的零星传输,可使用所有剩余可用带宽,但不能保证带宽或延迟,例如,文件传输。
当USB 1.1设备412通过总线上的集线器411连接到服务器401上的主控器时,主控器给该设备分配总线上的唯一的7比特地址。接着主控器登记(poll)总线数据流量,通常是以轮询方式完成,这样如果没有来自主控器的明确要求,所有设备均无法在总线上传输任何数据。
连接到总线的USB设备412有一个设备描述符,一个描述符有一个或多个配置描述符。各配置描述符又有一个或多个接口描述符,用于描述设备的某些特性,因此它可用于不同目的,例如,相机可有视频和音频接口。这些接口描述符又有一个默认的接口设置以及可能有更多替换接口设置,这些接口设置又有端点描述符。端点可在多个接口和替换接口设置间重用。
如果高速设备连接到全速集线器中,则其数据速率将降低为全速。高速集线器具有称为处理转译器的特殊功能,可将全速总线流量和低速总线流量从高速流量中隔离出来。高速集线器中的处理转译器可起到作为已连接的全速和低速设备的完全独立全速总线的功能。
图5a是根据本发明实施例的定位并确定连接在远程客户端中的USB设备的典型步骤流程图。如图5a所示,该典型的流程从步骤502开始。在步骤504中,将远程PC USB重定向设备驱动器安装在远程PC中。在步骤506中,将USB设备插入到远程PC中。在步骤508中,远程PC的操作系统检测到最新插入的USB设备。在本发明的实施例中,远程PC的设备驱动器检测到最新插入 的USB设备,并将其报告给远程PC的操作系统。在步骤510中,远程PC中的操作系统对新插入的USB设备进行注册和枚举。例如,对于多个新插入的USB设备,他们中的每一个都被单独注册和枚举,从而能够被客户端PC检测。在步骤512中,远程PC的USB重定向子系统可要求新插入的USB设备。在步骤514中,通过例如以太网链路将新插入的USB设备的设备检测信息传送到目标系统中。在步骤516中,目标系统从远程PC接收包含设备检测信息的以太网数据包。在步骤518中,目标系统的USB重定向固件将新插入的USB设备的设备检测信息输出到目标系统的操作系统中。在步骤520中,目标系统的操作系统检测到新插入的USB设备并载入特定设备驱动。在步骤522中,目标系统的设备应用程序可与远程PC中的新插入的USB设备进行通信。最后该控制流程在步骤524结束。
图5b是根据本发明实施例的定位并确定连接在远程客户端中的非USB设备的典型步骤流程图。如图5b所示,该流程开始于步骤552。在步骤554中,将远程PC设备驱动器安装在远程PC中。在步骤556中,将非USB设备插到远程PC上,如用于提高网络附属存储(NAS)性能的串行高级技术附加装置(SATA)、独立磁盘冗余阵列(RAID)、小型计算机系统接口(SCSI)设备、IEEE1394火线兼容设备、PCI设备、PCI Express设备。在步骤558中,远程PC的操作系统检测到新插入的非USB设备。在本发明的实施例中,远程PC的设备驱动器检测到最新插入的非USB设备,并将其报告给远程PC的操作系统。在步骤560中,远程PC的操作系统对新插入的非USB设备进行注册和枚举。例如,对于多个新插入的非USB设备,每个设备都应被单独注册和枚举,从而使客户端PC能够将其检测。在步骤562中,远程PC的USB重定向子系统可要求(claim)新插入的非USB设备。在步骤564中,将新插入的非USB设备的设备检测信息通过以太网链路传送到目标系统中。在步骤566中,目标系统从远程PC接收包含设备检测信息的以太网数据包。在步骤568中,目标系统的USB重定向固件将新插入的非USB设备的设备检测信息输出到目标系统的操作系统中。在步骤570中,目标系统的操作系统检测到新插入的非USB设备并载入特定设备驱动。远程PC上的新插入的非USB设备可被映射到客户端PC,并 可显示为客户端PC上的USB设备。在步骤572中,目标系统的设备应用程序可与远程PC中的新插入的非USB设备进行通信。最后该控制流程在步骤574结束。
图6是根据本发明实施例的访问连接在远程客户端中的设备的典型步骤流程图。如图6所示,该典型流程开始于步骤602。在步骤604中,目标系统试图访问位于远程PC的新插入的USB设备,例如,进行读和/或写操作。在步骤606中,目标系统的USB重定向子系统对请求编码并将它发送到远程PC上,以访问位于远程PC的新插入的USB设备。在步骤608中,远程PC的USB重定向子系统驱动器从目标系统接收包括设备访问信息的以太网数据包。在步骤610中,远程PC的USB重定向子系统驱动器与远程PC上的新插入的USB设备的设备驱动器交互。在步骤612中,远程PC的USB重定向子系统和主控器驱动器(HCD)可完成对远程PC上的新插入的USB设备的访问。在步骤614中,远程PC的USB重定向子系统驱动器将完成数据包传送到目标系统,说明设备访问阶段的完成。最后该控制流程在步骤616结束。
本发明另一实施例可提供一种机器可读存储,其中存储了计算机程序,该程序包括至少一个机器可运行的代码段,从而使机器在局域网(LAN)执行所述的通用串行总线(USB)重定向(USB-R)的步骤。
在本发明的实施例中,USB重定向子系统通过客户端和远程系统间的高速以太网链路,可提供从客户端系统到附在远程系统的各种资源的透明设备访问。在客户端系统,这些远程资源可以USB设备的形式显示在客户端操作系统软件中。在这点上,可提供新类型的USB设备,在本地系统中显示为本地USB设备,但该USB功能可能位于网络上的远程系统中。
实际设备类型,如键盘、鼠标、存储或其它USB设备,可通过映射软件动态配置,且新的USB设备可显示在本地系统中。USB重定向设备的操作与所有其它本地USB设备一样,但本地系统交互可能通过网络重定向到所映射的远程系统中。当USB-R映射过程结束,对本地系统而言,新的USB设备的显示相当于在USB根集线器下一样,其中可使用附加主机软件设备驱动,以使USB设备可操作。USB-R固件可捕获并转译主机软件执行的操作,将其封装为网络数据 包的格式并通过网络传送到带有USB-R虚拟化软件的远程系统。USB-R虚拟化软件包括用户接口,允许用户选择目标NIC,将本地资源映射到远程系统的USB-R并决定在目标系统中显示为何种USB设备类型。此外,USB-R虚拟化软件可转换来自目标USB-R设备的命令和数据,并将该命令和数据虚拟为所映射的资源。
在网络中通过总线接口进行通信的方法和系统可包括处理器,如网络接口控制器(NIC)314,该网络接口控制器可通过网络,如以太网链路316使用的以太网,在本地客户端设备接收与远程客户端设备相应的远程客户端设备检测数据,远程客户端设备包括插在诸如远程PC 206的远程系统上的实际USB和非USB设备。NIC 314可请求访问连接到远程PC 206上的远程客户端设备。NIC 314可将连接到远程PC 206上的远程客户端设备映射为诸如客户端PC 204的本地客户端设备的USB设备。
NIC 314可将已接收的与连接在远程PC 206的远程客户端设备相应的远程客户端设备检测数据输出到位于本地客户端PC 304的操作系统中。根据已接收远程客户端设备检测数据的输出,NIC 314可在本地客户端设备检测到连接在远程PC 206的远程客户端设备。通过将设备访问数据通过诸如以太网链路316的网络传送到远程PC 206,NIC 314可请求访问连接在远程PC 206的远程客户端设备。NIC 314可通过诸如以太网链路316的网络,将已传送的设备访问数据编码到远程PC 206。在本地客户端PC 304,NIC 314可将与连接在远程PC 206的远程客户端设备相应的远程客户端设备检测数据转译为相应的USB设备检测事件。NIC 314可将连接在远程PC 206的远程客户端设备表示为本地客户端PC 304的USB设备。在本地客户端PC 304中,NIC 314可通过诸如以太网链路316的网络从远程PC 206接收信息以确认对连接在远程PC 206的远程客户端设备的访问请求。远程客户端设备可为远程USB客户端设备。远程客户端设备也可以是远程非USB客户端设备,如用于提高网络附属存储(NAS)性能的串行高级技术附加装置(SATA)、独立磁盘冗余阵列(RAID)、小型计算机系统接口(SCSI)设备、IEEE 1394火线兼容设备、PCI设备、PCIExpress设备。
因此,本发明可以通过硬件、软件、或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现所述方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行所述程序控制计算机系统,使其按所述方法运行。
本发明还可以通过计算机程序产品进行实施,所述程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,通过运行,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后,a)转换成其它语言、编码或符号;b)以不同的格式再现,实现特定功能。
虽然本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
Claims (1)
1.一种在网络中通过总线接口进行通信的方法,其特征在于,所述方法包括:
通过所述网络在本地客户端设备上接收与连接在远程系统的远程客户端设备相应的远程客户端设备检测数据;
通过网络将设备访问数据传送到远程系统,所述本地客户端设备请求访问连接在所述远程系统的所述远程客户端设备;
将连接在所述远程系统的所述远程客户端设备映射为所述本地客户端设备上的USB设备,其中,通过USB重定向虚拟化和映射软件,并通过以太网链路,将连接到所述远程系统的所述远程客户端设备映射为所述本地客户端设备上的USB设备;
对已通过所述网络传送到所述远程系统中的设备访问数据进行编码;以及
在所述本地客户端设备通过所述网络从所述远程系统接收信息,确认对连接在所述远程系统的所述远程客户端设备的所述访问请求;
所述的方法进一步包括将与连接在所述远程系统的所述远程客户端设备相应的所述已接收远程客户端设备检测数据输出到位于所述本地客户端设备中的操作系统;
所述的方法进一步包括根据所述输出在所述本地客户端设备检测连接在所述远程系统的所述远程客户端设备;
所述的方法进一步包括在所述本地客户端设备,将与连接在所述远程系统的所述远程客户端设备相应的所述远程客户端设备检测数据转译为相应的USB设备检测事件;
所述的方法进一步包括将连接在所述远程系统的所述远程客户端设备表示为所述本地客户端设备的所述USB设备;
通过USB重定向子系统和网络接口转译通过以太网链路从远程系统接收的数据包,如果所接收的数据包为USB1.1数据包,则将其传送到开放主控器接口,如果所接收的数据包为USB2.0数据包,则将其传送到扩展主控器接口;在所述远程系统端,在软件中模拟开放主控器接口功能和扩展主控器接口功能,所述软件用于接收与连接在所述远程系统的所述远程客户端设备的设备访问信息,并将接收到的数据通过以太网链路传送到所述本地客户端设备;所述USB重定向子系统通过客户端和远程系统间的高速以太网链路,可提供从客户端系统到附在远程系统的各种资源的透明设备访问;
所述远程系统包括重定向虚拟化和映射软件,其用于提供设备映射的创建、设备映射的终止以及在网络中传输和接收虚拟重定向命令和数据,并用于将来自重定向的USB命令和数据转译为所映射的设备或数据;
当所述远程客户端设备为远程USB客户端设备时,定位并确定连接在远程系统中的远程USB客户端设备包括以下步骤:
将远程USB客户端设备重定向设备驱动器安装在远程系统中;
将远程USB客户端设备插入到远程系统中;
远程系统的操作系统检测到最新插入的USB设备,并将其报告给远程系统的操作系统;
远程系统中的操作系统对新插入的远程USB客户端设备进行注册和枚举;
远程系统的USB重定向子系统可要求新插入的远程USB客户端设备;
通过以太网链路将新插入的远程USB客户端设备的设备检测信息传送到目标系统中;
目标系统从远程系统接收包含设备检测信息的以太网数据包;
目标系统的USB重定向固件将新插入的远程USB客户端设备的设备检测信息输出到目标系统的操作系统中;
目标系统的操作系统检测到新插入的远程USB客户端设备并载入特定设备驱动;
目标系统的设备应用程序可与远程系统中的新插入的远程USB客户端设备进行通信;
当所述远程客户端设备为远程非USB客户端设备时,定位并确定连接在远程系统中的远程非USB客户端设备包括以下步骤:
将远程系统设备驱动器安装在远程系统中;
将远程非USB客户端设备插到远程系统上;
远程系统的操作系统检测到新插入的远程非USB客户端设备;
远程系统的设备驱动器检测到最新插入的远程非USB客户端设备,并将其报告给远程系统的操作系统;
远程系统的操作系统对新插入的远程非USB客户端设备进行注册和枚举;
远程系统的USB重定向子系统可要求新插入的远程非USB客户端设备;
将新插入的远程非USB客户端设备的设备检测信息通过以太网链路传送到目标系统中;
目标系统从远程系统接收包含设备检测信息的以太网数据包;
目标系统的USB重定向固件将新插入的远程非USB客户端设备的设备检测信息输出到目标系统的操作系统中;
目标系统的操作系统检测到新插入的远程非USB客户端设备并载入特定设备驱动;
远程系统上的新插入的远程非USB客户端设备可被映射到本地客户端设备,并可显示为本地客户端设备上的USB设备;
目标系统的设备应用程序可与远程系统中的新插入的远程非USB客户端设备进行通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69763405P | 2005-07-08 | 2005-07-08 | |
US60/697,634 | 2005-07-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1976310A CN1976310A (zh) | 2007-06-06 |
CN1976310B true CN1976310B (zh) | 2014-04-16 |
Family
ID=38126116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610100129.5A Expired - Fee Related CN1976310B (zh) | 2005-07-08 | 2006-06-28 | 在网络中通过总线接口进行通信的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1976310B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818486B2 (en) * | 2008-08-15 | 2010-10-19 | Icron Technologies Corporation | Method and apparatus for connecting USB devices to a remote computer |
US8937930B2 (en) | 2009-11-19 | 2015-01-20 | Qualcomm, Incorporated | Virtual peripheral hub device and system |
US20120182939A1 (en) | 2011-01-14 | 2012-07-19 | Qualcomm Incorporated | Telehealth wireless communication hub and service platform system |
WO2013086036A1 (en) | 2011-12-05 | 2013-06-13 | Qualcomm Incorporated | Telehealth wireless communication hub device and service platform system |
CN103873537A (zh) * | 2012-12-18 | 2014-06-18 | 无锡中科物联网基础软件研发中心有限公司 | 一种usb设备远程共享方法及系统 |
US9804977B2 (en) * | 2015-04-28 | 2017-10-31 | Microchip Technology Incorporated | Universal serial bus smart hub |
CN115866109A (zh) * | 2022-11-30 | 2023-03-28 | 长城信息股份有限公司 | 一种远程设备原生驱动控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2341954A (en) * | 1998-09-28 | 2000-03-29 | Netcore Inc | Sharing an image processing device via a local area network |
CN1261699A (zh) * | 1999-01-21 | 2000-08-02 | 国际商业机器公司 | 共享浏览器的方法和装置 |
JP2003256351A (ja) * | 2002-03-04 | 2003-09-12 | Yamaha Corp | Usbハブ |
-
2006
- 2006-06-28 CN CN200610100129.5A patent/CN1976310B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2341954A (en) * | 1998-09-28 | 2000-03-29 | Netcore Inc | Sharing an image processing device via a local area network |
CN1261699A (zh) * | 1999-01-21 | 2000-08-02 | 国际商业机器公司 | 共享浏览器的方法和装置 |
JP2003256351A (ja) * | 2002-03-04 | 2003-09-12 | Yamaha Corp | Usbハブ |
Non-Patent Citations (1)
Title |
---|
Takahiro Hirofuchi, Eiji Kawai, Kazutoshi Fujikawa, HidediSunahara,.USB/IP-a Peripheral Bus Extension for Device Sharing overIP Network.Proceedings of Usenix Annual Technical Conference.2005,47-60. * |
Also Published As
Publication number | Publication date |
---|---|
CN1976310A (zh) | 2007-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1753190B1 (en) | Method and system for USB re-direct over a network | |
CA2657827C (en) | Method and apparatus for distributing usb hub functions across a network | |
CN103888293B (zh) | 多通道fc网络数据仿真系统的数据通道调度方法 | |
KR101219910B1 (ko) | 통합형 다중 전송 매체 커넥터 아키텍쳐 구현 디바이스, 방법 및 시스템 | |
CN111656336B (zh) | 一种pcie发送、接收方法及装置、设备和系统 | |
US7356636B2 (en) | Virtualized PCI switch | |
EP1750401B1 (en) | USB 1.1 over a high speed link | |
CN1976310B (zh) | 在网络中通过总线接口进行通信的方法 | |
US20070005867A1 (en) | Virtual peripheral device interface and protocol for use in peripheral device redirection communication | |
CN109445905B (zh) | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 | |
CN110837488B (zh) | 报文传输方法和装置 | |
US10216664B2 (en) | Remote resource access method and switching device | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
CN112199314B (zh) | 基于网络的通用usb设备跨平台透传方法 | |
CN100493018C (zh) | 一种通过网络中的总线接口进行通信的方法和系统 | |
CN113220238B (zh) | 一种通用sas控制器接口实现方法 | |
EP2300925B1 (en) | System to connect a serial scsi array controller to a storage area network | |
JP5482263B2 (ja) | エンドポイント共有システムおよびデータ転送方法 | |
US10599588B1 (en) | Interconnection of peripheral devices on different electronic devices | |
KR102518287B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
TWI345711B (zh) | ||
Shu | Storage Protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140416 Termination date: 20150628 |
|
EXPY | Termination of patent right or utility model |