用于双重角色设备的智能角色选择的制作方法

文档序号:13043495阅读:248来源:国知局
用于双重角色设备的智能角色选择的制作方法与工艺



背景技术:

两个互连设备之间的非对称总线协议定义了将一个角色指派给一个设备并将一个不同的角色指派给另一设备的关系。这些角色关系的一些示例包括主机与功能(function)、电力供应者与电力消费者、主与从、服务器与客户端、源与宿、上游与下游等。在两个互连设备支持两种角色的情况下(即设备是双重角色设备),每个设备应当承担的角色可能是不明显的或者甚至是不确定的。在一些情况下,不正确的角色指派会导致两个设备之间的功能性受限或功能性丧失。该问题在用于连接两个设备的连接器和电缆对称的情况下变得更加明显。例如,新的usbc型规范定义了这样的对称电缆和连接器。



技术实现要素:

本文描述的实施例针对如下的机制,即:其使能基于一个或两个设备上的可用上下文,以智能和确定性的方式将角色动态地指派给两个互连的双重角色设备。

提供本发明内容来以简化的形式介绍概念的选择,其在下面在具体实施方式中进一步描述。本发明内容不意图标识所要求保护的主题的关键特征或必要特征,也不意图用于限制所要求保护的主题的范围。此外,应当注意,所要求保护的主题不限于在本文档的具体实施方式和/或其他部分中描述的具体实施例。这样的实施例在本文中仅为了说明的目的而呈现。基于本文包含的教导,附加实施例对于(一个或多个)相关领域的技术人员来说将是明显的。

附图说明

在此被并入本文并形成说明书的一部分的附图图示了本申请的实施例,并且其与说明书一起还用于解释实施例的原理以及使(一个或多个)相关领域的技术人员能够做出和使用实施例。

图1是根据实施例的基于一个或两个设备上的可用上下文以智能和确定性的方式将角色动态地指派给两个互连的双重角色设备的系统的框图。

图2是根据另一实施例的基于一个或两个设备上的可用上下文以智能和确定性的方式将角色动态地指派给两个互连的双重角色设备的系统的框图。

图3描绘了根据实施例的可以基于一个或两个设备上的可用上下文以智能和确定性的方式将角色指派给两个互连的双重角色设备的方法的流程图。

图4描绘了根据实施例的基于与之相关联的先前角色指派信息将角色指派给两个互连的双重角色设备的方法的流程图。

图5描绘了根据实施例的基于一个或多个历史角色使用模型将角色指派给两个互连的双重角色设备的方法的流程图。

图6描绘了根据实施例的基于用户偏好信息将角色指派给两个互连的双重角色设备的方法的流程图。

图7描绘了根据实施例的基于从一个或多个应用获得的角色需求信息将角色指派给两个互连的双重角色设备的方法的流程图。

图8描绘了根据实施例的响应于一个或两个设备处的状态改变来动态地改变指派给两个互连的双重角色设备中每个设备的角色的方法的流程图。

图9是可以用于实现各种实施例的示例移动设备的框图。

图10是可以用于实现各种实施例的示例的基于处理器的计算机系统的框图。

当结合附图来考量时,本文描述的实施例的特征和优点将从以下阐述的具体实施方式中变得更加明显,其中贯穿全文,同样的参考符号标识相应的单元。在附图中,同样的附图标记通常指示相同的、功能上相似的和/或结构上相似的单元。单元在其中首次出现的附图由相应附图标记中的最左边的(一个或多个)数字表示。

具体实施方式

i.介绍

以下的详细描述公开了许多示例实施例。本专利申请的范围不限于所公开的实施例,相反还包括所公开的实施例的组合,以及包括对所公开的实施例的修改。

说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括具体的特征、结构或特性,但每一个实施例可以不必要包括该具体的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当特定的特征、结构或特性被结合一实施例描述时,无论是否被明确地描述,都认为结合其他实施例来实现这样的特征、结构或特性是在(一个或多个)相关领域的技术人员的知识范围内的。

如以上在背景部分中所谈及的,两个互连设备之间的非对称总线协议定义了将一个角色指派给一个设备并将一个不同的角色指派给另一设备的关系。这些角色关系的一些示例包括主机与功能、电力供应者与电力消费者、主与从、服务器与客户端、源与宿、上游与下游等。在两个互连设备支持两种角色的情况下(即,设备均是双重角色设备),每个设备应当承担的角色可能是不明显的或者甚至是不确定的。在一些情况下,不正确的角色指派会导致两个设备之间的功能性受限或功能性丧失。该问题在用于连接两个设备的连接器和电缆对称的情况下变得更加明显。例如,新的usbc型规范定义了这样的对称电缆和连接器。

本文描述的实施例提供了一种机制,其基于一个或两个设备上的可用上下文以智能和确定性的方式将角色动态地指派给两个互连的双重角色设备。

一些先前的解决方案已经定义了允许双重角色设备转换角色的机制,但尚未指定应当在何时使用这些机制。另一先前的解决方案基于电缆的取向来确定角色。然而,该解决方案仅当电缆和连接器(或用于将设备连接在一起的其他机构)不对称并因此具有正确和不正确的取向时才起作用。其他先前的解决方案假定:即使设备具有双重角色能力,也静态地向设备指派角色并且不进行转换。

以下在第ii节中将描述各种示例实施例,其提供一种机制,所述机制基于一个或两个设备上的可用上下文以智能和确定性的方式在两个互连的双重角色设备之间动态地指派角色。第iii节描述了可以用于实现各种实施例的示例移动设备。第iv节描述了可以用于实现各种实施例的示例的基于处理器的计算机系统。第v节描述了一些附加的示范性实施例。第vi节提供了一些结论。

ii.动态和智能地将角色指派给两个互连的双重角色设备的示例实施例

图1是根据实施例的系统100的框图,其中基于一个或两个设备上的可用上下文以智能和确定性的方式将角色动态地指派给两个互连的双重角色设备。如图1所示,系统100包括第一双重角色设备102、第二双重角色设备104及其间的连接106。

第一双重角色设备102和第二双重角色设备104可各自包括多种多样电子设备中的任意一种。仅作为示例,第一双重角色设备102和第二双重角色设备104中的每一个可以包括台式计算机、膝上型计算机、平板计算机、移动电话(例如,智能电话)、便携式媒体播放器、游戏机、可穿戴设备或计算机(例如,智能手表、可穿戴健身器材或头戴式电脑)、物联网设备、个人导航助手、相机、计算机外围设备或能够经由适当的连接向另一设备发送数据和/或电力、或从另一设备接收数据和/或电力的任何其他电子设备。第一双重角色设备102和第二双重角色设备104可以包括相同或相似的设备类型或不同的设备类型。

连接106包括使能在第一双重角色设备102和第二双重角色设备104之间传送数据和/或电力的一种物理介质(或多种物理介质)。连接106可以取决于实现而包括一个或多个有线和/或无线连接。

如图1所示,第一双重角色设备102包括连接接口112和双重角色操作逻辑114。连接接口112包括可以通过其实现与外部设备的连接的物理接口。在系统100中,利用第一双重角色设备102的连接接口112建立到第二双重角色设备104的连接106。根据某些实施例,连接接口112包括可操作来接纳驻留在电缆一端的连接器的端口。这样的电缆还可以直接或间接地(即,经由一个或多个中间设备或连接)连接到第二双重角色设备104。根据备选实施例,连接接口112包括可操作以通过空中(overtheair)与外部设备通信的无线接口。这样的无线接口可以使第一双重角色设备102能够直接或间接地(即,经由一个或多个中间设备或连接)与第二双重角色设备104进行通信。

