用于在网络上分配usb集线器功能的方法和装置的制作方法

文档序号:6455983阅读:284来源:国知局
专利名称:用于在网络上分配usb集线器功能的方法和装置的制作方法
技术领域
本发明涉及用于使用通用串行总线(USB)端口在计算机和设备之 间传输信号的方法和装置,并且尤其涉及用于操作分布在数据通信网络 上的多个USB外围设备的方法。
背景技术
通用串行总线(USB)是一种被设计为允许广泛的外围设备附着于 普通用户的个人计算机的技术。该技术支持所有常见外围设备,比如键 盘、鼠标、扬声器、操纵杆、照相机、闪存驱动器、硬盘驱动器、DVD 驱动器和许多其它外围设备,并且它在当前计算机中的使用是常见的。
USB由计算机和通信市场中的七个最大的公司联合创制。那些公司 是Intel 、 Compaq、 Microcoft、 Nortel 、 NEC、 Digital以及IBM。限定 USB的规范(例如,Intel等公司于1996年1月编写的通用串行总线规 范,修订版1.0;并且于1998年9月23更新为修订版1.1,并且进一步 于2000年4月更新为修订版2.0,以及随后的更新、添加并且修改,在 下文中统一称为"USB规范",该术语可以包括进一步的变化和修改) 是非专有的并且由被称为USB应用者论坛(USB-IF)的开放式工业组 织管理。为了遵循USB标准,该USB规范建立了多个必须一皮满足的标 准。该USB规范还限定了多个术语,为了该规范而采用这些术语的定 义。
根据该USB规范,数据通信由USB主机控制器单元管理,该USB 主机控制器单元优选地安置在主计算机中。此外,所述数据通信发生在 一系列USB事务中,其中每个USB事务由USB主机控制器发起(initiate ) 并且由一个、两个或三个子动作组成。每个子动作由数据流的方向反转 (reversal)而终止。
然而,与本发明最相关的特征是当前所有已知的USB规范将设备 可以离开其主计算机的距离限制为最大5米。通过使用 一 系列USB集线 器(意欲支持增加的总数而不是增加的距离的设备)使该距离限制理论 上能够增加到30米。然而,该多集线器的解决方案既昂贵又笨重。在美国专利号为6381666 (其内容被结合于此作为参考)的专利中, 提供了 一种用于扩展主计算机和外围设备之间的距离的方法和装置,其 将可用的距离增加到100米或更长。虽然该方法是有益的,但仍希望提 供用于实现相同效果的替换和/或改进的方法和设备。
限制USB的范围能够被扩展的程度的主要因素是传输延迟。对于 从主计算机到设备又回到计算机的单次通信的往返延迟,USB规范允许 大约1.5微秒的最大周期。该1.5微秒的往返延迟预算由两个近似相等 的部分组成,即在主计算机和设备之间的双向传输延迟,以及第二,该 设备需要用来创建期望的响应的换向(turn-around)时间。在美国专利 号6381666中描述的方法消除了对往返延迟的上限的该限制。
虽然在美国专利号6381666中描述的方法使在扩展的距离上操作 USB外围设备成为可能,但在存在长传输延迟的情况下该方法没有描述 多个USB外围设备彼此被大大地分开的配置。虽然通过利用在美国专 利号6381666中描述的方法的多个示例能够满足对大范围地分开由单个 主计算机控制的USB外围设备的要求,但是设计更加灵活的和划算的 方法将是有益的。
与本发明相关的另一特征是当前所有已知的USB规范均要求每当 多个USB外围设备被要求同时连接到USB主机控制器上的单个端口时 都要使用USB集线器。USB集线器的属性是所述集线器安装有用于连 接到USB主机控制器(或者上游集线器)的单个上游(upstream)端口 以及多个用于连接到多个USB外围设备(或者下游集线器)的下游 (downstream)端口。驻留在包含该USB主机控制器的主计算机中的 USB驱动器软件知道USB集线器和USB外围设备的连接拓朴,并且如 果没有保持所述拓朴,则该USB驱动器软件将不能运行。
由此已经表明支持来自单个USB主机控制器的多个USB外围设备 要求USB集线器连接在所述USB外围设备和所述USB主机控制器之 间,并且,所述USB集线器必须安装有用于每个USB外围设备的单个 下游端口。然而,如果希望将数据通信网络插在所述USB集线器和所 述USB外围设备之间,那么通过单个物理连接来集中所有在所述USB 集线器和所述数据通信网络之间输送的USB通信量(traffic)将是有利 的。
与本发明相关的又一个特征是当前所有已知的USB规范均要求USB集线器的每个下游端口支持对在所述下游端口和可以连接到其上
的任何USB外围设备之间的物理连接的控制和监视。特别地,所述下 游端口必须能够检测USB外围设备的连接和断开,并且必须能够重置、 中止和恢复所述USB外围设备的操作。当所述单个物理连接被到数据 通信网络的共享连接取代的时候,保持通常与单个物理连接相关联的所 述连接、断开、重置、中止、和恢复的能力将是有利的。

