首页> 中国专利> 在存在长传输延迟的情况下改善USB海量存储设备的性能的方法和装置

在存在长传输延迟的情况下改善USB海量存储设备的性能的方法和装置

摘要

提供了一种改善通用串行总线海量存储设备的性能的方法和装置,其中邻近主计算机设置的本地扩展器和邻近外围设备设置的远程扩展器结合使用。本地扩展器和远程扩展器单元共同实施即使所述单元之间的传输延迟超过1微秒时仍然能够在所述单元之间有效地传递批量数据的协议。取得性能的改善并不需要改变所述主计算机或所述USB海量存储设备。提供了将USB海量存储设备连接到主机控制器的改进的方法。

著录项

  • 公开/公告号CN101176085A

    专利类型发明专利

  • 公开/公告日2008-05-07

    原文格式PDF

  • 申请/专利权人 伊克隆技术公司;

    申请/专利号CN200680016290.2

  • 发明设计人 J·A·麦克莱奥德;

    申请日2006-03-10

  • 分类号G06F13/38(20060101);G06F3/06(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人张雪梅;王小衡

  • 地址 加拿大不列颠哥伦比亚省

  • 入库时间 2023-12-17 20:06:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-08-10

    授权

    授权

  • 2008-07-02

    实质审查的生效

    实质审查的生效

  • 2008-05-07

    公开

    公开

说明书

技术领域

本发明涉及用于在计算机和使用通用串行总线(USB)端口的设 备之间传输信号的方法和装置,尤其涉及用于在所述的计算机和海量 存储设备(mass storage device)之间的传输通路显示出显著的时 间延迟时使用这些端口操作USB海量存储设备的方法。

背景技术

通用串行总线(USB)是一种被设计成允许一般的使用者将一系 列的外围设备连接到个人计算机的技术。该技术支持所有的普通的外 围设备,例如键盘、鼠标、扬声器、操纵杆、摄像机、快闪驱动(flash drive)、硬盘驱动(hard drive)、DVD驱动以及许多其它设备,目前 其在计算机方面的使用很普遍。

USB由计算机和通信市场中最大的七家公司的联盟共同创建。这 些公司是Intel(英特尔),Compaq(康柏),Microsoft(微软), NorTel,NEC,Digital和IBM。限定USB的规范(例如,Intel等, 通用串行总线规范,修订版1.0,1996年1月;更新的修订版1.1, 1998年9月23日;再次更新的修订版2.0,2000年4月;以及后来 的更新、补充和修改——以下统称为“USB规范”,该术语可以包括 将来的修改和修订)不属于私有的,并且由称为USB Forum的开放的 工业组织进行管理。USB规范设立多种遵守USB标准必须符合的准 则。USB规范也定义了一些术语,它们的定义是为了这个规范而采用 的。

然而,与本发明最相关的,是目前所有已知的USB规范都把设 备可以与它的主机PC分开的最大距离限制到5米。使用一连串的USB 集线器(Hub)——这些设备的目的是支持对象数目的增加而不是距 离的增加——理论上,这个距离限制可以增加到30米。然而这种多 Hub的解决方案既是昂贵的又是笨拙的。

在美国专利No.6381666中,其内容在此被并入作为参考,提供 了一种用于扩展在主机PC和外围设备之间的距离的方法和装置,它 能将可用距离增加到100米或更多。虽然这个方法是有益的,但仍然 希望提供可替换的和/或改良的方法和装置来实现上述的效果。

限制USB的范围能扩展的程度的主要因素是传输延迟。USB规范 允许的从主计算机到设备并返回到主计算机的单次通信的往返延迟 的最大周期是约1.5微秒。1.5微秒的往返延迟预算由大约相等的两 个部分构成,即在主计算机和设备之间的两个方向上的传输延迟,以 及其次是,设备产生期望的响应所需要的换向时间。美国专利 No.6381666中描述的该方法除去了对往返延迟的上限的限制。

虽然美国专利No.6381666中描述的该方法能够在扩展的距离上 来操作USB海量存储设备,但是,由于用于批量数据传输的协议,所 遇到的时间延迟可能过度地长。为了避免或改进这些过度长的传输延 迟,希望进一步改善在往返延迟超过原始规定值时USB海量存储设备 的性能。

发明内容

因此,虽然US 6381666中描述的扩展USB技术的范围已经被证 明是有用的,但仍然希望通过提供用于利用USB规范使海量存储设备 在存在长的传输延迟时能够被使用的改进的方法和装置来改进这个 技术。

因此,本发明的目的是,提供在存在大于目前在USB规范下所 允许的传输延迟的传输延迟的情况下,使符合所述USB规范的海量存 储设备能够通信的改进的方法和装置。

本发明的另一个目的是,使传输延迟对所述USB海量存储设备 的如通过有效数据传递率测量的性能的影响最小化。

本发明的另一个目的是,不需要对现有的主计算机、集线器和 由该系统支持并在USB协议下操作的设备进行硬件或软件改变。因 此,本发明可以并入由常规延迟和扩展的延迟设备构成的网络。

本发明的另一个目的是,该装置非常节省成本,与USB工业所 针对的最广泛流行的设备一致。

本发明的另一个目的是,为高速(HS)和全速(FS)海量存储设 备提供支持。

本发明的另一个目的是,系统自动检测所述USB海量存储设备 的存在并选择用于处理所述设备的方法而不用手动干涉或配置。

本发明的这些以及其它目的将在这里变得明显,并且通过本发 明来实现,本发明提供了一种方法和相关的装置,其中将主计算机连 接到本地扩展器设备,其又连接到与常规USB外围设备相连的远程扩 展器设备,其中在主计算机和USB外围设备之间的信号在本地扩展器 和/或远程扩展器中被处理,以便允许主计算机和USB外围设备在存 在大于USB规范中通常所允许的传输延迟的传输延迟的情况下工 作。尤其是,在主计算机和USB外围设备间的往返传输延迟超过1微 秒时,本发明是最有用的。

因此,在第一方面中,本发明提供了一种通过本地扩展器和远程 扩展器优选经由其中往返延迟超过1微秒的传输系统从外围设备向 主计算机传输入站数据流的方法,其中所述主计算机和所述外围设备 符合USB规范的要求并且其中所述外围设备优选是海量存储设备,该 方法包括:

a)通过将入站数据传递命令发送给所述本地扩展器,使所述本 地扩展器将所述命令转送给所述远程扩展器,然后使所述远程扩展器 将所述命令转送给所述USB外围设备,将所述命令从所述主计算机转 送给所述USB外围设备;