双重角色操作逻辑114是使第一双重角色设备102能够相对于其经由连接106与第二双重角色设备104的交互而用第一角色或第二角色操作的逻辑。具体地,双重角色操作逻辑114包括第一角色操作逻辑122和第二角色操作逻辑124,第一角色操作逻辑122在被激活时使第一双重角色设备102能够相对于其经由连接106与第二双重角色设备104的交互而用第一角色操作,第二角色操作逻辑124在被激活时使第一双重角色设备102能够相对于其经由连接106与第二双重角色设备104的交互而用第二角色操作。取决于实现,第一角色和第二角色可以分别包括例如:主机和功能、电力供应者和电力消费者、主和从、服务器和客户端、源和宿、上游和下游等。然而,这些示例绝不是限制,并且第一和第二角色取决于实现可以包括其他角色。

双重角色操作逻辑114还包括角色选择逻辑126,其选择性地激活第一角色操作逻辑122或第二角色操作逻辑124,从而使第一双重角色设备102能够相对于其经由连接106与第二双重角色104的交互而用第一角色或第二角色操作。

如图1进一步所示,第二双重角色设备104包括连接接口132和双重角色操作逻辑134。连接接口132包括可以通过其实现与外部设备的连接的物理接口。在系统100中,利用第二双重角色设备104的连接接口132建立到第一双重角色设备102的连接106。与连接接口112类似,连接接口132可包括端口或无线接口,该端口可操作来接纳直接或间接地连接到第一双重角色设备102的电缆的连接器,该无线接口可操作来直接或间接地与第一双重角色设备102通信。

双重角色操作逻辑134是使第二双重角色设备104能够相对于其经由连接106与第一双重角色设备102的交互而用第一角色或第二角色操作的逻辑。具体地,双重角色操作逻辑134包括第一角色操作逻辑142和第二角色操作逻辑144,第一角色操作逻辑142在被激活时使第二双重角色设备104能够相对于其经由连接106与第一双重角色设备102的交互而用第一角色操作,第二角色操作逻辑144在被激活时使第二双重角色设备104能够相对于其经由连接106与第一双重角色设备102的交互而用第二角色操作。

双重角色操作逻辑134还包括角色选择逻辑146,其选择性地激活第一角色操作逻辑142或第二角色操作逻辑144,从而使第二双重角色设备104能够相对于其经由连接106与第一双重角色102的交互而用第一角色或第二角色操作。

如图1中更进一步示出的,第一双重角色设备102还包括角色管理器116。角色管理器116包括可操作来获得与第一双重角色设备102和第二双重角色设备104中的一个或两个相关联的能力和/或操作状态信息的逻辑。角色管理器116可以例如经由与第一双重角色设备102内的其他组件或子系统的交互而查明第一双重角色设备102的能力和/或操作状态。角色管理器116可以例如经由在连接106或与第二双重角色设备104的某其他连接上与第二双重角色设备104的交互而查明第二双重角色设备104的能力和/或操作状态。

角色管理器116还可操作来基于获得的能力和/或操作状态信息而智能地和确定性地确定应当将第一角色和第二角色中的哪一个角色指派给第一双重角色设备102,以及应当将第一角色和第二角色中的另外哪一个角色指派给第二双重角色设备104。如本文中将详细讨论的那样,这样的确定也可以基于其他输入。角色管理器116还可操作来与双重角色操作逻辑114进行交互,以使角色选择逻辑126实现对于第一双重角色设备102和第二双重角色设备104所确定的角色。角色选择逻辑126可以通过选择性地激活第一角色操作逻辑122或第二角色操作逻辑124来实现对于第一双重角色设备102所确定的角色。角色选择逻辑126可以通过经由连接106与第二双重角色设备104进行交互来实现对于第二双重角色设备104所确定的角色。

如本文将要讨论的,当在第一双重角色设备102与第二双重角色设备104之间首次建立连接106时或在那之后不久,角色管理器116可以确定要指派给第一双重角色设备102和第二双重角色设备104的角色。此外,角色管理器116还可以被配置为:在这样的设备互连的时候,随着时间的推移监视第一双重角色设备102和第二双重角色设备104中的一个或两个的能力和/或操作状态。如果一个或两个设备的能力和/或操作状态发生改变,则角色管理器116可以确定初始的角色指派应当被颠倒或交换。如果角色管理器116做出这样的确定,则它将与双重角色操作逻辑114进行交互,以使角色选择逻辑126实现角色指派交换。如本文将详细讨论的,角色管理器116也可以基于其他因素确定应当实现这样的角色指派交换。

在备选实施例中,第二双重角色设备104也包括角色管理器136。角色管理器136可以用与角色管理器116类似的方式被配置为智能地和确定性地确定应当将哪些角色指派给第一双重角色设备102和第二双重角色设备104,并动态地确定应当何时发生角色交换。为避免冲突,可以把角色管理器116和/或角色管理器136配置成使得准许角色管理器中的仅一个去实际地更改角色指派以便进行设备配对。对于准许哪个设备去更改角色指派的确定可以基于各种各样的因素做出,并可以涉及(例如,经由连接106的)设备间通信。

图2是根据另外的实施例的系统200的框图,其中基于一个或两个设备上的可用上下文以智能和确定性的方式在两个连接的双重角色设备之间动态地指派角色。可以认为系统200是系统100的示例实现,其中两个双重角色设备之间的连接包括通用串行总线(usb)连接(即usb电缆),并且其中第一和第二角色包括usb主机和usb功能(例如,如usb3.1规范中定义的)。然而,应当理解,本文中相对于系统200描述的技术可以扩展到其中在双重角色设备之间形成其他类型的连接以及其中指派其他类型的角色的系统。

系统200包括第一双重角色设备202、第二双重角色设备204及形成其间连接的usb电缆206。第一双重角色设备202仅是图1的第一双重角色设备102的一个示例,而第二双重角色设备204仅是图1的第二双重角色设备104的一个示例。在一个实施例中,usb电缆206包括usbc型电缆。如本领域技术人员将认识到的,从位于其任一端的连接器在结构上相同的意义上来说,usbc型电缆是对称的。然而,usb电缆206可以包括其他类型的usb电缆。

如图2所示,第一双重角色设备202包括usb硬件211和双重角色操作逻辑214。usb硬件211包括多个usb端口,包含usb端口212和usb端口213。usb端口212和usb端口213中的每一个与形成usb硬件211一部分的usb端口控制器(图2中未示出)连接。usb端口212和usb端口213可以与相同的usb端口控制器或不同的usb端口控制器连接。此外,usb端口212和usb端口213中的每一个可以经由一个或多个usb集线器(在图2中也未示出)与其相应的usb端口控制器连接,其中这样的(一个或多个)usb集线器也形成usb硬件211的一部分。usb电缆206的第一端处的连接器被插入usb端口212中。

双重角色操作逻辑214是如下的逻辑,其使第一双重角色设备202能够相对于其经由usb电缆206与第二双重角色设备204的交互而以usb主机角色或usb功能角色操作。具体地,双重角色操作逻辑214包括usb主机驱动器堆栈222和usb功能驱动器堆栈122,usb主机驱动器堆栈222在被激活时使第一双重角色设备202能够相对于其经由usb电缆206与第二双重角色设备204的交互而以usb主机角色操作,usb功能驱动器堆栈122功能在被激活时使第一双重角色设备202能够相对于其经由usb电缆206与第二双重角色设备204的交互而以usb功能角色操作。