发明内容
因此,虽然已经证明如美国6381666描述的扩展USB范围的技术 在点到点的配置中是有用的,但仍希望通过提供用于利用USB规范使 多个外围设备能够分布在网络上的不同位置的改进的方法和设备来提 供对该技术的改进,其中所述网络可能呈现长的传输延迟。
因此,本发明的目的是提供使多个USB外围设备通过虚拟USB集 线器连接到配备有USB主机控制器的主计算机的方法和装置。
本发明的另一个目的是所述虛拟USB集线器的功能可以分配在数 据通信网络上。
本发明的另 一 个目的是所述主计算机可以通过单个物理连接连接 到所述数据通信网络。
本发明的另一个目的是所述数据通信网络可以呈现超过由该USB 规范所定义的参数的传输延迟。
本发明的另 一个目的是所述多个USB外围设备和所述USB主机控 制器可以以根据该USB2.0规范所允许的任何数据速率运行。
本发明的另一个目的是所述虚拟USB外围设备可以连接到所述虚 拟USB集线器。
本发明的另一个目的是不需要对由该系统支持的并且在USB协议 下运行的现有主计算机、集线器和设备做出硬件或者软件的改变。从而, 本发明可以并入到由传统的延迟设备和扩展的延迟设备组成的网络中。
本发明的另一个目的是不需要关于所述数据通信网络而对所述多 个USB外围设备进行布置的先验知识。
本发明另 一 个目的是当现有技术的物理连接被如本发明所描述的 网络连接替代的时候,连接、断开、重置、中止和恢复的USB设备管 理功能将按照现有技术的USB规范运行。本发明的另一个目的是该装置非常合算,与USB产业所制订的设 备的最大总凄史(broadest population )的目标——致。
通过本发明,将完全地或者至少部分地获得本发明这些及其他目 的,其在此处将变得明显,该发明提供了一种方法和相关设备,其中主 计算机连接到本地扩展器设备,该本地扩展器设备又通过数据通信网络 连接到一个或者多个远程扩展器设备。该远程扩展器设备又连接到多个 传统USB外围设备,其中所述主计算机和所述USB外围设备之间的信 号在本地扩展器和/或远程扩展器中#皮处理以便允许该主计算机和该 USB外围设备在存在大于USB规范通常所允许的传输延迟的情况下运 行。特别地,当该主计算机和该USB外围设备之间的往返传输延迟超 过1微秒时本发明最为有用。
因此,在第一个方面,本发明提供用于在主计算机和一个或者多个 USB外围设备之间传输数据的计算机系统,其中所述USB外围设备被 分布在遍及数据通信网络,并且其中所述网络上的传输延迟大于USB 规范通常允许的传输延迟,所述计算机系统包括连接到本地扩展器设备 的主计算机,该本地扩展器设备通过数据通信网络连接到一个或者多个 远程扩展器设备,该一个或者多个远程扩展器设备又连接到多个USB 外围设备,其中在所述主计算机和所述USB外围设备之间的信号被保 存、收集、吸收(absorb)、或者以其它方式在本地扩展器和/或远程扩 展器中被处理以便允许该主计算机和该USB外围设备在存在往返延迟
大于USBMr范所允许的往返延迟的情况下运行。
优选地,该 往返延迟包括传输延迟和换向时间延迟,并且其中在主 计算机和USB外围设备之间的所述传输延迟超过1微秒。
因而,本发明提供用于在主计算机和一个或者多个USB外围设备 之间传输数据的计算机系统,其中所述USB外围设备被分布在遍及数 据通信网络,并且其中所述网络上的传输延迟大于USB规范通常所允 许的传输延迟,所述计算机系统包括
a) 用于产生并接受USB子动作的主计算机;
b) —个或者多个能够响应于由所述主计算机发起的USB子动作的 USB外围设备;
c) 连接到所述主计算机的本地扩展器单元,用于将来自所述主计 算机的USB子动作转发到数据通信网络,以及用于将从所述数据通信网络接收的USB子动作转发到所述主计算机;
d) —个或者多个远程扩展器单元,每个远程扩展器单元被连接到
一个或者多个USB外围设备,该远程扩展器单元用于将从所述数据通 信网络接收的USB子动作转发到所述USB外围设备,以及用于将从所 述USB外围设备接收的USB子动作转发到所述数据通信网络;
e) 数据通信网络,用于将来自所述本地扩展器单元的USB子动作 转发到所述远程扩展器单元,以及用于将来自所述远程扩展器单元的 USB子动作转发到所述本地扩展器单元;
f) 在所述本地扩展器单元中用于通过所述数据通信网络将从所述主 计算机接收的USB子动作转发到所述远程扩展器单元,以及用于产生 USB子动作并且将所产生的USB子动作发送到所述主计算机的装置;
g) 在所述远程扩展器单元中用于将从所述主计算机接收的所述 USB子动作转发到一个或者多个USB外围设备,以及用于接收从USB 外围设备接收的子动作的装置;
h) 在所述远程扩展器单元中用于通过所述数据通信网络将从USB 外围设备接收的所述子动作转发到所述本地扩展器单元的装置;
i) 在所述远程扩展器单元中用于为确认从USB外围设备接收了 USB子动作而产生USB子动作,并且将所述产生的确认USB子动作发 送到所述USB外围设备的装置;
j )在所述远程扩展器单元中用于响应于从所述主计算机接收的USB 子动作而产生USB子动作并且将所述产生的响应USB子动作发送到所 述本地扩展器单元的装置;
k)在所述本地扩展器单元中用于当通过所述数据通信网络从所述 远程扩展器接收的入站(inbound ) USB子动作序列与公共的(common ) 出站(outbound) USB子动作有关时而接收并且识别的装置;
站USB子动作直到这样的入站USB子动作再次被所述主计算机请求的 装置;以及
m)在所述本地扩展器单元中用于将所述存储的USB子动作转发到 所述主计算机的装置。
该计算机系统还优选地包括
a)优选地在所述本地扩展器单元中用于吸收重复的USB子动作的装置;
b) 在所述远程扩展器单元中用于将USB子动作序列组合为原子 USB子动作,并且优选地将所述原子USB子动作发送到所述USB外围 设备的装置;以及
c) 在所述远程扩展器单元中用于将原子USB子动作分解为离散的 USB子动作序列,并且优选地将所述离散的USB子动作序列发送到所 述本地扩展器单元的装置。
在另 一个方面,本发明还在上文根据本发明所描述的计算机系统中 提供用于在主计算机和数据通信网络之间传输USB通信量的本地扩展 器设备,其中所述USB通信量可以被定址(address)到多个USB外围 设备,所述装置包括
a) 用于连接到所述主计算机的USB收发器;
b) 用于控制所述USB收发器的面向上游(upstream-facing)的端
;
c) 用于再生穿过所述装置的USB子动作以及用于在所迷装置的各 部件之间交换USB子动作的本地中继器单元;
d) 用于在由所述装置的处理期间存储USB子动作的存储器单元;
e) 用于为在下游(主机到网络)方向移动的USB子动作提供网络 地址的本地路由器单元;
f) 用于连接到所述数据通信网络的网络收发器;
g) 用于响应由所述主计算机产生的关于所述多个USB外围设备的 状态的子动作的集线器控制器单元;
h) 用于例示多个用于管理所述多个USB外围设备状态的虚拟端口 的装置;
i) 用于例示多个用于提供增值(value-added)功能的虛拟USB设 备的装置;
j)在所述本地中继器中用于识别定址到所述集线器控制器的USB 子动作的装置;
k)在所述本地中继器中用于识别定址到所述多个虛拟USB设备的 USB子动作的装置;
1)在多个例示的所述虚拟端口中用于保持所述多个USB外围设备 的状态的装置;m)在多个例示的所述虚拟端口中用于从所述数据通信网络接收设 备状态改变的信号并更新所述多个USB外围设备的状态的装置;以及
n)在所述集线器控制器中用于从所述主计算机接收设备管理命令 并且将设备管理信号发送到所述数据通信网络的装置。
在另一个方面,本发明还在上文根据本发明所描述的计算机系统中 提供用于在数据通信网络和USB外围设备之间传输USB子动作的远程 扩展器装置,所述装置包括
a) 用于连接到所述数据通信网络的网络收发器;
b) 用于为在上游(网络到主机)方向上移动的USB子动作提供网 络地址的远程路由器单元;
c) 用于再生穿过所述装置的USB子动作以及用于在所述装置的各 部件之间交换USB子动作的远程中继器单元;
d) 用于在高速分离事务(split transaction )和全速/低速的原子事务 之间进行转换的事务转换器单元;
e) 用于在所述装置处理期间存储USB子动作的存储器单元;
f) 用于连接到所述USB外围设备的USB收发器;
g) 用于控制所述USB收发器的面向下游的端口;
h) 在所述远程路由器单元中用于识别分离的事务的装置;
i) 在所述下游端口控制器中用于检测所述USB外围设备的状态的 装置;
j)在所述下游端口控制器中用于产生设备状态信号并且将所述信号 发送到所述数据通信网络的装置;
k)在所述下游端口控制器中用于从所述数据通信网络接收设备管 理信号的装置;以及
1)在所述下游端口控制器中用于改变所述USB外围设备的状态的 装置。
为了运行,该系统优选地包括用于检测USB外围设备到该系统的 附着、检测USB外围设备的分离、以及确定USB功能的网络地址的装 置以及能力,其中所述USB功能可以是USB集线器或者USB外围设备。
因而,在另一个方面,本发明提供用于由主计算机通过本地扩展器 和远程扩展器,优选在其往返延迟超过1微秒的数据通信网络上检测 USB外围设备的附着的方法,其中所述主计算机和所述USB外围设备符合USB规范的要求,该方法包括
a) 在所述远程扩展器处检测设备附着事件,使所述远程扩展器将 设备连接信号发送到所述本地扩展器,然后使所述本地扩展器更新所述 USB外围设备的连接状态改变的本地扩展器的本地记录以及所述USB 外围设备的连接状态的本地扩展器的本地记录;
b) 在所述本地扩展器处从所述主计算机接收对设备状态改变信息 的请求,并且使所述本地扩展器通知所述主计算机所述USB外围设备 的状态已经改变;
c) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的请求,并且使所述本地扩展器将连接状态改变的所述本地记录 以及连接状态的所述本地记录提供给所述主计算机;
d) 在所述本地扩展器处从所述主计算机接收清除所述连接状态改 变信息的请求,并且使所述本地扩展器清除连接状态改变信息的所述本 地记录;
e) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的另 一请求,并使所述本地扩展器将清除的连接状态改变的被所 述本地记录以及连接状态的所述本地记录提供给所述主计算机;
f) 在所述本地扩展器处从所述主计算机接收重置所述USB外围设 备的命令,使所述本地扩展器将重置信号发送到所述远程扩展器,然后 使所述远程扩展器对所述USB外围设备执行物理重置;
g) 在所述远程扩展器处检测所述USB外围设备的传输速度,使所 述远程扩展器将速度信号发送到所述本地扩展器,然后使所述本地扩展 器更新所述USB外围设备的传输速度的本地扩展器的本地记录以及所 述USB外围设备的重置状态改变的本地扩展器的本地记录;
h) 在所述本地扩展器处从所述主计算机接收对设备状态改变信息 的另一请求,并且使所述本地扩展器通知所述主计算机所述USB外围 设备的状态已经改变;
i) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的又一请求,并且使所述本地扩展器将所述USB外围设备的传 输速度的所述本地记录以及所述USB外围设备的重置状态改变的本地 扩展器的本地记录提供给所述主计算机;
j )在所述本地扩展器处从所述主计算机接收清除所述重置状态改变信息的请求,并且使所述本地扩展器清除所述重置状态改变信息的本地 记录;以及
k)在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的请求,并且使所述本地扩展器将被清除的所述重置状态改变的 本地记录提供给所述主计算机。
在另一个方面,本发明提供用于由主计算机通过本地扩展器和远程 扩展器,优选地在其往返延迟超过1微秒的数据通信网络上检测USB 外围设备的分离的方法,其中所述主计算机和所述USB外围设备符合 USB规范的要求,该方法包括
a) 在所述远程扩展器处检测设备分离事件,使所述远程扩展器将 设备断开信号发送到所述本地扩展器,然后使所述本地扩展器更新所述 USB外围设备的连接状态改变的本地扩展器的本地记录以及所述USB 外围设备的连接状态的本地扩展器的本地记录;
b) 在所述本地扩展器处从所述主计算机接收对设备状态改变信息 的请求,并且使所述本地扩展器通知所述主计算机所述USB外围设备 的状态已经改变;
c) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的请求,并且使所述本地扩展器将连接状态改变的所述本地记录 以及连接状态的所述本地记录提供给所述主计算机;
d) 在所述本地扩展器处从所述主计算机接收清除所述连接状态改 变信息的请求并且使所述本地扩展器清除所述连接状态改变信息的本 地记录;
e) 在所述本地扩展器处从所述主计算机接收清除所述USB外围设 备的使能状态信息的请求,并且使所述本地扩展器清除使能状态信息的 本地扩展器的本地记录;以及
f) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的另 一请求,并且使所述本地扩展器将被清除的连接状态改变的 所述本地记录以及被清除的使能状态的所述本地记录提供给所述主计算机。
在另一个方面,本发明提供用于确定USB功能的网络地址的方法, 其中所述USB功能可以是USB集线器或者USB外围设备,并且其中多 个所述USB功能可以分布在遍及数据通信网络,并且其中由主计算机将USB地址分配给每个USB功能,该方法包括
a) 为直接或者间接连接到所述网络的每个第一 USB功能建立数据 记录,并且通过由所述主计算机动态分配的唯一的USB地址来识别每 个记录;
b) 将所述第一 USB功能连接到的上游USB集线器的USB地址记 录在所述数据记录内;
c )将所述第一 USB功能连接到的上游USB集线器的端口号记录在 所述数据记录内;
d)将直接连接到所述第一 USB功能的每个下游USB功能的USB 地址记录在所述数据记录内;
e )将每个下游USB功能连接到的所述第一 USB功能的端口号记录 在所述数据记录内;以及
f)记录一皮分配给所述第一USB功能的网络地址。
在另一个方面,本发明还提供用于在主计算机和一个或者多个USB 外围设备之间传输数据的方法,其中所述USB外围设备被分布在遍及 数据通信网络,并且其中所述网络上的传输延迟大于USB规范通常所 允许的传输延迟,所述方法包括将主计算机连接到本地扩展器设备; 将本地扩展器设备通过数据通信网络连接到一个或者多个远程扩展器 设备;以及将所述远程扩展器设备连接到一个或者多个USB外围设备, 其中在所述主计算机和所述USB外围设备之间的信号被保存、收集、
主计算机和该USB外围设备在存在往返延迟大于USB规范所允许的往 返延迟的情况下运行。
更详细地,本发明提供用于通过本地扩展器将USB命令从主计算 机传输到数据通信网络上的唯一的网络地址的方法,该方法包括
a) 在本地扩展器处从主计算机接收USB命令;
b) 从所述USB命令提取第一USB地址;
c )利用所述第一 USB地址来访问类似记录的列表内的第 一数据记
录;
d)确定所述第一数据记录是否包含有效的网络地址; e )从所述第 一数据记录提取识别上游USB集线器的第二 USB地址, 通过所述上游USB集线器,可以访问所述第一USB地址;f) 重复步骤(c)到步骤(e)直到发现有效的网络地址;
g) 将所述USB命令封装在网络包中;
h) 将所述网络包定址到所述有效网络地址;以及
i) 将所述被定址的网络包传输到所述数据通信网络。
在另 一个方面,本发明提供用于通过远程扩展器和本地扩展器在主 计算机和USB外围设备之间,优选地在其往返延迟超过1微秒的数据通 信网络上进行异步数据事务的方法,其中所述主计算机以高速运行并且 所述USB外围设备以典型速度(classic-speed)(全速或者低速)运行, 并且其中所述数据以从设备到主机的方向传输,该方法包括
a) 在本地扩展器处从所述主计算机接收对开始分离的数据传输会 话的第一请求,使所述本地扩展器通过网络将所述第一请求转发到所述 远程扩展器,然后使所述本地扩展器产生对所述主计算机的否定应答响 应;
b) 在本地扩展器处从所述主计算机接收对开始分离的数据传输会 话的后续请求,并且使所述本地扩展器继续产生对所述主计算机的否定 应答响应直到所述本地扩展器从所述远程扩展器接收到对所述转发的 第一请求的响应;
c) 在远程扩展器处接收对开始分离的数据传输会话的转发的所述 第一请求,使所述远程扩展器将对开始分离的数据传输会话的转发的所 述请求转换为对数据传输的典型速度请求,然后使所述远程扩展器将对 数据传输的所述典型速度请求转发到所述USB外围设备;
d) 在远程扩展器处产生肯定应答响应并且通过网络将所述肯定应 答响应转发到所述本地扩展器;
e) 在本地扩展器处接收转发的所述肯定应答响应,并且使所述本
'f )在本地扩展器处从所述主J算机接收对开始分:的数据传输会话 计算机;
g)在远程扩展器处从所述USB外围设备接收数据传输响应,并且 使所述远程扩展器产生对所述USB外围设备的肯定应答响应,然后使 所述远程扩展器通过网络将所述数据传输响应转发到所述本地扩展器;h)在本地扩展器处接收对完成分离的数据传输会话的第 一请求, 使所述本地扩展器检查本地存储器是否不存在数据传输响应,然后使所
述本地扩展器产生对所述主计算机的仍没有应答;
应,并且使所述本地扩展器将转发的所述数据传输响应存储在本地存储
器中;以及
j)在本地扩展器处接收对完成分离的数据传输会话的另 一请求,使 所述本地扩展器从本地存储器检索转发的所述数据传输响应,然后使所 述本地扩展器将检索的所述数据传输响应转发到所述主计算机。
在另 一个方面,本发明提供用于通过本地扩展器和远程扩展器在主 计算机和USB外围设备之间,优选地在其往返延迟超过1微秒的数据通 信网络上进行异步数据事务的方法,其中所述主计算机以高速运行并且 所述USB外围设备以典型速度(全速或者低速)运行,并且其中所述 数据以从主机到设备的方向传输,该方法包括
a )在本地扩展器处从所述主计算机接收开始分离的数据传输会话 的第一通知,使所述本地扩展器通过网络将所述第一通知转发到所述远 程扩展器,然后使所述本地扩展器产生对所述主计算机的否定应答响 应;
b) 在本地扩展器处从所述主计算机接收开始分离的数据传输会话 的后续通知,并且使所述本地扩展器继续产生对所述主计算机的否定应 答响应直到所述本地扩展器从所述远程扩展器接收到对转发的所述第 一通知的响应;
c) 在远程扩展器处接收开始分离的数据传输会话的转发的所述第 一通知,使所述远程扩展器将开始分离的数据传输会话的转发的所述通 知转换为数据传输的典型速度通知,然后使所述远程扩展器将数据传输 的所述典型速度通知转发到所述USB外围设备;
d) 在远程扩展器处产生肯定应答响应,并且通过网络将所述肯定 应答响应转发到所述本地扩展器;
e) 在本地扩展器处接收转发的所述肯定应答响应,并且使所述本
、f ):本地扩展器处从所述主计算机接收开始分离:数据传输会话的应,
算机;
.到所述主计
g) 在远程扩展器处从所述USB外围设备接收肯定应答响应,并且
使所述远程扩展器通过网络将所述肯定应答响应转发到所述本地扩展
器;
h) 在本地扩展器处接收对完成分离的数据传输会话的第 一请求, 使所述本地扩展器检查本地存储器是否不存在肯定应答响应,然后使所 述本地扩展器产生对所述主计算机的仍没有应答;
器中;以及
j)在本地扩展器处接收对完成分离的数据传输会话的另 一请求,使 所述本地扩展器从本地存储器检索转发的所述肯定应答响应,然后使所 述本地扩展器将检索的所述肯定应答响应转发到所述主计算机。
在另 一个方面,本发明提供用于通过远程扩展器和本地扩展器在主 计算机和USB外围设备之间,优选地在其往返延迟超过1微秒的数据通 信网络上进行同步数据事务的方法,其中所述主计算机以高速运行并且 所述USB外围设备以典型速度(全速或者低速)运行,并且其中所述 数据以从设备到主机的方向传输,该方法包括
a)在本地扩展器处从所述主计算机接收对开始分离的数据传输会 话的第 一请求,使所述本地扩展器通过网络将对开始分离的数据传输会 话的所述第一请求转发到所述远程扩展器;
b )在本地扩展器处接收对完成分离的数据传输会话的第 一请求, 使所述本地扩展器检查本地存储器是否不存在分离的数据传输响应的 完成序列,然后使所述本地扩展器产生对所述主计算机的空数据响应;
c )在远程扩展器处接收对开始分离的数据传输会话的转发的所述 第 一请求,使所述远程扩展器将对开始分离的数据传输会话的转发的所 述请求转换为数据传输的典型速度请求,然后使所述远程扩展器将对数 据传输的所述典型速度请求转发到所迷USB外围设备;
d)在远程扩展器处从所述USB外围设备接收数据传输响应,并且 使所述远程扩展器将接收的所述数据传输响应转换为分离的数据传输 响应的序列,并且然后使所述远程扩展器通过网络将分离的数据传输响应的所述序列转发到所述本地扩展器;
e)在本地扩展器处从所述远程扩展器接收转发的分离的数据传输
响应的所述序列,并且使所述本地扩展器将转发的分离的数据传输响应
的所述序列存储在本地存储器中;
f )在本地扩展器处从所述主计算器接收对开始分离的数据传输会话 的后续请求,并且使所述本地扩展器通过网络将所述后续请求转发到所 述远程扩展器;以及
g)在本地扩展器处接收对完成分离的数据传输会话的后续请求的 序列,使所述本地扩展器检查本地存储器是否存在分离的数据传输响应 的完成序列,然后使所述本地扩展器从存储器检索分离的数据响应的所 述序列,并且将分离的数据响应的所述序列转发到所述主计算机。
在另一个方面,本发明提供用于通过本地扩展器和远程扩展器在主 计算机和USB外围设备之间,优选地在其往返延迟超过1微秒的数据通 信网络上进行同步数据事务的方法,其中所述主计算机以高速运行并且 所述USB外围设备以典型速度(全速或者低速)运行,并且其中所述 数据以从主冲几到设备的方向传输,该方法包括
a) 在本地扩展器处从所述主计算机接收开始分离的数据传输会话 的通知,使所述本地扩展器通过网络将开始分离的数据传输会话的所述 通知转发到所述远程扩展器,然后使所述远程扩展器将开始分离的数据 传输会话的所述通知存储在本地存储器中;
b) 在本地扩展器处从所述主计算机接收继续分离的数据传输会话 的第 一通知,使所述本地扩展器通过网络将继续分离的数据传输会话的 所述第一通知转发到所述远程扩展器,然后使所述远程扩展器将继续分 离的数据传输会话的所述第 一通知存储在本地存储器中;
c) 在本地扩展器处从所述主计算机接收继续分离的数据传输会话 的另一通知,使所述本地扩展器通过网络将继续分离的数据传输会话的 所述另一通知转发到所述远程扩展器,然后使所述远程扩展器将继续分 离的数据传输会话的所述另一通知存储在本地存储器中;
d) 在本地扩展器处从所述主计算机接收完成分离的数据传输会话 的通知,使所述本地扩展器通过网络将完成分离的数据传输会话的所述 通知转发到所述远程扩展器,然后使所述远程扩展器将完成分离的数据 传输会话的所述通知存储在本地存储器中;e) 在远程扩展器处将存储的开始分离的数据传输的所述通知、存 储的继续分离的数据传输的所述第 一通知、存储的继续分离的数据传输 的所述另 一通知以及存储的完成分离的数据传输会话的所述通知组合
成数据传输的典型速度通知;以及
f) 使所述远程扩展器将数据传输的所述典型速度通知转发到所述
USB外围设备。
优选实施例的描述
在优选实施例中,该主计算机和该USB外围设备可以是任何支持 USB规范的标准单元或设备。优选地,不需要对所述主计算机的硬件或 者软件做出修改。
优选地,本地扩展器是通过标准USB电缆连接到所述主计算机的 自含式(self-contained)单元。
优选地,远程扩展器是通过多个标准USB电缆连接到所述多个USB 外围设备的自含式单元。
该数据通信网络不限于任何特定的传输媒体或者协议,而是能够在 操作中在所述主计算机和所述多个USB外围设备之间引入超过1微秒 的往返传输延迟的数据通信网络。所述数据通信网络所必需的属性是在 至少一个本地扩展器单元和至少一个远程扩展器单元之间提供通信路
径。优选地,所述数据通信网络在至少一个本地扩展器单元和多个远程 扩展器单元(一点对多点配置)之间提供通信路径。例如,诸如那些基 于有线以太网、无线以太网、IEEE 802.15.3和因特网的网络都满足这些 要求。
本发明的方法和装置最优选地用于这样的系统,其中所述主计算机 是个人计算机,并且所述多个USB外围设备由USB闪存驱动器、USB 硬盘驱动器、USB CD/DVD驱动器、USB相机、USB鼠标、USB键盘、 USB集线器或者任何其它与USB规范兼容的设备组成。
在本地扩展器单元的优选实施例中,该本地扩展器包括上游收发器 和下游收发器,并且该上游收发器是标准USB收发器以及该下游收发 器是无线收发器。
在本地扩展器单元的另一个优选实施例中,该上游收发器是标准 USB收发器以及该下游收发器是以太网收发器。在远程扩展器单元的优选实施例中,该远程扩展器包括上游收发器 和下游收发器,并且该上游收发器是无线收发器以及该下游收发器是标 准USB收发器。
在远程扩展器单元的另一个优选实施例中,该上游收发器是以太网
收发器以及该下游收发器是标准USB收发器。