b)通过将所述命令的应答发送给所述远程扩展器,使所述远程 扩展器将所述应答转送给所述本地扩展器,然后使所述本地扩展器将 所述应答作为转送的应答信号转送给所述主计算机,将所述应答从所 述USB外围设备转送给所述主计算机;

c)使所述本地扩展器产生对所述主计算机的否定应答响应直到 所述本地扩展器接收到所述转送的应答信号为止;

d)使所述本地扩展器吸收由所述主计算机产生的所述命令的重 复直到所述本地扩展器接收到所述转送的应答信号为止;

e)通过将对入站数据分组的请求发送给所述本地扩展器,使所 述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩 展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算 机转送给所述USB外围设备;

f)通过将入站数据分组发送给所述远程扩展器,使所述远程扩 展器将所述入站数据分组转送给所述本地扩展器,然后使所述本地扩 展器将所述入站数据分组转送给所述主计算机,将所述入站数据分组 从所述USB外围设备转送给所述主计算机;

g)在所述远程扩展器接收到每个入站数据分组后,使所述远程 扩展器产生对所述USB外围设备的应答响应;

h)使所述本地扩展器产生对所述主计算机的否定应答响应直到 所述本地扩展器接收到所述入站数据分组为止;

i)使所述本地扩展器吸收对入站数据分组的所述请求的重复;

j)使所述本地扩展器吸收从所述主计算机接收的应答分组;

k)使所述远程扩展器产生另外的对入站数据分组的请求给所述 USB外围设备直到所述入站数据传递命令的要求得到满足为止;

l)通过将对入站数据传递状态的请求发送给所述本地扩展器, 使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远 程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主 计算机转送给所述USB外围设备;

m)通过将所述入站数据传递状态发送给所述远程扩展器,使所 述远程扩展器将所述状态转送给所述本地扩展器,然后使所述本地扩 展器将所述状态转送给所述主计算机,将所述状态从所述USB外围设 备转送给所述主计算机;

n)使所述远程扩展器产生对所述USB外围设备的应答响应;

o)使所述本地扩展器产生对所述主计算机的否定应答响应直到 所述本地扩展器接收到所述状态为止;以及

p)使所述本地扩展器吸收对入站数据传递状态的所述请求的重 复直到所述本地扩展器接收到所述状态为止。

在另一方面中,本发明提供了一种通过本地扩展器和远程扩展 器优选经由其中往返延迟超过1微秒的传输系统从主计算机向外围 设备传输出站数据流的方法,其中所述主计算机和所述外围设备符合 USB规范的要求并且其中所述外围设备优选是海量存储设备,该方法 包括:

a)通过将出站数据传递命令发送给所述本地扩展器,使所述本 地扩展器将所述命令转送给所述远程扩展器,然后使所述远程扩展器 将所述命令转送给所述USB外围设备,将所述命令从所述主计算机转 送给所述USB外围设备;

b)通过将所述命令的应答发送给所述远程扩展器,使所述远程 扩展器将所述应答转送给所述本地扩展器,然后使所述本地扩展器将 所述应答作为转送的应答信号转送给所述主计算机,将所述应答从所 述USB外围设备转送给所述主计算机;

c)使所述本地扩展器产生对所述主计算机的否定应答响应直到 所述本地扩展器接收到所述转送的应答信号为止;

d)使所述本地扩展器吸收所述命令的重复直到所述本地扩展器 接收到所述转送的应答信号为止;

e)通过将出站数据分组发送给所述本地扩展器,使所述本地扩 展器将所述出站数据分组转送给所述远程扩展器,然后使所述远程扩 展器将所述出站数据分组转送给所述USB外围设备,将所述出站数据 分组从所述主计算机转送给所述USB外围设备;