双重角色操作逻辑214还包括usb连接器管理器(ucm)驱动器堆栈226,其选择性地激活usb主机驱动器堆栈222或usb功能驱动器堆栈224,从而使第一双重角色设备202能够相对于其经由usb电缆206与第二双重角色204的交互而以usb主机角色或usb功能角色操作。

如图2中进一步示出的,第二双重角色设备204包括usb硬件231和双重角色操作逻辑234。usb硬件231包括一个或多个usb端口,包含usb端口232。usb端口232与形成usb硬件231一部分的usb端口控制器(图2中未示出)连接。usb端口232可以经由一个或多个usb集线器(在图2中也未示出)与usb端口控制器连接,其中这样的(一个或多个)usb集线器也形成usb硬件231的一部分。usb电缆206的第二端处的连接器被插入usb端口232中。

双重角色操作逻辑234是如下的逻辑,其使第二双重角色设备204能够相对于其经由usb电缆206与第一双重角色设备202的交互而以usb主机角色或usb功能角色操作。尽管图2中未示出,但双重角色操作逻辑234可以包括与如以上参考双重角色操作逻辑214描述的usb主机驱动器堆栈222、usb功能驱动器堆栈224和ucm驱动器堆栈226相类似的组件,并且这样的组件可以用类似的方式操作来使第二双重角色设备204能够相对于其经由usb电缆206与第一双重角色设备202的交互而选择性地以usb主机角色或usb功能角色操作。

如图2中更进一步示出的,第一双重角色设备202还包括角色管理器216。角色管理器216包括可操作来获得与第一双重角色设备202和第二双重角色设备204中的一个或两个相关联的能力和/或操作状态信息的逻辑。角色管理器216可以例如经由与第一双重角色设备202内的其他组件或子系统的交互来查明第一双重角色设备202的能力和/或操作状态。角色管理器216可以例如经由在usb电缆206或与第二双重角色设备的某一其他连接上的与第二双重角色设备102的交互来查明该设备的能力和/或操作状态。

角色管理器216还可操作来基于获得的能力和/或操作状态信息而智能地和确定性地确定应当将usb主机角色和usb功能角色中的哪一个指派给第一双重角色设备202、以及应当将usb主机角色和usb功能角色中的另外哪一个指派给第二双重角色设备204。如本文中将详细讨论的那样,这样的确定也可以基于其他输入。角色管理器216还可操作来与双重角色操作逻辑214进行交互,以使ucm驱动器堆栈226实现对于第一双重角色设备202和第二双重角色设备204所确定的角色。ucm驱动器堆栈226可以通过选择性地激活usb主机驱动器堆栈222或usb功能驱动器堆栈224来实现对于第一双重角色设备202所确定的角色。ucm驱动器堆栈226可以通过经由usb电缆206与第二双重角色设备204进行交互来实现对于第二双重角色设备204所确定的角色。

当第一双重角色设备202和第二双重角色设备204首次经由usb电缆206连接时或在那之后不久,角色管理器216可以确定要指派给这两个设备的角色。此外,角色管理器216还可以被配置为:在第一双重角色设备202和第二双重角色设备204互连的时候,随着时间的推移监视这两个设备中的一个或两个的能力和/或操作状态。如果一个或两个设备的能力和/或操作状态发生改变,则角色管理器216可以确定初始的角色指派应当被颠倒或交换。如果角色管理器216做出这样的确定,则它将与双重角色操作逻辑214进行交互,以使ucm驱动器堆栈226实现角色指派交换。如本文将详细讨论的,角色管理器216也可以基于其他因素确定应当实现这样的角色指派交换。

在备选实施例中,第二双重角色设备204也包括角色管理器(图2中未示出),其可以被配置为以与角色管理器216类似的方式智能地和确定性地确定应当将哪些角色指派给第一双重角色设备202和第二双重角色设备204,并动态地确定应当何时发生角色交换。为避免冲突,可以把角色管理器216和/或第二双重角色设备204的角色管理器配置成使得准许角色管理器中的仅一个实际地更改角色指派以便进行设备配对。对于准许哪个设备更改角色指派的确定可以基于各种各样的因素做出,并可以涉及(例如,经由连接206的)设备间通信。

现在将相对于图3的流程图300来描述可以被用于将usb主机角色和usb功能角色指派给第一双重角色设备202和第二双重角色设备204中的相应设备的方式。例如当usb电缆206首次被用来连接第一双重角色设备202与第二双重角色设备204时或在那之后不久可以执行流程图300的步骤。尽管将继续参考系统200的某些组件来描述流程图300的方法,但(一个或多个)相关领域的技术人员将认识到,该方法可以由其他组件和/或系统来实现。

如图3所示,流程图300的方法从步骤302开始。在步骤302,在usb电缆206已经与第一双重角色设备202的usb端口212和第二双重角色设备204的usb端口232连接之后,第一双重角色设备202的usb硬件211(例如,端口控制器)和第二双重角色设备204的usb硬件231(例如,端口控制器)进行交互以获得对于每个设备的初始角色指派。获得初始角色指派可以涉及例如将usb主机的角色随机地指派给第一双重角色设备202和第二双重角色设备204中的一个,并将usb功能的角色指派给第一双重角色202和第二双重角色设备204中的另一个。在某些实施例中,从角色指派由usb硬件211、231完成并且不涉及“更高级别”组件(比如角色管理器216)的任何参与的意义上讲,该初始角色指派排他地在“硬件层”上进行。然而,在其他实施例中(例如,在不同的usb实现中或在实现不同的连接协议的实施例中),该初始角色指派可牵涉到除usb硬件211、231之外的组件或附加于usb硬件211、231的组件。在任何情况下,在该步骤期间获得初始角色指派。

在步骤304,角色管理器216向第二双重角色设备204查询与之相关联的能力和/或操作状态信息。可以经由usb电缆206将该查询传送给第二双重角色设备204。在第一双重角色设备202初始地被指派了usb主机角色的情况下可以使用usb主机驱动器堆栈222来传送该查询,或者在第一双重角色设备202初始地被指派了usb功能角色的情况下经由usb功能驱动器堆栈224来传送该查询。

在步骤306,角色管理器216从第二双重角色设备204接收与之相关联的能力和/或操作状态信息。可以经由usb电缆206将该信息从第二双重角色设备204传送给第一双重角色设备202。在第一双重角色设备202初始地被指派了usb主机角色的情况下可以使用usb主机驱动器堆栈222来接收该信息,或者在第一双重角色设备202初始地被指派了usb功能角色的情况下可以经由usb功能驱动器堆栈224来接收该信息。

在步骤304和306中实行的通信可以利用经由usb协议所定义的供应商特定字段输送的私有描述符和/或命令。

在步骤308,角色管理器216获得与第一双重角色设备202相关联的能力和/或操作状态信息。角色管理器216可以例如经由与第一双重角色设备202内的其他组件或子系统的交互而获得与第一角色设备202相关联的能力和/或操作状态信息。

在图3中未示出的可选步骤中,角色管理器216还可操作来将与第一双重角色设备202相关联的能力和/或操作状态信息发送给第二双重角色设备204。可以经由usb电缆206将该信息从第一双重角色设备202传送给第二双重角色设备204。也可以通过利用经由usb协议所定义的供应商特定字段输送的私有描述符和/或命令来实行该通信。

在步骤310,角色管理器216基于与第一双重角色设备202和第二双重角色设备204相关联的能力和/或操作状态信息来确定usb主机角色(在图3中称为“第一角色”)和usb功能角色(在图3中称为“第二角色”)中的哪一个将被指派给第一双重角色设备202、以及usb主机角色和usb功能角色中的哪一个将被指派给第二双重角色设备204。

在步骤312,角色管理器216确定来自步骤310的所确定的角色指派是否与来自步骤302的初始角色指派相匹配。如果角色管理器216确定所确定的角色指派与初始角色指派相匹配,则当前不需要角色交换,并且设备可以按它们当前被指派的角色继续操作并经由usb电缆206彼此交互。

然而,如步骤314处所示,如果角色管理器216确定来自步骤310的所确定的角色指派与来自步骤302的初始角色指派不匹配,则角色管理器216发起角色交换。发起角色交换可以牵涉到与ucm驱动器堆栈226进行交互以使usb硬件211、231转换与usb端口212和usb端口232相关联的角色。这将导致初始指派给第一双重角色设备202的角色被改而指派给第二双重角色设备204,并且初始指派给第二双重角色设备204的角色被改而指派给第一双重角色设备202。

在其中在步骤314仅能指令usb硬件211、231随机重新指派角色以使得可能再次发生不正确角色指派的实施例中,可以重复步骤304、306、308、310和312直到随机指派的角色与所需的角色指派相一致时为止。

在一个实施例中,角色管理器216被配置为:基于哪个设备具有可以提供usb主机功能性的更适当的更高级别驱动器、以及哪个设备具有可以提供usb功能功能性的更适当的更高级别驱动器,而向第一双重角色设备202和第二双重角色设备204中的每一个指派适当的数据角色(即,usb主机或usb功能)。

在一个具体实施例中,可以从双重角色设备正在使用的操作系统的标识符(例如,sku)、以及还从是否启用了操作系统调试器而推导出对于在每个双重角色设备上存在哪些更高级别驱动器的确定。这样的信息可以由角色管理器216用以上关于流程图300的步骤304、306和308所描述的方式获得。例如,如果第一双重角色设备202和第二双重角色设备204正分别运行具有“桌上型sku”和“移动sku”标识符的操作系统,则向具有“桌上型sku”标识符的设备指派usb主机的角色。在另一示例中,如果第一双重角色设备202和第二双重角色设备204正运行具有“桌上型sku”标识符的操作系统、并在它们中的一个上启用调试器,则向启用了调试器的设备指派usb功能的角色。如本文将讨论的,可以使用多种多样的其他准则来智能地和确定性地将适当的数据角色指派给每个设备。

角色管理器216还可以被配置为:利用与第一双重角色设备202和第二双重角色设备204相关联的能力和/或操作状态信息将电力供应者角色指派给第一双重角色设备202和第二双重角色设备204中的一个、并将电力消费者角色指派给第一双重角色设备202和第二双重角色设备204中的另一个。电力供应者和电力消费者角色可以是例如由usbpowerdelivery2.0规范定义的那些角色。在一个实施例中,在已经经由诸如以上参照图3的流程图300所描述的方法的执行而做出数据角色(usb主机与usb功能)的决定之后,角色管理器216可操作来指派这些电力角色。角色管理器216可以推翻由usb硬件211、231建立的初始电力供应者和电力消费者角色指派。在确定如何指派电力角色时,角色管理器216可以应用考虑一个或多个因素的探试法。例如,探试法可以基于多个因素,所述多个因素可以包括但不限于:每个设备是否被插入、哪个设备具有更有能力的电池、设备的数据角色是什么等。

在其中第一双重角色设备202和第二双重角色设备204各自包括具有角色交换能力的角色管理器的一个实施例中,以上参考流程图300描述的方法由初始地通过usb硬件211、231被指派了usb主机角色的无论哪个设备的角色管理器执行。这防止了其中两个角色管理器均确定应当实行角色交换、并均发起实际上相互抵消的角色交换的情景。然而,仅当两台设备上均安装了角色管理器时,才能使用这样的办法。在其中仅第一双重角色设备202包括角色交换能力的实施例中,可以由第一双重角色设备202实行流程图300的方法,而不考虑由usb硬件211、231初始地向其指派usb主机角色还是usb功能角色。

在其中两个设备均具有角色交换能力的更进一步的实施例中,不一定是usb主机设备发起角色交换。例如,在其中就每个设备的角色指派需要是什么而论两个实体得出相同结论的实施例中,实体可以在它们自身之间确定它们中的哪一个应当发起角色交换,而不考虑当前哪个实体处于usb主机角色。因此,根据这样的另外的实施例,可以是usb主机设备或usb功能设备发起角色交换。

在进行上述角色指派确定(例如,usb主机与usb功能、电力供应者与电力消费者)时,角色管理器216可以考虑超出上述示例的多种多样的上下文因素。

在一个实施例中,角色管理器216被配置为存储对于具体设备对的角色指派。例如,在确定对于第一双重角色设备202和第二双重角色设备204的适当的角色指派之后,角色管理器216可以将所确定的角色指派存储在相对于第一双重角色设备202来说是内部的存储器中、或者相对于第一双重角色设备202来说是外部的(例如,在服务器上、在外部存储设备上或在第一双重角色设备202可以经由网络或其他通信介质与其连接的其他实体上)并且对其而言可访问的存储器中。可以例如与两个设备的标识符或设备配对的标识符相关联地存储所确定的角色指派信息。如果第一双重角色设备202和第二双重角色设备204被断开连接(例如,通过从其拔出usb电缆206),然后重新连接(例如,经由usb电缆206或某其它usb电缆),则角色管理器216可以访问所存储的对于这两个设备的指派确定信息,然后使用该信息来控制或引导对其的新的角色指派确定。

图4描绘了根据该实施例由角色管理器216执行的方法的流程图400。如图4所示,流程图400的方法从步骤402开始,其中角色管理器216获得对于第一双重角色设备202和第二双重角色设备204的先前的角色指派信息。可以将这样的先前的角色指派信息高速缓存或存储在对双重角色设备202或双重角色设备204来说是内部的存储器中,或者存储在对该一个或两个设备来说可访问的外部存储器中。在步骤404,角色管理器216至少基于在步骤402期间获得的先前的角色指派信息来确定要指派给第一双重角色设备和第二双重角色设备的角色。

在另一实施例中,角色管理器216被配置为确定第一双重角色设备202和/或第二双重角色设备204的上下文。所确定的上下文可以包括第一双重角色设备202和第二双重角色设备204中的每一个的设备类型的描述或表示。所确定的上下文还可以包括第一双重角色设备202和/或第二双重角色设备204的当前能力和/或操作状态的描述或表示。角色管理器216可以向外部实体提供这样的上下文,并且反过来,接收被视为适用于特定上下文的一个或多个历史角色使用模型。这样的历史角色使用模型可以表示过去由具有相似上下文的相似设备的配对使用的角色指派。例如,如果遥测(telemetry)表明90%的用户已经针对某对设备类型使用了某种角色指派方案,则可以利用(leverage)该信息来预测对于类似设备配对的未来的角色指派。

这样的历史角色使用模型可以由相对于第一双重角色设备202来说是外部的、但经由连接(例如,经由网络连接)可以对其进行访问的系统、设备或服务来维护。例如,如图2所示,角色管理器216可以被配置为利用第一双重角色设备202的网络接口262来访问驻留在网络264上的云服务266,其中云服务266能够提供适用于被角色管理器216观察到的上下文的一个或多个历史角色使用模型。角色管理器216可以使用由云服务266提供的(一个或多个)历史角色使用模型来确定对于第一双重角色设备202和第二双重角色设备204适当的角色指派。