就本发明的结构、组织、使用、和操作方法以及其另外的目的和优 点而言,被认为是本发明的特性的新颖特征将从所附附图得到更好的理 解,本发明的当前优选实施例将以实例的方式在图中示出。然而,应当 明确地理解,那些附图的目的仅是说明和描述,而不是限制本发明。现
在将结合附图以实例的形式来描述本发明的实施例,其中 图1是根据USB规范的典型系统拓朴的框图; 图2是根据本发明的相应的系统拓朴的框图。 图3是根据USB规范的集线器的框图。
图4是示出根据本发明的在网络上分配USB集线器功能的框图5是根据现有技术的USB规范的典型的USB事务的时序图。
图6是根据本发明的本地扩展器单元的框图7是根据本发明的远程扩展器单元的框图8是示出根据本发明的处理连接事件的序列图9是示出根据本发明的处理断开事件的序列图IO是根据本发明而配置的记录系统的拓朴的列表;
图11是示出根据本发明的处理分离的异步IN事务的序列图12是示出根据本发明的处理分离的异步OUT事务的序列图13是示出根据本发明的处理分离的同步IN事务的序列图;以及
图14是示出根据本发明的处理分离的同步OUT事务的序列图。
具体实施例方式
图1是根据USB规范组装的现有技术系统的框图。根据USB规范, USB使能的计算机(20)可以通过USB集线器(31 )以及通过一串USB 集线器(31和32,以及31到34)连接到多个USB设备(40到45)。 一个设备不能连接到另一个设备并且能够在单个串联链中连接的集线器的最大数为五。用于互连计算机、集线器或设备的每个电缆的最大长 度是5米。
图2是根据本发明的用于通过网络与USB设备进行通信的系统的框图。
在该布置中,包括用于主计算机(20)的输入/输出操作的USB子 动作由本地扩展器(50)截获,该本地扩展器(50)通过标准USB电 缆连接到所述主计算机。本地扩展器(50)优选地产生USB协议的"修 改"形式,通过网络将该USB协议传递到多个远程扩展器(51a、 51b、 51c),该多个远程扩展器(51a、 51b、 51c)能够位于距所述本地扩展 器(50)的扩展距离处。如前所述,集线器32和33,以及装置42连接 到远程扩展器51a、 51b、和51c。
在本发明的该实施例中,将主计算机(20)和本地扩展器(50)组 合为单个的单元。对本领域技术人员来说显而易见的是,尽管可以使用 这些部件的不同组合,但可替换的封装(packaging)布置是可能的。
每个远程扩展器(51a、 51b、 51c)从网络(21)接收信号,然后 如有必要,优选地将所接收的信号转换为与USB协议兼容的电信号, 并且通过USB电缆将这些电信号传递到直接连接的USB集线器(32、 33)以及USB外围设备(42)。 USB集线器(32、 33 )将信号中继(relay ) 到间接连接的USB外围设备(40、 41、 43、 44, 45 )以及中继到间接 连接的USB集线器(34)。当信号从USB外围设备(40到45)传送到 主计算机(20)时,发生相反的过程。
此外,在本发明的该实施例中,将远程扩展器(51b)和USB外围 设备(42)组合为单个的单元。对本领域技术人员来说显而易见的是, 尽管可以使用这些部件的不同组合,但可替换的封装布置是可能的。
而且,在本发明的该实施例中,将远程扩展器(51a)和USB集线 器(32)组合为单个的单元。对本领域技术人员来说仍是显而易见的是, 尽管可以使用这些部件的不同组合,但可替换的封装布置是可能的。
另外,在本发明的该实施例中,选择了三个远程扩展器、三个远程 集线器和六个USB外围设备的特定布置。对于本领域技术人员来说显 而易见的是,可以使用不同总数(p叩ulation)的这些集线器和设备而且 可替换的连接布置是可能的。
在本发明的该实施例中,数据通信网络(21 )是有线以太网并且在
30主计算机(20)和USB外围设备(42)之间的往返延迟能够达到例如1 毫秒或更长。然而,在其它实施例中,数据通信网络能够被改变,例如, 在本发明的另一个实施例中,该数据通信网络(21)可以是无线网络并 且在主计算机(20)和USB外围设备(42)之间的往返延迟能够达到 例如100毫秒或更长。在本发明的进一步实施例中,该数据通信网络(21 ) 可以是因特网连接并且在主计算机(20)和USB外围设备(42)之间 的往返延迟能够达到例如1秒或更长。
因而,对于本领域技术人员来说显而易见的是,可以使用不同的数 据通信网络而且相应的通信往返延迟可以相应改变。
图3是根据USB规范组装的现有技术USB集线器的框图。所述USB 集线器安装有用于与主计算机或者上游集线器进行通信的上游端口
(60) 以及用于与多个USB设备或者下游USB集线器进行通信的多个 下游端口 (65a、 65b、 65c)。
到达上游端口 (60)的USB子动作被转发到集线器中继器(62), 该集线器中继器(62)确定所述USB子动作是否能够被直接转发到下 游端口 (65a、 65b、 65c )中的一个或必须被导向到事务转换器(61) 或者集线器控制器(63)。必须由高速格式转换成典型速度格式的USB 子动作被导向到事务转换器(61)。涉及该集线器的内部操作的USB 子动作被导向到集线器控制器(63)。涉及直接连接到下游端口 (65a、 65b、 65c)的USB外围设备的状态的USB子动作被导向到集线器控制 器(63 )。
由所述事务转换器(61)将从集线器中继器(62)到达事务转换器
(61) 的USB子动作从高速格式转换为典型速度格式,然后通过路由 选择逻辑(64)转发到适当的下游端口 (65a、 65b或者65c)。
在上游方向,到达任何下游端口 (65a、 65b或者65c)的高速USB 子动作由路由选择逻辑(64)转发到集线器中继器(62),该集线器中 继器又将所述高速USB子动作转发到上游端口 (60)。到达下游端口 (65、 65b或者65c)的典型速度的USB子动作由路由选择逻辑(64) 转发到事务转换器(61),在该传输事务转换器(61)中所述典型速度 的USB子动作在被转发到集线器中继器(62)之前被转换为高速USB 格式并且在那之后被转发到上游端口 (60)。
上游端口的数目一般为一个,但是下游端口的数目可以从1变到255,并且不限于所示的三个端口 。
图4是示出根据本发明的在网络上分配USB集线器功能的框图。 下面将关于远程扩展器(51b)描述本发明的操作以说明该方法,但是 本领域技术人员应当清楚,类似的描述也适用于远程扩展器(51a)和 (51c),并且可以部署额外的远程扩展器,超过图4所示的三个单元, 高达USB集线器所允许的最多端口数(例如当前可达最多255个端口 )。
在本发明的该布置中,上游端口 (60)和集线器控制器(63)位于 本地扩展器(50)内。图3的用于在剩余的集线器功能之间提供连接性 的集线器中继器功能(62)被复制(duplicate)为本地扩展器(50)内 的本地中继器(71)以及远程扩展器(51b)内的远程中继器(75b)。
图3的事务转换器(61 )位于远程扩展器(51b)内,其称为事务 转换器(61b)。图3的下游端口 (65b)位于远程扩展器(51b)内, 称为下游端口 (65b)。
图3的路由选择逻辑(64)可以由本地扩展器(50)中的本地路由 器(72)以及远程扩展器(51b)中的远程路由器(74b)替代。而在常 规的USB集线器中,要求路由选择逻辑(64)将通信量导向特定端口 (65a、 65b或者65c),在本发明中,要求该替换逻辑(72和74b )将 通信量导向识别远程扩展器(51a、 51b或者51c)或者本地扩展器(50) 的特定网络节点。
通过添加虚拟端口 (73a、 73b、 73c)来增强集线器控制器(63) 的功能性,其中所述虚拟端口将用于保持物理下游端口 (65a、 65b、 65c) 的状态的本地机制(mechanism)提供给所述集线器控制器(63)。在 该布置中,每个本地虚拟端口 (例如73b)提供其对应的远程物理端口 (例如65b )的本地仿真,使该集线器控制器(63 )能够对本地资源(73b ) 进行操作,而所述虛拟端口 (73b)负责将操作中继给远程物理端口 (65b)。当发生在远程物理端口 (65b)处的物理事件被中继到相应的 本地虚拟端口 (73b)时,以相反的方向发生类似过程,然后所述本地 虚拟端口 (73b)负责向集线器控制器(63)通知所述物理事件。
图5是根据现有技术USB规范的典型USB事务的时序图。
USB事务由一个、两个或更多阶段组成,其中阶段由数据流方向的 反转(reversal)而终止。每个阶段能够包含零个、 一个或多个离散的 USB包(packet),包括单个阶段的包的集合在此称为USB子动作。在图5所示的实例中,事务#1占用三个阶段并且是定址到异步终点
(endpoint)的IN命令的实例。事务#2占用 一个阶段并且是定址到同步 终点的OUT命令的实例。事务#3、 #6和#8占用两个阶段,并且是定址 到异步终点的OUT命令的实例。
添加的事务#4和#5也占用两个阶段,并且是定址到异步终点的IN 命令的另外的实例。事务#7占用三个阶段并且是定址到低速异步终点的 IN命令的实例。.
图6是根据本发明的本地扩展器单元(50)的增强框图。包括在所 述本地扩展器单元(50)中的特定增强是虛拟设备控制器(83)的添加。 所述虚拟设备控制器(83)能够被配置成对物理USB设备或多个设备 的操作仿真,并且从而能够被用来将增值(value-added)特征添加到所 述本地扩展器单元(50)。在本发明的一个实施例中,所述虛拟设备控 制器(83)对无线电管理功能仿真,并且能够被用来控制网络收发器(84) 的物理参数。在本发明的另一个实施例中,所述虚拟设备控制器(83) 对网络接口卡仿真,并且能够被用来通过数据通信网络(21 )传输TCP/IP 包。对于本领域技术人员来说显而易见的是,这些功能不是唯一的并且 可以以类似方式来"l丸行其它功能。
在第一操作模式中,来源于主计算机(20)的USB子动作由USB 收发器(81)接收并且通过上游端口 (60)转发到本地中继器(71)。 根据需要,所述USB子动作的内容由本地中继器(71)检查并且被转 发。
如果所述USB子动作被定址到虚拟USB集线器(31),那么所述 USB子动作被转发到集线器控制器(63)。如果所述USB子动作被定 址到USB外围设备(40到45 )或者物理USB集线器(32到34 ),那 么所述USB子动作被转发到本地路由器(72)。如果所述USB子动作 被定址到虚拟USB设备,那么所述USB子动作被转发到虚拟设备控制 器(83 )。
就像下面所描述的那样,如果对所述USB子动作的响应已经存在 于本地存储器(82)中,那么所述响应由本地中继器(71)从存储器检 索并且通过上游端口 (60)转发到USB收发器(81)。如果需要对所 述USB子动作的合成(synthetic)响应,那么所述合成响应由本地中继 器(71 )产生并且通过上游端口 (60)转发到USB收发器(81 )。当本地中继器(71)将USB子动作转发到本地路由器(72)时, 那么包含在所述USB命令中的USB地址由所述本地路由器(72)检查 并且被转换(translate )为网络地址。所述本地路由器(72 )将所述USB 子动作封装在网络包中,用所述转换的网络地址对所述网络包定址,并 且将所述被定址的网络包转发到网络收发器(84)以便通过所述网络 (21)传输到远程扩展器(51b)。
在第二操作模式中,来自所述远程扩展器(51b)的被定址的网络 包由网络收发器(84)接收并且被转发到本地路由器(72)。所述本地 路由器(72 )从所述被定址的网络包中提取USB子动作,检查所述USB 子动作的内容,并且将所述USB子动作转发到本地中继器(71)。如 果所述内容代表USB响应子动作,那么所述USB响应子动作被存储在 本地存储器(82)中,以便以后响应于USB命令子动作而传输到USB 收发器,如上文所述。如果所述内容代表指示直接连接到所述远程扩展 器(51b)的USB设备(42)的状态改变的系统子动作,那么所述系统 子动作将被转发到集线器控制器(63)。集线器控制器(63)检查所述 转发的系统子动作的内容并且更新虚拟端口#2 (73b)的状态。
图7是根据本发明的远程扩展器单元(51)的增强框图。在该布置 中,所述远程扩展器单元(51)的操作由发生在网络收发器(91)或 USB收发器(92)处的激励激活。对于需要特定方案(scenario)的地 方,下列描述将使用远程扩展器(51b)来说明本方法,但是本领域技 术人员应当清楚,类似的描述也适用于远程扩展器(51a)和(51c), 而且可以部署超过图4所示的三个单元的额外的远程扩展器。
根据USB规范,需要使用事务转换器的事务被称为分离事务。相 应地,需要使用所述事务转换器的事务被称作分离的事务,不需要使用 所述事务转换器的事务在此处被称为原子(atomic)事务。
在第一搡作模式中,被定址的网络包由网络收发器(91)接收并且 被转发到远程路由器(74)。所述远程路由器(74)从所述被定址的网 络包中提取USB子动作,检查所述USB子动作的内容,并且将所述USB 子动作转发到远程中继器(75)。如果所述内容代表指示分离事务的 USB子动作,那么将所述USB子动作转发到事务转换器(61)。如果 所述内容代表指示原子(非分离的)USB事务的USB子动作,那么将 所述USB子动作通过下游端口控制器(65)转发到USB收发器(92)。如果所述内容代表系统子动作,那么将所述系统子动作转发到远程控制 器(93 )。
在第二操作模式中,来源于USB外围设备(42 )的USB子动作由 USB收发器(92)接收并且通过下游端口控制器(65)转发到远程中继 器(75)。所述远程中继器(75)检查所述USB子动作的内容,并且 选择性地产生USB确认子动作以便通过下游端口控制器(65)和USB 收发器(92)传输到所述USB外围设备(42)。并且,如果所述USB 子动作的所述内容指示原子USB事务,那么将所述USB子动作转发到 远程路由器(74)。此外,如果所述USB子动作的所述内容指示典型 速度的USB事务,那么将所述USB子动作转发到事务转换器(61), 以便转换成高速的分离事务的格式。然后通过远程中继器(75)将所述 被转换的USB子动作转发到远程路由器(74 )。
当远程路由器(74)从远程中继器(75)接收USB子动作时,所 述远程路由器(74)将所述USB子动作封装在网络包中,用本地扩展 器(50)的网络地址对所述网络包定址,并且将所述被定址的网络包转 发到网络收发器(91)以便通过数据通信网络(21)来进行传输。
在第三操作模式中,USB外围设备(42)的状态改变由下游端口控 制器(65 )通过USB收发器(92 )来检测并且被报告给远程控制器(93 )。 响应于所述报告的状态改变,所述远程控制器产生系统子动作,并且将 所述系统子动作转发到远程中继器(75)以便传输到本地扩展器(50)。
图8是示出根据本发明的处理连接事件的序列图。图中使用的表示 格式是Jacobson等人在(War Jacobson, Magnus Christerson, Patrick Jonsson and Gunnar Overgaard, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, 1992 )中^是出的。为了 说明的目的,假定所述序列图描述了将USB外围设备(42)附着到远 程扩展器(51b)上,并且该远程扩展器(51b)被分配给集线器控制器 (63)上的虚拟端口#2 (73b)。对于本领域技术人员来说显而易见的 是,相同的处理能够适用于将任何USB外围设备或者任何USB集线器 附着到任何远程扩展器上,并且根据需要来分配进一步的虚拟端口 。
该连接序列在段"A"中开始。根据标准USB协议, 一旦通电,在USB 外围设备(42)中的控制逻辑(104)在其USB数据线上驱动(drive) 静态(static) J/K值。所述静态J/K值由远程扩展器(51b)中的控制逻辑(103 )检测并且作为连接子动作通过网络(21 )传输到本地扩展器
(50)。在本地扩展器(50)中的控制逻辑(101)更新相应的虛拟端 口 (73b)的状态并且将所述状态改变事件报告给主计算机(20)。
然后,主计算机(20)中的控制逻辑(100)请求端口#2的状态, 并且在本地扩展器(50)中的控制逻辑(101)用设备已连接的指示来回答。
随后,在段"B"中,主计算机(20)中的控制逻辑(100)发布命令 以清除属于端口#2的连接状态改变指示器(indicator),然后请求通过 发布对端口#2状态的进一步请求已经完成了所述命令的确认。本地扩展 器(50)中的控制逻辑(101)清除属于端口#2的所述连接状态改变指 示器,并且报告没有进一步的状态改变是未完成的(outstanding)。这 些操作完成了物理附着序列。
其后,在段"C"中,主计算机(20)中的控制逻辑(100)通过产生 USB命令来发起设备重置序列,以便重置附着到端口#2的设备。本地 扩展器(50)中的控制逻辑(101)将所述USB命令转换为重置子动作 并且通过网络(21)将所述重置子动作传输到远程扩展器(51b)。远 程扩展器(51b)中的控制逻辑(103)接收所述被传输的重置子动作, 并且在下游端口 (65b)的数据线上驱动重置状态(SE0)。在传输该重 置状态达到由USB规范确定的一段时间以后,所述远程扩展器(51b) 建立所述USB外围设备(42)的操作速度,并且通过网络(21)将作
器(50)中的控制逻辑(101)更新相应的虚拟端口的状态并且将所述 状态改变事件报告给主计算机(20)。
然后,主计算机(20)中的控制逻辑(100)请求端口#2的状态, 并且本地扩展器(50)中的控制逻辑(101)用重置完成加上速度指示 来回答。
随后,在段"D"中,主计算机(20)中的控制逻辑(100)发布命令 以清除属于端口#2的重置状态改变指示器,然后请求所述命令已经通过 发布对端口#2的状态的进一步请求而被完成的确认。本地扩展器(50) 中的控制逻辑(101)清除属于虚拟端口#2 (73b)的所述重置状态改变 指示器,并且报告没有进一步的状态改变是未完成。这些操作完成了设 备重置序列。图9是示出根据本发明的处理断开事件的序列图。为了说明的目的,
假定所述序列图描述了将USB外围设备(42)从远程扩展器(51b)分 离,并且该远程扩展器(51b)被分配给集线器控制器(63)上的虛拟 端口弁2(73b)。对于本领域技术人员来说显而易见的是,相同的处理 能够适用于将任何USB外围设备或者任何USB集线器从任何远程扩展 器分离,并且根据需要来分配进一步的虚拟端口。
该断开序列在段"A"中开始。 一旦设备分离,USB外围设备(42) 中的控制逻辑(104 )就停止在其USB数据线上驱动静态J/K值。驱动 静态J/K值的所述停止由远程扩展器(51b)中的控制逻辑(103)检测 并且作为断开子动作而通过网络(21)传输到本地扩展器(50)。本地 扩展器(50)中的控制逻辑(101)更新相应的虛拟端口的状态,并且 将所述状态改变事件报告给主计算机(20)。
然后,主计算机(20)中的控制逻辑(100)请求端口#2的状态, 并且本地扩展器(50)中的控制逻辑(101)用设备断开指示来回答。
随后,在段"B"中,主计算机(20)中的控制逻辑(100)发布命令 以清除属于端口#一2的连接状态改变指示器,然后发布进一步的命令以 清除端口#2的使能状态。然后主计算机(20)中的控制逻辑(100)请 求所述命令通过发布对端口#2的状态的进一步请求而已经完成的确认。 本地扩展器(50)中的控制逻辑(101)清除所述连接状态改变指示器 以及属于虚拟端口#2 (73b)的所述使能状态,并且报告没有进一步的 状态改变是未完成的。这些操作完成了物理分离序列。
图10是根据本发明而配置的记录系统拓朴的列表。
通过在所述列表中呈现的数据提供的方法,图2呈现的实例拓朴可 以被映射(map)。接下来,要求图2所示的本发明的拓朴对图1所示 的现有技术系统的拓朴仿真。设备列记录了包含在图2中的每个设备和 集线器的USB地址。为了清楚起见,将该USB地址设置为与图2中的 框的编号一致。对于本领域技术人员来说显而易见的是该关联不是必需 的(essential),并且通过主计算4几(20)可以在l-127范围内分配任何 的USB i也址。
以USB集线器(31 )为例。在图1中,所述USB集线器(31 )是 物理单元并且被分配了 USB地址31。在图2中,所述USB集线器是由 本地扩展器(50)、远程扩展器(51a、 51b和51c)和网络(21)的联合操作所创建的虚拟单元。为了对所述物理USB集线器(31)的操作 进行仿真,所述虚拟集线器也被分配了 USB地址31。
父/地址列记录设备或者集线器连接到的上游集线器的USB地址。 父/端口列记录设备或者集线器连接到的上游集线器的端口号。子/端口 # 列记录连接到所述端口号的下游设备或者集线器的USB地址。列表所 示的子/端口#列的数目是四,这能够使最多四个远程远程扩展器单元纳 入系统中。对于本领域技术人员来说显而易见的是这些值不是唯 一 的而 且当前能够选择从1到255范围内的任何值,从而使远程扩展器单元的 最大数目也能够落入1到255的范围内。
网络地址列记录设备或者集线器直接连接到的网络节点的网络地址。
所述列表的操作将通过选择的特定实例来进一步描述。以USB集 线器(31)为例,该USB集线器(31)连接到主计算机(20)并且担 当USB拓朴的根(root)。在图2中,所述USB集线器(31 )通过分 布在扩展器(50、 51a、 51b和51c)中的功能以及特别地通过本地扩展 器(50)中的集线器控制器(63)而实现为虛拟集线器。所述USB集 线器(31 )作为所述列表中的设备(31 )而出现。因为USB集线器(31 ) 形成该系统的根,所以其在该系统内没有父,并且其父地址和端口号的 值被设置为空(null)。所述USB集线器(31)的子条目(entry)表明 USB集线器(32)被连接到其端口#1, USB外围设备(42)被连接到其 端口#2,以及USB集线器(33)被连接到其端口#4。所述USB集线器 (31)的网络条目表明其被连接到网络节点(N0)。对于本领域技术人 员来说显而易见的是值(N0)是代表性的,并且可以使用适于被选择来 在所述本地扩展器和远程扩展器之间提供数据通信的网络的任何其它 值。例如如果所述数据通信网络是以太网,那么所述网络条目将是以 太网地址。如果所述数据通信网络是因特网网络,那么所述网络条目将 是IP地址。
在所述列表中的USB集线器(34)的条目表明其父是USB集线 器(33)上的端口#3; USB外围设备(44)连接到其端口#1; USB外围 设备(45)连接到其端口#4;以及所述USB集线器(34)不直接连接 到网络(21)。然后通过经过其父或父的父追溯其连接性,来发现用于 USB集线器(34)的网络地址。在USB集线器(34)的实例中,其父是USB集线器(33)并且所述USB集线器(33)的网络地址是(N3)。 本发明通过这样的方式来适应根据USB规范的USB集线器的链路 (chaining)。
USB外围设备(42)的条目表明其父是USB集线器(31 )上的端 口#2并且其在节点(N2)处直接连接到网络(21)。
图11是示出根据本发明的处理分离的异步IN事务的序列图。
主计算机(20)中的控制逻辑(100)通过将第一开始-分离IN命令 (first start-split IN command )发布到本地扩展器(50 )来发起所述事务。 控制逻辑(101)通过将否定响应子动作传输到所述主计算机(20)来 响应所述第一开始-分离IN命令,然后通过网络(21 )将所述第一开始-分离IN命令转发到远程扩展器(51b)。每当从主计算机(20)接收到 后续的开始-分离IN命令并且没有从远程扩展器(51b)接收到响应时, 控制逻辑(101 )就继续产生否定响应子动作。
远程扩展器(51b)中的控制逻辑(103)从网络(21)接收所述第 一开始-分离IN命令,将所述开始-分离IN命令转换为典型速度IN命令, 然后将所述典型速度IN命令转发到USB外围设备(42)。此外,远程 扩展器(51b)中的控制逻辑(103)通过网络(21)将肯定响应子动作 传输到本地扩展器(50),在该本地扩展器(50)中将所述肯定响应子 动作存储在本地存储器中。当主计算机(20)中的控制逻辑(100)发 布进一步的开始-分离IN命令时,本地扩展器(50)中的控制逻辑(101 ) 从本地存储器检索所述肯定响应子动作并且将所述检索的肯定响应子 动作转发到主计算机(20)。然后,主计算机(20)中的控制逻辑(IOO) 发布完成-分离IN命令,并且本地扩展器(50)中的控制逻辑(101 )以 仍没有(not-yet)响应来回答。
同时,USB外围设备(42)中的控制逻辑(104)产生典型速度 DATA0/1响应并且将所述响应转发到远程扩展器(51b)。远程扩展器 (51b)中的控制逻辑(103)产生典型速度确认子动作并且将所述子动 作转发到USB外围设备(42)。此外,远程扩展器(51b)中的控制逻 辑(103 )通过网络(21 )将所述DATA0/1响应转发到本地扩展器(50 ), 在该本地扩展器(50)中将所述DATAO/1响应子动作存储在本地存储 器中。当主计算机(20)中的控制逻辑(100)发布进一步的完成-分离 IN命令时,本地扩展器(50)中的控制逻辑(101)从本地存储器检索所述DATA0/1响应子动作,并且将所述4全索的DATA0/1响应子动作转 发到主计算机(20)。
图12是示出根据本发明的处理分离的异步OUT事务的序列图。
主计算机(20)中的控制逻辑(100)通过将第一开始-分离的 OUT/DATAO/1命令(first start-split OUT/DATAO/1 command)发布到本 地扩展器(50)而发起所述事务。控制逻辑(101)通过将否定响应子 动作传输到所述主计算机(20)来响应所述第 一开始-分离的 OUT/DATAO/1命令,然后通过网络(21)将所述第一开始-分离的 OUT/DATAO/1命令转发到远程扩展器(51b)。每当从主计算机(20) 接收到后续的开始-分离的OUT/DATAO/1命令并且没有从远程扩展器 (51b)接收到响应时,控制逻辑(101)就继续产生否定响应子动作。
远程扩展器(51b)中的控制逻辑(103)从网络(21)接收所述第 一开始-分离的OUT/DATAO/1命令,将所述开始-分离的OUT/DATAO/1 命令转换为典型速度的OUT/DATAO/1命令,然后将所述典型速度的 OUT/DATAO/1命令转发到USB外围设备(42 )。此外,远程扩展器(51b ) 中的控制逻辑(103)通过网络(21)将肯定响应子动作传输到本地扩 展器(50),在该本地扩展器(50)中将所述肯定响应子动作存储在本 地存储器中。当主计算机(20)中的控制逻辑(100)发布进一步的开 始-分离的OUT/DATAO/1命令时,本地扩展器(50)中的控制逻辑(101 ) 从本地存储器检索所述肯定响应子动作并且将所述检索的肯定响应子 动作转发到主计算机(20)。然后,主计算机(20)中的控制逻辑(100) 发布完成-分离的OUT命令并且本地扩展器(50)中的控制逻辑(101) 以仍没有响应来回答。
同时,USB外围设备(42)中的控制逻辑(104)产生典型速度的 肯定响应子动作并且将所述子动作转发到远程扩展器(51b)。远程扩 展器(51b)中的控制逻辑(103)通过网络(21 )将所述肯定响应子动 作传输到本地扩展器(50),在该本地扩展器(50)中将所述肯定响应 子动作存储在本地存储器中。当主计算机(20)中的控制逻辑(100) 发布进一步的完成-分离的OUT命令时,本地扩展器(50)中的控制逻
:响应子动作转发到主:十算机(20) 。 °;'"''、'
图13是示出根据本发明的处理分离的同步IN事务的序列图。主计算机(20)中的控制逻辑(100)通过将第一开始-分离的IN 命令(first start-split IN command )发布到本地扩展器(50 )而开始所述 事务。本地扩展器(50)中的控制逻辑(101 )通过网络(21 )将所述 第一开始-分离IN命令转发到远程扩展器(51b)。远程扩展器(51b) 中的控制逻辑(103)从网络(21 )接收所述第一开始-分离IN命令,将 所述开始-分离IN命令转换为典型速度的IN命令,然后将所述典型速度 的IN命令转发到USB外围设备(42)。在延迟以后,主计算机(20) 中的控制逻辑(100)将完成-分离IN命令传输到本地扩展器(50),并 且本地扩展器(50)中的控制逻辑(101)以空数据响应来回答。每当 从主计算机(20)接收到后续的完成-分离IN命令并且还没有从远程扩 展器(51b)接收到DATAO响应时,控制逻辑(101 )就继续产生空数 据响应。
同时,USB外围设备(42)中的控制逻辑(104)产生典型速度的 DATAO响应并且将所述响应转发到远程扩展器(51b)。远程扩展器(51b) 中的控制逻辑(103)将所述典型速度的DATAO响应转换为高速的 MDATA/DATAO响应的序列并且通过网络(21 )将所迷响应转发到本地 扩展器(50),在本地扩展器(50)中将所述MDATA/DATAO响应存 储在本地存储器中。当主计算机(20)中的控制逻辑(100)发布进一 步的完成-分离IN命令的序列时,本地扩展器(50 )中的控制逻辑(101 ) 从本地存储器检索所述MDATA/DATAO响应并且将所述4企索的 MDATA/DATAO响应转发到主计算机(20 )。
图14是示出根据本发明的处理分离的同步OUT事务的序列图。 主计算机(20)中的控制逻辑(100)通过将开始-分离-起始 OUT/DAT AO命令(start-split-begin OUT/DAT AO command )发布到本地 扩展器(50)而开始所述事务。本地扩展器(50)中的控制逻辑(101) 通过网络(21 )将所述开始-分离-起始的OUT/DATAO命令转发到远程 扩展器(51b)。
主计算机(20)中的控制逻辑(100)通过将一个或多个开始-分离-中间OUT/DATAO命令(start-split-mid OUT/DATAO command)发布到 本地扩展器(50)而继续所述事务。本地扩展器(50)中的控制逻辑(101 ) 通过网络(21)将每个开始-分离-中间OUT/DATAO命令转发到远程扩 展器(51b)。200780035720.X
说明书第29/29页
主计算机(20)中的控制逻辑(100)通过将开始-分离-结束
OUT/DATA0命令(start-split-end OUT/DATA0 command)发布到本地扩 展器(50)而完成所述事务。本地扩展器(50)中的控制逻辑(101) 通过网络(21 )将所述开始-分离-结束OUT/DATA0命令转发到远程扩 展器(51b)。
当远程扩展器(51b)中的控制逻辑(103)接收到所迷开始-分离-结束OUT/DATA0命令时,所述控制逻辑(103)将所述开始-分离-起始 OUT/DATA0命令、所述一个或多个开始-分离-中间OUT/DATA0命令 以及所述开始-分离-结束OUT/DATA0命令组合为典型速度的 OUT/DATA0命令,并且将所述命令转发到USB外围设备(42)。
由此,4艮明显,根据本发明提供了这样的方法、系统和/或USB相 关的装置,其完全、或者至少部分满足优于上文所述的现有技术的意图、 目的和优点。因此,尽管已经描述了本发明的特定实施例,应当理解本 领域技术人员可以提出其替换方案、修改和变化,并且意图使本说明书 包括所有这些落入所附的权利要求范围内的替换方案、修改和变化。
另外,为清楚起见并且除非另有说明,当在本发明的说明书以及权 利要求书中使用词"包括"和其变形(例如"包括")时,目的不是排除其 它添加物、部件、整数或步骤。
权利要求
1.一种用于在主计算机和一个或者多个USB外围设备之间传输数据的计算机系统,其中所述USB外围设备被分布在遍及数据通信网络,并且其中所述网络上的传输延迟大于USB规范通常所允许的传输延迟,所述计算机系统包括连接到本地扩展器设备的主计算机,该本地扩展器设备又通过数据通信网络连接到一个或者多个远程扩展器设备,该一个或者多个远程扩展器设备又连接到多个USB外围设备,其中在所述主计算机和所述USB外围设备之间的信号被保存、收集、吸收、或者以其它方式在本地扩展器和/或远程扩展器中被处理以便允许该主计算机和该USB外围设备在存在往返延迟大于USB规范通常所允许的往返延迟的情况下运行。
2. 根据权利要求l所述的计算机系统,其中所述往返延迟包括传输延迟和换向时间延迟,并且其中在主计算片几和USB外围设备之间的所述传输延迟超过l微秒。
3. 根据权利要求l所述的计算机系统,其中所述主计算机是支持USB规范的计算机。
4. 根据权利要求l所述的计算机系统,其中所述多个USB外围设备包括USB闪存驱动器、USB硬盘驱动器、USB CD/DVD驱动器、USB照相机、USB鼠标、USB键盘、USB集线器或者其它任何与USB规范兼容的设备。
5. 根据权利要求1所述的用于在主计算机和一个或者多个USB外围设备之间传输数据的计算机系统,其中所述USB外围设备可以被分布在所允许的传输延迟,所述计算机系统包括a) 用于产生并接受USB子动作的主计算机;b) —个或者多个能够响应于由所述主计算机发起的USB子动作的USB外围设备;c) 连接到所述主计算机的本地扩展器单元,用于将来自所述主计算机的USB子动作转发到数据通信网络,以及用于将从所述数据通信网络接收的USB子动作转发到所述主计算机;d) —个或者多个远程扩展器单元,每个远程扩展器单元被连接到一个或者多个USB外围设备,该远程扩展器单元用于将从所述数据通信网络接收的USB子动作转发到所述USB外围设备,以及用于将从所述USB外围设备接收的USB子动作转发到所述数据通信网络;e) 数据通信网络,用于将来自所述本地扩展器单元的USB子动作转发到所述远程扩展器单元,以及用于将来自所述远程扩展器单元的USB子动作转发到所述本地扩展器单元;f) 在所述本地扩展器单元中用于通过所述数据通信网络将从所述主计算机接收的USB子动作转发到所述远程扩展器单元以及用于产生USB子动作并且将所产生的USB子动作发送到所述主计算机的装置;g) 在所述远程扩展器单元中用于将从所述主计算机接收的所述USB子动作转发到一个或者多个USB外围设备以及用于接收从USB外围设备接收的子动作的装置;h) 在所述远程扩展器单元中用于通过所述数据通信网络将从USB外围设备接收的所述子动作转发到所述本地扩展器单元的装置;i) 在所述远程扩展器单元中用于为确认从USB外围设备接收了USB子动作而产生USB子动作,并且将所述产生的确认USB子动作发送到所述USB外围设备的装置;j )在所述远程扩展器单元中用于响应于从所述主计算机接收的USB子动作而产生USB子动作并且将所述产生的响应USB子动作发送到所述本地扩展器单元的装置;k)在所述本地扩展器单元中用于当通过所述数据通信网络从所述远程扩展器接收的入站USB子动作序列与公共的出站USB子动作有关时而接收并且识別的装置;站USB子动作直到这样的入站USB子动作再次被所述主计算机请求的装置;以及m)在所述本地扩展器单元中用于将所述存储的USB子动作转发到所述主计算机的装置。
6.根据权利要求5所述的计算机系统,还包括a)优选地在所述本地扩展器单元中用于吸收重复的USB子动作的装置;子动作,并且优选地将所述原子USB子动作发送到所述USB外围设备的装置;以及c) 在所述远程扩展器单元中用于将原子USB子动作分解为离散的USB子动作序列,并且优选地将所述离散的USB子动作序列发送到所述本地扩展器单元的装置。
7. —种用于在主计算机和数据通信网络之间传输USB通信量的本地扩展器装置,其中所述USB通信量可以被定址到多个USB外围设备,所述装置包括a) 用于连接到所述主计算机的USB收发器;b) 用于控制所述USB收发器的面向上游的端口;c )用于再生穿过所述装置的USB子动作以及用于在所述装置的各部件之间交换USB子动作的本地中继器单元;d) 用于在由所述装置的处理期间存储USB子动作的存储器单元;e) 用于为在下游(主机到网络)方向移动的USB子动作提供网络地址的本地路由器单元;f) 用于连接到所述数据通信网络的网络收发器;g) 用于响应由所述主计算机产生的关于所述多个USB外围设备的状态的子动作的集线器控制器单元;h )用于例示多个用于管理所述多个USB外围设备状态的虛拟端口的装置;i)用于例示多个用于提供增值功能的虛拟USB设备的装置;j )在所述本地中继器中用于识别定址到所述集线器控制器的U S B子动作的装置;k )在所述本地中继器中用于识别定址到所述多个虛拟USB设备的USB子动作的装置;1 )在多个例示的所述虛拟端口中用于保持所述多个USB外围设备的状态的装置;m)在多个例示的所述虚拟端口中用于从所述数据通信网络接收设备状态改变的信号并更新所述多个USB外围设备的状态的装置;以及n)在所述集线器控制器中用于从所述主计算机接收设备管理命令并且将设备管理信号发送到所述数据通信网络的装置。
8. 根据权利要求7所述的本地扩展器,其中所述USB收发器是标准USB收发器,并且所述网络收发器是无线收发器。
9. 根据权利要求7所述的本地扩展器,其中所述USB收发器是标准USB收发器,并且所述网络收发器是以太网收发器。
10. 根据权利要求7所述的本地扩展器,其中所述本地扩展器是通过标准USB电缆连接到所述主计算机的自含式单元。
11. 用于在数据通信网络和至少 一个USB外围设备之间传输USB通信量的远程扩展器装置,所述装置包括a) 用于连接到所述数据通信网络的网络收发器;b) 用于为在上游(网络到主机)方向上移动的USB子动作提供网络地址的远程路由器单元;c) 用于再生穿过所述装置的USB子动作以及用于在所述装置的各部件之间交换USB子动作的远程中继器单元;d) 用于在高速分离事务和全速/低速原子事务之间进行转换的事务转换器单元;e) 用于在所述装置处理期间存储USB子动作的存储器单元;f) 用于连接到所述USB外围设备的USB收发器;g) 用于控制所述USB收发器的面向下游的端口;h) 在所述远程路由器单元中用于识别分离事务的装置;i) 在所述下游端口控制器中用于检测所迷USB外围设备的状态的装置;j)在所述下游端口控制器中用于产生设备状态信号并且将所述信号发送到所述数据通信网络的装置;k)在所述下游端口控制器中用于从所述数据通信网络接收设备管理信号的装置;以及1)在所述下游端口控制器中用于改变所述U S B外围设备的状态的装置。
12. 根据权利要求ll所述的远程扩展器,其中所述网络收发器是无线收发器,并且所述USB收发器是标准USB收发器。
13. 根据权利要求ll所述的远程扩展器,其中所述网络收发器是以太网收发器,并且所述USB收发器是标准USB收发器。
14. 根据权利要求ll所述的远程扩展器,其中所述远程扩展器是通过多个标准USB电缆连接到所述多个USB外围设备的自含式单元。
15. —种用于在主计算机和一个或者多个USB外围设备之间传输数据的方法,其中所述USB外围设备可以分布在遍及数据通信网络,并且其中所述网络上的传输延迟大于USB规范通常所允许的传输延迟,所述方法包括将主计算机连接到本地扩展器设备;将所述本地扩展器设备通过数据通信网络连接到一个或者多个远程扩展器设备;以及将所述远程扩展器设备连接到一个或者多个USB外围设备,其中在所述主计算机和所述USB外围设备之间的信号被保存、收集、吸收、或者以其它方式在本地扩展器和/或远程扩展器中处理以便允许所述主计算机和所述况下运4亍。
16. 根据权利要求15所述的方法,其中所述方法包括检测USB外围设备附着到所述系统的能力、检测USB外围设备的分离的能力、和/或确定USB功能的网络地址的能力,其中所述USB功能可以是USB集线器或者USB外围设备。
17. 根据权利要求16所述的用于检测由主计算机通过本地扩展器和远程扩展器附着USB外围设备的方法,其中所述主计算机和所述USB外围设备符合USB规范的要求,该方法包括a) 在所述远程扩展器处检测设备附着事件,使所述远程扩展器将设备连接信号发送到所述本地扩展器,然后使所述本地扩展器更新所述USB外围设备的连接状态改变的本地扩展器的本地记录以及所述USB外围设备的连接状态的本地扩展器的本地记录;b) 在所述本地扩展器处从所述主计算机接收对设备状态改变信息的请求,并且使所述本地扩展器通知所述主计算机所述USB外围设备的状态已经改变;c) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备的状态的请求,并且使所述本地扩展器将连接状态改变的所述本地记录以及连接状态的所述本地记录提供给所述主计算机;d) 在所述本地扩展器处从所述主计算机接收清除所述连接状态改变信息的请求,并且使所述本地扩展器清除连接状态改变信息的所述本地记录;e) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备的状态的进一步请求,并使所述本地扩展器将被清除的连接状态改变的所迷本地记录以及连接状态的所述本地记录提供给所述主计算机;f) 在所述本地扩展器处从所述主计算机接收重置所迷USB外围设备 的命令,使所述本地扩展器将重置信号发送到所述远程扩展器,然后使所述远程扩展器对所述USB外围设备执行物理重置;g) 在所述远程扩展器处检测所述USB外围设备的传输速度,使所 述远程扩展器将速度信号发送到所述本地扩展器,然后使所述本地扩展 器更新所述USB外围设备的传输速度的本地扩展器的本地记录以及所 述USB外围设备的重置状态改变的本地扩展器的本地记录;h) 在所述本地扩展器处从所述主计算机接收对设备状态改变信息 的进一步请求,并且使所述本地扩展器通知所述主计算机所述USB外围 设备的状态已经改变;i) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备的 状态的又一请求,并且使所述本地扩展器将所述USB外围设备的传输速 度的所述本地记录以及所述USB外围设备的重置状态改变的本地扩展 器的本地记录提供给所述主计算机;j )在所述本地扩展器处从所述主计算机接收清除所述重置状态改变 信息的请求,并且使所述本地扩展器清除所述重置状态改变信息的本地 记录;以及k)在所述本地扩展器处从所述主计算机接收对所述USB外围设备 的状态的请求,并且使所述本地扩展器将被清除的所述重置状态改变的 本地记录提供给所述主计算机。
18. 根据权利17所述的方法,其中所述方法通过往返延迟超过l微秒 的数据通信网络来操作。
19. 根据权利要求16所述的用于检测由主计算机通过本地扩展器和 远程扩展器分离USB外围设备的方法,其中所述主计算机和所述USB外 围设备符合USB规范的要求,该方法包括a) 在所述远程扩展器处检测设备分离事件,使所述远程扩展器将 设备断开信号发送到所述本地扩展器,然后使所述本地扩展器更新所述 USB夕卜围设备的连接状态改变的本地扩展器的本地记录以及所述USB外 围设备的连接状态的本地扩展器的本地记录;b) 在所述本地扩展器处从所述主计算机接收对设备状态改变信息 的请求,并且使所述本地扩展器通知所述主计算机所述USB外围设备的 状态已经改变;c) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备的状态的请求,并且使所述本地扩展器将连接状态改变的所述本地记录以及连接状态的所述本地记录提供给所述主计算机;d) 在所述本地扩展器处从所述主计算机接收清除所述连接状态改 变信息的请求并且使所述本地扩展器清除连接状态改变信息的所述本地记录;e) 在所述本地扩展器处从所述主计算机接收清除所述USB外围设备 的使能状态信息的请求,并且使所述本地扩展器清除使能状态信息的本 地扩展器的本地记录;以及f) 在所述本地扩展器处从所述主计算机接收对所述USB外围设备的 状态的进一步请求,并且使所述本地扩展器将被清除的连接状态改变的 所述本地记录以及被清除的使能状态的所述本地记录提供给所述主计算机。
20. 根据权利19所述的方法,其中所述方法通过往返延迟超过l微秒 的数据通信网络来工作。
21. 根据权利16所述的用于确定USB功能的网络地址的方法,其中 所述USB功能可以是USB集线器或者USB外围设备,并且其中多个所述 USB功能可以分布在遍及数据通信网络,并且其中主计算机将USB地址 分配给每个USB功能,该方法包括a )为直接或者间接连接到所述网络的每个第一USB功能建立数据记 录,并且通过由所述主计算机动态分配的唯一的USB地址来识别每个记录;b)将所述第一USB功能连接到的上游USB集线器的USB地址记录在 所述数据记录内;c )将所述第一USB功能连接到的上游USB集线器的端口号记录在所 述数据记录内;d)将直接连接到所述第一USB功能的每个下游USB功能的USB地址 记录在所述数据记录内;e )将每个下游USB功能连接到的所述第一USB功能的端口号记录在 所述数据记录内;以及f)记录被分配给所述第一USB功能的网络地址。算机传输到数据通信网络上的唯一 的网络地址的方法,该方法包括a) 在本地扩展器处从主计算机接收USB命令;b) 从所述USB命令提取第一USB地址;c )利用所述第一USB地址来访问类似记录的列表内的第 一数据记录;d) 确定所述第一数据记录是否包含有效的网络地址;e) 从所述第一数据记录提取识别上游USB集线器的第二USB地址, 通过所述上游USB集线器,可以访问所述第一USB地址;f) 重复步骤(c)到步骤(e)直到发现有效的网络地址;g) 将所述USB命令封装在网络包中;h) 将所述网络包定址到所述有效网络地址;以及i) 将所述被定址的网络包传输到所述数据通信网络。
22 <image>image see original document page 9</image>
23.根据权利要求15所述的用于通过远程扩展器和本地扩展器在主 计算机和USB外围设备之间进行异步数据事务的方法,其中所述主计算 机以高速运行并且所述USB外围设备以典型速度(全速或者低速)运行, 并且其中所述数据以从设备到主机的方向传输,该方法包括a) 在本地扩展器处从所述主计算机接收对开始分离的数据传输会 话的第一请求,使所述本地扩展器通过网络将所述第一请求转发到所述 远程扩展器,然后使所述本地扩展器产生对所述主计算机的否定应答响 应;b) 在本地扩展器处从所述主计算机接收对开始分离的数据传输会 话的后续请求,并且使所述本地扩展器继续产生对所述主计算机的否定 应答响应直到所述本地扩展器从所述远程扩展器接收到对所述转发的 第一请求的响应;c) 在远程扩展器处接收对开始分离的数据传输会话的转发的所述 第 一请求,使所述远程扩展器将对开始分离的数据传输会话的转发的所述请求转换为对数据传输的典型速度请求,然后使所述远程扩展器将对 数据传输的所述典型速度请求转发到所述USB外围设备;d) 在远程扩展器处产生肯定应答响应并且通过网络将所述肯定应 答响应转发到所述本地扩展器;e) 在本地扩展器处接收转发的所述肯定应答响应,并且使所述本 地扩展器将转发的所述肯定应答响应存储在本地存储器中;f )在本地扩展器处从所述主计算机接收对开始分离的数据传输会话答响应:然后使所述本地扩展器:检索的所述s定应答响应转发到所述主计算机;g) 在远程扩展器处从所述USB外围设备接收数据传输响应,并且 使所述远程扩展器产生对所述USB外周设备的肯定应答响应,然后使所 述远程扩展器通过网络将所述数据传输响应转发到所述本地扩展器;h) 在本地扩展器处接收对完成分离的数据传输会话的第 一请求, 使所述本地扩展器检查本地存储器是否不存在数据传输响应,然后使所 述本地扩展器产生对所述主计算机的仍没有应答;应,并且使所述本地扩展器将转发的所述数据传输响应存储在本地存储 器中;以及j)在本地扩展器处接收对完成分离的数据传输会话的进一步请求,所述本地扩展器:检索的所述:据传输响应转发到所述主4算机。、口
24. 根据权利要求23所述的方法,其中所述方法通过往返延迟超过l 微秒的数据通信网络来操作。
25. 根据权利要求15所述的用于通过本地扩展器和远程扩展器在主 计算机和USB外围设备之间进行异步数据事务的方法,其中所述主计算 机以高速运行并且所述USB外围设备以典型速度(全速或者低速)运行, 并且其中所述数据以从主机到装置的方向传输,该方法包括a) 在本地扩展器处从所述主计算机接收开始分离的数据传输会话 的第一通知,使所述本地扩展器通过网络将所述第一通知转发到所述远 程扩展器,然后使所述本地扩展器产生对所述主计算机的否定应答响应;b) 在本地扩展器处从所述主计算机接收开始分离的数据传输会话 的后续通知,并且使所述本地扩展器继续产生对所述主计算机的否定应 答响应直到所述本地扩展器从所述远程扩展器接收到对转发的所迷第一通^口的响应;c) 在远程扩展器处接收开始分离的数据传输会话的转发的所述第 一通知,使所述远程扩展器将开始分离的数据传输会话的转发的所述通知转换为数据传输的典型速度通知,然后使所述远程扩展器将数据传输的所述典型速度通知转发到所述USB外围设备;d) 在远程扩展器处产生肯定应答响应,并且通过网络将所述肯定应答响应转发到所述本地扩展器;e) 在本地扩展器处接收转发的所述肯定应答响应,并且使所述本'f ):本地扩展器处从所述主计算机:收开始分离:数据传输会话的进一步通知,使所述本地扩展器从本地存储器检索转发的所述肯定应答 响应,然后使所述本地扩展器将检索的所述肯定应答响应转发到所述主 计算机;g) 在远程扩展器处从所述USB外围设备接收肯定应答响应,并且 使所述远程扩展器通过网络将所述肯定应答响应转发到所述本地扩展 器;h) 在本地扩展器处接收对完成分离的数据传输会话的第 一请求, 使所述本地扩展器检查本地存储器是否不存在肯定应答响应,然后使所 述本地扩展器产生对所述主计算机的仍没有应答;应,并且使所述本地;广展器将转发的所述l定应答响应存储在本地存储 器中;以及j)在本地扩展器处接收对完成分离的数据传输会话的进一步请求, 使所述本地扩展器从本地存储器检索转发的所述肯定应答响应,然后使 所迷本地扩展器将检索的所述肯定应答响应转发到所述主计算机。
26. 根据权利要求25所述的方法,其中所述方法通过往返延迟超过l 微秒的数据通信网络来操作。
27. 根据权利要求15所述的用于通过远程扩展器和本地扩展器在主 计算机和USB外围设备之间进行同步数据事务的方法,其中所述主计算 机以高速运行并且所述USB外围设备以典型速度(全速或者低速)运行, 并且其中所述数据以从设备到主机的方向传输,该方法包括a)在本地扩展器处从所述主计算机接收对开始分离的数据传输会 话的第一请求,使所述本地扩展器通过网络将对开始分离的数据传输会 话的所述第一请求转发到所述远程扩展器;b )在本地扩展器处接收对完成分离的数据传输会话的第 一请求,使所述本地扩展器检查本地存储器是否不存在分离的数据传输响应的 完成序列,然后使所述本地扩展器产生对所述主计算机的空数据响应;C)在远程扩展器处接收对开始分离的数据传输会话的转发的所述 第一请求,使所述远程扩展器将对开始分离的数据传输会话的转发的所 述请求转换为数据传输的典型速度请求,然后使所述远程扩展器将对数据传输的所述典型速度请求转发到所述USB外围设备;d) 在远程扩展器处从所述USB外围设备接收数据传输响应,并且 使所述远程扩展器将接收的所述数据传输响应转换为分离的数据传输 响应的序列,并且然后使所述远程扩展器通过网络将分离的数据传输响 应的所述序列转发到所述本地扩展器;e) 在本地扩展器处从所述远程扩展器接收转发的分离的数据传输 响应的所述序列,并且使所述本地扩展器将转发的分离的数据传输响应 的所述序列存储在本地存储器中;f )在本地扩展器处从所述主计算器接收对开始分离的数据传输会话 的后续请求,并且使所述本地扩展器通过网络将所述后续请求转发到所 述远程扩展器;以及g )在本地扩展器处接收对完成分离的数据传输会话的后续请求的 序列,使所述本地扩展器检查本地存储器是否存在分离的数据传输响应 的完成序列,然后使所述本地扩展器从存储器检索分离的数据响应的所 述序列,并且将分离的数据响应的所述序列转发到所述主计算机。
28. 根据权利要求27所述的方法,其中所述方法通过往返延迟超过l 微秒的数据通信网络来操作。
29. 根据权利要求15所述的用于通过本地扩展器和远程扩展器在主 计算机和USB外围设备之间进行同步数据事务的方法,其中所述主计算 机以高速运行并且所述USB外围设备以典型速度(全速或者低速)运行, 并且其中所述数据以从主机到设备的方向传输,该方法包括a) 在本地扩展器处从所述主计算机接收开始分离的数据传输会话 的通知,使所述本地扩展器通过网络将开始分离的数据传输会话的所述 通知转发到所述远程扩展器,然后使所述远程扩展器将开始分离的数据 传输会话的所述通知存储在本地存储器中;b) 在本地扩展器处从所述主计算机接收继续分离的数据传输会话 的第 一通知,使所迷本地扩展器通过网络将继续分离的数据传输会话的所述第一通知转发到所述远程扩展器,然后使所述远程扩展器将继续分 离的数据传输会话的所述第一通知存储在本地存储器中;C)在本地扩展器处从所述主计算机接收继续分离的数据传输会话 的进一步通知,使所述本地扩展器通过网络将继续分离的数据传输会话 的所述进一步通知转发到所述远程扩展器,然后使所述远程扩展器将继续分离的数据传输会话的所述进一步通知存储在本地存储器中;d) 在本地扩展器处从所述主计算机接收完成分离的数据传输会话 的通知,使所述本地扩展器通过网络将完成分离的数据传输会话的所述 通知转发到所述远程扩展器,然后使所述远程扩展器将完成分离的数据 传输会话的所述通知存储在本地存储器中;e) 在远程扩展器处将存储的开始分离的数据传输的所述通知、存 储的继续分离的数据传输的所述第 一通知、存储的继续分离的数据传输 的所述进 一 步通知以及存储的完成分离的数据传输会话的所述通知组 合成数据传输的典型速度通知;以及f) 使所述远程扩展器将数据传输的所述典型速度通知转发到所述 USB外围设备。
30.根据权利要求29所述的方法,其中所述方法通过往返延迟超过l 微秒的数据通信网络来操作。
全文摘要
提供了一种用于通过数据通信网络在主计算机和一个或者多个USB适应的外围设备之间传输数据的方法和相关装置,其在存在传输延迟大于USB规范通常所允许的传输延迟的情况下操作。主计算机连接到本地扩展器设备,该本地扩展器设备又通过数据通信网络连接到一个或者多个远程扩展器设备。该远程扩展器设备又连接到多个常规USB外围设备。在主计算机和外围设备之间的数据被存储在本地扩展器和远程扩展器中并在其中被处理,以便允许主计算机和USB外围设备以大于通常所允许的时间延迟操作。特别地,当在主计算机和USB外围设备之间的往返传输延迟超过1微秒时本发明最有用。
文档编号G06F13/00GK101529401SQ200780035720
公开日2009年9月9日 申请日期2007年7月27日 优先权日2006年7月28日
发明者J·A·麦莱奥 申请人:伊克隆技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1