f)在所述本地扩展器接收到每个出站数据分组后,使所述本地 扩展器产生对所述主计算机的应答响应;

g)使所述远程扩展器吸收由所述USB外围设备产生的每个应答 响应;

h)通过将对出站数据命令状态的请求发送给所述本地扩展器, 使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远 程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主 计算机转送给所述USB外围设备;

i)通过将所述出站数据命令状态发送给所述远程扩展器,使所 述远程扩展器将所述状态转送给所述本地扩展器,然后使所述本地扩 展器将所述状态转送给所述主计算机,将所述状态从所述USB外围设 备转送给所述主计算机;

j)使所述远程扩展器产生对所述USB外围设备的应答响应;

k)使所述本地扩展器产生对所述主计算机的否定应答响应直到 所述本地扩展器接收到所述状态为止;以及

l)使所述本地扩展器吸收对出站数据命令状态的所述请求的重 复直到所述本地扩展器接收到所述状态为止。

在另一方面中,本发明还提供了一种用于在存在大于USB规范中 通常所允许的传输延迟的传输延迟的情况下在数据传递对话中在主 计算机和USB外围设备且优选为海量存储设备之间传输数据的装 置,其中所述对话包括:i)命令阶段;ii)数据阶段;和iii)状态阶 段;所述装置包括:

a)用于启动所述数据传递对话的主计算机;

b)本地扩展器单元,用于将命令和出站数据分组从所述主计算 机转送给所述远程扩展器,以及用于将入站数据、状态和应答分组从 所述远程扩展器转送给所述主计算机;

c)数据传输系统,其显示出在所述主计算机和所述USB外围设 备之间的大于USB规范中通常允许的传输延迟的传输延迟;

d)远程扩展器单元,用于从所述本地扩展器向所述USB外围设 备转送命令和出站数据分组,以及用于从所述USB外围设备向所述本 地扩展器转送入站数据、状态和应答分组;

e)能够响应数据传递命令的USB外围设备;

f)在所述本地扩展器单元中的用于产生数据传递应答分组并将 所述分组发送给所述主计算机的装置;

g)在所述本地扩展器单元中的用于存储入站数据分组或入站应 答分组直到所述主计算机请求这种分组为止的装置;

h)在所述本地扩展器单元中的用于吸收重复的命令、出站数据 和状态请求分组的装置;

i)在所述本地扩展器单元中的用于识别数据传递对话何时启动 以及所述对话何时结束的装置;

j)在所述远程扩展器单元中的用于产生数据传递应答分组并将 所述分组发送给所述USB外围设备的装置;

k)在所述远程扩展器单元中的用于产生对入站数据传递的请求 并将所述请求发送给所述USB外围设备的装置;

l)在所述远程扩展器单元中的用于吸收数据传递应答分组的装 置;以及

m)在所述远程扩展器单元中的用于识别数据传递对话何时启动 以及所述对话何时结束的装置。

在另一方面中,本发明还提供了一种用于确定在主计算机和USB 外围设备之间的数据传递对话的边界和性质,尤其是确定数据传递对 话是否符合由USB规范定义的仅大量传输协议(Bulk-only Transport Protocol)的方法,该方法包括:

a)通过扩展器单元从USB主机控制器向USB外围设备转送所有 的出站分组;

b)通过将每个出站数据分组的结构与USB规范定义的命令块包 (CBW)的结构进行比较,来检测数据传递对话的开始;

c)通过将所述出站数据分组的头四个字节与CBW的唯一签名进 行比较来校验CBW的检测;

d)通过从由CBW结构定义的CBW标签域读取数据,从所述出站 数据分组提取唯一的标签;

e)通过从由CBW结构定义的CBW数据传递长度域读取数据来确 定在所述数据传递对话期间要传送的数据的量;

f)通过从由CBW结构定义的CBW标志域读取数据来确定所述数 据传递对话的方向。

在另一方面中,本发明还提供了一种用于截取、分析并生成USB 分组的装置,其优选用于实施本发明的方法中;所述装置包括:

a)上游收发器,用于接收沿出站方向行进的数据分组并用于传 送沿入站方向行进的数据分组;

b)下游收发器,用于接收沿入站方向行进的分组并用于传送沿 出站方向行进的数据分组;

c)分组处理器,用于在上游收发器和下游收发器之间转送USB 分组,并用于分析在所述USB分组中包含的信息;

d)在所述分组处理器中的用于吸收从所述上游和下游收发器接 收的USB分组的装置;

e)在所述分组处理器中的用于存储从所述上游和下游收发器接 收的USB分组的装置;

f)在所述分组处理器中的用于分析从所述上游和下游收发器接 收的包含在USB分组中的信息的装置;

g)在所述分组处理器中的用于产生USB分组并将所述USB分组 转送给所述上游和下游收发器的装置。

优选实施例的描述

在优选实施例中,主计算机可以是任何支持USB规范的标准单 元。优选的是,对所述计算机的硬件或软件不需要任何修改。

本地扩展器优选是自给式(self-contained)单元,它通过标 准的USB电缆连接到主计算机。

远程扩展器优选是自给式单元,它通过标准的USB电缆连接到 USB外围设备。

