CN102739634B - 主机设备基于通知挂起到客户端设备的通信链路 - Google Patents

主机设备基于通知挂起到客户端设备的通信链路 Download PDF

Info

Publication number
CN102739634B
CN102739634B CN201210063419.2A CN201210063419A CN102739634B CN 102739634 B CN102739634 B CN 102739634B CN 201210063419 A CN201210063419 A CN 201210063419A CN 102739634 B CN102739634 B CN 102739634B
Authority
CN
China
Prior art keywords
client device
main process
process equipment
communication link
hang
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210063419.2A
Other languages
English (en)
Other versions
CN102739634A (zh
Inventor
阿南德·德拉尔
海宁·张
米特切尔·D·安德勒尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN102739634A publication Critical patent/CN102739634A/zh
Application granted granted Critical
Publication of CN102739634B publication Critical patent/CN102739634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/30Connection release
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)
  • Facsimile Transmission Control (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了主机设备基于通知挂起到客户端设备的通信链路。主机设备和客户端设备之间的通信链路可以基于由客户端设备提供的挂起请求或通知而被挂起。如果客户端设备判定挂起是适当的,则挂起请求可以被客户端设备发送给主机设备,并且可以响应于从主机设备接收到轮询请求而被发送。在接收到挂起请求之后,主机设备可以发起挂起设备之间的通信链路的操作。

Description

主机设备基于通知挂起到客户端设备的通信链路
技术领域
本公开一般地涉及用于计算设备的省电技术,并且更具体地,涉及用于基于由客户端设备发送的请求或通知来挂起主机设备和客户端设备之间的通信链路或信道的技术。
背景技术
诸如个人计算机之类的计算设备已经被使用了几十年。计算设备被用于执行各种任务,从最简单的任务到最复杂的任务。计算设备一般可以分类为便携式的(例如膝上型PC或PDA)和非便携式的(例如台式计PC)。
在过去十年里,便携式计算设备由于它们的便携性以及管理多个任务的能力而倍受欢迎。例如,诸如个人数字助理之类的便携式计算设备可以提供检查和回复电子邮件、管理会议、显示图形和视频以及播放音乐的能力。
通常,便携式计算设备由电池或具有有限数量的能量的类似电源供电。为了延长在重新充电或替换电源(例如电池)之前的设备使用,已经开发了省电技术。
发明内容
本发明的某些实施例提供用于基于由客户端设备提供的挂起请求或通知来挂起主机设备和客户端设备之间的通信链路的技术。在某些实施例中,客户端设备可以响应于从主机设备接收的轮询请求来发送挂起请求。在一些实施例中,轮询请求可以由主机设备在硬件层发送。更具体地,轮询信息可以在未经由主机设备的处理器运行的操作***或应用程序(软件层)的处理的情况下被发送。在一些实施例中,主机设备可以在接收到来自客户端设备的挂起请求时发送挂起通信链路的操作。
本发明的一个方面涉及客户端设备以及其操作方法。在一些实施例中,客户端设备可以经由通信链路来使能与主机设备(例如智能电话的应用程序处理器等)的操作。在操作期间,客户端设备可以判断挂起通信链路是否是适当的。如果客户端设备判定通信链路应当被挂起,则客户端设备可以向主机设备发送挂起请求。
例如,客户端设备可以包括控制器和连接到控制器的输入/输出(I/O)接口。I/O接口可以被配置为经由通信链路连接到主机设备。控制器可以被配置为经由I/O接口来向主机设备发送配置信息,判断设备之间的通信链路的挂起是否是适当的,接收来自主机设备的轮询请求,以及经由I/O接口向主机设备发送指示设备之间的通信链路是否应当被挂起的挂起信息(例如挂起请求)。
本发明的另一方面涉及主机设备及其操作方法。在一些实施例中,主机设备可以经由通信链路来使能与客户端设备(例如,外部扬声器、用于移动电话网络通信的数字信号处理(DSP)协同处理器、用于GSP通信的DSP协同处理器、WiFi芯片、蓝牙芯片等)的操作。主机设备可以周期性地向客户端设备发送轮询请求。主机设备还可以基于从客户端设备接收的挂起请求来发起通信链路的挂起。
例如,主机设备可以包括处理器、主机控制器和客户端输入/输出(I/O)接口。处理器可以连接到主机控制器。主机控制器进而可以连接到客户端I/O接口。客户端I/O接口可以被配置为仅有通信链路连接到客户端设备。处理器可以被配置为接收来自客户端设备的配置信息并使能与客户端设备的操作。主机控制器可以被配置为向客户端设备发送轮询请求,并从客户端设备接收挂起信息(例如挂起请求)。处理器还可以被配置为响应于挂起请求来发起通信链路的挂起。
以下详细描述以及附图将提供对本发明的特点和优点更好的理解。
附图说明
图1图示出根据本发明实施例的包括连接到客户端设备的主机设备的***。
图2图示出根据本发明实施例的包括连接到集线器设备(其连接到客户端设备)的主机设备的***。
图3图示出根据本发明实施例的包括连接到多个客户端设备的主机设备的***。
图4图示出根据本发明实施例的连接到示例性客户端设备的示例性主机设备
图5图示出根据本发明实施例的连接到集线器设备(其连接到客户端设备)的示例性主机设备。
图6是示出根据本发明实施例的客户端设备、其配置、接口和端点之间的关系的层次图。
图7图示出根据本发明实施例的修改后的USB主机栈。
图8是根据本发明实施例的可由客户端设备用于与主机设备相接口的的处理的流程图。
图9是根据本发明实施例的可由主机设备用于与客户端设备相接口的的处理的流程图。
图10是根据本发明实施例的可由客户端设备用于与主机设备相接口的处理的更详细的流程图。
图11是根据本发明实施例的可主机设备用于与客户端设备相接口的处理的更详细的流程图。
图12是图示出根据本发明实施例的主机设备和客户端设备之间的示例通信序列的梯形图。
图13是根据本发明实施例的可由主机设备用于经由集线器设备与客户端设备相接口的处理的流程图。
具体实施方式
本发明的一些实施例提供用于基于由客户端设备发送的挂起请求(suspend request)来挂起(例如置于低功率模式)主机设备与客户端设备之间的通信链路或信道的技术。在一些实施例中,挂起请求可以是响应于由主机设备提供的轮询请求(polling request)而被发送的。在某些实施例中,轮询请求可以是由主机设备的主机控制器在硬件层发送的。例如,主机控制器可以在未经由主机设备的处理器运行的操作***或应用程序(软件层)的处理的情况下发送轮询请求。在一些实施例中,主机设备可以响应于接收到挂起请求来发起挂起主机设备和客户端设备之间的通信链路的操作。在一些实施例中,挂起请求的传送可以通过诸如通用串行总线(USB)协议之类的通信协议来辅助。
USB协议开发于20世纪九十年代,可以辅助主机设备与一个或多个连接的客户端设备之间的通信。USB协议是非对称的或以主机为中心的通信协议。因此,通过USB协议辅助的通信和事务由主机设备发起。例如,按照USB协议,仅主机设备可以执行对与客户端设备的通信链路的挂起。客户端设备既不可以直接地挂起通信链路也不可以通过发送挂起请求来间接地挂起通信链路。
如所论述的,本发明的某些实施例允许使用USB协议来将挂起请求从客户端设备发送到主机设备。通过运行客户端设备请求挂起其与主机设备的通信链路,可以有效地管理并降低功率使用。更具体而言,在某些情形下,客户端设备可以比它的主机设备准确地多地评估其通信需求。例如,客户端设备可以更好地确定其将不与主机设备进行通信的时间段(即,其处于空闲的时段)。结果,客户端设备可以更好地识别何时挂起其与其主机设备的通信链路是适当的。
在某些实施例中,主机设备可以是任何合适的计算设备而没有限制。在一些实施例中,主机设备可以是个人计算机、膝上型计算机、平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏设备、多功能设备、允许两个或更多设备相互通信的智能集线器设备等的组件。例如,主机设备可以是智能电话设备内的单芯片(集成电路)应用处理器,其被配置为与智能电话设备的各个其它协同处理器或组件通信。在其它实施例中,主机设备可以是个人计算机、膝上型计算机、平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏设备、多功能设备、允许两个或更多设备相互通信的智能集线器等。
在某些实施例中,客户端设备可以是能够与主机设备通信的任何合适的设备而没有限制。在一些实施例中,客户端设备可以是个人计算机、膝上型计算机、平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏设备、多功能设备、无线通信设备、调制解调器、外部扬声器、外部显示器、输入设备、打印设备等。例如,客户端设备可以是对提供移动电话网络通信(语音和/或数据)、WiFi通信(例如,IEEE 802.11族标准)和/或近场技术通信(例如蓝牙)的硬件进行管理的单芯片(集成电路)协同处理器。在其它实施例中,客户端设备可以是平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏设备、多功能设备、无线通信设备、调制解调器、外部扬声器、外部显示器、输入设备、打印设备等。
在某些实施例中,主机设备可以经由通信链路来与客户端设备通信。在一些实施例中,主机设备可以经由包括多于一个通信链路的路径来与客户端设备通信。例如,主机设备可以经由第一通信链路连接到集线器设备(例如,允许从主机设备的单个连接连接到多个客户端设备的设备)。集线器设备随后可以经由第二通信链路连接到客户端设备。在操作期间,主机设备和客户端设备之间的通信可以经过第一通信链路、集线器设备和第二通信链路。
以下描述主要是指使用USB协议的通信。然而,本领域技术人员将明白在该说明书中所公开的挂起技术同样适用于其它类型的通信协议。以下描述也主要指USB和USB高速片间(HSIC)连接上的通信。然而,本领域技术人员将明白在该说明书中公开的挂起技术同样适用于其它类型的连接,例如有线和无线连接。
图1图示出根据本发明实施例的包括连接到客户端设备的主机设备的***100。图1中示出的***包括主机设备110、客户端设备130、通信链路150、存储设备112、客户端特定的硬件140和存储器138。
在一些实施例中,主机设备110、客户端设备130、存储设备112、客户端特定的硬件140和存储器138将被整体地或部分地封闭在外壳180内。外壳180可以是由任何适合的材料制成。例如,外壳180可以由塑料、金属、玻璃、陶瓷、木材等制成。在某些实施例中,主机设备110和客户端设备130可以被实现在外壳180内的同一印刷电路板(母板)上。例如,主机设备110和客户端设备130可以各自是嵌入到多功能设备的母板中的芯片。连接主机设备110和客户端设备130的通信链路150可以是例如印刷电路板(PCB)上的一条或多条迹线。
在一些实施例中,主机设备110可以包括处理器116、客户端I/O接口118和主机控制器120。在一些实施例中,主机设备110可以被实现为一个或多个集成电路(包括例如传统的微处理器或微控制器)。例如,主机设备110可以是集成了处理器116、客户端I/O接口118和主机控制器120的单芯片应用处理器。主机设备110还可以以任何合适的方式连接到存储设备112。
处理器116可以被实现为一个或多个集成电路,可以控制主机设备110的操作。例如,响应于经由用户界面(未示出)提供的用户输入信号,处理器116可以执行各种任务,诸如,选择并播放可被存储在存储设备112中的媒体资产,与客户端设备相接口来访问各种客户端设备功能(例如访问移动电话网络、因特网、局域网、外部扬声器、外部显示器等),执行驻留在存储设备112上的各种软件程序114(例如,操作***和应用程序),等等。在一些实施例中,可以基于诸如USB协议之类的通信协议来辅助通信。
客户端I/O接口118可以包括被配置来在主机设备110和客户端设备130之间运载各种信号的许多信号路径。在一些实施例中,客户端I/O接口118可以包括足以基于通信协议来辅助通信的许多信号路径。例如,客户端I/O接口118可以包括适用于适用USB协议的通信的许多信号路径。在一些实施例中,客户端I/O接口118可以是HSIC接口。HSIC接口是允许短距离上的使用USB协议的通信的标准接口类型(例如,最多达大约10cm,这是手持便携式计算设备的组件之间典型的距离尺度)。由于HSIC接口被优化以用于短距离上的通信,因此HSIC接口相比于更为传统的USB接口具有降低的功率要求、成本、复杂度和制造风险。HSIC例如被用于使能同一印刷电路板上的芯片之间的通信。
在某些实施例中,主机设备110可以包括主机控制器120,主机控制器120可以基于任何合适的传送数据的方式来辅助与客户端设备130的通信。例如,主机控制器120可以经由客户端I/O接口118来管理与客户端设备130的通信。在某些实施例中,主机控制器120可以基于中断型数据传送来与客户端设备130通信。例如,主机控制器120可以被配置为周期性地轮询客户端设备130。主机控制器120还可以被配置为从客户端设备130接收挂起信息。挂起信息可以包括挂起请求、挂起通知、否定确认消息(NAK)等。在一些实施例中,主机控制器120可以在无需处理器116的帮助(例如,不使用处理器116的处理周期)的情况下发送轮询请求给客户端设备130。在一些实施例中,轮询请求的发送可以由主机控制器120在硬件层执行。例如,轮询请求可以由主机控制器120在未经由处理器116运行的操作***或应用程序(即软件层)处理的情况下发送。在一些实施例中,主机控制器120可以在硬件层判断从客户端设备130接收的挂起信息是否请求通信链路150的挂起。在某些实施例中,如果主机控制器120接收到挂起未被请求的指示(例如通过接收NAK消息),则主机控制器120可以继续周期性地轮询客户端设备130。在一些实施例中,如果主机控制器120接收到挂起被请求的指示,则主机控制器120可以通知由处理器116运行的操作***或应用程序。
存储设备112例如可以使用盘、闪存或任何其它的非易失性存储介质来实现。存储设备112可以存储可由处理器116运行的软件程序114,包括可以用于管理与各种客户端设备(例如如下所述)以及/或软件程序的通信的操作***和有关的程序代码(未明确示出)。存储设备112也可以存储任何其它类型的信息,诸如各种媒体资产、有关用户的联系方式(姓名、地址、电话号码等)的信息、计划的约会和事件、备忘和/或其它信息。
软件程序114(在此也称为软件)可以包括由处理器116运行的任何程序。在一些实施例中,某些软件程序可以由其制造商安装在主机设备110中,而其它的软件程序可以由用户安装。软件程序114的示例可以包括操作***、生产力应用程序、视频游戏应用程序、个人信息管理应用程序、用于播放媒体资产和/或导航媒体资产数据库的应用程序、用于控制电话接口来拨出和/或接收呼叫的应用程序,等等。某些软件程序114可以提供与客户端设备的通信和/或对客户端设备的控制,并且某些软件程序114可以对来自客户端设备130的控制信号或其它输入进行响应。
在一些实施例中,客户端设备130可以包括I/O接口132和控制器134。在一些实施例中,客户端设备130可以被实现为一个或多个集成电路。例如,客户端设备130可以是集成了I/O接口132和控制器134的单芯片DSP协同处理器。在一些实施例中,客户端设备130可以连接到存储器138和客户端特定的硬件140。
I/O接口132可以包括被配置为在客户端设备130和主机设备110之间运载各种信号的许多信号路径。在一些实施例中,I/O接口132可以包括足以基于通信协议来辅助通信的许多信号路径。例如,I/O接口132可以包括适用于适用USB协议的通信的许多信号路径。在一些实施例中,I/O接口132可以是HSIC接口。
控制器134可以运行程序代码来管理客户端特定的硬件140的各种功能,诸如管理移动电话通信(语音和/或数据)、WiFi通信、近场(例如蓝牙)通信、数字音频解码、模拟或数字音频和/或视频处理、用户输入处理、控制客户端特定的硬件140的功能等。控制器134还可以经由I/O接口132来管理与主机设备110的通信。例如,来自客户端特定的硬件140的电话语音数据可以由控制器134接收并随后被中继到主机设备110。在一些实施例中,控制器134可以判断客户端设备130和主机设备110之间的通信链路是否将被挂起。例如,客户端设备130可以管理客户端特定的硬件140的操作。客户端特定的硬件140可以被配置为例如经由客户端设备130向主机设备110提供移动电话网络通信功能。在操作期间,控制器134可以判定:不再需要与移动电话网络的通信(例如不期望来自该网络的更多通信),并且相应地,客户端设备130和主机设备110之间的通信链路可以被挂起。在一些实施例中,控制器134可以发送挂起请求给主机设备110或引起该发送。
存储器138可以使用能够存储程序代码或数据的任意类型的存储器、盘或其它存储介质来实现。例如,存储器138可以存储能够提供供控制器134用来与客户端特定的硬件140交互的客户端设备特定的软件136。存储器138还可以存储可以提供给主机设备110的客户端设备配置数据(例如USB协议描述符)。在一些实施例中,客户端设备130可以从主机设备110接收信息(例如,用户输入、元数据和/或应用数据),并且这样的信息可以存储在存储器138中。
客户端特定的硬件140可以表示使能任何期望功能所需要的任何硬件。
在一些实施例中,客户端特定的硬件140可以包括网络和/或通信接口。网络和/或通信接口可以为主机设备110提供语音和/或数据通信能力。在一些实施例中,网络和/或通信接口可以包括收发器(例如使用诸如GSM或CDMA之类的移动电话技术、诸如3G或EDEG之类的高级数据网络技术、WiFi(IEEE 802.11族标准)、蓝牙或其它移动通信技术,或它们的任意组合)、GPS接收器组件、和/或用于访问无线语音和/或数据网络的其它组件。在一些实施例中,除了无线接口以外或替代无线接口,网络和/或通信接口还可以提供有线网络连通性。网络和/或通信接口可以使用任何合适的硬件组合(例如,天线、调制器/解调器、编码器/解码器和其它模拟和/或数字信号处理电路)来实现。
在其它实施例中,客户端特定的硬件140可以包括RF接收器(例如用于FM、AM、卫星无线电和/或其它频带)和/或RF发射器(例如用于个人用途的短距离发射器)。在其它实施例中,客户端特定的硬件140可以包括被供电的扬声器、图像显示器(例如LCD)、输入设备、打印设备等。
在一些实施例中,客户端特定的硬件140可以包括用户接口的组件。因此,在主机设备110上运行的应用可以从客户端特定的硬件140接收用户输入,将输出经由客户端特定的硬件140提供给用户,以及/或者控制客户端特定的硬件能够执行的任何操作、与操作交互或对操作响应。
因此,客户端特定的硬件140可以包括可对其期望与计算和/或通信设备的互操作性的任何硬件组件。
客户端I/O接口118和132可以允许主机设备110经由通信链路150连接到客户端设备130。通信链路150可以使得数据能够使用任何适合的通信协议(例如USB协议)在主机设备110和客户端设备130之间被传送。在某些实施例中,通信链路可以是任何合适的连接类型。例如,通信链路150可以按照USB或USB HSIC标准来实现。通信链路150还可以以任何合适的方式来实现。例如,通信链路150可以被实现为线缆、互连导线、pcb迹线、无线介质上的连接等等。
在一些实施例中,通信链路150可被置于挂起或低功率模式。通信链路150可以使得通信链路相比于当通信链路活动(被使能以用于通信)时使用更少的功率。例如,当通信链路150被挂起时,其可以从主机设备110吸取最少的功率或不吸取功率。
在一些实施例中,客户端设备130可以经由通信链路150从主机设备110吸取功率。这样,当通信链路150被挂起时,客户端设备130同样可以被挂起。在其它实施例中,客户端设备130可以从主机设备110之外的其它源吸取功率。结果,当通信链路150被挂起时,客户端设备130可以保持是活动的。应当注意,在这样的实施例中,客户端设备130本身也可以被独立挂起。
在某些实施例中,通信链路150可以或者通过主机设备110或者通过客户端设备130被从挂起模式切换到活动模式。在激活或“唤醒”通信链路150时,主机设备110和客户端设备130之间的通信可以继续。在一些实施例中,主机设备110可以在激活(即唤醒)了通信链路150时发起与客户端设备130的后续配置或“重新枚举”(re-enumeration)处理。在某些实施例中,可以使用用于USB枚举处理的标准实现,例如,与2000年4月27日出版的“通用串行总线规范”版本2.0相兼容的实现方式。在其它实施例中,主机设备110可以基于先前缓存或存储的枚举信息来执行“重新枚举”处理以便避免执行标准枚举处理。可以使用的快速枚举处理的示例被记载在与之同日递交的美国专利申请No.______________(代理卷号20750P-019100US)中,该申请的公开被通过引用全部结合于此。
主机设备与客户端设备之间的连接可以是直接的或间接的。例如,图2图示出包括主机设备的***200,主机设备连接到集线器设备,集线器设备又连接到客户端设备。尽管图2的***仅示出一个客户端设备、一个通信链路、一个存储设备、一个客户端特定的硬件、一个集线器设备以及一个存储器,但是可以包括任何适合数目的这样的实体。具体而言,主机设备210可以类似于主机设备110。存储设备212可以类似于存储设备112。软件214可以类似于软件114。处理器216可以类似于处理器116。主机控制器220可以类似于主机控制器120。客户端I/O接口218可以类似于客户端I/O接口118。客户端设备230可以类似于客户端设备130。I/O接口232可以类似于I/O接口132。控制器234可以类似于控制器134。客户端特定的硬件240可以类似于客户端特定的硬件140。存储器238可以类似于存储器138。客户端特定的软件236可以类似于客户端特定的软件136。外壳280可以类似于外壳180。
图2还示出主机设备210可以经由第一通信链路270连接到集线器设备260,并且客户端设备230可以经由第二通信链路250连接到集线器设备260。在一些实施例中,集线器设备260可以是能够将多个客户端设备(未示出)连接到从主机设备210开始的单个连接的任何合适的设备。主机设备210和客户端设备230之间的通信可以经过第一通信链路270、集线器设备260和第二通信链路250。在某些实施例中,客户端设备230可以向主机设备210发送请求挂起通信链路250的请求。在接收到该挂起请求之后,主机设备210可以或者挂起第一通信链路270(例如停止与经由集线器设备260连接的所有客户端设备的通信的全局挂起)或者挂起第二通信链路250(例如,到连接到集线器设备260的特定客户端设备的链路的选择性挂起)。在某些实施例中,主机设备可以挂起第一和第二通信链路二者。
在一些实施例中,主机可以连接到多个客户端设备。例如,图3图示出包括连接到多个客户端设备的主机设备的***300。图3中示出的***可以类似于图1中示出的***。具体而言,主机设备302可以类似于主机设备110。外壳360可以类似于外壳180。客户端设备304、306和308以类似于客户端设备130。通信链路310、312和314可以类似于通信链路150。图3还示出主机设备302可以分别经由通信链路310、312和314与客户端设备304、306和308通信。每个客户端设备可以连接到不同的客户端特定的硬件和/存储器(未示出)。在一些实施例中,客户端设备可以管理由它们相关联的客户端特定的硬件提供的各种功能(例如WiFi通信、移动电话网络通信、蓝牙等)。
因此,例如,在便携式计算设备中,单个主机设备302可以与客户端设备304通信来提供移动电话功能,与另一客户端设备306通信来提供GPS功能,被与客户端设备308通信来提供用户界面,等等。任意数目的客户端设备可以直接地或间接地连接到主机设备。在某些实施例中,客户端设备304、306和308中的每个可以被配置为向主机设备302发送挂起请求。在一些实施例中,仅客户端设备的子集可以被配置为发送挂起请求。
图4图示出根据本发明的实施例的包括连接到客户端设备的主机设备的***400。图4中示出的***可以类似于图1中示出的***。然而,在一些实施例中,主机设备410和客户端设备430未被包括在公共的外壳中。例如,主机设备410可以是便携式多媒体设备并且客户端设备430可以是诸如外部扬声器之类的配件。在其它实施例中,主机设备410和客户端设备430可以被包括在公共的外壳中,但是不是被嵌入到单个PCB中。
参考图4,主机设备410可以类似于主机设备110。存储设备412可以类似于存储设备112。软件414可以类似于软件114。处理器416可以类似于处理器116。主机控制器420可以类似于主机控制器120。客户端I/O接口418可以类似于客户端I/O接口118。客户端I/O接口418可以是使用USB或任何其它通信协议来辅助通信的任意合适的接口。例如,客户端I/O接口418可以包括耦合到USB线缆的连接器。客户端设备430可以类似于控制器134。控制器434可以类似于控制器134。I/O接口434可以是用于使用USB或任何其它通信协议来辅助通信的任何合适的接口。客户端特定的硬件440可以类似于客户端特定的硬件140。存储器438可以类似于存储器138。客户端特定的软件436可以类似于客户端特定的软件136。通信链路450可以类似于通信链路150。图4还示出主机设备410可以包括存储设备412并且客户端设备430可以包括客户端特定的硬件440和存储器436。
在一些实施例中,主机设备410可以是个人计算机、膝上型计算机、平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏设备、多功能设备、允许两个或更多设备相互通信的智能集线器等。
在某些实施例中,客户端设备430可以是能够与主机设备通信的任何合适的设备而没有限制。在一些实施例中,客户端设备可以是平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏控制器或输入设备、多功能设备、无线通信设备、调制解调器、外部扬声器、外部显示器、相机、打印设备等。
在一些实施例中,通信链路450可以被实现为USB线缆、串行线缆等,允许主机设备和客户端设备被用户连接或断开连接。在某些实施例中,客户端设备430可以向主机设备410发送请求挂起通信链路450的请求。
图5图示出根据本发明实施例的包括连接到集线器设备的主机设备的***500,其中集线器设备连接到客户端设备。图5中示出的***可以类似于图2中示出的***。然而,在一些实施例中,主机设备510、集线器设备520和客户端设备530不被封闭在公共外壳中。例如,主机设备510可以是便携式多媒体设备,集线器560可以是外部智能集线器设备,并且客户端设备530可以是诸如外部扬声器之类的配件。在其它实施例中,主机设备510、集线器设备560和客户端设备530可以被封闭在公共外壳中,但是不是被嵌入在单个PCB中。
参考图5,主机设备510可以类似于主机设备210。存储设备512可以类似于存储设备212。软件514可以类似于软件214。处理器516可以类似于处理器216。主机控制器520可以类似于主机控制器220。客户端I/O接口518可以类似于客户端I/O接口218。客户端I/O接口518可以是用于使用USB或任何其它通信协议来辅助通信的任何合适的接口。例如,客户端I/O接口518可以包括可被耦合到USB线缆的连接器。I/O接口532可以类似于I/O接口232。I/O接口532可以是用于使用USB或任何其它通信协议来辅助通信的任何合适的接口。控制器534可以类似于控制器234。客户端特定的硬件540可以类似于客户端特定的硬件240。存储器538可以类似于存储器238。客户端特定的软件536可以类似于客户端特定的软件236。通信链路570可以类似于通信链路270。集线器设备560可以类似于集线器设备260。通信链路550可以类似于通信链路250。
在一些实施例中,主机设备510可以是个人计算机、膝上型计算机、平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏设备、多功能设备、允许两个或更多设备相互通信的智能集线器等等。
在某些实施例中,客户端设备530可以是能够与主机设备通信的任何合适的设备而没有限制。在一些实施例中,客户端设备可以是平板设备、多媒体设备、蜂窝电话、智能电话、全球定位***(GPS)设备、游戏控制器或输入设备、多功能设备、无线通信设备、调制解调器、外部扬声器、外部显示器、相机、打印设备等。
在一些实施例中,通信链路550和570可以各自被实现为USB线缆、串行线缆等,允许主机、集线器和客户端设备被用户连接或断开连接。在某些实施例中,客户端设备530可以向主机设备510发送请求挂起通信链路550的请求。
将明白,图1至图5中示出的***是说明性的并且变形例和修改例是可能的。例如,尽管在图1中仅示出一个通信链路150,但是在主机设备110和客户端设备130之间可以存在任何数目的链路。说明性地,主机和客户端设备可以经由第一通信链路直接连接,第一通信链路可以应对挂起信息的通信。主机和客户端设备也可以经由第二通信链路直接地连接,第二通信链路可以应对所有其它通信。作为另一示例,主机设备可以连接到多个客户端设备和/或多个集线器设备。主机设备也可以包括到多个客户端设备的多个直接的和间接的(经由集线器设备)连接。
如以上所论述的,主机设备和客户端设备之间的通信可以通过通信协议来辅助。在某些实施例中,通信协议可以定义针对主机设备和客户端设备之间的通信的接受格式、结构和数据要求。例如,通信协议可以指定每个消息将在带有报头和可选有效载荷的分组中发送。报头可以提供基本信息(例如开始指示符、分组长度以及标识将被接收方处理的命令的命令代码),而有效载荷提供与命令相关联的任何数据;相关联的数据的数量可以因命令不同而不同,并且有些命令可以供用于可变长度的有效载荷。
在某些实施例中,通信协议可以定义具体的命令来指示将由消息接收方采取的动作、任务的完成、状态的改变、状况信息、枚举信息、误差的出现和/或相关联数据的特性。在某些实施例中,通信协议可以是非对称的或是以主机为中心的(例如,主机设备控制通信和事务)。在一些实施例中,通信协议可以允许通信链路被挂起。在某些实施例中,挂起通信链路使得通信链路被置于低功率模式(其中通信链路比当其是活动的时吸取更少的功率)。
在某些实施例中,主机设备和客户端设备之间的通信可以通过USB协议来辅助。USB协议是非对称的或是以主机为中心的通信协议。这样,主机设备发起所有事务。在典型的USB协议事务中,第一分组(称为令牌)可以由主机设备发送给客户端设备。令牌可以指示将要发生的事务的类型。例如,USB协议定义:IN令牌,其可以指示客户端设备将要向主机设备发送数据,OUT令牌,其可以指示主机设备将向客户端设备发送数据。在令牌被发送之后,主机设备或客户端设备可以发送可选的数据分组。事务中(或者由主机设备或者由客户端设备)发送的最后分组可以是状况分组。状况分组可以或者是确认消息(ACK)或否定确定消息(NAK)。
USB协议制定客户端设备可以具有一个或多个配置。每个配置定义由客户端设备支持的能力的类型。例如,多功能客户端设备可以具有用于音频功能的配置和用于相机功能的配置。
每个配置可以与一个或多个接口相关联。USB协议定义可被客户端设备和主机设备用来相互传送某些类型的数据的若干接口。例如,音频接口可以被定义用于客户端设备和主机设备之间的声音数据的传送。在某些实施例中,客户端设备可以根据客户端设备的功能来支持一个或多个接口。USB标准中定义的一些接口包括音频、人机界面设备(HID)、物理接口设备(PID)、图像、打印机、大容量存储装置、通信和CDC控制、智能卡、内容安全性、视频、个人保健、无线控制器、应用特定的和销售商特定的。
每个接口可以与客户端设备内的一个或多个端点相关联。这些端点可以被配置为在客户端设备处应对数据通信以用于其相关联的接口。具体地,主机设备可以从端点发送数据和接收数据。作为示例,端点可以与音频接口相关联。主机设备可以通过向与音频接口相关联的端点发送音频信息来向客户端设备发送音频信息。端点可以以任何合适的方式实现。例如,端点可以是寄存器、存储器缓冲器等。
图6图示出示出客户端设备、其配置、接口和端点之间的关系的层次图。具体地,图6示出客户端设备可以与诸如配置604和606之类的一个或多个配置相关联。每个端点还可以与一个或多个接口相关联。例如,配置604可以与接口608和610相关联。每个接口可以与一个或多个端点相关联。例如,接口610可以与端点612相关联。
主机设备与客户端设备的端点之间的逻辑通信信道在此被称为通信“管道”。数据在通信管道上的传送可以是基于中断、容量(bulk)、等步(isochronous)或控制型数据传送的。
对于中断型数据传送,主机设备的主机控制器可以被配置为周期性地轮询或发送轮询请求给客户端设备的“中断”端点。轮询请求通常作为IN令牌被发送。响应于轮询请求,客户端设备可以被配置为发送中断信息。例如,在操作期间,客户端设备可以将中断请求置于其中断端点上或将其入队。在接收到轮询请求时,客户端设备可以发送中断请求给主机设备。作为另一示例,客户端可能之前没有将中断请求在中断端点上入队。在此情形中,在接收到轮询请求时,客户端设备可以发送NAK消息给主机设备来指示没有中断已经被入队。主机设备的主机控制器还可以被配置为接收对轮询请求的响应(例如,中断请求,NAK消息)。
由主机设备周期性地发送轮询请求以及接收响应可以在硬件层进行。更具体而言,轮询请求的发送和响应的接收可以在主机设备的一个或多个集成电路中被实现。例如,每个轮询请求可以由主机控制器在未经软件层处(即,由主机设备的处理器运行的程序代码,例如操作***或应用程序)的处理的情况下被发送。主机控制器还接收对轮询请求的响应并判断软件层(例如,由处理器运行的操作***或应用程序)是否应被通知。具体地,如果中断请求被接收到,则通知被发送给软件层以进行进一步的处理。如果NAK被接收到,则没有通知被发送。应当注意,主机控制器的用于执行中断型数据传送的初始配置可以在软件层被执行。通过允许主机控制器发送轮询请求,接收轮询响应并判断由处理器运行的操作***或应用是否需要被通知该响应,可以减少处理器的处理,这可以节省功率。
如所论述的,USB协议是非对称的或以主机为中心的通信协议的示例,其中,主机设备和客户端设备之间的通信链路的挂起仅由主机设备执行。USB协议不允许客户端设备挂起通信链路或向其主机设备发送请求挂起通信链路的请求。
本发明的某些实施例提供“挂起接口”,主机设备可以经由“挂起接口”来从客户端设备接收挂起信息。在一些实施例中,挂起接口可以与一个或多个客户端设备端点相关联。主机设备与这一个或多个端点之间的数据传送可以以任何合适的方式进行。例如,数据传送可以是基于中断型传送的。这样,主机设备的主机控制器可以以定期或半定期的间隔来轮询与挂起接口相关联的一个或多个“中断”端点。如果挂起请求(即中断请求)先前被放置或入队到一个或多个中断端点之一上,则挂起请求随后可以被发送给主机控制器。
图7图示出根据本发明实施例的可以包括挂起接口702的修改后的USB主机栈700的框图。USB栈700可以包括可以将客户端设备连接到主机设备的USB主机控制器704。主机设备可以具有多个主机控制器并且每个主机控制器可以连接到一个或多个客户端设备。USB主机控制器704可以通过主机控制器驱动707、主机核心驱动708和HUB驱动710来与操作***712和应用程序714通信。在一些实施例中,USB主机控制器704可以被配置为向连接的客户端设备发送轮询请求。USB主机控制器704还可以响应于轮询请求来接收挂起信息(例如挂起请求、NAK消息)。请求的发送和挂起信息的接收可以由USB主机控制器704在无需与操作***712或应用程序714通信或经操作***712或应用程序714处理的情况下执行。如果响应指示动作将被采取(例如通信链路将被挂起)。则USB主机控制器随后向操作***712或应用程序714通知该响应。可以使用USB主机栈组件的标准实现方式,例如,与2000年4月27日出版的“通用串行总线规范”版本2.0相兼容的实现方式。
现在将描述可以用来将挂起信息从客户端设备传送到主机设备并使得主机设备能够发起通信链路的挂起的处理的示例。
图8和图9示出根据本发明实施例的可以分别由客户端设备和主机设备执行的处理。
图8是根据本发明实施例的用于与主机设备相接口的处理800的流程图。处理800可以由例如图1的客户端设备130执行。处理800中各个实体之间的通信可以通过诸如USB协议之类的任何合适的通信协议来辅助。
在框802处,客户端设备130可以使能与主机设备110的操作。操作可以以任何合适的方式使能。例如,客户端设备130可以与主机设备110交换配置信息。在一些实施例中,配置信息可以指定由客户端设备130支持的功能。例如,配置信息可以指定客户端设备130能够访问移动电话网络。在一些实施例中,配置信息可以指示客户端设备130支持链路挂起信息的传送。
在框804处,客户端设备130可以判断挂起其与主机设备110的通信链路(即通信链路150)是否适当。客户端设备130可以以任何合适的方式并使用任何合适的标准来做出这样的判断。例如,客户端设备130可以基于其已经处于空闲的时间长度、当前环境条件、过去的使用模式、预测的将来的使用模式、当前的或将来的客户端设备状态(例如挂起模式)等来判断挂起是否适当。
如果挂起是适当的,则在框806处,客户端设备130可以生成指示通信链路150应被挂起的挂起通知或请求。在一些实施例中,通知或请求还可以包括延迟时段值。延迟时段值可以指示主机设备110在挂起通信链路150之前应当等待的持续时间。例如,延迟时段值可以指定主机设备110在发起通信链路150的挂起之前应当等待1毫秒。在框808处,客户端设备130可以向主机设备110发送挂起通知或请求。在一些实施例中,挂起请求可以响应于先前从主机设备110接收的轮询请求而被发送。
图9是根据本发明实施例的用于与客户端设备相接口的处理900的流程图。处理900可以由例如图1的主机设备110执行。处理900中的各个实体之间的通信可以通过诸如USB协议之类的任何合适的通信协议来辅助。
在框902处,主机设备110可以使能与客户端设备130的操作。操作可以以任何合适的方式使能。例如,主机设备110可以与客户端设备130交换配置信息。配置信息可以指示客户端设备能够例如经由挂起接口来提供挂起请求,等等。基于配置信息,客户端设备和主机设备可以被配置为相互通信。例如,主机设备110可以下载和配置用于客户端设备130的软件驱动。一旦操作被使能,则主机设备110可以使用客户端设备130的能力。例如,主机设备110可以使用客户端设备130用来访问WiFi网络的能力。
在框904处,主机设备110接收来自客户端设备130的挂起请求。在框906处,主机设备110可以挂起通信链路150。在一些实施例中,挂起通信链路150可以包括将通信链路置于低功率模式。在某些实施例中,挂起请求还可以包括延迟时段值。基于延迟时段值,主机设备110可以在挂起通信链路150之前等待一时间段。在通信链路被挂起之后,其可以以任何合适的方式被重新激活或“唤醒”。例如,通信链路可以由主机设备和/或客户端设备根据2000年4月27日出版的“通用串行总线规范”版本2.0来“唤醒”。
通过检查图10和图11中示出的更详细的处理可以进一步理解本发明。
图10是根据本发明实施例的用于与主机设备相接口的处理1000的流程图。处理1000可以由例如图1的客户端设备130执行。处理1000中的各个实体之间的通信可以通过USB协议来辅助。将明白,尽管以下处理主要鉴于基于USB协议进行通信的设备来描述,但是该上下文仅仅是说明性的,并且本发明的实施例可以适用于其它通信协议。
在一些实施例中,配置信息可以在客户端设备130和主机设备110之间被交换。配置信息的交换可以根据诸如USB协议之类的通信协议来实现。参考图10,在框1002,客户端设备130可以接收来自主机设备110的针对配置信息的请求。在框1004处,客户端设备130之后可以向主机设备110提供配置信息。
在某些实施例中,配置信息可以包括枚举信息。枚举信息可以根据诸如USB协议之类的任何合适的通信协议来实现。在一些实施例中,枚举信息(或其它配置信息)可以包括定义由客户端设备130支持的配置、接口和端点的描述符。
在某些实施例中,枚举信息可以被定义可用来传送挂起信息的挂起接口的描述符。在一些实施例中,枚举信息还可以包括定义与挂起接口相关联的一个或多个端点的端点描述符。端点描述符可以包括端点地址信息、传送类型信息(例如中断)和轮询间隔信息。
在发送配置信息给主机设备110之后,客户端设备130可以接收来自主机设备110的配置值。配置值可以指示客户端设备130和主机设备110被使能以用于操作。在操作被使能之后,客户端设备130可以经由与客户端设备130的枚举信息中定义的挂起接口相关联的中断端点来与主机设备110交换挂起信息。
在框1006处,客户端设备130可以判断挂起通信链路是否是适当的。对通信链路是否将被挂起的判断可以以任何合适的方式进行。例如,客户端设备130可以基于过去的使用模式、当前的环境条件、预测的将来的使用模式、通信链路已经处于空闲的时段(例如,没有数据被传送给主机设备110)、当前或将来的客户端设备状态(例如挂起模式)等,来判断通信链路是否应当被挂起。例如,客户端设备130可以提供对移动电话网络的访问。在操作期间,客户端设备130可以判定其已经处于空闲(即,不向移动电话网络传送数据或从移动电话网络传送数据)达超过阈值时段的时段。结果,客户端设备130可以判定由于其当前的空闲状态,挂起通信链路150是适当的。
在一些实施例中,挂起是否适当的判断可以以定期的或半定期的间隔自动进行。例如,客户端设备130可以每1毫秒地自动执行挂起判断。在一些实施例中,挂起判断可以被手动发起或被事件的发生而触发。例如,用户可以手动按压按钮来发起挂起判断。在一些实施例中,如果客户端设备130判定挂起是适当的,则客户端设备13可以将中断(例如挂起请求)入队。例如,客户端设备130可以生成挂起请求并将该请求置于与挂起接口相关联的端点处。
在框1008/1012处,客户端设备130可以接收来自主机设备110的轮询请求。在一些实施例中,轮询请求可以由客户端设备130在基于预先定义的轮询间隔的时刻接收。如所论述的,轮询间隔可以用在配置期间提供的一个或多个端点描述符来定义。
在接收到轮询请求时,客户端设备130可以向主机设备110发送挂起信息。挂起信息可以是基于由客户端设备130在框1006处执行的挂起判断的。例如,如果客户端设备130之前在框1006处判定通信链路150应当被挂起(即中断被入队),则客户端设备130可以发送指示主机设备110挂起通信链路150的挂起请求(框1010)。在一些实施例中,挂起请求可能之前已经被客户端设备130入队。在一些实施例中,挂起通知或请求可以包括延迟时段值。延迟时段值可以指示主机设备110在挂起通信链路150之前将等待的时间量。在一些实施例中,挂起请求可以在按照USB协议格式化的数据分组中被发送。
如果客户端设备130之前在框1006处判定通信链路150不应当被挂起(即,中断没有被入队),则客户端设备130可以向主机设备110发送信息,指示通信链路不应当被挂起(框1014)。在一些实施例中,挂起信息可以包括“NAK”消息。
图11是用于与客户端设备相接口的处理1100的流程图。处理1100可以由例如图1的主机设备110执行。处理1100中的各个实体之间的通信可以通过USB协议来辅助。将明白,尽管以下处理主要是鉴于基于USB协议进行通信的设备来描述的,但是该上下文仅仅是说明性的,并且本发明的实施例可以适用于其它通信协议。
在框1102处,主机设备110可以发起与客户端设备130的配置处理(例如,配置信息的交换)。在某些实施例中,配置处理可以根据诸如USB协议之类的通信协议来实现。在某些实施例中,触发事件可以促使主机设备110发起配置处理。例如,将客户端设备130物理地耦合到主机设备110可以触发主机设备110发起配置处理。作为另一示例,主机设备110和客户端设备130可能之前在制造处理期间已经被耦合(例如被整合到智能电话中的主机和客户端设备组件)。这样,设备上的供电可以触发主机设备110发起配置处理。在一些实施例中,配置处理可以包括主机设备110向客户端设备130发送针对配置信息的请求。
在框1104处,主机设备110可以接收来自客户端设备130的配置信息。在某些实施例中,配置信息可以包括枚举信息。例如,根据USB协议构成和格式化的枚举信息可以被提供给主机设备110。枚举信息(或其它配置信息)可以包括定义由客户端设备130支持的接口和端点的描述符。
在某些实施例中,枚举信息可以包括定义挂起接口的描述符。在一些实施例中,枚举信息还可以包括与挂起接口描述符相关联的端点描述符。端点描述符可以包括端点地址信息、传送类型信息(例如中断)和轮询间隔信息。
在框1106处,主机设备110可以被设置为基于配置信息来与客户端设备130进行操作。例如,软件驱动可以被装载到主机设备110上来访问客户端设备130的功能,用于各种接口的通信管道(基于所识别的端点、传送类型和轮询间隔)可以被配置,特有的7比特地址可以被指派给客户端设备130,等等。
在某些实施例中,挂起接口可以被配置用于传送挂起信息。在一些实施例中,挂起接口可以基于由客户端设备130提供的挂起接口与端点描述符来配置。在一些实施例中,挂起接口上的通信可以基于中断型数据传送。例如,客户端设备130可以将将被发送给主机设备110的挂起请求置于其端点之一上。在接收到针对端点的轮询请求时,客户端设备130可以将挂起请求发送给主机设备110。
在框1108处,主机设备110可以经由主机控制器120来向客户端设备130发送请求挂起信息的轮询请求。在某些实施例中,主机设备110可以向与挂起接口相关联的客户端设备130的端点发送轮询请求。轮询请求可以基于预先定义的间隔被发送。例如,主机设备110可以基于在框1104处从客户端设备130发送的端点描述符以500微秒的间隔发送轮询请求。在一些实施例中,主机控制器120可以在硬件层发送轮询请求。
在框1110处,主机设备110的主机控制器120可以接收来自客户端设备130的挂起信息。在框1112处,主机控制器120可以判断从客户端设备130接收的挂起信息是否指示通信链路150应当被挂起。在一些实施例中,主机控制器120可以在硬件层作出这样的判断。
如果挂起被指示,则主机控制器120可以(通过通知由处理器116运行的操作***或应用程序)向处理器116通知:客户端设备130已经请求挂起通信链路150。在一些实施例中,主机控制器120或处理器116还可以判断挂起请求是否包括延迟时段值(框1114)。如果挂起请求包括延迟时段值,则主机设备110可以在发起通信链路150的挂起之前等待延迟时段值所指示的一时间段(框1116)。在框1118处,处理器116可以挂起通信链路150。通信链路的挂起可以以任何合适的方式进行。例如,挂起可以按照2000年4月27日出版的“通用串行总线规范”版本2.0来执行。在通信链路被挂起之后,其可以以任何合适的方式被重新激活或“唤醒”。例如,通信链路可以由主机设备和/或客户端设备根据2000年4月27日出版的“通用串行总线规范”版本2.0来“唤醒”。
如果通信链路的挂起未被指示,则主机控制器120可以继续周期性地向客户端设备130发送轮询请求。在某些实施例中,如果挂起信息指示挂起将不发生,则主机控制器120不向处理器116通知接收到了这样的指示。
通过进一步说明主机设备和客户端设备之间的通信,图12示出图示出根据本发明实施例的在图1中示出的主机设备和客户端设备之间执行的示例通信序列的梯形图。将明白,尽管以下示例主要鉴于基于USB协议进行通信的设备来描述,但是该上下文仅仅是说明性的,并且本发明的实施例可以广泛地适用于其它通信协议。此外,本领域技术人员将认识到图12中示出的通信还可以在图2至图5中示出的主机设备和客户端设备之间被执行。
在通信1202处,枚举信息可以被提供给主机设备110。在通信1204处,主机设备110的主机控制器120可以向客户端设备130发送第一轮询请求。该请求可以基于由枚举信息指定的轮询间隔的时刻被发送。在一些实施例中,轮询请求可以是IN令牌。在通信1206处,客户端设备130可以响应于该请求来发送NAK。NAK可以向主机控制器120信令通知:通信链路的挂起未被请求。在通信1208处,主机控制器120可以向客户端设备130发送第二轮询请求。作为响应,在通信1210处,客户端设备130可以向主机设备110发送挂起请求。在一些实施例中,挂起请求可以是根据USB协议格式化的数据分组。在通信1212处,主机控制器120可以发送指示挂起请求被成功接收到的ACK(例如,请求/通知未被毁坏)。图12中示出的通信序列是说明性的。当主机设备110和客户端设备130之间的通信链路是活动的时,也可以发生其它通信。
图13示出根据本发明另一实施例的可以由经由集线器设备与客户端设备通信的主机设备执行的处理。应当明白,由经由集线器设备与主机设备通信的客户端设备执行的对应处理可以类似于图10中示出的处理。
如所论述的,图13图示出根据本发明实施例的可由主机设备用于与客户端设备相接口的处理的流程图。处理1300可以由例如图2的主机设备210执行。处理1300中的各个实体之间的通信可以通过USB协议来辅助。将明白,尽管以下处理主要是鉴于基于USB协议进行通信的设备来描述的,但是该上下文仅仅是说明性的,并且本发明的实施例可以广泛适用于其它通信协议。
框1302-1306和1310-1318可以类似于处理1100的框1102-1106和1108-1116,不同在于,主机设备210与客户端设备230之间的通信会流经第一通信链路270、集线器设备260和第二通信链路250而不是通信链路150。另外,从客户端设备230接收的挂起请求可以请求挂起第二通信链路250而不是通信链路150。
在一些实施例中,主机设备210可以经由集线器设备260连接到多个客户端设备。在框1308处,主机设备210可以选择当前具有与集线器设备260的活动通信链路的客户端设备(例如客户端设备230)。在框1320处,主机设备210可以挂起第二通信链路250。在框1322处,主机设备210可以判断集线器设备260当前是否具有与活动通信链路(即,未被挂起或未被断电的链路)的任何连接的客户端设备。如果主机设备210判定集线器设备260不包括与连接的客户端设备的任何活动通信链路,则在框1324,主机设备210可以挂起第一通信链路270。这样的挂起可以称为“全局挂起”。在通信链路被挂起之后,其可以以任何合适的方式被重新激活或“唤醒”。例如,通信链路可以由主机设备和/或客户端设备根据2000年4月27日出版的“通用串行总线规范”版本2.0来“唤醒”。
应当明白,图8-11和13中示出的处理是说明性的并且变形例和修改例是可能的。顺序描述的框可以被并行执行,框的次序可以改变,并且框可以被修改、组合、增加或省略。此外,本领域技术人员将认识到,图8-11和13中示出的处理可以被实现用于其它客户端设备和/或主机设备,诸如图3、4和5中示出的客户端设备和主机设备。
尽管已经针对具体实施例描述了本发明,但是变形例是可能的。例如,主机设备和客户端设备可以是能够经由USB协议或任何其它非对称通信协议进行通信的便携式计算设备(例如智能电话)的组件(例如单个PCB上的一个或多个集成电路、不同PCB上的分立组件),其中仅一个设备(例如主机设备)可以挂起通信链路。主机设备和客户端设备可以经由任何合适的连接类型来连接,包括USB HSIC连接、传统的USB连接或用于辅助使用非对称通信协议的通信的任何其它的连接类型。主机设备还可以直接地连接到和/或(经由一个或多个集线器设备)间接地连接到一个或多个客户端设备。作为另一示例,挂起信息可以包括挂起持续时间,其可以指示通信链路应当保持挂起的时间量。
本发明的实施例可以使用专用组件和/或可编程处理器和/或其它可编程设备的任意组合来实现。在此描述的各种处理可以在相同处理器或不同处理器中以任何组合实现。相应地,当组件被描述为配置来执行某些操作时,这样的配置可以例如通过将电子电路设计成执行所述操作、通过将可编程电子电路(诸如微处理器)编程为执行所述操作或它们的任意组合来实现。处理可以使用各种技术来传送,包括但不限于用于处理间通信的传统技术,并且不同处理对可以使用不同技术,或者相同处理对可以在不同时刻使用不同技术。此外,尽管以上所述的实施例可以参考具体的硬件和软件组件,但是本领域技术人员将明白,硬件和/或软件组件的不同组合也可以被使用并且被描述为以硬件实现的具体操作也可以以软件实现,并且反之亦然。
结合了本发明的各种特征的计算机程序可以被编码在各种计算机可读存储介质上;适合的介质包括磁盘或磁带、诸如致密盘(CD)或DVD(数字通用盘)之类的光学存储介质、闪存等。被编码有程序代码的计算机可读介质可以与兼容的电子设备封装到一起,或者程序代码可以(例如经由因特网下载)而与电子设备分开提供。
因此,尽管已经参考具体实施例描述了本发明,但是经明白,本发明意图涵盖在权利要求书的范围以内的所有修改例和等同例。

Claims (21)

1.一种操作客户端设备的方法,该方法包括由所述客户端设备:
使能经由通信链路与主机设备的操作,其中,操作是根据通信协议执行的;
由所述客户端设备判断挂起所述通信链路是否是适当的;
如果所述客户端设备判断挂起所述通信链路是适当的,那么由所述客户端设备将中断请求置于所述客户端设备的中断端点上;
接收来自所述主机设备的轮询请求,其中所述轮询请求是在所述客户端设备的中断端点处接收的;以及
如果将中断请求置于所述中断端点上,那么响应于所述轮询请求来向所述主机设备发送来自所述客户端设备的挂起请求。
2.如权利要求1所述的方法,其中,所述通信协议是非对称的。
3.如权利要求1所述的方法,其中,所述通信协议是通用串行总线USB协议。
4.如权利要求1所述的方法,其中,所述通信链路是根据USB高速片间HSIC标准实现的。
5.如权利要求1所述的方法,其中,所述挂起请求还包括延迟时段值,其中所述延迟时段值指示所述主机设备在挂起所述通信链路之前将要等待的时间段。
6.一种客户端设备,包括:
根据通信协议来向主机设备提供枚举信息的装置,其中,与所述主机设备的操作是基于所述枚举信息被使能的;
由所述客户端设备判断挂起所述主机设备和所述客户端设备之间的通信链路是否是适当的装置;
在所述客户端设备判断挂起所述通信链路是适当的情况下,由所述客户端设备将中断请求置于所述客户端设备的中断端点上的装置;
接收来自所述主机设备的轮询请求的装置,其中所述轮询请求是在所述客户端设备的中断端点处接收的;以及
如果将中断请求置于所述中断端点上,那么向所述主机设备发送来自所述客户端设备的挂起请求的装置,所述挂起请求指示所述通信链路应当被挂起。
7.如权利要求6所述的客户端设备,其中,所述枚举信息包括挂起接口描述符和与所述挂起接口描述符相关联的端点接口描述符,其中,所述端点接口描述符指定端点并指示与该端点的通信将是基于中断型数据传送的。
8.如权利要求6所述的客户端设备,其中,所述挂起请求指示所述主机设备将发起所述通信链路的挂起的时间。
9.一种操作主机设备的方法,该方法包括由所述主机设备:
使能经由通信链路与客户端设备的操作,其中,通信是根据通信协议执行的;
向所述客户端设备的中断端点发送轮询请求;
接收来自所述客户端设备的中断端点的挂起请求;以及
挂起到所述客户端设备的所述通信链路。
10.如权利要求9所述的方法,其中,所述通信协议是通用串行总线USB协议。
11.如权利要求9所述的方法,其中,所述轮询请求在硬件层被发送。
12.如权利要求9所述的方法,其中,所述轮询请求是在没有所述主机设备的处理器的帮助的情况下由所述主机设备的通用串行总线USB主机控制器发送的。
13.如权利要求9所述的方法,其中,使能与所述客户端设备的操作包括从所述主机设备接收挂起接口指示符和与所述挂起接口描述符相关联的一个或多个端点接口描述符,其中,所述一个或多个端点接口描述符指定一个或多个端点并指示与所述一个或多个端点的通信将是基于中断型数据传送的。
14.一种主机设备,包括:
主机控制器;
耦合到所述主机控制器的处理器;以及
耦合到所述处理器的存储器设备;
其中,所述主机控制器被配置为:
在一时间间隔之后向客户端设备的中断端点发送轮询请求;
响应于所述轮询请求接收来自所述客户端设备的中断端点的挂起请求;
向所述处理器通知所述客户端设备已经请求挂起所述客户端设备和所述主机设备之间的通信链路;并且
其中,所述处理器被配置为:
响应于来自所述主机控制器的通知来挂起到所述客户端设备的所述通信链路。
15.如权利要求14所述的主机设备,其中,所述通信链路是根据USB高速片间HSIC标准实现的。
16.如权利要求14所述的主机设备,其中,挂起所述通信链路包括将所述通信链路置于低功率模式。
17.如权利要求14所述的主机设备,其中,所述主机控制器被配置为在基于预先定义的轮询间隔的时刻发送所述轮询请求。
18.如权利要求14所述的主机设备,其中,所述处理器还被配置为:
在等待一时段之后挂起到所述客户端设备的所述通信链路,其中所述时段由所述挂起信息中所包含的延迟时段值指示。
19.一种用于挂起通信链路的***,所述***包括:
客户端设备,所述客户端设备被配置为:
判断挂起通信链路是否是适当的;
响应于判断挂起所述通信链路是适当的,将中断请求置于所述客户端设备的中断端点上;以及
主机设备,所述主机设备被配置为:
向所述客户端设备的中断端点发送轮询请求;
从所述客户端设备的中断端点接收响应于所述轮询请求的所述挂起请求;以及
响应于所述挂起请求来挂起所述通信链路。
20.如权利要求19所述的***,其中,所述通信协议是通用串行总线USB协议。
21.如权利要求19所述的***,其中,所述主机设备和所述客户端设备是单个印刷电路板上的集成电路。
CN201210063419.2A 2011-03-09 2012-03-08 主机设备基于通知挂起到客户端设备的通信链路 Active CN102739634B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/044,405 2011-03-09
US13/044,405 US8700819B2 (en) 2011-03-09 2011-03-09 Host device suspending communication link to client device based on client device notification

Publications (2)

Publication Number Publication Date
CN102739634A CN102739634A (zh) 2012-10-17
CN102739634B true CN102739634B (zh) 2015-06-17

Family

ID=45816003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210063419.2A Active CN102739634B (zh) 2011-03-09 2012-03-08 主机设备基于通知挂起到客户端设备的通信链路

Country Status (5)

Country Link
US (1) US8700819B2 (zh)
CN (1) CN102739634B (zh)
GB (1) GB2489306B (zh)
TW (1) TWI521999B (zh)
WO (1) WO2012121982A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013091138A1 (en) 2011-12-21 2013-06-27 Intel Corporation Mechanism for facilitating power extension service at computing devices
CN104641597B (zh) * 2012-09-19 2018-04-10 丰田自动车株式会社 通信装置以及通信方法
US9535875B2 (en) 2012-10-04 2017-01-03 Apple Inc. Methods and apparatus for reducing power consumption within embedded systems
CN105446912A (zh) * 2014-09-24 2016-03-30 中兴通讯股份有限公司 一种cpu通过hsic总线接口控制wifi模块的方法及装置
JP2017162134A (ja) 2016-03-09 2017-09-14 コニカミノルタ株式会社 処理装置、ホスト装置、usbデバイスの節電方法およびコンピュータプログラム
JP6725872B2 (ja) * 2016-03-17 2020-07-22 日本電気株式会社 サーバ装置、電力供給制御方法、プログラム、外部電源供給装置、サーバシステム
US10321587B2 (en) * 2017-02-03 2019-06-11 Google Llc Integrated connector receptacle device
US11356636B2 (en) * 2018-01-19 2022-06-07 Caavo Inc Device identification and power state determination using media device information
CN108366129B (zh) * 2018-03-08 2019-05-07 北京淳中科技股份有限公司 Usb数据传输方法、装置及usb从设备适配器
CN109766291B (zh) * 2018-12-06 2020-10-23 珠海格力电器股份有限公司 一种i/o端口的自动配置方法及***
US11188494B2 (en) 2019-05-21 2021-11-30 Google Llc Asymmetric data communication for host-device interface
US11620412B2 (en) 2020-03-17 2023-04-04 Kyndryl, Inc. Preventing damage from malicious hardware
CN112073332A (zh) * 2020-08-10 2020-12-11 烽火通信科技股份有限公司 报文分发方法、多核处理器及可读存储介质
US11547932B2 (en) 2021-05-25 2023-01-10 Microsoft Technology Licensing, Llc Companion device aided game controller pairing

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1113771B (it) * 1977-07-07 1986-01-20 Sits Soc It Telecom Siemens Unita' di interfaccia atta a consentire lo scambio di dati a velocita' elevata tra la memoria centrale di un elaboratore ed una unita' periferica
JP3329932B2 (ja) * 1994-03-31 2002-09-30 三菱電機ビルテクノサービス株式会社 クライアントサーバ型ネットワークシステム
US6493782B1 (en) * 1996-01-16 2002-12-10 Texas Instruments Incorporated Method for performing hot docking of a portable computer into a docking station
US6272644B1 (en) * 1999-01-06 2001-08-07 Matsushita Electrical Industrial Co., Ltd. Method for entering powersave mode of USB hub
US6523073B1 (en) * 1999-08-23 2003-02-18 Palm Computing, Inc. Handheld computer system and method to detect and identify a peripheral device
CZ20032079A3 (cs) * 2001-01-31 2003-12-17 International Business Machines Corporation Způsob a zařízení pro přenos přerušení z periferního zařízení na hostitelský počítačový systém
US7073006B2 (en) 2001-08-02 2006-07-04 Intel Corporation Implementing hardware interrupt event driven mechanism to offer soft real-time universal serial bus
US6898651B2 (en) * 2002-05-10 2005-05-24 Intel Corporation Method, apparatus, and system for generating serial interrupt requests (IRQ) with power savings
US20040168052A1 (en) * 2003-02-25 2004-08-26 Clisham Allister B. Electronic content communication system and method
US7873841B2 (en) 2006-10-30 2011-01-18 Sony Ericsson Mobile Communications Ab Method of maintaining a USB active state without data transfer
US8300248B2 (en) * 2007-01-30 2012-10-30 Ricoh Company, Limited Printing control system with suspend modes and method thereof
US8321706B2 (en) 2007-07-23 2012-11-27 Marvell World Trade Ltd. USB self-idling techniques
US8473647B2 (en) * 2007-09-17 2013-06-25 Apple Inc. Methods and apparatus for decreasing power consumption and bus activity
KR100989716B1 (ko) 2008-01-21 2010-10-26 엘지전자 주식회사 컨텐츠 송수신 중지 및 재개 방법
KR20100070465A (ko) * 2008-12-18 2010-06-28 삼성전자주식회사 유에스비 네트워크 장치의 선택적 대기 모드 지원 장치 및 방법
JP5597104B2 (ja) 2010-11-16 2014-10-01 キヤノン株式会社 データ転送装置及びその制御方法

Also Published As

Publication number Publication date
US20120233361A1 (en) 2012-09-13
TWI521999B (zh) 2016-02-11
WO2012121982A1 (en) 2012-09-13
CN102739634A (zh) 2012-10-17
GB2489306A (en) 2012-09-26
GB2489306B (en) 2013-06-05
GB201203875D0 (en) 2012-04-18
TW201242407A (en) 2012-10-16
US8700819B2 (en) 2014-04-15

Similar Documents

Publication Publication Date Title
CN102739634B (zh) 主机设备基于通知挂起到客户端设备的通信链路
KR101281354B1 (ko) 유니버설 시리얼 버스 (usb) 원격 웨이크업
US11146362B2 (en) Internet of things data transmission method, device and system
AU2012231346B2 (en) HID over simple peripheral buses
US8190798B1 (en) Client device configuration based on information stored by host device
US9189182B2 (en) Method and apparatus for activating device
US10515044B2 (en) Communicating heterogeneous virtual general-purpose input/output messages over an I3C bus
KR20140143793A (ko) 유니버셜 직렬 버스 디바이스들에 대한 데이터 재지향
US20060160569A1 (en) Cellular phone and portable storage device using the same
WO2014183690A1 (zh) 一种应用程序的升级处理方法及终端设备
TWI512449B (zh) 用於減少嵌入式系統中耗電量之方法與裝置
JP2013257886A (ja) 電力管理のためのアイドル期間報告
WO2011130974A1 (zh) 文件下载方法及***
CN1988701A (zh) 基于通用usb芯片的多功能手机及其实现方法
US10579549B2 (en) Staggered transmissions on a multi-drop half-duplex bus
TW202014904A (zh) I3c上的低等待時間虛擬通用輸入/輸出
CN110046050A (zh) 一种核间数据传输的装置和方法
WO2017117396A1 (en) Modular communication framework
JP6049876B2 (ja) プッシュ管理スキーム
PL229216B1 (pl) Interfejs do sprzęgania przenośnego urządzenia elektronicznego z urządzeniem multimedialnym
JP2007180600A (ja) 電子機器および該電子機器におけるデータ転送速度制御方法
JP2003316732A (ja) データ転送制御装置、電子機器及びデータ転送制御方法
WO2018049896A1 (zh) 数据传输方法及设备
JP2013029874A (ja) 電子機器、電子機器の制御方法、電子機器の制御プログラム
CN104159143A (zh) 媒体播放节能***及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant