发明内容
本发明的第一方面提供了一种方法,用于当设备连接于主机时控制该设备的接口参数。该方法可包括:监控该设备到主机的初始连接;然后,当该设备正建立到主机的连接时,利用包含在该设备中的微处理器中的通信总线控制器,以第一数据传输速率来处理与主机的通信;并且在预定条件之后,使用该设备中的第二总线控制器重新建立与主机的连接,第二总线控制器以高于第一数据传输速率的第二数据传输速率处理通信。在该方法中,第二总线控制器在微处理器的外部。
本发明的第二方面提供了一种方法,用于当设备连接到主机时控制设备的接口参数。该方法可包括:建立该设备到主机的初始连接;进行从该设备到主机的协商(negotiation),从而为该设备设置用于初始连接的第一数据传输速率,所述初始连接利用包含在微处理器中的通信总线控制器;在检测到预定条件之后,使用该设备中的第二总线控制器重新建立与主机的连接,第二总线控制器以高于第一数据传输速率的第二数据传输速率处理通信。在该方法中,第二总线控制器在微处理器的外部。
在该方法中,当该设备建立连接时:来自该连接的信号可以用于为该设备的电池充电;且微处理器可以操作在低功率模式下。
在该方法中,预定条件可以是为电池充电到预定电平。
在该方法中,当该连接被重新建立时,微处理器可以操作在比低功率模式更高功率的模式下。
在该方法中,总线可以是USB总线,第一数据传输速率可以是全速USB速率,预定条件可以是完成设备到主机的枚举(enumeration),并且第二数据传输速率可以是高速USB速率。
在该方法中,协商可以包括:发起模仿向主机的附着(attachment)的命令;并且向主机标识该设备能够以第一数据传输速率进行通信。
在该方法中,协商还可以包括:通过建立设备的配置从而在主机上发起与该设备的枚举进程,以允许该设备终止枚举进程。
在该方法中,如果满足预定条件,设备可以发起模仿从主机脱离(detachment)的命令,可以发起模仿向主机的附着的命令,以及可以将其自身向主机标识为能够以第二数据传输速率执行通信。
该方法还包括第二进程,用于枚举从第二数据传输速率到第一数据传输速率的连接,其中当第二预定条件得以满足时,开始该第二进程。
在该方法中,第二进程可以包括:发起模仿设备从主机脱离的命令,发起模仿向主机的附着的命令;以及将该设备向主机标识为能够以第一数据传输速率执行通信。
第三方面,可以提供一种系统,用于当设备被连接到主机时对设备的通信进行接口连接。该系统可以包括:第一总线控制器,处理在第一数据传输速率下设备和主机之间的通信;第二总线控制器,处理在比第一数据传输速率更高的第二数据传输速率下的通信;用来监控由设备到主机的初始连接的模块;以及控制器模块,当该设备正建立和主机的连接时激活第一总线控制器,并且在预定条件之后激活第二总线控制器。在该系统中,第二总线控制器在微处理器的外部。
该系统还可以包括电池充电模块,用于为向该设备供电的电池充电,其中当该设备正建立连接时,来自该连接的信号可以用于为该设备的电池充电,并且微处理器可以操作在低功率模式下。
在该系统中,预定条件可以是:将电池充电到预定电平,以及当该连接被重新建立时,微处理器可以操作在比低功率模式更高功率的模式下。
在该系统中,总线可以是USB总线,第一数据传输速率可以是全速USB速率,预定条件可以是完成设备到主机的枚举,以及第二数据传输速率可以是高速USB速率。
在该系统中,控制器模块可以发起协商,包括:发起模仿向主机的附着的命令;并且向主机标识该设备能够以第一数据传输速率进行通信。
在该系统中,协商还可以包括:通过建立设备的配置从而在主机上发起与该设备的枚举进程,以允许该设备终止枚举进程。
在该系统中,如果满足预定条件,设备可以发起模仿从主机脱离的命令,可以发起模仿向主机的附着的命令,以及可以将其自身向主机标识为能够以第二数据传输速率执行通信。
在该系统中,控制器模块还可以发起第二进程,用于枚举从第二数据传输速率到第一数据传输速率的连接,其中当第二预定条件得以满足时,开始该第二进程。
在该系统中,第二进程可以包括:发起模仿设备从主机脱离的命令,发起模仿向主机的附着的命令;以及将该设备向主机标识为能够以第一数据传输速率执行通信。
在本发明的其他方面,提供上述方面的集合或子集的各种组合。
具体实施方式
在此提供的是实施例的示例性细节。首先,提供实施例的一般性概念和特征和涉及到的总线管理系统的说明。然后,提供有关涉及到实施例的示例性总线管理系统的进一步细节。
接下来的描述和下文所描述的实施例以举例说明的方式或者以本公开的原理的特定实施例举例的方式来提供。提供这些实例的目的是用来解释但并非限制那些原理和该发明。在接下来的描述中,在整个说明书和附图中,同样的部分由各自的相同参数来标记。
通常地,实施例提供一种用于控制连接到主计算机(或设备)的便携式设备的总线接口的系统和方法,以允许改善设备的电力管理。
参考图1,实施例的环境10具有主计算机12,其连接多个便携式电子设备14,诸如蜂窝电话、个人数字助理(PDA)、便携游戏设备等。设备14A是便携式手持设备并且通过主机12的端口18经由电缆20A连接到主机12。设备14B和14C通过集线器16连接到设备12。集线器16经由电缆20B连接到端口18。设备14B经由电缆20C连接到端口16的输出。设备14C经由电缆20D连接到集线器16,并且集线器16经由电缆20B链接到端口18。设备14B通过在设备14B上的端口24通过支架22连接到集线器16。当设备14通常由内置电池(未示出)提供电力时,到主机12的连接允许主机12来为设备14提供充电电压。在实施例中,端口18是通用串行总线(USB)端口。
USB规范定义了允许设备与主机通过标准化平台而连接的电气、机械和操作标准。简而言之,USB总线是一种双向串行接口总线。数据利用差分NRZI信号传输。数据可以在主机到所连接的设备以三种不同速率中的一种而传送,介于10Kbps到480Mbps的速度范围之间;慢速模式(10Kbps到100Kbps)用于具有低传输速率的设备,诸如键盘或者鼠标;全速模式(500Kbps到10Mbps)用于更多的设备;和在USB2.0版本中提供高速模式(25Mbps到400Mbps)从而给当前标准提供最高的数据通信速率。显著的,高速模式具有某些电气和机械要求,包括在每条数据线和地线之间使用45欧姆的端电阻器,以及对高速模式所产生的输出信号使用最小电压和电流电平。可能需要合并额外的总线收发机以提供所需要的信号电平。
作为USB规范的部分,USB端口被允许为连接到其上的设备供应电力。因此,通过端口18提供的信号能够被用于为设备14提供电力。“高-电力”USB端口为其上连接的设备提供4.35-5.25VDC的电压和最少500mA的电流。“低-电力”USB端口必须能够提供4.40-5.525VDC的电压和100mA的电流。
USB规范的一个特点是:允许在主机或设备中的任一方被供电时设备与USB连接(或“附着”)和断开(或“脱离”)。USB规范具有管理主机或设备的协商协议,以使主机能够决定何时新设备附着到USB、或者何时附着的设备脱离USB。USB提供用于报告这些事件给主机的中断信号。当主机最初启动时,它轮询(poll)根USB集线器来确定是否有任何设备被附着。其后,主机将周期性地轮询集线器以确定所连接的设备是否发生任何变化。
通常地,当新设备通过USB被连接到主机时,新设备必须被“枚举”。根据USB规范,枚举决定何种设备刚刚被连接和该设备的操作参数,诸如功耗、端点的数量和类型、产品的种类等等。枚举是进程,在该进程中建立设备和主机之间的连接。当设备被枚举时,主机向该设备发送一系列请求并期望该设备答复。在操作在Windows(商标)平台下的主机和设备之间的典型的枚举进程一般如下:
a)首先当设备插入连接到主机的USB端口时,主机通过USB数据线上检测到的新电压来检测该设备。设备上的USB连接电路通过电路提供新电压,该电路通过一个或多个连接的上拉电阻器来提供电压信号。
b)在用来将该设备插头完全插入端口和设备上的电力稳定的允许时间之后,主机可以通过USB发出复位命令来将设备复位到它的缺省状态。
c)当该设备收到复位命令时,它被期望答复其地址(如地址0)。
d)然后主机可以尝试从设备取回设备描述符信息,通过一个或多个请求。
e)如果从该设备处收到足够的设备描述符部分,主机可以发出命令来复位总线。其后主机可以发出命令来设置该设备的地址。根据USB协议,当该设备收到命令时,其被期望置自身于“地址状态”。
f)然后主机向该设备发出请求,请求设备描述符的剩余部分。
g)然后主机可以从该设备请求配置和串描述符数据。
对于成功的枚举,该设备必须以任何被请求信息响应来自主机的每一次请求,并采取任何其他被请求的动作。根据USB协议,命令和答复的交换在主机和设备所生成的消息中编码。可以理解的是,也可以使用其他枚举协议。
USB协议的一个特点是:主机能将电力信号提供给其所连接的设备。因此,由主机在USB总线上提供的电流能够被用于设备的电力组件。如果在信号中的电流是足够大的,那么当设备连接到USB时可以被完全激活。电力也可以为设备的内置电池充电。
然而,当设备与主机进行枚举时,USB协议的一个操作参数对设备的电流汲取限制产生影响。当前的电流限制是100mA。对于某些设备,它们可能需要从主机汲取高于100mA来提供它们全部的操作。考虑到具有操作在480Mbps的高速USB控制器和为设备产生任何必须的USB兼容信号的收发机的设备。当该设备操作在那种模式时,其可能需要多于100mA从而为其所有的模块和应用供电。
通常,在枚举进程中的某些点上,设备能够通过消息向主机指示其是“总线供电”,相对于“自身供电”。部分消息能够指示该设备正在请求汲取500mA。根据USB标准,主机可以拒绝该请求,但是必须一直给该设备提供100mA。
实施例提供了一种总线接口,其允许设备与主机之间通过不同总线模式以多种速度中的一种通信,这取决于设备和主机的连接的当前状态以及设备的当前操作条件。取决于选择的总线的操作速度,设备可以激活不同模块、收发机、内置组件,并且可以操作在不同状态下。一种模式是(较低)速模式,其中USB高速通信所需的附加硬件和软件模块被旁路(bypass)。在旁路模式下,任何在设备中的高速USB收发机可以不用被供电,并且USB总线控制可以由在设备微处理器上的内置USB控制器来提供。进一步地,微处理器能够以低功率模式操作。因此,当设备操作在旁路模式下时,与当操作在高速模式下时其所使用的电力相比,其将使用更少的电力(且需要更少的来自于USB的电流)。
接口提供检测算法和电路以确定:设备的操作状态、USB连接状态(即设备是否在枚举);以及当前从USB向设备提供的电流。同样的,当总线接口操作在旁路模式下时,接口能够监控允许总线在较高速度下操作的任何(预定的)必需的操作条件。当那些条件被检测到时,总线接口可以将总线的操作状态改变到较高速度模式。在这样的较高速度模式下,附加电路可以被激活并且设备的内置组件可以被置于较高的操作条件下。
相似的,当总线操作在高速模式下时,接口可以监控允许总线在较低速度下操作的任何(预定的)操作条件,且做出任何必需的改变以将总线的操作速度改变到(合适的)较低速度,并释放(disengage)对于该较低速度来说不需要的任何组件。可以理解的是,任意数量的速度可以被使用。可以进一步理解的是,可以实现其他实施例,即选择性地激活和去激活与除设备的总线之外的特征有关的组件。
参考图1,在实施例的各个方面的执行过程中,当设备14最初连接到主机12的USB端口18且该设备与主机之间进行枚举时,设备14中的总线控制器(未示出)将设备14的USB控制器模块置于全速旁路模式。在该旁路模式下,控制器激活设备14的微处理器的内置USB端口接口,禁用设备14的高速USB收发机,并且将微处理器置于低功率操作模式。在枚举过程中,设备14通过端口24从主机12接收的信号被直接提供给微处理器。同样的,在全速旁路模式下,所有USB信号通过微处理器上的内置USB端口处理,而且所有数据通信交换速率被设置为USB全速模式的限定设置。可以看到,控制器利用更少电力来处理端口24和微处理器之间的信号,以及高速收发机没有被激活,从而进一步节约电力。值得注意的是,典型的USB基带总线收发机在常规操作中(在全速模式下)可以汲取10-15mA之间的电流。典型的外部高速收发机汲取40mA到50mA之间。同样的,更多的电流被节约,这些电流能够用于为设备14的电池充电,直到设备14的USB控制器能够回到高速模式。
一旦设备14与主机12进行枚举,实施例可以提供有关从USB提供的电力的进一步的状况检测。如果控制器检测到电流仍然被限制(例如,100mA),则控制器可以保持总线操作在全速旁路模式下,并将一些电流转为用来向设备12的电池充电。如果控制器检测到有更多电流可以使用(例如,如果检测到500mA),则可选地设备14可请求额外的电流,同时维持用于全速模式的数据速率。一旦满足预定条件(即完成电池342足够的充电),实施例可以允许总线切换到更高的操作速度。改变操作速度的一种方法是使设备14重新枚举到主机12。在重新枚举进程期间,新的电流可用值可以在设备14和主机12之间进行正式协商。一旦成功完成协商,微处理器能够在其“常规”操作模式下操作,并且设备14上的更多(或者全部)应用可以被激活。作为重新枚举进程的一部分,总线可以被设置为在USB高速模式下操作,并且期望能够从USB汲取500mA的电流。
在操作中,设备14最初将总线接口设置为使其用全速旁路模式所操作的USB通信变为提供给全速USB通信的最大数据速率。一旦全速旁路模式被建立、并在设备14上的电池被足够充电后,设备14可以发起与主机12的协商,从而转向USB高速模式。一旦设置高速模式,设备14可以以提供给高速USB通信的数据速率与主机12交换数据。
实施例可以附加地或可选地使设备14以给定的速度操作总线,并且随后与主机12自动协商,以决定是否总线该设在更低速度。在这样的实施例中,设备14将需要请求从USB上断开,然后重新枚举以重新建立与主机的连接。
根据设备14的基本操作组件来提供更多的细节,之后是与实施例更紧密相关的特定组件的描述。
附图2提供了根据实施例用于接收电子通信的电子设备14的一般特征。电子设备14是基于计算平台,该计算平台具有增强型个人数字助理的功能,该个人数字助理具有电话和电子邮件特征。然而应被理解的是,电子设备14可基于其他电子设备的结构设计和功能,诸如智能电话、桌面计算机、寻呼机或具有电话设备的膝上计算机。设备14包括外壳200、LCD 202、扬声器204、LED指示器206、轨迹球208、ESC(“退出”)键210、键盘212、包括耳塞214和麦克风216的电话耳机。轨迹球208和ESC键210能够沿着箭头“A”的路径被向内压下,作为对设备14提供额外输入的手段。端口24给电缆20D或支架22提供USB接口。
应被理解的是,外壳200能够以本领域技术人员能想到的、且适合于形成外壳的任何合适的材料来制成,并容纳和支持设备14的所有组件。
设备14可操作地管理无线电话呼叫,利用任何公知的无线电话系统,诸如全球移动通信(GSM)系统、码分多址(CDMA)系统、宽带CDMA/UMTS、CDMA 2000系统、蜂窝数字分组数据(CDPD)系统以及时分多址(TDMA)系统。其他无线电话系统可包括支持语音的蓝牙和801.11无线宽带的多种形式,像802.11a,802.11b,802.11g等等。其他的实施例包括IP电话(VoIP)类型的流数据通信,其可以模拟电路交换电话呼叫。耳塞214能够被用于接听电话呼叫和其他声音消息,并且麦克风216能够用于输入话音并且输入声音消息到设备14。
参考图3,示意图300中提供了设备14的功能组件。功能组件主要是电子、结构性或机电器件。特别的,微处理器302被提供来控制和接收与设备14相关的几乎所有数据、传输、输入和输出。微处理器302被示意性地表示为与键盘212、端口24和其他内置设备耦合。微处理器302优选地控制设备14及其组件的全部操作。用于微处理器302的示范性微处理器包括Data 950(商标)系列微处理器、6200系列微处理器和PXA900系列微处理器,这些都可以从因特尔公司获得。微处理器302通过连接到其各个输入输出引脚的一系列电连接与设备14中的其他元件相连。微处理器302具有IRQ输入线,其允许微处理器接收来自于多种设备的信号。提供适当的中断固件,其接收和响应在IRQ线上检测到的信号。微处理器302可以操作在多种功率模式下,包括“常规”模式和低功率模式。此外,微处理器302可以具有一个或多个内置模块,诸如数模转换器、模数转换器和USB总线控制器352。
除了微处理器302之外,设备14的其他内置组件也在图3中示意性的示出。它们包括:显示器202;扬声器204;键盘212;通信子系统304;短程通信子系统306;辅助I/O设备308;端口24;用于麦克风216的麦克风端口310;闪存312(其提供数据的持久存储);随机存取存储器(RAM)314;时钟316和其他设备子系统(未示出)。优选地,设备14是具有语音和数据通信能力的双向射频(RF)通信设备。另外,优选地,设备14具有经由互联网与其他计算机系统通信的能力。
端口24提供到电缆20D和/或支架22的物理连接接口。端口24也包括接口电路,以选择性地连接和断开以及控制微处理器302和连接接口之间传送的信号。更多有关端口24的细节将在下文提供。
微处理器302可执行的操作系统软件优选地存储在计算机可读介质中,如闪存312,但也可以存储在其他类型的存储器件中,如只读存储器(ROM)或类似的存储元件。另外,系统软件、特定设备应用、或其中一部分可以是暂时加载在易失存储器中,如RAM 314。设备14接收到的通信信号也可以存储在RAM 314中。
微处理器302,除了其自身操作系统功能外,还能执行设备14上的软件应用。一套软件(或固件)应用,一般标为应用318,控制基本的设备操作,如语音通信模块318A和数据通信模块318B,可以在制造阶段安装到设备14上或随后下载。诸如日历模块318C、地址薄318D和位置模块318E的软件模块也一样。还可提供如个人信息管理(PIM)应用的附加模块。任何模块都可以在制造阶段安装或之后下载到设备14。与每个应用相关联的数据能够被存储在闪存312中。此外,当设备14连接到主机12时,端口控制码318N被提供用来控制设备14的操作及其与端口24的内部总线连接。端口控制码318N的更多细节将在下文提供。
通信功能,包括数据和语音通信,由通信子系统304和短距通信子系统306来执行。系统304和306可以被选择性地激活和不激活,这取决于设备14的当前状态。举例,如果设备14在低功率模式,则系统304和306之一或两者可以不激活。系统304和306两者的激活可以由软件控制,包括任何模块318。总的来说,子系统304和306为设备14所处理的所有通信技术提供信号级接口。多种应用318提供操作控制来进一步处理并记录通信。通信子系统304包括接收机320、发射机322和一个或多个天线,以接收天线324和发送天线326示出。另外,通信子系统304也包括处理模块,如数字信号处理器(DSP)328和本地振荡器(LO)340。通信子系统304的特定设计和实现取决于设备14将要在其中进行操作的通信网络。例如,设备14的通信子系统304可以与Mobitex(商标)、DataTAC(商标)或通用分组无线服务(GPRS)移动数据通信网络进行操作,也可以与多种语音通信网络中的任一种进行操作,如高级移动电话服务(AMPS)、时分多址(TDMA)、码分多址(CDMA)、CDMA 2000、个人通信服务(PCS)、全球移动通信系统(GSM),等等。其他类型的数据和语音(电话)网络,单独或者集成的,也可以与设备14一起使用。无论如何,通信子系统304给设备14提供利用多种通信技术与其他设备进行通信的能力,包括即时通信(IM)系统、文本消息(TM)系统和短消息服务(SMS)系统。
除了处理通信信号,DSP 328还提供对接收机320和发射机322的控制。例如,应用于接收机320和发射机322中的通信信号的增益可通过在DSP 328中所执行的自动增益控制算法来自适应地控制。
在数据通信模式中,接收到的信号,诸如文本消息或下载网页,由通信子系统304进行处理并作为输入提供给微处理器302。接收的信号再进一步由微处理器302处理,其能够产生到显示器202或到辅助I/O设备308的输出。利用键盘212、轨迹球208和/或一些其他的辅助I/O设备308,诸如触摸板、摇杆开关、轨迹球或其他输入设备,设备用户也可以撰写数据项目,诸如电子邮件消息。随后,撰写的数据项目可以经由通信子系统304在通信网络上发送。子系统304也可以检测何时其位于其远程系统的通信范围之外。
在语音通信模式中,设备14的全部操作实质上很类似于数据通信模式,除去接收的信号是到扬声器204的输出,且用于传输的信号是由麦克风216产生的。可选的语音或者音频I/O子系统,诸如语音消息记录子系统,也可以在设备14上实现。另外,显示器202也可以用于语音通信模式,例如,显示呼叫方的身份、语音呼叫的持续时间,或其他和语音呼叫相关的信息。
短距通信子系统306使得能够在设备14和其他邻近的系统或设备之间通信,其不一定需要是相似的设备。例如,短距通信子系统可以包括红外设备以及相关的电路和组件,或者蓝牙(商标)通信模块,从而提供与具有类似功能的系统和设备的通信。
设备14也可以具有全球定位系统344来协助识别设备14的当前位置,也可以具有光传感器346来给设备14提供周围光环境的数据。这些元件可以由此前描述的设备14上操作的软件来控制。
为移动手持通信设备的全部电子电路提供电力的是电源342。在实施例中,电源342包括一个或多个电池。在另一个实施例中,电源342是单独的电池组,尤其是可再充电的电池组。电源开关(未示出)给设备14提供了“开/关”开关。电池充电电路348提供硬件接口以允许外部电力可以被选择地提供给设备14。该电力可以通过端口24接收的信号而提供。充电电路能够检测电池342上当前的充电电平并确定电池342是否充分地充电。充分充电的电平可以随不同的设备和电池而有所不同。可以使用本领域所公知的电路和技术实现对充电电平的确定。电源接口(未示出)可以由硬件、固件、软件或者这些元件的组合来提供,以有选择地控制设备14的组件接入到电源342。在电源开关被激活后,启动应用318以开启设备14。在电源开关被去激活后,启动应用318以关闭设备14。向设备14的供电也可以由其他设备和软件应用318来控制。
端口24通过端口控制器352提供从连接器20到微处理器302的信号。如在接下来的内容中所进一步描述的那样,当设备14操作在用于USB信号的高速模式下时,控制器352有选择地使用总线收发机。控制器也与微处理器302中的内部USB端口350通信。在控制器352的控制下,USB端口350能够有选择地直接与端口24通信。
现在提供有关设备14的特定组件的更多的细节,因为它们涉及到实施例。首先,提供用于端口24和端口控制码318N的与设备14的总线接口和控制器有关的细节。
附图4示出了设备14的组件的图400,包括处理其上所携带的信号的端口24和内置组件。连接器402是端口24的一部分,并向设备14提供用于电缆20的物理连接器。在连接器402和微处理器302之间提供USB信号410。控制器352提供控制逻辑来选择性地形成微处理器302和端口24之间用于USB信号410的信号连接。微处理器302在一定程度上受端口控制码318N的控制。微处理器302通过USB信号410接收的数据和控制信号允许实施例确定设备14到主机12的连接的当前状态。因此,实施例能够促使微处理器302选择性地产生:控制一个或多个控制器352(及它们的元件)的控制信号408;与设备14进行通信的主机接口信号412和USB信号410。可以理解的是,除USB连接之外,在主机和控制器352之间存在独立的数据路径。USB路径允许(全速)USB端口350成为“路由通过”的(高速)端口控制器352。在这样的“路由通过”状态下,典型的是控制器352中的多数线路将不被供电。来自于微处理器302的USB信号410将通过USB端口350单独处理,或者通过收发机404与端口350一同处理,这取决于用于设备14的USB的操作状态。同样也向充电电路348提供电力和控制,可选择地提供100mA信号或者500mA信号给向电池342充电的充电电路。电池可以被电路348充电到任何足够的预定电平,这取决于其设计。电路348接收来自于连接器402的Vbus信号以及来自于控制器352和微处理器302的控制信号。
在控制器352内,提供收发机电路404以选择性地放大来自于微处理器302的、针对端口24的信号。收发机404可以包括USB总线逻辑以允许其基于从微处理器302接收的信号408而产生USB兼容信号。电流检测电路406提供允许控制器352确定USB信号410中出现的电流和/或电压的电平的电子电路。除USB旁路路由逻辑以外,控制器可以具有用于主机的数字存储器(端点RAM)接口、用于产生控制器352的时钟的锁相环、以及对NRZI信令转换的编码器和解码器。控制器具有逻辑,通过充电电路348并基于充电消息而以100mA或500mA选择性地给电池充电,该充电消息由设备从主机接收,其表示哪种是可用的。
现在提供有关端口控制码318N的进一步的细节,其控制设备14的元件。
参考图5,流程图500表示通过端口控制码318N控制设备14的控制器352和USB总线的操作的典型过程。总的来说,码318N在设备14上操作并控制端口控制器352、内部USB端口350和充电电路348。
在块502,端口控制码318N开始。可以在启动设备14时或检测到通过端口24建立连接时自动执行码318N的开始。在步骤504,该过程等待检测与主机12的连接。
接下来,在测试块506,USB信号410上的信号被监控以确定是否已检测到连接。如果没有检测到连接,则过程返回到步骤504。如果检测到连接,则过程转向步骤508,其中基于码318N所处理的USB信号410来确定用于总线的传输模式。例如,连接可以是:高速、全速、低速连接,高阻抗或不同的连接。连接的类型可以由主机12接收的信号来确定,或者通过估计信号的物理特性(例如电流,使用电流检测模块406)而确定。同样的,在测试510中,过程估计连接是否是高速连接。如果是高速连接,过程转向步骤512,其中控制器被设置为全速旁路模式。在其他实施例中,缺省可以简单地使设备14进入旁路模式。如果测试510被进行并且如果确定当前USB连接不是高速连接,则过程直接从测试510转向步骤514。
在设置旁路模式之后,过程转向步骤514,其中启动与主机的枚举进程。在枚举期间,码318N可以产生通过端口到达主机12的消息,设备14操作在全速模式(即旁路模式)下。
可选的,如果可以通过USB信号410获得通过充电电路348向电池342充电的电流,则电池被充电。码318N可选择地激活电流检测模块406来确定USB信号410的电流的电平,并随后可选择地激活充电电路348(图3)来为电池342充电。可选地或者额外地,这样的信息可以从来自主机12的USB信号410的内容中导出。电路348可以提供“充满”信号,该信号可由微处理器302和码318N检测。在检测到任何“充满”信号时,充电进程可以停止。
接下来,在测试516,过程检测枚举是否完成。如果没有完成则测试返回步骤514以完成枚举。如果枚举完成,过程转向步骤518,其中利用码318N检测总线上所提供的电流,从而估计由电流检测电路406或从主机14提供的消息所提供的数据。在一些情况中,主机方驱动器可以通知设备,该设备所连接的端口上可用的电流是多大。这可以通过在枚举期间发送的设置消息来实现。同样,在某些情况中,步骤518可以在过程中的其他地方进行。
其后,过程转向步骤520,其中决定为电池充电。这个充电可以由充电电路348来估计。这个步骤是可选择的,并且其可以作为步骤514的一部分。
然后过程转向步骤526,其中作出测试来确定电池342是否充分充电。如果电池没有充电,则过程返回到步骤524以保持总线处于全速旁路模式。但是,如果电池被充电,则过程500转向步骤528,总线重新枚举到高速模式。在这点上,以下测试可以被执行:如果重新枚举未成功(即主机拒绝高速模式的连接,取而代之的是提供全速模式),则系统返回到旁路模式。其后如果重新枚举完成并成功,则在高速级别上激活总线。这可能包括激活收发机504。接下来的步骤是过程的结束。
可选择的,一旦实施例为设备14设置全速旁路模式,如果来自主机12的100mA或者500mA是可用的,则设备14可以发出USB命令来接收任一电流电平上传输的信号。但是,数据速率将保持限制在由全速USB标准提供的范围。
可以理解的是,这个过程可以在检测到连接时开始,如在步骤504中所提供的。但是,在其他的实施例中,其他外部条件可以触发过程500的激活。举个例子,如果电流被检测落至100mA,即总线下移到全速模式,则该过程可以被重新启动。可以理解的是,这个过程500利用来自于微处理器302的信号和端口控制码318N。
在另一个实施例中,可以在端口控制码318N中实现算法,以控制受制(captive)USB总线从全速模式到高速模式,如下所述。首先,设备14使用连接到主机12的USB电缆而启动。接下来,设备14通过USB信号模拟到主机12的“附着”,并且设备14将自身向主机12标识为具有全速能力的(但不具有高速能力)设备。
一旦主机12接收并解释这个标识,主机12发起与设备14的USB枚举进程。作为枚举进程的一部分,主机12为设备14设置USB配置以允许设备14终止枚举进程。
接下来,在设备14上进行测试,以确定设备14是否具有足够的电力来操作在USB高速模式下。如果没有,则设备14可以发起任何适当的动作来满足电力需求,复位并返回到启动步骤。如果设备14具有足够的电力,则通过在USB上由设备所提供的信号,设备14:模拟从USB的脱离;模拟附着;并将自身向主机标识为具有高速的能力。在那时,主机12发起枚举进程并设置用于设备14的USB配置,以允许设备14终止枚举进程。在那时,设备14以高速模式枚举。如之前所提到的,所有步骤都通过由端口控制码318N产生并被提供给设备14中的USB和其他元件的命令和控制信号而执行。
作为补充进程,端口控制码318N具有单独的进程来管理和控制它的USB协商,从高速模式到全速模式而枚举。对于这一进程,设备14以在高速模式下枚举作为开始。接下来,测试周期性的进行,以确定设备14是否需要下调级别至全速模式。可以设置需要下调级别的不同的条件。条件可以包括:当前电力状态、当前时间、当前位置或其他标准。如果测试的结果指示设备14应该保持在高速模式,其继续操作在该模式下。但是,如果结果指示应该执行下调级别,则设备14模拟脱离并附着到USB。接下来,设备14将其自身向主机12标识为具有全速能力(但不具有高速能力)。一旦主机12收到并解释该标识,主机12发起与设备14的USB枚举进程。作为枚举进程的一部分,主机12设置用于设备14的USB配置,以允许设备14终止枚举进程,并最终设备14以全速枚举。
可以理解的是,在实施例中的端口控制码318N和其他应用,能够用公知的编程技术、语言和算法来实现。提供模块的名称是为了方便提供标签并给特定模块指派功能提供便利。如上所述,无需每个模块仅执行其功能。同样,每个应用的特定功能可以在应用间移动或分离成不同的应用。不同的信令技术可以用于使用公知的编程技术在应用之间传达信息。公知的数据存储、访问和更新算法允许数据在应用之间共享。例如,在附图5中所描述的事件的检测或完成或者在设备14上所执行的任意进程可以引起微处理器302上产生中断,且可以提供特定的中断例程来处理事件。还可以理解的是,设备14上的其他应用和系统可以利用码318N来并发执行。同样,使用本领域公知的编程技术,码318N可以被构造为设备14上的“后台”应用。
虽然已描述了实施例,其中总线可选择地操作在不同的模式下且同时设备14正与主机12进行枚举,然而可以理解的是,可以执行其他可比较的实施例以进行独立地操作,无论设备14是否在枚举。实施例也可以涉及USB协议或不同的总线结构。此外,其他实施例可以提供对其他组件的可选择的激活和去激活以节省电力,这取决于设备14的当前操作环境。例如,在供电周期期间,通信子系统304和306可以被临时不供电。
可以理解的是,其他实施例可以包括无线连接和充电系统。
本发明由附加于此的权利要求所定义,在前所述的描述仅仅是本发明实施例的举例说明。本领域普通技术人员可以想到,对此前所述的实施例的某些修改,虽然在此没有明确讨论,但未偏离由所附权利要求所限定的本发明的范围。