数据传输系统不局限于任何特定的介质或协议,而是根据本发 明在工作时,通常产生在主计算机和USB外围设备之间的超过1微秒 的往返传输延迟。

本发明的方法和装置最优选用在这样的系统中,即在该系统中 所述主机控制器是PC,所述外围设备是海量存储单元,例如快闪驱 动、硬盘驱动、CD/DVD驱动或任何其它的能作为海量存储单元工作 的USB设备。这包括任何使用USB批量数据传输协议从主机控制器传 递或接收数据的设备。

在扩展器单元的优选实施例中,分组处理器以现场可编程门阵 列(FPGA)来实施。

在本地扩展器单元的优选实施例中,上游收发器是标准的USB 收发器,下游收发器是无线收发器。

在远程扩展器单元的优选实施例中,上游收发器是无线收发 器,下游收发器是标准的USB收发器。

附图说明

下面参考附图对本发明及其各个方面进行详细的说明:

图1是根据USB的系统的框图;

图2是用于在存在长的传输延迟的情况下与USB设备通信的系 统的框图;

图3是示出根据现有技术的USB协议的使用图1所示的设置的 入站数据传递对话的时序图;

图4是示出根据本发明的入站数据传递对话的时序图;

图5是示出根据现有技术的USB协议的出站数据传递对话的时 序图;

图6是示出根据本发明的出站数据传递对话的时序图;

图7是示出根据现有技术的USB协议的USB命令块包的结构的 表;

图8是示出根据现有技术的USB协议的USB命令状态包的结构 的表;

图9是根据本发明的扩展器单元的框图;

图10是示出根据本发明的扩展器单元的操作的数据流图。

具体实施方式

图1是根据USB规范设计的现有技术系统的框图。根据USB规 范,可以通过给中央处理单元(10)配备被称为USB主机控制器(11) 的输入/输出单元来装配启用USB的计算机(1)。USB主机控制器(11) 根据USB协议执行输入/输出操作,并通过USB电缆(2)与外部的 USB外围设备(7)通信。USB电缆的长度不允许超过5米。

图2是根据本发明的在存在有长的传输延迟的情况下在USB设 备之间进行通信的系统的框图。在该配置中,主计算机(1)的输入/ 输出操作由通过标准的USB电缆(2)与所述主计算机连接的本地扩 展器(3)截取。优选的是,本地扩展器(3)产生“修改”形式的 USB协议,该协议通过传输系统(4)传递给可以与本地扩展器(3) 相距延伸的距离设置的远程扩展器(5)。

因而,在本发明的这个实施例中,主计算机(1)和本地扩展器 (3)作为独立的单元来装配。对本领域的技术人员来说显然的是, 可以使用这些部件的不同组合,并且替换的封装配置是可以的。

远程扩展器(5)从物理介质接收信号,然后,如果需要的话, 优选将接收的信号变换为与USB协议兼容的电信号,并通过USB电缆 (6)将这些电信号传递给USB外围设备(7)。USB外围设备是快闪 存储设备,但可以是如上文描述的任何USB海量存储设备。

当从USB外围设备(7)向主计算机(1)传递信号时,发生相 反的过程。

因而,在本发明的这个实施例中,远程扩展器(5)和USB外围 设备(7)作为独立的单元来装配。对本领域的技术人员来说显然的 是,可以使用这些部件的不同组合,并且替换的封装配置是可以的。

在本发明的一个实施例中,外部传输系统(4)是采用单模光纤 电缆的点到点连接,并且在主计算机(1)和USB外围设备(7)之间 的往返延迟可以高达例如1毫秒或更多。然而,在其它的实施例中, 可以改变外部介质。例如,在本发明的另一个实施例中,外部传输系 统(4)可以是无线连接,并且在主计算机(1)和USB外围设备(7) 之间的往返延迟可以高达例如100毫秒或更多。在本发明的另一个实 施例中,外部传输系统(4)可以是网际连接,并且在主计算机(1) 和USB外围设备(7)之间的往返延迟可以高达例如1秒或更多。

因此,对本领域的技术人员来说显然的是,可以使用不同的传 输系统,并且相应的往返延迟可以相应地改变。

图3是示出根据USB协议的入站数据传递对话的时序图。该图 中所使用的显示格式可归功于Jacobson等人(Ivar Jacobson, Magnus Christerson,Patrick Jonsson和Gunnar Overgaard, Object-Oriented software Engineering(面向对象软件工程):A Use Case Driven Approach(用例驱动方法),Addison-Wesley, 1992。)根据协议,入站数据传递对话由三个独立的阶段构成,即命 令阶段、数据阶段和状态阶段。

在命令阶段期间,主计算机(1)中的控制逻辑(20)产生入站 数据传递的通知,并将所述通知作为OUT分组传送给USB外围设备 (7),OUT分组后面是DATA0/1(CBW)分组。所述USB外围设备中的 控制逻辑(23)接收所述通知,并通过向所述主计算机返回作为ACK 分组的肯定应答发出接受命令的信号。