图5描绘了根据该实施例的由角色管理器216执行的方法的流程图500。如图5所示,流程图500的方法从步骤502开始,其中角色管理器216获得与第一双重角色设备202和/或第二双重角色设备204的当前上下文相关联的至少一个历史角色使用模型。可以从在第一双重角色设备202外部、但与其通信地连接的系统、设备或服务(例如,云服务266)获得(一个或多个)历史角色使用模型。响应于第一双重角色设备202将上下文信息发送给所述外部系统、设备或服务,可以将该(一个或多个)历史角色使用模型返回给第一双重角色设备202。在步骤504,角色管理器216至少基于在步骤502期间获得的该(一个或多个)历史角色使用模型来确定要指派给第一双重角色设备和第二双重角色设备的角色。

在再一个实施例中,角色管理器216被配置为使用关于第一双重角色设备202和/或第二双重角色设备204的一个或多个标识机制的信息来确定适当的角色指派。例如,如以上所讨论的,可以使用操作系统标识符来确定具体设备是否具有作为usb主机或usb功能操作的能力(例如,具有作为usb主机或usb功能操作所需的高级别驱动器)。例如,操作系统的桌上型版本可以具有与相同操作系统的移动版本不同的能力。

在又一个实施例中,角色管理器216被配置为使用关于第一双重角色设备202和/或第二双重角色设备204上其他子系统的存在或缺失的信息来确定适当的角色指派。当在本文中使用时,术语“子系统”是指一个或多个软件组件(例如,由处理设备执行的程序指令)、一个或多个硬件组件(例如,设备的物理组件)或软件和硬件组件的组合。例如,可以基于第一双重角色设备202和第二双重角色设备204中的一个或两个是否包括电池而做出角色指派判决。

在另外的实施例中,角色管理器216被配置为使用关于第一双重角色设备202和/或第二双重角色设备204上一个或多个子系统的当前状态的信息来确定适当的角色指派。例如,角色指派判决可以是基于设备之一当前是否插入墙上插座和/或设备之一是否正仅以电池电力运行。作为另一示例,角色指派判决可以是基于哪个设备具有更有能力的电池。

在还有一个实施例中,角色管理器216被配置为使用关于可以与第一双重角色设备202和/或第二双重角色设备204连接的一个或多个其他设备的信息来确定适当的角色指派。例如,如图2所示,第三设备210与第一双重角色设备202连接。具体地,第三设备210包括usb硬件271,usb硬件271包括usb端口272。usb电缆208将usb端口272与usb端口213连接,从而在第三设备210和第一双重角色设备202之间形成usb连接。进一步地根据该示例,假设第一双重角色设备202能够每次相对于仅一个其他设备按usb功能角色动作。因此,如果第一双重角色设备202已经相对于其经由usb电缆208与第三设备210的交互被指派了usb功能角色,则第一双重角色设备202不应当也相对于它与任何其他设备的交互被指派usb功能角色。由于角色管理器216可以获得指示第一双重角色设备202已经相对于它经由usb电缆208与第三设备210的交互被指派了usb功能角色的信息,所以角色管理器216可以使用该信息来防止第一双重角色设备202相对于其经由usb电缆206与第二双重角色设备204的交互被指派usb功能角色。可以利用还有的关于第三设备210的其他信息做出角色指派确定。此外,当做出角色指派确定时,也可以由角色管理器216考虑关于当前与第二双重角色设备204连接的一个或多个设备的信息。

在另一实施例中,角色管理器216被配置为使用由第一双重角色设备202和/或第二双重角色设备204的终端用户提供的用户偏好信息来确定适当的角色指派。终端用户可以通过经由第一双重角色设备202或第二双重角色设备204的用户接口与之交互来提供这样的用户偏好信息。用户接口可以包括软件实现的用户接口(例如,通过执行软件而呈现给显示器的用户界面)或一个或多个硬件输入机构(例如,物理开关、按钮、滑块等)。例如,终端用户可以与这样的用户接口交互以确认角色指派判决、或者主动指定要指派给具体设备或设备组的角色。

图2中示出了该场景的示例,其中终端用户252与第一双重角色设备的用户接口254交互,以向被标注为“用户应用1”的正在执行的应用256提供用户偏好信息。然后将该用户偏好信息传递给角色管理器216,角色管理器216在提出(render)角色指派确定时可以考虑该信息。

图6描绘了根据该实施例的由角色管理器216执行的方法的流程图600。如图6所示,流程图600的方法从步骤602开始,其中角色管理器216经由第一双重角色设备的用户接口和第二双重角色设备204的用户接口中的一个或多个获得用户偏好信息。在步骤604,角色管理器216至少基于在步骤602期间获得的用户偏好信息来确定要指派给第一双重角色设备202和第二双重角色设备204的角色。

在再一个实施例中,角色管理器216被配置为使用关于第一双重角色设备202和/或第二双重角色设备204的配置设置的信息来确定适当的角色指派。例如,第一双重角色设备202和/或第二双重角色设备204的终端用户可能已经明确地将这些设备中的一个或两个配置为以特定的角色操作。备选地,可以从其他配置设置导出或推断角色指派判决。例如,如果设备被配置为以低功率模式运行,则这可能会驱动角色指派判决。

在又一个实施例中,角色管理器216被配置为使用关于在第一双重角色设备202和/或第二双重角色设备204上执行的一个或多个应用的角色需求的信息来确定适当的角色指派。例如,如图2所示,正在执行的应用258(标注为“用户应用程序2”)和正在执行的应用260(标注为“用户应用程序3”)中的一个或多个可以操作来向角色管理器216提供角色需求信息。这样的角色需求信息可以指示例如为了使每个应用执行某些操作,该应用需要第一双重角色设备202被指派的角色。当将角色指派给第一双重角色设备202和第二双重角色设备204时,角色管理器216可以考虑这样的角色需求信息。

图7描绘了根据该实施例的由角色管理器216执行的方法的流程图700。如图7所示,流程图700的方法从步骤702开始,其中角色管理器216从在第一双重角色设备202或第二双重角色设备204上执行的至少一个应用获得角色需求信息。在步骤704,角色管理器216至少基于在步骤602期间获得的角色需求信息来确定要指派给第一双重角色设备和第二双重角色设备的角色。

在再一个实施例中,角色管理器216被配置为响应于在第一角色设备202和第二角色设备204中一个或两个设备处的状态改变来动态地交换被指派给第一角色设备202和第二角色设备204中的每一个的角色。具体地,在已经将角色指派给第一双重角色设备202和第二双重角色设备204(例如,根据上面参考流程图300描述的方法)之后,在设备互连的时候,角色管理器216可以随着时间的推移来监视第一双重角色设备202和第二双重角色设备204中的一个或两个的能力和/或操作状态。如果一个或两个设备的能力和/或操作状态发生改变,则角色管理器216可以确定应当颠倒或交换当前的角色指派。如果角色管理器216做出这样的确定,则它可以与双重角色操作逻辑214进行交互,以使ucm驱动器堆栈226实现角色指派交换。在备选实施例中,角色管理器216可以通过强制在第一双重角色设备202和第二双重角色设备204之间的重新连接来发起角色交换,这将导致根据改变的上下文再次执行流程图300的方法。可以使用还有的其他用于基于第一双重角色设备202和第二双重角色设备204中的一个或两个设备处的状态改变而动态地重新指派角色的方法。

