专利名称:通用串行总线主机到主机通信的制作方法
技术领域:
本发明总体上涉及通用串行总线(USB)主机到主机通信。
背景技术:
通用串行总线(USB)是用于连接设备的广泛使用的串行总线标准。USB最初针对计算机被设计作为在计算机与诸如音频播放器、操纵杆、键盘、数码相机、扫描仪和打印机等附加设备之间的即插即用接口。然而,USB的流行推动其在诸如视频游戏控制台、便携式数字助理(PDA)、便携式数字视频光盘(DVD)和媒体播放器、蜂窝电话、电视(TV)、诸如MP3 播放器、汽车音响等家用音响设备和便携式存储设备等其它设备上也变得普遍起来。USB 可以用于连接诸如鼠标设备、键盘、游戏键盘、操纵杆、扫描仪、数码相机、打印机、外部存储器、联网部件和许多其它设备之类的外围设备。如以上讨论的,USB是用于连接设备的串行总线标准。USB被设计用于允许通过使用单个标准接口插槽来连接许多外围设备,并且用于通过在不重新启动计算机的情况下允许设备连接和断开来提高即插即用的能力。USB还将电力提供给低耗能设备以消除对外部电源的需要。与操作系统一起包括的通用类型的驱动程序总体上消除了安装设备驱动程序的需要。USB 1. 0规范是1995年11月提出的外部总线标准,其支持12Mbps (兆比特/秒) 的数据传送速率。从1996年开始,一些计算机制造商开始在它们的新机器中包含USB支持, 并且到1998年其变得普遍起来,一个证明就是当时其用作最初的苹果iMac上的主要连接器。USB连接器用于代替PS2、串行和并行端口。支持低速、全速和高速USB实现的USB 2.0 是支持直到480Mbps数据速率的外部总线。USB 2.0完全向后兼容USB 1.0并且使用同样的电缆和连接器。2000年4月发布了 USB 2.0规范。2008年11月发布了 USB 3.0规范。其定义了 5(ibpS (吉比特/秒)数据速率的超高速USB。因此,USB 3.0提供了是USB 2. 0十倍的总线速度。通过使用专用的主机到主机电缆可以实现USB主机(例如,针对USBl和/或USB 2.0应用)之间的对等连接。专用的主机到主机电缆包括相当多数量的电子硬件,并且实际上是两个以太网USB设备,每个连接到一个主机。上述以太网USB设备通过以太网电缆被连接到一起。在这种方式中,专用的主机到主机电缆包括一对直接连接的背对背USB以太网络控制器。然而,这种方案需要将专有驱动程序和应用层软件安装在连接的两端,由于在数据传输的两端的USB分组和网际协议(IP)分组处理软件栈的开销而导致了显著的吞吐量限制。例如,由于传输低效率和IP分组处理软件开销,典型的IOOMb/秒以太网络接口卡 (NIC)可以大致达到50Mb/秒。而且,USB分组处理开销产生额外的影响,导致表现为受限制的方案(例如,受限制的USB 2.0方案)。因此需要更好的对等USB连接方案。
根据以下给出的详细描述并根据本发明一些实施例的附图将更充分地理解本发明,然而,这不应该用于将本发明限制为所描述的具体实施例,而仅用于说明和理解。图1示出了根据本发明一些实施例的系统。图2示出了根据本发明一些实施例的系统。图3示出了根据本发明一些实施例的系统。图4示出了根据本发明一些实施例的流程。图5示出了根据本发明一些实施例的系统。
具体实施例方式本发明的一些实施例涉及通用串行总线(USB)主机到主机通信。在一些实施例中,检测器检测通过链接耦合的主机或设备。端口与检测到的主机或设备的端口协商并确定是否操作为主机和/或操作为设备。在一些实施例中,系统包括第一主机和第二主机。第二主机包括检测器和端口,该检测器用于检测通过链接耦合到第二主机的第一主机,该端口用于与第一主机的端口协商并确定第二主机是否操作为主机和/或操作为设备。在一些实施例中,检测通过链接耦合的主机或设备,与检测的主机或设备的端口协商,并且响应于该协商而确定是否操作为主机和/或操作为设备。在一些实施例中,主机逻辑允许操作为主机,设备逻辑允许操作为设备,且检测器检测耦合的电缆并指示是主机逻辑还是设备逻辑要耦合到该电缆。在一些实施例中,电缆耦合第一主机和第二主机。第二主机包括主机逻辑、设备逻辑和检测器,该主机逻辑允许操作为主机,该设备逻辑允许操作为设备,该检测器检测耦合的电缆并指示是主机逻辑还是设备逻辑要耦合到电缆。在一些实施例中,检测电缆的耦合状况,并且响应该检测而做出关于是操作为主机还是设备的指示。注意,本文中的术语“设备,,和“客户,,被互换地使用并且旨在表示同一事物(例如,“USB设备”和"USB客户”)。USB系统具有不对称设计,该不对称设计包括主机、许多下游USB端口和多个连接的外围设备(或客户),例如层-星拓扑结构。可以通过集线器串联链接USB设备,所述集线器包括一个内嵌在主机控制器中的集线器(根集线器)。当USB设备首次连接到USB主机时,通过将复位信号发送到USB设备而开始USB枚举过程。复位之后,USB设备信息被发送到主机并且设备被分配唯一的地址。如果主机支持设备,则加载与设备进行通信所需要的设备驱动程序并且将设备设置为配置状态。主机控制器将业务流引向设备使得在没有来自主机控制器的明确请求的情况下没有USB设备能够在总线上传送任何数据。在USB 2.0 中,主机控制器针对业务轮询总线(例如,以循环方式)。在USB 3.0(超高速USB)中,连接的设备可以异步地从主机请求服务。USB 3.0将附加特征添加到以上描述的过程。特别地,使用总线训练序列来建立端口之间的通信,其是对检测连接的响应的一部分。在初始接触时,在端口之间存在信息交换。这也发生在连接两个端口的任何时候(例如,设备到主机或设备到集线器)。主机端口具有将它们自身宣告为下游端口(如在正常情况下)或作为上游端口(以类似于USB设备的方式)的能力。这允许一个主机作为设备。因此,根据一些实施例,USB 3.0对等连接是可能的。图1示出了根据一些实施例的系统100。在一些实施例中,系统100包括发送模块 102、接收模块104、传输线106(例如,差分对)、发送模块112、接收模块114、传输线116(例如,差分对)和两根其它的信号线(在图1中标记为D+和D-)。在一些实施例中,在USB实现中,逻辑的差分驱动接收模块和差分驱动发送模块指定USB电缆的相反的端部。除了差分驱动的发送和接收模块,在一些实施例中USB互连包括用于链接管理和其它较低带宽(例如,最大480Mbps)数据通信应用的两根其它信号线 (D+ 和 D-)。在双绞线数据电缆(在图1中标记为D+和D-)上传输USB 2. 0信号。这些电缆 D+和D-共同地使用半双工差分信令。D+和D-通常一起操作;它们不是分离的单工连接。 传输的信号电平是例如在全速(FQ和低速(LQ模式下的2. 8-3. 6伏特以及在高速(HS) 模式下的士400mV。USB 2. 0使用专门的协议来协商称为“鸣叫(chirping) ”的高速模式。 简单地说,具备HS能力的设备总是首先作为FS设备进行连接,但是在接收到USB RESET后 (其中D+和D-都被主机驱动为LOW),其尽力将D-线拉高。如果主机(或集线器)也具备 HS能力,则其将交替信号返回到D-和D+线上,使设备知道该层将以高速操作。超高速(例如,USB 3. 0)是支持并发的IN和OUT事务的双单工连接。其双单工信令电平和扩展频谱时钟类似于另一种双单工串行互连PCI ExpressTM。USB 3. 0的差分摆动与USB 2.0高速大致相同,但是使用了与非扩展USB 2. OHS时钟相反的扩展时钟。发射机102和接收机114可以例如包括在主机设备中,然而,发射机112和接收机 104可以例如包括在客户设备中。然而,在一些实施例中,主机到主机通信可能是有利的。 例如,在一些实施例中,发射机102和接收机114可以包括在第一主机中,发射机112和接收机104可以包括在第二主机中。在一些实施例中,可以将两个USB主机系统(例如,两个USB 3. 0主机系统)连接和/或耦合到一起。例如,在一些实施例中,可以通过USB连接将具有Viiv技术的个人计算机(PC)与笔记本式计算机(例如,具有迅驰(Centrino)技术的笔记本式计算机)连接和/或耦合。在一些实施例中,以对于传送较大媒体文件而言理想的方式在系统之间进行高带宽连接。例如,这种高带宽连接用于快速地传送包含标准清晰度(SD)内容和/或高清晰度(HD)内容的较大媒体文件(例如,从个人计算机到笔记本式计算机,用于以后播放)。 在一些实施例中,高带宽连接不需要来自规范(例如,来自诸如USB 2.0或USB 3.0规范等的USB规范)的任何专用或附加的支持。在一些实施例中,高带宽连接使用未修改的A型 USB插孔(例如,未修改的A型USB 3. 0插孔)。在一些实施例中,高带宽连接的操作对用户是透明的。在一些实施例中,可以使用已有的USB设备类型驱动程序(例如,已有的USB 3. 0设备类型驱动程序)。在一些实施例中,对于任何USB主机控制器实现,可以将具有这种高带宽连接能力的端口作为USB设备。在一些实施例中,通过使用专用的USB A到USB A连接器(而不是典型的USB A 到USB微B (micro-B)或标准B电缆),具有作为USB主机或USB设备的能力的个人计算机可以耦合到USB主机。图2示出了根据一些实施例的系统200。在一些实施例中,系统200包括USB 3. 0 插孔202、USB 3. 0主机204、USB 2. 0主机206、USB 3. 0客户208、USB 3. 0客户边带引擎210,USB 3.0客户电缆检测器212、开关222和开关224。在系统200中,USB 3. 0客户208、 USB 3.0客户边带引擎210和USB 3. 0客户电缆检测器212被增加到基本的USB 3.0主机。在一些实施例中,可以使用无源交叉电缆(例如,诸如无源USB 3.0交叉电缆之类的无源USB交叉电缆)。在用户看来,当电缆插入时,两个主机(一个主机作为主机,另一个主机作为设备)之间的连接工作。仅在用户看来,基于驱动器符号的任何同步转发(sync and go)应用工作。以这种方式,由于(在主机和作为设备进行操作的主机之间)没有中间设备,所以吞吐效率是很高的。在一些实施例中(例如,如图2中所示出的),USB 3. 0设备接口(例如,硬件USB 3. 0设备接口)可以被附着到USB 3. 0主机控制器中的USB3. OPHY并且被USB 3. 0主机共享。例如,在包括USB 3.0客户208、USB3. 0客户边带引擎210和USB 3. 0客户电缆检测器 212的图2中示出了这种USB 3.0设备接口。在一些实施例中,使用现有的检测机制(例如, USB 3.0客户电缆检测器212)来检测专用的USB A(主机)到USB A(设备)电缆的使用。 在一些实施例中,在主机(例如,两台个人计算机或PC)之间的USB 3.0主机到USB 3.0设备关系的分配基于专用的USB A到USB A电缆的插入方向。在一些实施例中,将呈现设备 (或客户)侧的加载驱动程序软件加载到图2中示出的主机作为标准的USB设备类型接口, 以便在一些实现中主机系统200可以操作为设备(客户)。在一些实施例中,在链接的每端的主机或设备的端口使用端口能力链接管理分组,该端口能力链接管理分组描述每个端口的链接能力并且在训练和链接初始化成功完成之后由两个链接伙伴发送。在一些实施例中,在链接的每端的端口互相协商以便确定在链接的每端的主机/设备将如何操作。在一些实施例中,使用总线训练序列来建立每个主机的端口之间的通信,其是对检测两个主机之间的连接的响应的一部分。在初始接触时,在端口之间存在信息的交换。该交换也发生在连接两个端口的任何时候(例如,设备到主机或设备到集线器)。主机端口具有将它们自身宣告为下游端口(如在正常情况下)或作为上游端口(以类似于USB设备的方式)的能力。这允许一个主机公告其可以作为设备。因此, 根据一些实施例,对等连接是可能的。在一些实施例中,连接主机的USB A到USB A电缆是完全无源的电缆(例如,具有 D+、D-和未被连接的VBus的交叉电缆)。在一些实施例中,通过耦合到电缆的一个或两个主机处的软件而使用例如硬件和/或硬件控制器,可以建立方向(即,哪个主机将操作为主机以及哪个主机将操作为设备)。在一些实施例中,通过使用在一个或两个主机处的硬件和 /或软件,操作为主机的主机和操作为设备的主机可以动态地互换。在一些实施例中,一个主机作为主机而一个主机作为设备。在一些实施例中,两个主机中的每个都同时作为主机和设备。例如,图2的主机系统200在一些实施例中可以同时作为主机和设备。在一些实施例中,主机系统200的设备呈现为大容量存储设备类型,以促成直接附着的存储子系统能力的建立。在一些实施例中,主机系统200的设备呈现为以太网仿真模式通信设备类型接口,以促成网络附着的存储(NAS)子系统能力的建立。在一些实施例中,在电缆另一端的主机将主机系统200视为设备。例如,在一些实施例中,在电缆另一端的主机将主机系统200视为存储硬盘驱动器(HDD)符号,就如同其看到诸如闪盘(thumb drive)之类的任何其它USB 3.0存储设备。如此,主机到主机电缆的
7另一端的主机不需要专用的硬件或软件以参与到对等连接中。全部附加的逻辑都驻存在主机系统200 (即,正操作为设备的主机)。在一些实施例中,连接两个主机的专用USB A到USB A电缆指示何时主机(例如, 个人计算机)要操作为USB设备,并且该电缆可以具有专用标记以指示哪端要插入到期望的“设备”中。在一些实施例中,连接两个主机的专用USB A到USB A电缆不在电缆每端的两个USB A插槽之间电连接VBus电能信号。在一些实施例中,连接两个主机的专用USB A 到USB A电缆交叉地连接接收机(Rx)和发射机(Tx)信号。在一些实施例中,连接两个主机的专用USB A到USB A电缆连接D+/D-信号以提供边带信令。在一些实施例中,操作为设备的主机系统200暂时在其端部(即,在电缆的“设备端部”)使连接两个主机的电缆短路以表明主机系统200(例如,个人计算机)要作为“设备”。可以通过使用场效应晶体管(FET)门中的简单的RC(串联的电阻和电容)电路和/ 或良好的控制器模式等来建立暂时的短路。可以容易地将短路引至现有的端口的过电流检测机构。当检测到短路时,该短路被输入到USB 3. 0主机(例如,USB 3. 0主机204),其继而在USB 3. 0主机内路由PHY以变成USB 3. 0设备(例如,使用USB3. 0客户208)。在一些实施例中,操作为USB设备的USB主机像任何其它USB设备(例如,USB 3. 0 设备)一样工作,并且在电缆另一端的主机看来,与其设备类型的任何其它USB设备是无区别的。在一些实施例中,可以由设备系统上的软件(例如,设备驱动程序)来产生设备接口, 并且以同样的方式将文件系统呈现为例如任何直接附着的或网络附着的存储(NAS)系统。 驱动程序可以可选地仅呈现文件系统的子集(例如,诸如用户的“我的文档”目录)。在一些实施例中,电缆远端的主机将设备侧视为存储子系统,并且以对于任何其它附着的存储设备(例如,任何其它USB附着的存储设备)相同的方式将其向主机上的用户呈现为例如 HDD LUN (硬盘驱动器逻辑单元号码)。图3示出了根据一些实施例的系统300。在一些实施例中,系统300是USB 3.0 主机系统,该USB 3. 0主机系统能够操作为例如USB 3.0主机或USB 3. 0设备。在一些实施例中,系统300包括USB插孔302(例如,USB 2. 0和/或USB 3. 0插孔)、端口路由304、 EHCI (增强主机控制器接口)实例306、USB 2. 0根端口 308、xHCI (可扩展主机控制器接口)实例 310、USB 3.0 根端口 312 和 USB 3.0 设备接口 314。在一些实施例中,系统300执行USB 3. 0设备检测并且使用现有的端口路由逻辑 304以控制(当合适时)USB 3. 0插孔302的触点到USB 3. 0设备接口 314的物理连接。这能够使USB主机系统300操作为例如USB设备,并且将通过USB 3. 0设备接口 314插入到插孔302的USB电缆连接到本地主机接口(例如,外围设备部件互连快速总线或PCI Epress 总线)。对端口路由304的路由控制输入信号包括增强主机控制器接口(EHCI)选择信号、 可扩展主机控制器接口(xHCI)选择信号和设备选择信号。在一些实施例中,可以由端口路由逻辑304使用这些选择信号以将信号从EHCI实例306、xHCI实例310或USB 3. 0设备接口 314中合适之一路由到USB3. 0插孔302,或将信号从USB 3. 0插孔302路由到EHCI实例 306、xHCI实例310或USB 3. 0设备接口 314中合适之一。图4示出了根据一些实施例的流程400。在一些实施例中,流程400是从USB主机系统(例如,图2的主机系统200和/或图3的主机系统300)的连接到断开以操作为USB 设备(例如,操作为大容量存储器类型设备)的流程的示例。在一些实施例中,实现了双模式USB 3. 0端口角色检测和分配,导致将USB 3. 0超高速(SS)信令重新路由到USB 3. 0设备硬件,以允许USB 3. 0主机系统操作为超高速(SS)USB 3.0设备。在402,确定在USB主机系统的端口和另一个USB主机的端口或USB设备的端口之间是否已经进行了连接。这可以例如通过在每一端相互可视的Tx和Rx来实现。一旦在 402确定USB主机或设备已经耦合到主机系统,则在404执行链接训练并且配置主机系统端口(例如,作为超高速设备)。在一些实施例中,在链接的每端的主机或设备的端口使用端口能力链接管理分组,该端口能力链接管理分组描述每个端口的链接能力并且在训练和链接初始化成功完成之后由两个链接伙伴发送。在一些实施例中,在链接的每端的端口互相协商以确定在链接的每端的主机/设备将如何操作。这些端口在406协商哪个操作为上游端口且哪个操作为下游端口。在406,如果主机系统端口不是上游端口,则在408设置端口路由以连接USB主机系统硬件并且主机系统将操作为主机。在406,如果USB主机系统端口是上游端口,则在 410设置端口路由以连接超高速(SQ USB 3.0客户硬件。在412,驱动程序被加载并且被附着到设备。在414,实现了由驱动程序向USB电缆另一侧的主机暴露的附着/配置功能。在 416,存储类型功能被提供给USB电缆另一侧的主机。在418,确定USB电缆是否已经从操作为设备的主机系统断开。存储类型功能持续被提供给USB电缆另一侧的主机直到在418 确定USB电缆已经断开。一旦在418做出该确定,则在420复位路由到主机的超高速(SS) 端口,并且流程返回到402。图5示出了根据一些实施例的系统500。在一些实施例中,系统500包括通过USB 超高速(SS)电缆(或USB 3. 0电缆)耦合到设备(客户)侧504的主机侧502。在一些实施例中,设备侧504是可以操作为USB设备的USB主机系统。例如,在一些实施例中,设备侧504与在图2中示出并进行了参照描述的系统200相同或相似,和/或与在图3中示出并进行了参照描述的系统300相同或相似。在一些实施例中,主机侧502包括USB主机控制器522、USB系统软件5M和USB类型驱动程序软件526。在一些实施例中,设备侧504 包括USB大容量存储设备枚举M2、外围部件互连(PCI)接口 M4、一个或多个设备驱动程序546和共享文档例如,共享文档548在一些实施例中可以包括电影、音乐和/或其它文档)。系统500是包括USB主机系统和客户大容量存储设备(例如,作为客户大容量存储设备的主机系统)的典型软件栈的示例性实施例。图5示出了在主机侧502和客户侧 504看来,在检测到主机侧502和设备侧504之间进行的连接以及大容量存储设备的枚举完成之后的情况。例如,通过在当前可用的许多USB和PCI Epress实现中典型的热添加和枚举方法的使用,可以实现该情形。在主机侧502,通过使用其USB类型驱动程序软件526,应用获得对大容量存储设备542的访问。在客户侧504,设备驱动程序546提供一种方式以将分组从USB移动并且将它们组装回文件图像。这些文件图像随后被提供到文件系统子系统以便存储在为设备侧504的主机系统的系统硬盘驱动器上。在一些实施例中,例如在同步转发应用中,可以进行基于硬件的实现。例如,在一些实施例中,通过使用USB A到USB A电缆,可以使用具有Viiv技术的个人计算机来连接到笔记本式计算机以用于快速的连接速度和数据和/或信息传送。在一些实施例中,可以以主机系统能够推送“下载以租用/买入”媒体应用的方式而进行应用,该媒体应用包括例如电影、视频、音乐、文档和/或其它媒体等。例如,在使用 "walk up”视频、高清晰度视频店(例如,DVD、HD-DVD、蓝光盘等)扩展交互体验的地方可以进行实现。例如,在一些实施例中,可以快速(例如,USB 3.0的速率)进行音乐和/或视频店下载(例如,交互的DVD、HD-DVD、蓝光盘等)。通过现有的媒体经销商和/或在诸如机场、便利店等地点可以提供这些店。在一些实施例中可以使用许多不同的平台。例如,在一些实施例中,可以使用固定功能媒体播放平台(例如,包括但不限于下一代PSP、Arc0S个人播放器、个人音乐和/或个人视频播放器等的便携式或非便携式播放器)。在一些实施例中,USB 3. 0主机可以用于操作为USB 3. 0设备以允许以对用户透明的方式进行看起来像是主机到主机连接的连接。在一些实施例中,可以将诸如USB大容量存储设备驱动程序、设备符号和/或文件拖放等标准的(例如,操作系统提供的)特征用于移动两个主机系统之间的内容。这些标准机制的使用允许诸如同步转发之类的现有应用在不需要任何额外的用户介入的情况下进行工作。在一些实施例中,例如在用户的家中,和/或为了增强商业下载管理系统,可以在计算机之间进行文件传送。虽然本文已经将一些实施例描述为了 USB 3. 0的实施例,但是根据一些实施例, 这些特定的实现可以不是必需的。例如,通过使用诸如USB 2.0之类的其它USB实施例而执行一些实现。还应该预期到,根据本发明的一些实施例可以执行USB的未来版本和/或实现和/或其它快速总线实现。虽然已经参考具体的实现描述了一些实施例,但是根据一些实施例,其它的实现也是可能的。另外,在附图中示出的和/或在本文中描述的电路元件或其它特征的布置和/ 或顺序不需要以示出和描述的特定方式进行布置。根据一些实施例,许多其它的布置也是可能的。在附图中示出的每个系统中,在一些情况下元件中的每个可以具有同样的参考标号或不同的参考标号,以表明被表示的元件可以是不同的和/或相似的。然而,元件可以足够的灵活可变,以具有不同的实现并与本文示出或描述的一些或全部系统一起进行工作。 附图中示出的各种元件可以是相同的或不同的。哪一个称为第一元件以及哪一个称为第二元件是任意的。在说明书和权利要求书中,可以使用术语“耦合的”和“连接的”以及它们的派生词。应该理解,这些术语不旨在作为彼此的同义词。相反,在特定的实施例中,“连接的”可以用于表明两个或更多个元件相互直接地物理或电接触。“耦合的”可以意味着两个或更多个元件直接地物理或电接触。然而,“耦合的”还可以意味着两个或更多个元件不是直接地互相接触,但是仍然彼此互相协作或交互。算法在此处通常被认为是导致期望结果的动作或操作的自相一致序列。这些包括物理量的物理操作。通常但并非必须的,这些量采用能够被存储、传送、组合、比较和进行其它操作的电信号或磁信号的形式。主要为了公知使用的原因把这些信号称为比特、数值、元素、符号、字符、项、数字等,已经证明有时是方便的。然而,应该理解,所有这些和类似的术语要与合适的物理量相关联并且仅仅是应用于这些量的方便的标记。可以以硬件、固件和软件之一或组合来实现一些实施例。一些实施例也可以实现为存储在机器可读介质上的指令,其可以由计算平台读取和执行以执行本文描述的操作。机器可读介质可以包括用于存储或传输机器(例如,计算机)可读形式的信息的任何机制。 例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;快闪存储设备;电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号、发送和/或接收信号的接口等)以及其它。实施例是本发明的实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其它实施例”的引用意味着结合这些实施例描述的特定特征、结构或特性被包括在至少一些实施例中,但是不必然被包括在本发明的所有实施例中。在各处出现的“实施例”、“一个实施例”或“一些实施例”不必然都指代同一实施例。并非本文描述和示出的全部部件、特征、结构、特性等都需要包括在特定的一个实施例或多个实施例中。例如,如果说明书声明“可以”、“可能”、“能够”或“能”包括一部件、 特征、结构或特性,那么就不是必须包括该特定的部件、特征、结构或特性。如果说明书或权利要求提及“一”或“一个”元件,这并不意味着仅有一个该元件。如果说明书或权利要求提及“一个附加的”元件,这并不排除有不止一个所述附加的元件。尽管本文已经使用了流程图和/或状态图来描述实施例,但是本发明不限于本文的这些图或对应的描述。例如,流程不需要经过每个示出的框或状态或以与本文示出和描述的顺序完全相同的顺序进行。本发明不限于本文列出的特定细节。实际上,受益于本公开的那些本领域技术人员将会意识到,在本发明的范围内可以进行之前的说明书和附图的许多其它变型。因此,包括任何其修改的所附的权利要求限定了本发明的范围。
1权利要求
1.一种装置,包括检测器,用于检测通过链接耦合的主机或设备;以及端口,用于与所检测到的主机或设备的端口进行协商并确定是否操作为主机和/或操作为设备。
2.根据权利要求1所述的装置,其中,所述主机是通用串行总线主机,所述设备是通用串行总线设备,并且所述链接是USB电缆。
3.根据权利要求2所述的装置,其中,所述USB主机是通用串行总线3.0主机,所述USB 设备是通用串行总线3. 0设备,并且所述USB电缆是USB 3. 0电缆。
4.根据权利要求1所述的装置,其中,所述链接是USBA到USB A类型的USB电缆。
5.根据权利要求1所述的装置,其中,所述链接是USBA到USB A类型的USB 3. 0电缆。
6.根据权利要求1所述的装置,其中,当所述端口操作为设备时,所述装置在外部看起来是设备。
7.根据权利要求1所述的装置,其中,所述端口操作为主机并操作为设备。
8.一种系统,包括 第一主机;第二主机;以及其中,所述第二主机包括检测器,用于检测通过链接耦合到所述第二主机的所述第一主机; 以及端口,用于与所述第一主机的端口进行协商并确定是否将所述第二主机操作为主机和 /或操作为设备。
9.根据权利要求8所述的系统,其中,所述第一主机是通用串行总线主机,所述第二主机是通用串行总线主机,并且所述链接是USB电缆。
10.根据权利要求8所述的系统,其中,所述第一主机是通用串行总线3.0主机,所述第二主机是通用串行总线3. 0主机,并且所述链接是USB3. 0电缆。
11.根据权利要求8所述的系统,其中,所述链接是USBA到USB A类型的USB电缆。
12.根据权利要求8所述的系统,其中,所述链接是USBA到USB A类型的USB 3. 0电缆。
13.根据权利要求8所述的系统,其中,当所述第二主机操作为设备时,对于所述第一主机其看起来是设备。
14.根据权利要求8所述的系统,其中,所述第二主机操作为主机并操作为设备。
15.一种方法,包括检测通过链接耦合的主机或设备;与所检测到的主机或设备的端口进行协商;以及响应于所述协商,确定是否操作为主机和/或操作为设备。
16.根据权利要求15所述的方法,其中,所述链接是USB电缆,并且其中,所述确定操作确定是否操作为USB主机和/或操作为USB设备。
17.根据权利要求15所述的方法,其中,所述链接是USB3.0电缆,并且其中,所述确定操作确定是否操作为USB 3. 0主机和/或操作为USB3. 0设备。
18.根据权利要求15所述的方法,其中,所述链接是USBA到USBA类型的USB电缆。
19.根据权利要求15所述的方法,其中,所述链接是USBA到USBA类型的USB 3. 0电缆。
20.根据权利要求15所述的方法,其中,所述第二主机操作为主机和设备二者。
全文摘要
在一些实施例中,检测器检测通过链接耦合的主机或设备。端口与所检测到的主机或设备的端口进行协商并确定是否操作为主机和/或操作为设备。对其它实施例也进行了描述和声明。
文档编号G06F1/00GK102301356SQ200980155569
公开日2011年12月28日 申请日期2009年12月23日 优先权日2008年12月31日
发明者G·A·所罗门, J·A·舍费尔, R·A·邓斯坦 申请人:英特尔公司