在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24) 产生对入站数据的请求,并将所述请求作为IN分组传送给USB外围 设备(7)。所述USB外围设备中的控制逻辑(27)汇集所述请求的 入站数据,并将所述数据作为DATA0/1分组传送给所述主计算机。主 计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向 所述USB外围设备作出响应。

所述主计算机中的控制逻辑(24)产生对入站数据的重复请求, 直到所需的数据块已经被传递为止。一旦数据阶段结束,系统就移动 到状态阶段。

在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28) 产生对入站数据传递状态的请求,并将所述请求作为IN分组传送给 USB外围设备(7)。所述USB外围设备中的控制逻辑(31)汇集所 述请求的入站数据传递状态,并将所述状态作为DATA0/1(CSW)分 组传送给所述主计算机。主计算机校验接收的数据的正确性,并使用 作为ACK分组的肯定应答向所述USB外围设备作出响应。

图4是示出根据本发明的入站数据传递对话的时序图。入站数 据传递对话由三个独立的阶段构成,即命令阶段、数据阶段和状态阶 段。

在命令阶段期间,主计算机(1)中的控制逻辑(20)产生入站 数据传递的最初通知,并将所述通知作为OUT分组传送给本地扩展器 (3),OUT分组后面是DATA0/1(CBW)分组。本地扩展器(3)中的控 制逻辑(21)接收所述通知,并将所述通知转送给远程扩展器(5)。 控制逻辑(21)还使用作为NAK分组的否定应答向所述主计算机作出 响应。远程扩展器(5)中的控制逻辑(22)接收所述通知,并将所 述通知转送给USB外围设备(7)。USB外围设备(7)中的控制逻辑(23) 接收所述通知,并通过向所述远程扩展器返回作为ACK分组的肯定应 答发出接受所述入站数据传递命令的信号。控制逻辑(22)将所述 ACK分组转送给所述本地扩展器,在此它通过控制逻辑(21)被存储 在存储器中。

在延迟之后,主计算机中的控制逻辑(20)重试入站数据传递 的所述最初通知。一接收到入站数据传递的所述重试的通知,本地扩 展器中的控制逻辑(21)就从存储器中检索所述存储的ACK分组,并 将所述ACK分组返回所述主计算机。这样完成了命令阶段。

在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24) 产生对入站数据的最初请求,并将所述请求作为IN分组传送给本地 扩展器(3)。本地扩展器(3)中的控制逻辑(25)接收对入站数据 的所述请求,并将所述请求转送给远程扩展器(5)。控制逻辑(25) 还使用作为NAK分组的否定应答向所述主计算机作出响应。远程扩展 器(5)中的控制逻辑(26)接收对入站数据的所述请求,并将所述 请求转送给USB外围设备(7)。

USB外围设备(7)中的控制逻辑(27)汇集所述请求的入站数 据,并将所述数据作为DATA0/1分组传送给远程扩展器(5)。所述 远程扩展器中的控制逻辑(26)校验接收的数据的正确性,并使用作 为ACK分组的肯定应答向所述USB外围设备作出响应。控制逻辑(26) 将所述DATA0/1分组转送给所述本地扩展器,在此它通过控制逻辑 (25)被存储在存储器中。

在延迟之后,主计算机(1)中的控制逻辑(24)重试对入站数 据传递的所述最初请求。一接收到对入站数据传递的所述重试的请 求,本地扩展器(3)中的控制逻辑(25)就从存储器中检索所述存 储的DATA0/1分组,并将所述DATA0/1分组转送给所述主计算机。主 计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向 所述本地扩展器作出响应。

通过远程扩展器(5)中的控制逻辑(26)一接收到第一DATA0/1 分组,所述控制逻辑就确定是否需要另外的入站数据分组来完成入站 数据传递的所述最初通知。如果确定了需要另外的数据,那么控制逻 辑(26)就产生对另外的入站数据的本地请求,并将所述请求作为 IN分组转送给USB外围设备(7)。

USB外围设备(7)中的控制逻辑(27)汇集所述另外的入站数 据,并将所述数据作为DATA0/1分组传送给远程扩展器(5)。所述 远程扩展器中的控制逻辑(26)校验接收的数据的正确性,并使用作 为ACK分组的肯定应答向所述USB外围设备作出响应。控制逻辑(26) 将所述另外的DATA0/1分组转送给本地扩展器(3),在此它通过控 制逻辑(25)被存储在存储器中。

在延迟之后,主计算机(1)中的控制逻辑(24)重试对入站数 据传递的所述最初请求。一接收到对入站数据传递的所述重试的请 求,本地扩展器(3)中的控制逻辑(25)就从存储器中检索所述存 储的另外的DATA0/1分组,并将所述存储的另外的DATA0/1分组转送 给所述主计算机。主计算机校验接收的数据的正确性,并使用作为 ACK分组的肯定应答向所述本地扩展器作出响应。这个过程重复直到 完成入站数据传递的所述最初通知的要求并且数据阶段结束为止。一 旦数据阶段结束,系统就移动到状态阶段。

在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28) 产生对入站数据传递状态的请求,并将所述请求作为IN分组传送给 本地扩展器(3)。所述本地扩展器中的控制逻辑(29)将所述请求 转送给远程扩展器(5)并使用作为NAK分组的否定应答向所述主计 算机作出响应。