图8描绘了根据该实施例的由角色管理器216执行的方法的流程图800。如图8所示,流程图800的方法从步骤802开始,其中角色管理器216确定第一角色将被指派给第一双重角色设备202,而第二角色将被指派给第二双重角色设备204。在步骤804,角色管理器216使得所述第一角色被指派给第一双重角色设备202,以及所述第二角色被指派给第二双重角色设备204。步骤802和804可以用与上述流程图300的步骤310、312和314类似的方式来执行。可以例如当在第一双重角色设备202与第二双重角色设备204之间首次形成usb连接时或在那之后不久执行步骤802和804。

在步骤806,角色管理器216接收指示第一双重角色设备202和第二双重角色设备204中的一个或多个的能力或操作状态的改变的信息。所述改变可以包括对角色管理器216在做出角色指派确定时可以使用的任何前述因素的改变,然而该示例不意图是限制性的。例如,改变可以包括:第一双重角色设备202和/或第二双重角色设备204的子系统的添加、移除、激活或停用(deactivation);第一双重角色设备202和/或第二双重角色设备204的子系统的状态的改变;用户偏好输入相对于第一双重角色设备202和第二双重角色设备204的角色指派的改变;第一双重角色设备202和/或第二双重角色设备204的配置信息的改变;另一设备与第一双重角色设备202和/或第二双重角色设备204的连接或断开连接;以及在第一双重角色设备202和/或第二双重角色设备204上执行的应用的角色需求的改变。还有的其他改变可以包括:第一双重角色设备202和/或第二双重角色设备204相关的电源的改变;当前被用于向第一双重角色设备202或第二双重角色设备204供电的电源的状态的改变,以及第一双重角色设备202和/或第二双重角色设备204相关的资源(例如,电力、cpu周期、存储器、i/o、网络带宽等)消耗水平的改变。

在步骤808,角色管理器216至少部分基于在步骤806期间接收到的信息来确定要实现角色指派交换。在步骤810,角色管理器216至少基于确定要实现角色指派交换,而使得所述第一角色被指派给第二双重角色设备204以及使得所述第二角色被指派给第一双重角色设备202。如以上谈及的,这可能需要与双重角色操作逻辑214交互以使ucm驱动器堆栈226实现角色指派交换,或者可能需要强制进行第一双重角色设备202和第二双重角色设备204之间的重新连接,重新连接将导致根据改变的上下文再次执行流程图300的方法。还可以使用其它方法。

注意,在某些实施例和/或在某些操作模式中,角色管理器216可能能够通过仅观察第一双重角色设备202的能力和/或操作状态或通过仅观察第二双重角色设备204的能力和/或操作状态而做出角色指派或角色交换判决。然而,如(一个或多个)相关领域的技术人员将理解的,具有来自两个设备的能力和操作状态信息以做出适当的角色指派判决可以是有益的。例如,如果一个设备被指派了usb功能角色,但后来确定它不能支持该角色,则它可能尝试发起角色交换。然而,如果设备还能够确定其他设备也不能支持该usb功能角色,那么它可以避免尝试发起无效的角色交换,且改而采取某个其他操作,比如输出错误消息。

系统200的以上描述以及由此可执行的方法提供了一种机制的一些特定于实现的示例,所述机制基于两个互连的双重角色设备中每个设备上的可用上下文以智能和确定性的方式动态地指派两个互连的双重角色设备之间的角色。然而,所描述的技术可以被扩展到允许双重角色设备的互连的任何系统,包括图1的更一般化的系统100。例如,本文描述的技术可以用于动态地、智能地和确定性地将角色指派给系统中互连的双重角色设备,在该系统中,仅举几例,这样的设备可以充当主机或功能、电力供应者或电力消费者、主或从、客户端或服务器、源或宿、上游或下游。

iii.示例移动设备实现

图9是可以实现本文描述的实施例的示范性移动设备902的框图。例如,移动设备902可以用于实现第一双重角色设备102、第二双重角色设备104、第一双重角色设备202、第二双重角色设备204或第三设备210。如图9中所示,移动设备902包括各种各样可选的硬件和软件组件。尽管为了方便说明而没有显示所有的连接,但移动设备902中的任何组件可以与任何其他组件通信。移动设备902可以是各种各样计算设备(例如,蜂窝电话、智能电话、手持计算机、个人数字助理(pda)等)中的任意一种,并且可以允许与一种或多种移动通信网络904(诸如蜂窝网络或卫星网络)或与局域网或广域网进行双向无线通信。

所图示的移动设备902可以包括用于执行诸如信号编码、数据处理、输入/输出处理、功率控制和/或其他功能这样的任务的控制器或处理器910(例如,信号处理器、微处理器、asic或其他控制及处理逻辑电路)。操作系统912可以控制移动设备902的组件的分配和使用,并提供对于一个或多个应用程序914(也称为“应用”或“app”)的支持。应用程序914可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、web浏览器、消息传送应用)及任何其他计算应用(例如,文字处理应用、映射应用、媒体播放器应用)。

所图示的移动设备902可以包括存储器920。存储器920可以包括不可拆卸存储器922和/或可拆卸存储器924。不可拆卸存储器922可以包括ram、rom、闪存、硬盘或其他众所周知的存储器设备或技术。可拆卸存储器924可以包括闪存或在gsm通信系统中众所周知的订户身份模块(sim)卡,或其他众所周知的存储器设备或技术,比如“智能卡”。存储器920可以被用于存储运行操作系统912和应用914所用的数据和/或代码。示例数据可以包括网页、文本、图像、声音文件、视频数据、或要经由一个或多个有线或无线网络发送给一个或多个网络服务器或其他设备和/或从一个或多个网络服务器或其他设备接收的其他数据。存储器920可以被用于存储订户标识符(例如国际移动订户身份(imsi))和设备标识符(例如国际移动设备标识符(imei))。这样的标识符可以被传送给网络服务器以对用户和设备进行识别。

移动设备902可以支持一个或多个输入设备930,诸如触摸屏932、麦克风934、相机936、物理键盘938和/或轨迹球940,以及支持一个或多个输出设备950,诸如扬声器952和显示器954。其他可能的输出设备(未示出)可以包括压电输出设备或其他触觉输出设备。某些设备可以供给多于一个的输入/输出功能。例如,触摸屏932和显示器954可以被组合为单个输入/输出设备。输入设备930可以包括自然用户界面(nui)。

如本领域中充分理解的那样,(一个或多个)无线调制解调器960可以连接至(一个或多个)天线(未示出),并可以支持处理器910和外部设备之间的双向通信。(一个或多个)调制解调器960被一般化地示出,并且可以包括用于与移动通信网络904进行通信的蜂窝调制解调器966和/或其他基于无线电的调制解调器(例如,蓝牙964和/或wi-fi962)。(一个或多个)无线调制解调器960的至少一个通常被配置用于与一个或多个蜂窝网络(比如gsm网络)进行通信,以在单个蜂窝网络内、在蜂窝网络之间、或者在移动设备和公共交换电话网(pstn)之间进行数据和话音通信。

移动设备902还可以包括至少一个输入/输出端口980、电源982、卫星导航系统接收机984(比如全球定位系统(gps)接收机)、加速度计986和/或物理连接器990,该物理连接器990可以是usb端口、ieee1394(火线)端口和/或rs-232端口。就像本领域技术人员认识到的那样,移动设备902的所图示的组件不是必需的或者全部包含在内的,因为可以删除任何组件并且可以添加其他组件。

在一实施例中,移动设备902被配置为执行第一双重角色设备102、第二双重角色设备104、第一双重角色设备202、第二双重角色设备204或第三设备210的功能中的任何功能。用于执行这些设备的功能的计算机程序逻辑可以存储在存储器920中并由处理器910执行。通过执行这样的计算机程序逻辑,可以使处理器910实现这些设备中任一设备的任何特征。此外,通过执行这样的计算机程序逻辑,可以使处理器910执行图3-8的流程图的任何或全部步骤。