远程扩展器(5)中的控制逻辑(30)将对入站数据传递状态的 所述请求转送给USB外围设备(7)。所述USB外围设备中的控制逻 辑(31)汇集所述请求的入站数据传递状态,并将所述状态作为 DATA0/1(CSW)分组传送给所述远程扩展器。远程扩展器校验接收的 数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备 作出响应。控制逻辑(30)将所述状态作为DATA0/1(CSW)分组转 送给本地扩展器(3),在此它通过控制逻辑(29)被存储在存储器 中。

在延迟之后,主计算机(1)中的控制逻辑(28)产生对入站数 据传递状态的第二请求。一接收到对入站数据传递状态的所述第二请 求,本地扩展器(3)中的控制逻辑(29)就从存储器中检索所述存 储的DATA0/1(CSW)分组,并将所述存储的DATA0/1(CSW)分组返 回给所述主计算机。主计算机校验接收的数据的正确性,并使用作为 ACK分组的肯定应答向所述本地扩展器作出响应。本地扩展器吸收所 述肯定应答分组。

图5是示出根据USB协议的出站数据传递对话的时序图。所述 出站数据传递对话由三个独立的阶段构成:命令阶段、数据阶段和状 态阶段。

在命令阶段期间,主计算机(1)中的控制逻辑(20)产生出站 数据传递的通知,并将所述通知作为OUT分组传送给USB外围设备 (7),OUT分组后面是DATA0/1(CBW)分组。所述USB外围设备中的 控制逻辑(23)接收所述通知,并通过向所述主计算机返回作为ACK 分组的肯定应答发出命令接受的信号。

在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24) 产生出站数据事务,并将所述事务作为OUT/DATA0/1分组传送给USB 外围设备(7)。所述USB外围设备中的控制逻辑(27)接受所述出 站数据事务,校验接收的数据的正确性,并使用作为ACK分组的肯定 应答向所述主计算机作出响应。

主计算机(1)中的控制逻辑(24)产生重复的出站数据事务直 到所需的数据块已经被传递为止。一旦数据阶段结束,系统就移动到 状态阶段。

在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28) 产生对出站数据传递状态的请求,并将所述请求作为IN分组传送给 USB外围设备(7)。所述USB外围设备中的控制逻辑(31)汇集所 述请求的出站数据传递状态,并将所述状态作为DATA0/1(CSW)分 组传送给所述主计算机。主计算机校验接收的数据的正确性,并使用 作为ACK分组的肯定应答向所述USB外围设备作出响应。

图6是示出根据本发明的出站数据传递对话的时序图。所述出 站数据传递对话由三个独立的阶段构成:命令阶段、数据阶段和状态 阶段。

在命令阶段期间,主计算机(1)中的控制逻辑(20)产生出站 数据传递的最初通知,并将所述通知作为OUT分组传送给本地扩展器 (3),OUT分组后面是DATA0/1(CBW)分组。本地扩展器(3)中的控 制逻辑(21)接收所述通知,并将所述通知转送给远程扩展器(5)。 控制逻辑(21)还使用作为NAK分组的否定应答向所述主计算机作出 响应。远程扩展器(5)中的控制逻辑(22)接收所述通知,并将所 述通知转送给USB外围设备(7)。所述USB外围设备中的控制逻辑 (23)接收所述通知,并通过向所述远程扩展器返回作为ACK分组的 肯定应答发出接受所述入站数据传递命令的信号。控制逻辑(22)将 所述ACK分组转送给所述本地扩展器,在此它通过控制逻辑(21)被 存储在存储器中。

在延迟之后,主计算机(1)中的控制逻辑(20)重试出站数据 传递的所述最初通知。一接收到出站数据传递的所述重试的通知,本 地扩展器(3)中的控制逻辑(21)就从存储器中检索所述存储的ACK 分组,并将所述ACK分组返回给所述主计算机。这样结束命令阶段。

在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24) 产生第一出站数据事务,并将所述事务作为OUT/DATA0/1分组传送给 本地扩展器(3)。本地扩展器(3)中的控制逻辑(25)接收所述第 一出站数据事务,并将所述事务转送给远程扩展器(5)。控制逻辑 (25)还使用作为ACK分组的肯定应答向所述主计算机作出响应。远 程扩展器(5)中的控制逻辑(26)接收所述第一出站数据事务,并 将所述事务转送给USB外围设备(7)。

USB外围设备(7)中的控制逻辑(27)校验接收的数据的正确 性,并使用作为第一ACK分组的肯定应答作出响应。远程扩展器(5) 中的控制逻辑(26)吸收所述第一ACK分组。

通过主计算机(1)中的控制逻辑(24)一接收到所述第一ACK 分组,所述控制逻辑就确定是否需要另外的出站数据事务来完成出站 数据传递的所述最初通知。如果确定了需要另外的数据事务,那么控 制逻辑(24)就产生所述另外的出站数据事务,并且该过程重复直到 要求得到满足为止。

一旦数据阶段结束,系统就移动到状态阶段。

在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28) 产生对出站数据传递状态的请求,并将所述请求转送给本地扩展器 (3)。所述本地扩展器中的控制逻辑(29)将所述请求转送给远程 扩展器(5),并使用作为NAK分组的否定应答向所述主计算机作出 响应。

远程扩展器(5)中的控制逻辑(30)将对出站数据传递状态的 所述请求转送给USB外围设备(7)。所述USB外围设备中的控制逻 辑(31)汇集所述请求的出站数据传递状态,并将所述状态作为 DATA0/1(CSW)分组传送给所述远程扩展器。远程扩展器校验接收的 数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备 作出响应。控制逻辑(30)将所述状态作为DATA0/1(CSW)分组转 送给本地扩展器(3),在此它通过控制逻辑(29)被存储在存储器 中。

在延迟之后,主计算机(1)中的控制逻辑(28)产生对出站数 据传递状态的第二请求。一接收到对出站数据传递状态的所述第二请 求,本地扩展器(3)中的控制逻辑(29)就从存储器中检索所述存 储的DATA0/1分组,并将所述存储的DATA0/1分组返回给所述主计算 机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定 应答向所述本地扩展器作出响应。本地扩展器吸收所述肯定应答分 组。

图7是示出根据现有技术的USB规范的USB命令块包的结构的 表。第一列标识USB数据分组的令牌域(token field)后面的数据 字节的相对位置。第二列标识相应的数据字节的逻辑内容。由此可以 看到,CBW_签名参数占据USB数据分组的令牌域后面的头四个字节 (位置0,1,2和3)。

根据现有技术的USB规范,对于属于海量存储类型并实施仅大 量传输协议的设备,CBW_签名的值必须是十六进制记数法的 43425355。这提供了可以由本发明中提供的扩展器单元检测的唯一 值,并且可以用来确定根据USB批量数据传输协议工作的海量存储设 备。所述唯一值的检测向所述扩展器单元表明数据传递对话将要开 始。

根据现有技术的USB规范,CDW_标签的值由所述USB主机控制 器分配以唯一地标识每一单个数据传递对话。所述唯一值的检测使所 述扩展器单元能够在同时进行的多个数据传递对话之间进行区分。

根据现有技术的USB规范,CDW_数据传递长度的值规定在当前 对话期间要传递的字节的数目。所述数据传递长度的检测使所述扩展 器单元能够确定当前对话需要多少数据分组并能检测所述对话何时 结束。

根据现有技术的USB规范,CDW_标志域的比特7表明数据传递 的方向。所述方向的检测使所述扩展器单元能够选择用于入站或出站 数据传递对话的适当算法。

图8是示出根据现有技术的USB规范的USB命令状态包的结构 的表。第一列标识USB数据分组的令牌域后面的数据字节的相对位 置。第二列标识相应的数据字节的逻辑内容。

再次,根据现有技术的USB规范,对于属于海量存储类型并实 施仅大量传输协议的设备,CBW_签名的值必须是十六进制记数法的 43425355。这提供了可以由本发明中提供的扩展器单元检测的唯一 值。所述唯一值的检测向所述扩展器单元表明数据传递对话结束了。

根据现有技术的USB规范,CDW_标签的值由所述USB主机控制 器分配来唯一地标识每一单个数据传递对话。所述唯一值的检测使所 述扩展器单元能够在同时进行的多个数据传递对话之间进行区分。

图9是表示根据本发明的扩展器单元(本地或远程)的框图。 在该配置中,在上游收发器(61)和下游收发器(63)之间传递的 USB业务量通过分组处理器(62)进行路由。通过这种方法,分组处 理器(62)能够按照需要转送分组或块分组。所述分组处理器也可以 产生分组,并在上游或下游的方向上转送所述产生的分组。所述分组 处理器还可以通过该系统检查传输中的分组的内容,并提取数据来控 制随后的数据流的操作。

因此,在本发明的这个实施例中,上游收发器(61)、分组处 理器(62)和下游收发器(63)被装配为独立的单元。对本领域的技 术人员来说显然的是,可以使用这些部件的不同组合,并且替换的封 装配置是可以的。

在本发明的一个特定的实施例中,上游收发器(61)是USB收 发器,分组处理器(62)是FPGA(现场可编程门阵列),下游收发 器(63)是无线收发器。这种配置也可以用来构造无线网络中使用的 本地扩展器。

在本发明的又一个实施例中,上游收发器(61)是无线收发器, 分组处理器(62)是FPGA,下游收发器(63)是USB收发器。这种 配置可以用来构造无线网络中使用的远程扩展器。

图10是示出根据本发明的扩展器单元(本地或远程)的操作的 数据流图。通过分别考虑本发明所需要的每个主数据流通路对所述扩 展器单元的操作进行描述。然而,在操作中,所述分离的主数据流通 路可以同时和/或以任何组合来激活。有四种分离的数据流通路属于 本发明的操作。当单个的USB数据分组沿下游方向通过本地扩展器和 远程扩展器从主计算机向USB外围设备行进时,第一和第二通路大体 上相关。当单个的USB数据分组沿上游方向通过远程扩展器和本地扩 展器从USB外围设备向主计算机行进时,第三和第四通路大体上相 关。