iv.示例计算机系统实现

图10描绘了示例的基于处理器的计算机系统1000,其可以用于实现本文描述的各种实施例。例如,系统1000可以被用于实现第一双重角色设备102、第二双重角色设备104、第一双重角色设备202、第二双重角色设备204或第三设备210。系统1000也可以被用于实现图3-8的流程图的任何或全部步骤。本文提供的系统1000的描述是为了说明的目的而提供的,并不打算是限制性的。如(一个或多个)相关领域的技术人员所知道的,实施例可以在其他类型的计算机系统中实现。

如图10所示,系统1000包括处理单元1002、系统存储器1004和总线1006,总线1006把包括系统存储器1004在内的各种系统组件与处理单元1002耦合。处理单元1002可以包括一个或多个微处理器或微处理器核。总线1006代表若干类型总线结构中的任何总线结构的一种或多种,​​包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种各样总线架构中的任何一种的处理器或本地总线。系统存储器1004包括只读存储器(rom)1008和随机存取存储器(ram)1010。基本输入/输出系统1012(bios)被存储在rom1008中。

系统1000还具有以下驱动器中的一个或多个:硬盘驱动器1014,用于从硬盘读取和向其写入;磁盘驱动器1016,用于从可拆卸磁盘1018读取或向其写入;以及光盘驱动器1020,用于从诸如cdrom、dvdrom、blu-ray™盘或其他光学介质的可拆卸光盘1022读取或向其写入。硬盘驱动器1014、磁盘驱动器1016和光盘驱动器1020分别通过硬盘驱动器接口1024、磁盘驱动器接口1026和光驱动器接口1028与总线1006连接。驱动器及它们相关联的计算机可读介质为计算机提供对于计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可拆卸磁盘和可拆卸光盘,但其他类型的计算机可读存储器设备和存储结构也可以被使用来存储数据,诸如闪存卡、数字视频盘、随机存取存储器(ram)、只读存储器(rom)等。

多个程序模块可以被存储在硬盘、磁盘、光盘、rom或ram上。这些程序模块包括操作系统1030、一个或多个应用程序1032、其他程序模块1034和程序数据1036。根据各种实施例,程序模块可以包括如下的计算机程序逻辑,即:其可由处理单元1002执行来完成第一双重角色设备102、第二双重角色设备104、第一双重角色设备202、第二双重角色设备204和第三设备210的任何或全部功能和特征。程序模块还可以包括如下的计算机程序逻辑,即:当其由处理单元1002执行时,完成参照图3-8的流程图示出或描述的任何步骤或操作。

用户可以通过诸如键盘1038和点击设备1040(例如,鼠标)的输入设备将命令和信息输入到系统1000中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏控制器、扫描仪等。在一个实施例中,结合显示器1044提供触摸屏,以允许用户经由向触摸屏上的一个或多个点施加触摸(例如通过手指或触控笔)而提供用户输入。这些和其他输入设备常常通过与总线1006耦合的串行端口接口1042而与处理单元1002连接,但也可以通过诸如并行端口、游戏端口或通用串行总线(usb)之类的其他接口来连接。这样的接口可以是有线接口或无线接口。

显示器1044经由诸如视频适配器1046的接口与总线1006连接。除显示器1044之外,系统1000可以包括诸如扬声器和打印​​机的其它外围输出设备(未示出)。

系统1000通过网络接口1050、调制解调器1052或用于在网络上建立通信的其他合适的手段与网络1048(例如,局域网或诸如互联网的广域网)连接。可以是在内部或外部的调制解调器1052经由串行端口接口1042与总线1006连接。

当在本文中使用时,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”被用于一般性地指存储器设备或存储结构,比如与硬盘驱动器1014相关联的硬盘、可拆卸磁盘1018、可拆卸光盘1022以及诸如闪存卡、数字视频盘、随机存取存储器(ram)、只读存储器(rom)等的其他存储器设备或存储结构。这样的计算机可读存储介质与通信媒体有区别并且不重叠(不包括通信媒体)。通信媒体典型地把计算机可读指令、数据结构、程序模块或者其它数据具体表达在诸如载波这样的调制的数据信号中。术语“调制的数据信号”意指这样的信号,即:它使其特性中的一个或多个以将信息编码在信号中这样的方式进行设置或改变。作为示例而非限制,通信媒体包括诸如声学、rf、红外和其它无线介质之类的无线介质。实施例也针对于这样的通信媒体。

如以上谈及的,可以将计算机程序和模块(包括应用程序1032和其他程序模块1034)存储在硬盘、磁盘、光盘、rom或ram上。也可以经由网络接口​​1050、串行端口接口1042或任何其他接口类型来接收这样的计算机程序。这样的计算机程序在由应用执行或加载时使系统1000能够实现本文讨论的实施例的特征。因此,这样的计算机程序代表系统1000的控制器。

实施例还针对计算机程序产品,其包括存储在任何计算机可用介质上的软件。这样的软件当在一个或多个数据处理设备中执行时使(一个或多个)数据处理设备如本文描述的那样进行操作。实施例可以采用现在已知的或未来的任何计算机可用介质或计算机可读介质。计算机可读介质的示例包括但不限于存储器设备和存储结构,诸如ram、硬驱动器、软盘、cdrom、dvdrom、zip盘、磁带、磁存储设备、光学存储设备、mem、基于纳米技术的存储设备等。

在备选实现中,系统1000可以被实现为硬件逻辑/电路或固件。根据另外的实施例,这些组件中的一个或多个可以用片上系统(soc)实现。soc可以包括集成电路芯片,其包括处理器(例如,微控制器、微处理器、数字信号处理器(dsp)等)、存储器、一个或多个通信接口和/或另外的电路和/或嵌入式固件中的一个或多个来执行其功能。

v.另外的示例实施例

本文描述了一种方法。该方法由在第一设备上执行的软件实现的角色管理器执行,该第一设备与第二设备通信地连接。该方法包括:确定第一角色将被指派给所述第一设备以及第二角色将被指派给所述第二设备;使所述第一角色被指派给所述第一设备以及所述第二角色被指派给所述第二设备;接收指示所述第一设备和所述第二设备中的一个或多个的能力或操作状态的改变的信息;至少部分地基于所述信息来确定要实现角色指派交换;以及至少基于确定要实现角色指派交换,而使所述第一角色被指派给所述第二设备以及使所述第二角色被指派给所述第一设备。

在上述方法的一个实施例中,所述第一角色和所述第二角色分别包括:主机和功能;电力供应者和电力消费者;主和从;服务器和客户端;源和宿;或者上游或下游。

在上述方法的另一实施例中,接收指示所述第一设备和所述第二设备中的一个或多个的能力或操作状态的改变的信息包括接收指示以下中的一项或多项的信息:第一设备或第二设备的子系统的添加、移除、激活或停用;第一设备或第二设备的子系统的状态的改变;用户偏好输入相对于第一设备和第二设备的角色指派的改变;第一设备或第二设备的配置信息的改变;至少第三设备到第一设备或第二设备的连接或者至少第三设备从第一设备或第二设备的断开连接;在第一设备或第二设备上执行的至少一个应用相关的角色需求的改变;第一设备或第二设备相关的电源的改变;当前被用于向第一设备或第二设备供电的电源的状态的改变;以及第一设备或第二设备相关的资源消耗水平的改变。