在第一数据流中,USB数据分组从上游收发器(61)转送给下游 收发器(63)。为了执行该操作,各个数据字节通过上游收发器(61) 被报告,并通过下游事务处理过程(71)被转送给下游FIFO(72)。 而下游转送过程(73)将所述各个数据字节转送给下游收发器(63)。 在每个字节通过所述下游事务处理过程(71)转送时,所述过程检查 每个字节的内容以提取用于修改控制寄存器(74)的内容的信息。

尤其是,根据现有技术的USB规范,每个分组的第一个字节是 表明分组类型的分组标识符(PID)。PID包括IN、OUT、ACK、NAK、 DATA0/1和SETUP值。在所述控制寄存器(74)中存储的PID的值可 以用来控制整个数据分组的后续处理。更尤其是,如果PID对应于 DATA0/1值,那么就会检查后面的字节以检测CBW_签名、CBW_标签、 CBW_数据传递长度和CBW_标志信息。

在所述第一数据流的特定情形下,下游事务处理过程(71)检 查所述USB数据分组的PID和地址域。所述过程(71)也检查控制寄 存器(74)的状态。如果所述过程(71)确定应该吸收数据分组,那 么包含所述USB数据分组的数据字节不发送给下游FIFO(72)。

在所述第一数据流的另一情形下,下游事务处理过程(71)检 查所述USB数据分组的PID和地址域。所述过程(71)也检查控制寄 存器(74)的状态。如果所述过程(71)确定对所述数据分组的回答 是必需的,那么过程(71)就会请求上游响应处理过程(81)产生所 述回答。

在第二数据流中,将从上游收发器(61)接收的USB数据分组 转送给微处理器(76)。为了执行该操作,由上游收发器(61)报告 的各个数据字节通过下游事务处理过程(71)被拷贝给请求 FIFO(75)。而所述的数据字节由微处理器(76)从请求FIFO(75)中 读取。

尤其是,当下游事务处理过程(71)检测到存在SETUP PID时, 整个的SETUP分组和后面的DATA0/1分组都拷贝到所述请求FIFO。 这个动作改变微处理器(76)以为含有要在上游通路上接收的USB 描述符信息的相应的DATA0/1分组做好准备。

在第三数据流中,将USB数据分组从下游收发器(63)转送给 上游收发器(61)。为了执行该操作,各个数据字节通过下游收发器 (63)被报告并通过上游事务处理过程(77)被转送给上游 FIFO(78)。而上游高速缓存(Caching)过程(79)从上游FIFO(78) 除去数据字节,并在上游高速缓存(80)中存储所述数据字节。在稍 后的时间并且响应于由下游事务处理(71)产生的激励,所述数据字 节由上游响应处理过程(81)从上游高速缓存(80)除去,并转送给 上游收发器(61)。

在所述第二数据流的特定情形下,上游事务处理过程(77)检 查所述USB数据分组的PID域。所述过程(77)还检查控制寄存器(74) 的状态。如果所述过程(77)确定应该吸收数据分组,那么包含所述 USB数据分组的数据字节不发送给上游FIFO(78)。

在所述第一数据流的另一情形下,上游事务处理过程(77)检 查所述USB数据分组的PID域。所述过程(77)还检查控制寄存器(74) 的状态。如果所述过程(77)确定对所述数据分组的回答是必需的, 那么过程(77)就会请求下游响应处理过程(73)产生所述回答。

在第四数据流中,将从下游收发器(63)接收的USB数据分组 转送给微处理器(76)。为了执行该操作,将由下游收发器(63)报 告的各个数据字节通过上游事务处理过程(77)拷贝给状态 FIFO(82)。而所述的数据字节由微处理器(76)从状态FIFO(82)中 读取。

尤其是,当通过下游收发器(63)传输SETUP(获得描述符)命 令并且USB外围设备(7)使用嵌在DATA0/1分组中的请求的描述符 信息做出响应时,所述请求的描述符信息由微处理器(76)捕获。根 据现有技术的USB规范,所述请求的描述符中含有的参数标识所述 USB外围设备(7)的接口种类和接口协议。使用微处理器(76)中 的算法来隔离所述接口种类和接口协议参数。如果确定了所述USB 外围设备(7)的接口种类参数是海量存储种类(08十六进制)以及 接口协议是仅大量传输(50十六进制),那么微处理器(76)将控 制寄存器(74)设置为启动本发明描述的数据传递对话处理的应用程 序。

使用这种方法和装置,能够自动检测USB海量存储设备的存在, 从而选择处理主计算机和外围设备之间的数据传递的方法而不用手 动干涉或配置。

因此,显然,根据本发明,提供了完全或至少部分地满足上文 提出的手段、目的、和对现有技术有优点的USB设备。因此,已经描 述了本发明的具体实施例,应当理解本领域的技术人员可以进行替 换、修改和改变,并且本说明书旨在包括所有这些落在所附权利要求 的范围之内的替换、修改和改变。

此外,为了清楚,除非另作说明,术语“包括”以及类似的术 语例如“包含”等等,在本发明的说明书和权利要求中,都没有排除 其它的添加物、部件、整数或步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号