在上述方法的再一个实施例中,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备包括:向所述第二设备查询与所述第二设备相关联的能力和操作状态信息;从所述第二设备接收与所述第二设备相关联的能力和操作状态信息;获得与所述第一设备相关联的能力和操作状态信息;以及基于与所述第一设备和所述第二设备相关联的能力和操作状态信息,确定第一角色将被指派给所述第一设备以及第二角色将被指派给所述第二设备。

在上述方法的又一个实施例中,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备包括:至少基于针对第一设备和第二设备的先前的角色指派信息来确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备。

在上述方法的另外的实施例中,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备包括:至少基于一个历史角色使用模型来确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备。

在上述方法的又一另外的实施例中,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备包括:至少基于经由第一设备的用户接口和第二设备的用户接口中的一个或多个接收到的用户偏好信息,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备。

在上述方法的另一实施例中,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备包括:至少基于由在第一设备或第二设备上执行的至少一个应用提供的角色需求信息,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备。

本文还描述了一种第一设备。所述第一设备包括至少一个处理器电路和至少一个存储器,所述存储器存储被配置为由所述至少一个处理器电路执行的程序代码。所述程序代码包括角色管理器,其被配置为:确定第一角色将被指派给所述第一设备以及第二角色将被指派给与所述第一设备通信连接的第二设备;使所述第一角色被指派给所述第一设备以及所述第二角色被指派给所述第二设备;接收指示所述第一设备和所述第二设备中的一个或多个的能力或操作状态的改变的信息;至少部分地基于所述信息确定要实现角色指派交换;以及至少基于确定要实现角色指派交换,而使所述第一角色被指派给所述第二设备以及使所述第二角色被指派给所述第一设备。

在第一设备的一个实施例中,所述第一角色和所述第二角色分别包括:主机和功能;电力供应者和电力消费者;主和从;服务器和客户端;源和宿;或者上游或下游。

在第一设备的另一实施例中,所述角色管理器被配置为:通过接收指示以下中的一项或多项的信息来接收指示所述第一设备和所述第二设备中的一个或多个的操作状态的改变的信息:第一设备或第二设备的子系统的添加、移除、激活或停用;第一设备或第二设备的子系统的状态的改变;用户偏好输入相对于第一设备和第二设备的角色指派的改变;第一设备或第二设备的配置信息的改变;至少第三设备到第一设备或第二设备的连接或者至少第三设备从第一设备或第二设备的断开连接;在第一设备或第二设备上执行的至少一个应用相关的角色需求的改变;第一设备或第二设备相关的电源的改变;当前被用于向第一设备或第二设备供电的电源的状态的改变;以及第一设备或第二设备相关的资源消耗水平的改变。

在第一设备的再一个实施例中,所述角色管理器被配置为通过以下步骤确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备,即:向所述第二设备查询与所述第二设备相关联的能力和操作状态信息;从所述第二设备接收与所述第二设备相关联的能力和操作状态信息;获得与所述第一设备相关联的能力和操作状态信息;以及基于与所述第一设备和所述第二设备相关联的能力和操作状态信息,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备。

在第一设备的又一个实施例中,所述角色管理器被配置为:至少基于针对第一设备和第二设备的先前的角色指派信息,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给第二设备。

在第一设备的另外的实施例中,所述角色管理器被配置为:至少基于一个历史角色使用模型来确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备。

在第一设备的又一另外的实施例中,所述角色管理器被配置为:至少基于经由所述第一设备的用户接口和所述第二设备的用户接口中的一个或多个接收到的用户偏好信息,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给第二设备。

在第一设备的另一实施例中,角色管理器被配置为:至少基于由在第一设备或第二设备上执行的至少一个应用提供的角色需求信息,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给第二设备。

本文还描述了一种计算机程序产品。该计算机程序产品包括在其上记录有计算机程序逻辑的计算机可读存储器,所述计算机程序逻辑在由第一设备的至少一个处理器执行时,使所述至少一个处理器执行包括以下步骤的方法:确定第一角色将被指派给所述第一设备以及第二角色将被指派给与所述第一设备通信连接的第二设备;使所述第一角色被指派给所述第一设备以及所述第二角色被指派给所述第二设备;接收指示所述第一设备和所述第二设备中的一个或多个的能力或操作状态的改变的信息;至少部分地基于所述信息来确定要实现角色指派交换;以及至少基于确定要实现角色指派交换,而使所述第一角色被指派给所述第二设备以及使所述第二角色被指派给所述第一设备。

在上述计算机程序产品的一个实施例中,所述第一角色和所述第二角色分别包括:主机和功能;电力供应者和电力消费者;主和从;服务器和客户端;源和宿;或者上游和下游。

在上述计算机程序产品的另一实施例中,接收指示所述第一设备和所述第二设备中的一个或多个的操作状态的改变的信息包括接收指示以下中的一项或多项的信息:第一设备或第二设备的子系统的添加、移除、激活或停用;第一设备或第二设备的子系统的状态的改变;用户偏好输入相对于第一设备和第二设备的角色指派的改变;第一设备或第二设备的配置信息的改变;至少第三设备到第一设备或第二设备的连接或者至少第三设备从第一设备或第二设备的断开连接;在第一设备或第二设备上执行的至少一个应用相关的角色需求的改变;第一设备或第二设备相关的电源的改变;当前被用于向第一设备或第二设备供电的电源的状态的改变;以及第一设备或第二设备相关的资源消耗水平的改变。

在上述计算机程序产品的再一个实施例中,确定所述第一角色将被指派给所述第一设备以及所述第二角色将被指派给所述第二设备包括:向所述第二设备查询与所述第二设备相关联的能力和操作状态信息;从所述第二设备接收与所述第二设备相关联的能力和操作状态信息;获得与所述第一设备相关联的能力和操作状态信息;以及基于与所述第一设备和所述第二设备相关联的能力和操作状态信息,确定第一角色将被指派给所述第一设备以及第二角色将被指派给所述第二设备。

vi.结论

虽然上面已经描述了各种实施例,但是应当理解,它们仅是作为示例而不是作为限制被呈现的。对于(一个或多个)相关领域的技术人员来说明显的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的宽度和范围不应受上述任何示范性实施例的限制,而应仅根据随附的权利要求及其等同物来限定。

例如,尽管根据特定的双重角色指派方案,本文描述的实施例被描述为将两个不同角色中的一个角色指派给两个设备中的每一个设备,但(一个或多个)相关领域的技术人员将会认识到,根据多个双重角色指派方案,本文描述的技术可用于向每个设备指派多个角色。例如,在实施例中,可以使用与上述那些类似的技术来将usb主机和usb功能的角色指派给一对互连设备,并将电力供应者和电力消费者的角色指派给同一对设备。事实上,任何数量的不同的双重角色指派方案可以同时地被支持并被应用于同一对设备。此外,这样的实施例可操作来基于观察到的能力或操作状态的改变而动态地交换各种角色指派中的任何一种。

作为另一示例,尽管根据特定的双重角色指派方案,本文描述的实施例被描述为将两个不同角色中的一个角色指派给两个设备中的每一个设备,但(一个或多个)相关领域的技术人员将会认识到,本文所描述的技术可以被用于根据针对三个或更多个角色提供的角色指派方案向多个互连的设备指派角色。这样的角色指派方案的示例可以包括例如分别将主机、设备和桥/集线器/直通角色指派给各种互连设备的方案、或分别将电力源、电力宿和无电力(也不给另一个供电)指派给各种互连设备的方案。然而,提供这些示例仅仅是出于说明的目的而不意图是限制性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1