專利名稱:主機設備基于通知掛起到客戶端設備的通信鏈路的制作方法
技術領域:
本公開一般地涉及用于計算設備的省電技術,并且更具體地,涉及用于基于由客戶端設備發(fā)送的請求或通知來掛起主機設備和客戶端設備之間的通信鏈路或信道的技術。
背景技術:
諸如個人計算機之類的計算設備已經被使用了幾十年。計算設備被用于執(zhí)行各種任務,從最簡單的任務到最復雜的任務。計算設備一般可以分類為便攜式的(例如膝上型PC或PDA)和非便攜式的(例如臺式計PC)。
在過去十年里,便攜式計算設備由于它們的便攜性以及管理多個任務的能力而倍受歡迎。例如,諸如個人數(shù)字助理之類的便攜式計算設備可以提供檢查和回復電子郵件、管理會議、顯示圖形和視頻以及播放音樂的能力。通常,便攜式計算設備由電池或具有有限數(shù)量的能量的類似電源供電。為了延長在重新充電或替換電源(例如電池)之前的設備使用,已經開發(fā)了省電技術。
發(fā)明內容
本發(fā)明的某些實施例提供用于基于由客戶端設備提供的掛起請求或通知來掛起主機設備和客戶端設備之間的通信鏈路的技術。在某些實施例中,客戶端設備可以響應于從主機設備接收的輪詢請求來發(fā)送掛起請求。在一些實施例中,輪詢請求可以由主機設備在硬件層發(fā)送。更具體地,輪詢信息可以在未經由主機設備的處理器運行的操作系統(tǒng)或應用程序(軟件層)的處理的情況下被發(fā)送。在一些實施例中,主機設備可以在接收到來自客戶端設備的掛起請求時發(fā)送掛起通信鏈路的操作。本發(fā)明的一個方面涉及客戶端設備以及其操作方法。在一些實施例中,客戶端設備可以經由通信鏈路來使能與主機設備(例如智能電話的應用程序處理器等)的操作。在操作期間,客戶端設備可以判斷掛起通信鏈路是否是適當?shù)摹H绻蛻舳嗽O備判定通信鏈路應當被掛起,貝Ij客戶端設備可以向主機設備發(fā)送掛起請求。例如,客戶端設備可以包括控制器和連接到控制器的輸入/輸出(I/O)接口。I/O接口可以被配置為經由通信鏈路連接到主機設備??刂破骺梢员慌渲脼榻浻蒊/O接口來向主機設備發(fā)送配置信息,判斷設備之間的通信鏈路的掛起是否是適當?shù)模邮諄碜灾鳈C設備的輪詢請求,以及經由I/o接口向主機設備發(fā)送指示設備之間的通信鏈路是否應當被掛起的掛起信息(例如掛起請求)。本發(fā)明的另一方面涉及主機設備及其操作方法。在一些實施例中,主機設備可以經由通信鏈路來使能與客戶端設備(例如,外部揚聲器、用于移動電話網(wǎng)絡通信的數(shù)字信號處理(DSP)協(xié)同處理器、用于GSP通信的DSP協(xié)同處理器、WiFi芯片、藍牙芯片等)的操作。主機設備可以周期性地向客戶端設備發(fā)送輪詢請求。主機設備還可以基于從客戶端設備接收的掛起請求來發(fā)起通信鏈路的掛起。例如,主機設備可以包括處理器、主機控制器和客戶端輸入/輸出(I/O)接口。處理器可以連接到主機控制器。主機控制器進而可以連接到客戶端I/o接口??蛻舳薎/O接口可以被配置為僅有通信鏈路連接到客戶端設備。處理器可以被配置為接收來自客戶端設備的配置信息并使能與客戶端設備的操作。主機控制器可以被配置為向客戶端設備發(fā)送輪詢請求,并從客戶端設備接收掛起信息(例如掛起請求)。處理器還可以被配置為響應于掛起請求來發(fā)起通信鏈路的掛起。以下詳細描述以及附圖將提供對本發(fā)明的特點和優(yōu)點更好的理解。
圖I圖示出根據(jù)本發(fā)明實施例的包括連接到客戶端設備的主機設備的系統(tǒng)。圖2圖示出根據(jù)本發(fā)明實施例的包括連接到集線器設備(其連接到客戶端設備)的主機設備的系統(tǒng)。 圖3圖示出根據(jù)本發(fā)明實施例的包括連接到多個客戶端設備的主機設備的系統(tǒng)。圖4圖示出根據(jù)本發(fā)明實施例的連接到示例性客戶端設備的示例性主機設備圖5圖示出根據(jù)本發(fā)明實施例的連接到集線器設備(其連接到客戶端設備)的示例性主機設備。圖6是示出根據(jù)本發(fā)明實施例的客戶端設備、其配置、接口和端點之間的關系的層次圖。圖7圖示出根據(jù)本發(fā)明實施例的修改后的USB主機棧。圖8是根據(jù)本發(fā)明實施例的可由客戶端設備用于與主機設備相接口的的處理的流程圖。圖9是根據(jù)本發(fā)明實施例的可由主機設備用于與客戶端設備相接口的的處理的流程圖。圖10是根據(jù)本發(fā)明實施例的可由客戶端設備用于與主機設備相接口的處理的更詳細的流程圖。圖11是根據(jù)本發(fā)明實施例的可主機設備用于與客戶端設備相接口的處理的更詳細的流程圖。圖12是圖示出根據(jù)本發(fā)明實施例的主機設備和客戶端設備之間的示例通信序列的梯形圖。圖13是根據(jù)本發(fā)明實施例的可由主機設備用于經由集線器設備與客戶端設備相接口的處理的流程圖。
具體實施例方式本發(fā)明的一些實施例提供用于基于由客戶端設備發(fā)送的掛起請求(suspendrequest)來掛起(例如置于低功率模式)主機設備與客戶端設備之間的通信鏈路或信道的技術。在一些實施例中,掛起請求可以是響應于由主機設備提供的輪詢請求(pollingrequest)而被發(fā)送的。在某些實施例中,輪詢請求可以是由主機設備的主機控制器在硬件層發(fā)送的。例如,主機控制器可以在未經由主機設備的處理器運行的操作系統(tǒng)或應用程序(軟件層)的處理的情況下發(fā)送輪詢請求。在一些實施例中,主機設備可以響應于接收到掛起請求來發(fā)起掛起主機設備和客戶端設備之間的通信鏈路的操作。在一些實施例中,掛起請求的傳送可以通過諸如通用串行總線(USB)協(xié)議之類的通信協(xié)議來輔助。USB協(xié)議開發(fā)于20世紀九十年代,可以輔助主機設備與一個或多個連接的客戶端設備之間的通信。USB協(xié)議是非対稱的或以主機為中心的通信協(xié)議。因此,通過USB協(xié)議輔助的通信和事務由主機設備發(fā)起。例如,按照USB協(xié)議,僅主機設備可以執(zhí)行對與客戶端設備的通信鏈路的掛起??蛻舳嗽O備既不可以直接地掛起通信鏈路也不可以通過發(fā)送掛起請求來間接地掛起通信鏈路。如所論述的,本發(fā)明的某些實施例允許使用USB協(xié)議來將掛起請求從客戶端設備發(fā)送到主機設備。通過運行客戶端設備請求掛起其與主機設備的通信鏈路,可以有效地管理并降低功率使用。更具體而言,在某些情形下,客戶端設備可以比它的主機設備準確地多地評估其通信需求。例如,客戶端設備可以更好地確定其將不與主機設備進行通信的時間段(即,其處于空閑的時段)。結果,客戶端設備可以更好地識別何時掛起其與其主機設備的通信鏈路是適當?shù)摹?
在某些實施例中,主機設備可以是任何合適的計算設備而沒有限制。在一些實施例中,主機設備可以是個人計算機、膝上型計算機、平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲設備、多功能設備、允許兩個或更多設備相互通信的智能集線器設備等的組件。例如,主機設備可以是智能電話設備內的單芯片(集成電路)應用處理器,其被配置為與智能電話設備的各個其它協(xié)同處理器或組件通信。在其它實施例中,主機設備可以是個人計算機、膝上型計算機、平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲設備、多功能設備、允許兩個或更多設備相互通信的智能集線器等。在某些實施例中,客戶端設備可以是能夠與主機設備通信的任何合適的設備而沒有限制。在一些實施例中,客戶端設備可以是個人計算機、膝上型計算機、平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲設備、多功能設備、無線通信設備、調制解調器、外部揚聲器、外部顯示器、輸入設備、打印設備等。例如,客戶端設備可以是對提供移動電話網(wǎng)絡通信(語音和/或數(shù)據(jù))、WiFi通信(例如,IEEE 802. 11族標準)和/或近場技術通信(例如藍牙)的硬件進行管理的單芯片(集成電路)協(xié)同處理器。在其它實施例中,客戶端設備可以是平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲設備、多功能設備、無線通信設備、調制解調器、外部揚聲器、外部顯示器、輸入設備、打印設備等。在某些實施例中,主機設備可以經由通信鏈路來與客戶端設備通信。在一些實施例中,主機設備可以經由包括多于ー個通信鏈路的路徑來與客戶端設備通信。例如,主機設備可以經由第一通信鏈路連接到集線器設備(例如,允許從主機設備的單個連接連接到多個客戶端設備的設備)。集線器設備隨后可以經由第二通信鏈路連接到客戶端設備。在操作期間,主機設備和客戶端設備之間的通信可以經過第一通信鏈路、集線器設備和第二通信鏈路。以下描述主要是指使用USB協(xié)議的通信。然而,本領域技術人員將明白在該說明書中所公開的掛起技術同樣適用于其它類型的通信協(xié)議。以下描述也主要指USB和USB高速片間(HSIC)連接上的通信。然而,本領域技術人員將明白在該說明書中公開的掛起技術同樣適用于其它類型的連接,例如有線和無線連接。
圖I圖示出根據(jù)本發(fā)明實施例的包括連接到客戶端設備的主機設備的系統(tǒng)100。圖I中示出的系統(tǒng)包括主機設備110、客戶端設備130、通信鏈路150、存儲設備112、客戶端特定的硬件140和存儲器138。在一些實施例中,主機設備110、客戶端設備130、存儲設備112、客戶端特定的硬件140和存儲器138將被整體地或部分地封閉在外殼180內。外殼180可以是由任何適合的材料制成。例如,外殼180可以由塑料、金屬、玻璃、陶瓷、木材等制成。在某些實施例中,主機設備110和客戶端設備130可以被實現(xiàn)在外殼180內的同一印刷電路板(母板)上。例如,主機設備110和客戶端設備130可以各自是嵌入到多功能設備的母板中的芯片。連接主機設備110和客戶端設備130的通信鏈路150可 以是例如印刷電路板(PCB)上的一條或多條跡線。在一些實施例中,主機設備110可以包括處理器116、客戶端I/O接ロ 118和主機控制器120。在一些實施例中,主機設備110可以被實現(xiàn)為ー個或多個集成電路(包括例如傳統(tǒng)的微處理器或微控制器)。例如,主機設備110可以是集成了處理器116、客戶端I/O接ロ 118和主機控制器120的單芯片應用處理器。主機設備110還可以以任何合適的方式連接到存儲設備112。處理器116可以被實現(xiàn)為ー個或多個集成電路,可以控制主機設備110的操作。例如,響應于經由用戶界面(未示出)提供的用戶輸入信號,處理器116可以執(zhí)行各種任務,諸如,選擇并播放可被存儲在存儲設備112中的媒體資產,與客戶端設備相接ロ來訪問各種客戶端設備功能(例如訪問移動電話網(wǎng)絡、因特網(wǎng)、局域網(wǎng)、外部揚聲器、外部顯示器等),執(zhí)行駐留在存儲設備112上的各種軟件程序114 (例如,操作系統(tǒng)和應用程序),等等。在一些實施例中,可以基于諸如USB協(xié)議之類的通信協(xié)議來輔助通信??蛻舳薎/O接ロ 118可以包括被配置來在主機設備110和客戶端設備130之間運載各種信號的許多信號路徑。在一些實施例中,客戶端I/o接ロ 118可以包括足以基于通信協(xié)議來輔助通信的許多信號路徑。例如,客戶端I/O接ロ 118可以包括適用于適用USB協(xié)議的通信的許多信號路徑。在一些實施例中,客戶端I/O接ロ 118可以是HSIC接ロ。HSIC接ロ是允許短距離上的使用USB協(xié)議的通信的標準接ロ類型(例如,最多達大約10cm,這是手持便攜式計算設備的組件之間典型的距離尺度)。由于HSIC接ロ被優(yōu)化以用于短距離上的通信,因此HSIC接ロ相比于更為傳統(tǒng)的USB接ロ具有降低的功率要求、成本、復雜度和制造風險。HSIC例如被用于使能同一印刷電路板上的芯片之間的通信。在某些實施例中,主機設備110可以包括主機控制器120,主機控制器120可以基于任何合適的傳送數(shù)據(jù)的方式來輔助與客戶端設備130的通信。例如,主機控制器120可以經由客戶端I/O接ロ 118來管理與客戶端設備130的通信。在某些實施例中,主機控制器120可以基于中斷型數(shù)據(jù)傳送來與客戶端設備130通信。例如,主機控制器120可以被配置為周期性地輪詢客戶端設備130。主機控制器120還可以被配置為從客戶端設備130接收掛起信息。掛起信息可以包括掛起請求、掛起通知、否定確認消息(NAK)等。在ー些實施例中,主機控制器120可以在無需處理器116的幫助(例如,不使用處理器116的處理周期)的情況下發(fā)送輪詢請求給客戶端設備130。在一些實施例中,輪詢請求的發(fā)送可以由主機控制器120在硬件層執(zhí)行。例如,輪詢請求可以由主機控制器120在未經由處理器116運行的操作系統(tǒng)或應用程序(即軟件層)處理的情況下發(fā)送。在一些實施例中,主機控制器120可以在硬件層判斷從客戶端設備130接收的掛起信息是否請求通信鏈路150的掛起。在某些實施例中,如果主機控制器120接收到掛起未被請求的指示(例如通過接收NAK消息),則主機控制器120可以繼續(xù)周期性地輪詢客戶端設備130。在一些實施例中,如果主機控制器120接收到掛起被請求的指示,則主機控制器120可以通知由處理器116運行的操作系統(tǒng)或應用程序。存儲設備112例如可以使用盤、閃存或任何其它的非易失性存儲介質來實現(xiàn)。存儲設備112可以存儲可由處理器116運行的軟件程序114,包括可以用于管理與各種客戶端設備(例如如下所述)以及/或軟件程序的通信的操作系統(tǒng)和有關的程序代碼(未明確示出)。存儲設備112也可以存儲任何其它類型的信息,諸如各種媒體資產、有關用戶的聯(lián)系方式(姓名、地址、電話號碼等)的信息、計劃的約會和事件、備忘和/或其它信息。軟件程序114(在此也稱為軟件)可以包括由處理器116運行的任何程序。在一些實施例中,某些軟件程序可以由其制造商安裝在主機設備110中,而其它的軟件程序可以由用戶安裝。軟件程序114的示例可以包括操作系統(tǒng)、生產カ應用程序、視頻游戲應用程 序、個人信息管理應用程序、用于播放媒體資產和/或導航媒體資產數(shù)據(jù)庫的應用程序、用于控制電話接ロ來撥出和/或接收呼叫的應用程序,等等。某些軟件程序114可以提供與客戶端設備的通信和/或對客戶端設備的控制,并且某些軟件程序114可以對來自客戶端設備130的控制信號或其它輸入進行響應。在一些實施例中,客戶端設備130可以包括I/O接ロ 132和控制器134。在ー些實施例中,客戶端設備130可以被實現(xiàn)為ー個或多個集成電路。例如,客戶端設備130可以是集成了 I/O接ロ 132和控制器134的單芯片DSP協(xié)同處理器。在一些實施例中,客戶端設備130可以連接到存儲器138和客戶端特定的硬件140。I/O接ロ 132可以包括被配置為在客戶端設備130和主機設備110之間運載各種信號的許多信號路徑。在一些實施例中,I/o接ロ 132可以包括足以基于通信協(xié)議來輔助通信的許多信號路徑。例如,I/O接ロ 132可以包括適用于適用USB協(xié)議的通信的許多信號路徑。在一些實施例中,I/O接ロ 132可以是HSIC接ロ??刂破?34可以運行程序代碼來管理客戶端特定的硬件140的各種功能,諸如管理移動電話通信(語音和/或數(shù)據(jù))、WiFi通信、近場(例如藍牙)通信、數(shù)字音頻解碼、模擬或數(shù)字音頻和/或視頻處理、用戶輸入處理、控制客戶端特定的硬件140的功能等??刂破?34還可以經由I/O接ロ 132來管理與主機設備110的通信。例如,來自客戶端特定的硬件140的電話語音數(shù)據(jù)可以由控制器134接收并隨后被中繼到主機設備110。在ー些實施例中,控制器134可以判斷客戶端設備130和主機設備110之間的通信鏈路是否將被掛起。例如,客戶端設備130可以管理客戶端特定的硬件140的操作??蛻舳颂囟ǖ挠布?40可以被配置為例如經由客戶端設備130向主機設備110提供移動電話網(wǎng)絡通信功能。在操作期間,控制器134可以判定不再需要與移動電話網(wǎng)絡的通信(例如不期望來自該網(wǎng)絡的更多通信),并且相應地,客戶端設備130和主機設備110之間的通信鏈路可以被掛起。在一些實施例中,控制器134可以發(fā)送掛起請求給主機設備110或引起該發(fā)送。存儲器138可以使用能夠存儲程序代碼或數(shù)據(jù)的任意類型的存儲器、盤或其它存儲介質來實現(xiàn)。例如,存儲器138可以存儲能夠提供供控制器134用來與客戶端特定的硬件140交互的客戶端設備特定的軟件136。存儲器138還可以存儲可以提供給主機設備110的客戶端設備配置數(shù)據(jù)(例如USB協(xié)議描述符)。在一些實施例中,客戶端設備130可以從主機設備110接收信息(例如,用戶輸入、元數(shù)據(jù)和/或應用數(shù)據(jù)),并且這樣的信息可以存儲在存儲器138中??蛻舳颂囟ǖ挠布?40可以表示使能任何期望功能所需要的任何硬件。在一些實施例中,客戶端特定的硬件140可以包括網(wǎng)絡和/或通信接ロ。網(wǎng)絡和/或通信接ロ可以為主機設備110提供語音和/或數(shù)據(jù)通信能力。在一些實施例中,網(wǎng)絡和/或通信接ロ可以包括收發(fā)器(例如使用諸如GSM或CDMA之類的移動電話技術、諸如3G或EDEG之類的高級數(shù)據(jù)網(wǎng)絡技術、WiFi (IEEE 802. 11族標準)、藍牙或其它移動通信技術,或它們的任意組合)、GPS接收器組件、和/或用于訪問無線語音和/或數(shù)據(jù)網(wǎng)絡的其它組件。在一些實施例中,除了無線接ロ以外或替代無線接ロ,網(wǎng)絡和/或通信接ロ還可以提供有線網(wǎng)絡連通性。網(wǎng)絡和/或通信接ロ可以使用任何合適的硬件組合(例如,天線、調制器/解調器、編碼器/解碼器和其它模擬和/或數(shù)字信號處理電路)來實現(xiàn)。
在其它實施例中,客戶端特定的硬件140可以包括RF接收器(例如用于FM、AM、衛(wèi)星無線電和/或其它頻帶)和/或RF發(fā)射器(例如用于個人用途的短距離發(fā)射器)。在其它實施例中,客戶端特定的硬件140可以包括被供電的揚聲器、圖像顯示器(例如LCD)、輸入設備、打印設備等。在一些實施例中,客戶端特定的硬件140可以包括用戶接ロ的組件。因此,在主機設備Iio上運行的應用可以從客戶端特定的硬件140接收用戶輸入,將輸出經由客戶端特定的硬件140提供給用戶,以及/或者控制客戶端特定的硬件能夠執(zhí)行的任何操作、與操作交互或對操作響應。因此,客戶端特定的硬件140可以包括可對其期望與計算和/或通信設備的互操作性的任何硬件組件??蛻舳薎/O接ロ 118和132可以允許主機設備110經由通信鏈路150連接到客戶端設備130。通信鏈路150可以使得數(shù)據(jù)能夠使用任何適合的通信協(xié)議(例如USB協(xié)議)在主機設備110和客戶端設備130之間被傳送。在某些實施例中,通信鏈路可以是任何合適的連接類型。例如,通信鏈路150可以按照USB或USB HSIC標準來實現(xiàn)。通信鏈路150還可以以任何合適的方式來實現(xiàn)。例如,通信鏈路150可以被實現(xiàn)為線纜、互連導線、pcb跡線、無線介質上的連接等等。在一些實施例中,通信鏈路150可被置于掛起或低功率模式。通信鏈路150可以使得通信鏈路相比于當通信鏈路活動(被使能以用于通信)時使用更少的功率。例如,當通信鏈路150被掛起時,其可以從主機設備110吸取最少的功率或不吸取功率。在一些實施例中,客戶端設備130可以經由通信鏈路150從主機設備110吸取功率。這樣,當通信鏈路150被掛起時,客戶端設備130同樣可以被掛起。在其它實施例中,客戶端設備130可以從主機設備110之外的其它源吸取功率。結果,當通信鏈路150被掛起時,客戶端設備130可以保持是活動的。應當注意,在這樣的實施例中,客戶端設備130本身也可以被獨立掛起。在某些實施例中,通信鏈路150可以或者通過主機設備110或者通過客戶端設備130被從掛起模式切換到活動模式。在激活或“喚醒”通信鏈路150時,主機設備110和客戶端設備130之間的通信可以繼續(xù)。在一些實施例中,主機設備110可以在激活(即喚醒)了通信鏈路150時發(fā)起與客戶端設備130的后續(xù)配置或“重新枚挙”(re-enumeration)處理。在某些實施例中,可以使用用于USB枚舉處理的標準實現(xiàn),例如,與2000年4月27日出版的“通用串行總線規(guī)范”版本2. O相兼容的實現(xiàn)方式。在其它實施例中,主機設備110可以基于先前緩存或存儲的枚舉信息來執(zhí)行“重新枚挙”處理以便避免執(zhí)行標準枚舉處理???br>
以使用的快速枚舉處理的示例被記載在與之同日遞交的美國專利申請No._
(代理卷號20750P-019100US)中,該申請的公開被通過引用全部結合于此。
主機設備與客戶端設備之間的連接可以是直接的或間接的。例如,圖2圖示出包括主機設備的系統(tǒng)200,主機設備連接到集線器設備,集線器設備又連接到客戶端設備。盡管圖2的系統(tǒng)僅示出一個客戶端設備、ー個通信鏈路、一個存儲設備、一個客戶端特定的硬件、一個集線器設備以及一個存儲器,但是可以包括任何適合數(shù)目的這樣的實體。具體而言,主機設備210可以類似于主機設備110。存儲設備212可以類似于存儲設備112。軟件214可以類似于軟件114。處理器216可以類似于處理器116。主機控制器220可以類似于主機控制器120??蛻舳薎/O接ロ 218可以類似于客戶端I/O接ロ 118??蛻舳嗽O備230可以類似于客戶端設備130。I/O接ロ 232可以類似于I/O接ロ 132??刂破?34可以類似于控制器134??蛻舳颂囟ǖ挠布?40可以類似于客戶端特定的硬件140。存儲器238可以類似于存儲器138??蛻舳颂囟ǖ能浖?36可以類似于客戶端特定的軟件136。外殼280可以類似于外殼180。圖2還示出主機設備210可以經由第一通信鏈路270連接到集線器設備260,并且客戶端設備230可以經由第二通信鏈路250連接到集線器設備260。在一些實施例中,集線器設備260可以是能夠將多個客戶端設備(未示出)連接到從主機設備210開始的單個連接的任何合適的設備。主機設備210和客戶端設備230之間的通信可以經過第一通信鏈路270、集線器設備260和第二通信鏈路250。在某些實施例中,客戶端設備230可以向主機設備210發(fā)送請求掛起通信鏈路250的請求。在接收到該掛起請求之后,主機設備210可以或者掛起第一通信鏈路270 (例如停止與經由集線器設備260連接的所有客戶端設備的通信的全局掛起)或者掛起第二通信鏈路250 (例如,到連接到集線器設備260的特定客戶端設備的鏈路的選擇性掛起)。在某些實施例中,主機設備可以掛起第一和第二通信鏈路ニ者。在一些實施例中,主機可以連接到多個客戶端設備。例如,圖3圖示出包括連接到多個客戶端設備的主機設備的系統(tǒng)300。圖3中示出的系統(tǒng)可以類似于圖I中示出的系統(tǒng)。具體而言,主機設備302可以類似于主機設備110。外殼360可以類似于外殼180??蛻舳嗽O備304、306和308以類似于客戶端設備130。通信鏈路310、312和314可以類似于通信鏈路150。圖3還示出主機設備302可以分別經由通信鏈路310、312和314與客戶端設備304、306和308通信。每個客戶端設備可以連接到不同的客戶端特定的硬件和/存儲器(未示出)。在一些實施例中,客戶端設備可以管理由它們相關聯(lián)的客戶端特定的硬件提供的各種功能(例如WiFi通信、移動電話網(wǎng)絡通信、藍牙等)。因此,例如,在便攜式計算設備中,單個主機設備302可以與客戶端設備304通信來提供移動電話功能,與另ー客戶端設備306通信來提供GPS功能,被與客戶端設備308通信來提供用戶界面,等等。任意數(shù)目的客戶端設備可以直接地或間接地連接到主機設備。在某些實施例中,客戶端設備304、306和308中的每個可以被配置為向主機設備302發(fā)送掛起請求。在一些實施例中,僅客戶端設備的子集可以被配置為發(fā)送掛起請求。圖4圖示出根據(jù)本發(fā)明的實施例的包括連接到客戶端設備的主機設備的系統(tǒng)400。圖4中示出的系統(tǒng)可以類似于圖I中示出的系統(tǒng)。然而,在一些實施例中,主機設備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或任何其它通信協(xié)議來輔助通信的任意合適的接ロ。例如,客戶端I/O接ロ 418可以包括耦合到USB線纜的連接器??蛻舳嗽O備430可以類似于控制器134??刂破?34可以類似于控制器134。I/O接ロ 434可以是用于使用USB或任何其它通信協(xié)議來輔助通信的任何合適的接ロ。客戶端特定的硬件440可以類似于客戶 端特定的硬件140。存儲器438可以類似于存儲器138??蛻舳颂囟ǖ能浖?36可以類似于客戶端特定的軟件136。通信鏈路450可以類似于通信鏈路150。圖4還示出主機設備410可以包括存儲設備412并且客戶端設備430可以包括客戶端特定的硬件440和存儲器436。在一些實施例中,主機設備410可以是個人計算機、膝上型計算機、平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲設備、多功能設備、允許兩個或更多設備相互通信的智能集線器等。在某些實施例中,客戶端設備430可以是能夠與主機設備通信的任何合適的設備而沒有限制。在一些實施例中,客戶端設備可以是平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲控制器或輸入設備、多功能設備、無線通信設備、調制解調器、外部揚聲器、外部顯示器、相機、打印設備等。在一些實施例中,通信鏈路450可以被實現(xiàn)為USB線纜、串行線纜等,允許主機設備和客戶端設備被用戶連接或斷開連接。在某些實施例中,客戶端設備430可以向主機設備410發(fā)送請求掛起通信鏈路450的請求。圖5圖示出根據(jù)本發(fā)明實施例的包括連接到集線器設備的主機設備的系統(tǒng)500,其中集線器設備連接到客戶端設備。圖5中示出的系統(tǒng)可以類似于圖2中示出的系統(tǒng)。然而,在一些實施例中,主機設備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??蛻舳薎/O接ロ 518可以是用于使用USB或任何其它通信協(xié)議來輔助通信的任何合適的接ロ。例如,客戶端I/O接ロ 518可以包括可被耦合到USB線纜的連接器。I/O接ロ 532可以類似于I/o接ロ 232。I/O接ロ 532可以是用于使用USB或任何其它通信協(xié)議來輔助通信的任何合適的接ロ。控制器534可以類似于控制器234??蛻舳颂囟ǖ挠布?40可以類似于客戶端特定的硬件240。存儲器538可以類似于存儲器238??蛻舳颂囟ǖ能浖?36可以類似于客戶端特定的軟件236。通信鏈路570可以類似于通信鏈路270。集線器設備560可以類似于集線器設備260。通信鏈路550可以類似于通信鏈路250。在一些實施例中,主機設備510可以是個人計算機、膝上型計算機、平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲設備、多功能設備、允許兩個或更多設備相互通信的智能集線器等等。在某些實施例中,客戶端設備530可以是能夠與主機設備通信的任何合適的設備而沒有限制。在一些實施例中,客戶端設備可以是平板設備、多媒體設備、蜂窩電話、智能電話、全球定位系統(tǒng)(GPS)設備、游戲控制器或輸入設備、多功能設備、無線通信設備、調制解調器、外部揚聲器、外部顯示器、相機、打印設備等。在一些實施例中,通信鏈路550和570可以各自被實現(xiàn)為USB線纜、串行線纜等, 允許主機、集線器和客戶端設備被用戶連接或斷開連接。在某些實施例中,客戶端設備530可以向主機設備510發(fā)送請求掛起通信鏈路550的請求。將明白,圖I至圖5中示出的系統(tǒng)是說明性的并且變形例和修改例是可能的。例如,盡管在圖I中僅示出ー個通信鏈路150,但是在主機設備110和客戶端設備130之間可以存在任何數(shù)目的鏈路。說明性地,主機和客戶端設備可以經由第一通信鏈路直接連接,第一通信鏈路可以應對掛起信息的通信。主機和客戶端設備也可以經由第二通信鏈路直接地連接,第二通信鏈路可以應對所有其它通信。作為另ー示例,主機設備可以連接到多個客戶端設備和/或多個集線器設備。主機設備也可以包括到多個客戶端設備的多個直接的和間接的(經由集線器設備)連接。如以上所論述的,主機設備和客戶端設備之間的通信可以通過通信協(xié)議來輔助。在某些實施例中,通信協(xié)議可以定義針對主機設備和客戶端設備之間的通信的接受格式、結構和數(shù)據(jù)要求。例如,通信協(xié)議可以指定每個消息將在帶有報頭和可選有效載荷的分組中發(fā)送。報頭可以提供基本信息(例如開始指示符、分組長度以及標識將被接收方處理的命令的命令代碼),而有效載荷提供與命令相關聯(lián)的任何數(shù)據(jù);相關聯(lián)的數(shù)據(jù)的數(shù)量可以因命令不同而不同,并且有些命令可以供用于可變長度的有效載荷。在某些實施例中,通信協(xié)議可以定義具體的命令來指示將由消息接收方采取的動作、任務的完成、狀態(tài)的改變、狀況信息、枚舉信息、誤差的出現(xiàn)和/或相關聯(lián)數(shù)據(jù)的特性。在某些實施例中,通信協(xié)議可以是非対稱的或是以主機為中心的(例如,主機設備控制通信和事務)。在一些實施例中,通信協(xié)議可以允許通信鏈路被掛起。在某些實施例中,掛起通信鏈路使得通信鏈路被置于低功率模式(其中通信鏈路比當其是活動的時吸取更少的功率)。在某些實施例中,主機設備和客戶端設備之間的通信可以通過USB協(xié)議來輔助。USB協(xié)議是非対稱的或是以主機為中心的通信協(xié)議。這樣,主機設備發(fā)起所有事務。在典型的USB協(xié)議事務中,第一分組(稱為令牌)可以由主機設備發(fā)送給客戶端設備。令牌可以指示將要發(fā)生的事務的類型。例如,USB協(xié)議定義IN令牌,其可以指示客戶端設備將要向主機設備發(fā)送數(shù)據(jù),OUT令牌,其可以指示主機設備將向客戶端設備發(fā)送數(shù)據(jù)。在令牌被發(fā)送之后,主機設備或客戶端設備可以發(fā)送可選的數(shù)據(jù)分組。事務中(或者由主機設備或者由客戶端設備)發(fā)送的最后分組可以是狀況分組。狀況分組可以或者是確認消息(ACK)或否定確定消息(NAK)。USB協(xié)議制定客戶端設備可以具有ー個或多個配置。每個配置定義由客戶端設備支持的能力的類型。例如,多功能客戶端設備可以具有用于音頻功能的配置和用于相機功能的配置。每個配置可以與ー個或多個接ロ相關聯(lián)。USB協(xié)議定義可被客戶端設備和主機設備用來相互傳送某些類型的數(shù)據(jù)的若干接ロ。例如,音頻接ロ可以被定義用于客戶端設備和主機設備之間的聲音數(shù)據(jù)的傳送。在某些實施例中,客戶端設備可以根據(jù)客戶端設備的功能來支持ー個或多個接ロ。USB標準中定義的一些接ロ包括音頻、人機界面設備(HID)、物理接ロ設備(PID)、圖像、打印機、大容量存儲裝置、通信和⑶C控制、智能卡、內容安全 性、視頻、個人保健、無線控制器、應用特定的和銷售商特定的。每個接ロ可以與客戶端設備內的一個或多個端點相關聯(lián)。這些端點可以被配置為在客戶端設備處應對數(shù)據(jù)通信以用于其相關聯(lián)的接ロ。具體地,主機設備可以從端點發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。作為示例,端點可以與音頻接ロ相關聯(lián)。主機設備可以通過向與音頻接ロ相關聯(lián)的端點發(fā)送音頻信息來向客戶端設備發(fā)送音頻信息。端點可以以任何合適的方式實現(xiàn)。例如,端點可以是寄存器、存儲器緩沖器等。圖6圖示出示出客戶端設備、其配置、接口和端點之間的關系的層次圖。具體地,圖6示出客戶端設備可以與諸如配置604和606之類的ー個或多個配置相關聯(lián)。每個端點還可以與一個或多個接ロ相關聯(lián)。例如,配置604可以與接ロ 608和610相關聯(lián)。每個接ロ可以與ー個或多個端點相關聯(lián)。例如,接ロ 610可以與端點612相關聯(lián)。主機設備與客戶端設備的端點之間的邏輯通信信道在此被稱為通信“管道”。數(shù)據(jù)在通信管道上的傳送可以是基于中斷、容量(bulk)、等步(isochronous)或控制型數(shù)據(jù)傳送的。對于中斷型數(shù)據(jù)傳送,主機設備的主機控制器可以被配置為周期性地輪詢或發(fā)送輪詢請求給客戶端設備的“中斷”端點。輪詢請求通常作為IN令牌被發(fā)送。響應于輪詢請求,客戶端設備可以被配置為發(fā)送中斷信息。例如,在操作期間,客戶端設備可以將中斷請求置于其中斷端點上或將其入隊。在接收到輪詢請求時,客戶端設備可以發(fā)送中斷請求給主機設備。作為另ー示例,客戶端可能之前沒有將中斷請求在中斷端點上入隊。在此情形中,在接收到輪詢請求時,客戶端設備可以發(fā)送NAK消息給主機設備來指示沒有中斷已經被入隊。主機設備的主機控制器還可以被配置為接收對輪詢請求的響應(例如,中斷請求,NAK消息)。由主機設備周期性地發(fā)送輪詢請求以及接收響應可以在硬件層進行。更具體而言,輪詢請求的發(fā)送和響應的接收可以在主機設備的ー個或多個集成電路中被實現(xiàn)。例如,每個輪詢請求可以由主機控制器在未經軟件層處(即,由主機設備的處理器運行的程序代碼,例如操作系統(tǒng)或應用程序)的處理的情況下被發(fā)送。主機控制器還接收對輪詢請求的響應并判斷軟件層(例如,由處理器運行的操作系統(tǒng)或應用程序)是否應被通知。具體地,如果中斷請求被接收到,則通知被發(fā)送給軟件層以進行進ー步的處理。如果NAK被接收到,則沒有通知被發(fā)送。應當注意,主機控制器的用于執(zhí)行中斷型數(shù)據(jù)傳送的初始配置可以在軟件層被執(zhí)行。通過允許主機控制器發(fā)送輪詢請求,接收輪詢響應并判斷由處理器運行的操作系統(tǒng)或應用是否需要被通知該響應,可以減少處理器的處理,這可以節(jié)省功率。如所論述的,USB協(xié)議是非対稱的或以主機為中心的通信協(xié)議的示例,其中,主機設備和客戶端設備之間的通信鏈路的掛起僅由主機設備執(zhí)行。USB協(xié)議不允許客戶端設備掛起通信鏈路或向其主機設備發(fā)送請求掛起通信鏈路的請求。本發(fā)明的某些實施例提供“掛起接ロ ”,主機設備可以經由“掛起接ロ ”來從客戶端設備接收掛起信息。在一些實施例中,掛起接ロ可以與ー個或多個客戶端設備端點相關聯(lián)。主機設備與這ー個或多個端點之間的數(shù)據(jù)傳送可以以任何合適的方式進行。例如,數(shù)據(jù)傳送可以是基于中斷型傳送的。這樣,主機設備的主機控制器可以以定期或半定期的間隔來輪詢與掛起接ロ相關聯(lián)的ー個或多個“中斷”端點。如果掛起請求(即中斷請求)先前被放置或入隊到ー個或多個中斷端點之一上,則掛起請求隨后可以被發(fā)送給主機控制器。圖7圖示出根據(jù)本發(fā)明實施例的可以包括掛起接ロ 702的修改后的USB主機棧 700的框圖。USB棧700可以包括可以將客戶端設備連接到主機設備的USB主機控制器704。主機設備可以具有多個主機控制器并且每個主機控制器可以連接到ー個或多個客戶端設備。USB主機控制器704可以通過主機控制器驅動707、主機核心驅動708和HUB驅動710來與操作系統(tǒng)712和應用程序714通信。在一些實施例中,USB主機控制器704可以被配置為向連接的客戶端設備發(fā)送輪詢請求。USB主機控制器704還可以響應于輪詢請求來接收掛起信息(例如掛起請求、NAK消息)。請求的發(fā)送和掛起信息的接收可以由USB主機控制器704在無需與操作系統(tǒng)712或應用程序714通信或經操作系統(tǒng)712或應用程序714處理的情況下執(zhí)行。如果響應指示動作將被采取(例如通信鏈路將被掛起)。則USB主機控制器隨后向操作系統(tǒng)712或應用程序714通知該響應。可以使用USB主機棧組件的標準實現(xiàn)方式,例如,與2000年4月27日出版的“通用串行總線規(guī)范”版本2. O相兼容的實現(xiàn)方式?,F(xiàn)在將描述可以用來將掛起信息從客戶端設備傳送到主機設備并使得主機設備能夠發(fā)起通信鏈路的掛起的處理的示例。圖8和圖9示出根據(jù)本發(fā)明實施例的可以分別由客戶端設備和主機設備執(zhí)行的處理。圖8是根據(jù)本發(fā)明實施例的用干與主機設備相接ロ的處理800的流程圖。處理800可以由例如圖I的客戶端設備130執(zhí)行。處理800中各個實體之間的通信可以通過諸如USB協(xié)議之類的任何合適的通信協(xié)議來輔助。在框802處,客戶端設備130可以使能與主機設備110的操作。操作可以以任何合適的方式使能。例如,客戶端設備130可以與主機設備110交換配置信息。在一些實施例中,配置信息可以指定由客戶端設備130支持的功能。例如,配置信息可以指定客戶端設備130能夠訪問移動電話網(wǎng)絡。在一些實施例中,配置信息可以指示客戶端設備130支持鏈路掛起信息的傳送。在框804處,客戶端設備130可以判斷掛起其與主機設備110的通信鏈路(即通信鏈路150)是否適當??蛻舳嗽O備130可以以任何合適的方式并使用任何合適的標準來做出這樣的判斷。例如,客戶端設備130可以基于其已經處于空閑的時間長度、當前環(huán)境條件、過去的使用模式、預測的將來的使用模式、當前的或將來的客戶端設備狀態(tài)(例如掛起模式)等來判斷掛起是否適當。如果掛起是適當?shù)?,則在框806處,客戶端設備130可以生成指示通信鏈路150應被掛起的掛起通知或請求。在一些實施例中,通知或請求還可以包括延遲時段值。延遲時段值可以指示主機設備110在掛起通信鏈路150之前應當?shù)却某掷m(xù)時間。例如,延遲時段值可以指定主機設備110在發(fā)起通信鏈路150的掛起之前應當?shù)却齀毫秒。在框808處,客戶端設備130可以向主機設備110發(fā)送掛起通知或請求。在一些實施例中,掛起請求可以響應于先前從主機設備110接收的輪詢請求而被發(fā)送。圖9是根據(jù)本發(fā)明實施例的用干與客戶端設備相接ロ的處理900的流程圖。處理900可以由例如圖I的主機設備110執(zhí)行。處理900中的各個實體之間的通信可以通過諸如USB協(xié)議之類的任何合適的通信協(xié)議來輔助。在框902處,主機設備110可以使能與客戶端設備130的操作。操作可以以任何 合適的方式使能。例如,主機設備110可以與客戶端設備130交換配置信息。配置信息可以指示客戶端設備能夠例如經由掛起接ロ來提供掛起請求,等等。基于配置信息,客戶端設備和主機設備可以被配置為相互通信。例如,主機設備110可以下載和配置用于客戶端設備130的軟件驅動。一旦操作被使能,則主機設備110可以使用客戶端設備130的能力。例如,主機設備110可以使用客戶端設備130用來訪問WiFi網(wǎng)絡的能力。在框904處,主機設備110接收來自客戶端設備130的掛起請求。在框906處,主機設備Iio可以掛起通信鏈路150。在一些實施例中,掛起通信鏈路150可以包括將通信鏈路置于低功率模式。在某些實施例中,掛起請求還可以包括延遲時段值。基于延遲時段值,主機設備110可以在掛起通信鏈路150之前等待ー時間段。在通信鏈路被掛起之后,其可以以任何合適的方式被重新激活或“喚醒”。例如,通信鏈路可以由主機設備和/或客戶端設備根據(jù)2000年4月27日出版的“通用串行總線規(guī)范”版本2. O來“喚醒”。通過檢查圖10和圖11中示出的更詳細的處理可以進一歩理解本發(fā)明。圖10是根據(jù)本發(fā)明實施例的用于與主機設備相接ロ的處理1000的流程圖。處理1000可以由例如圖I的客戶端設備130執(zhí)行。處理1000中的各個實體之間的通信可以通過USB協(xié)議來輔助。將明白,盡管以下處理主要鑒于基于USB協(xié)議進行通信的設備來描述,但是該上下文僅僅是說明性的,并且本發(fā)明的實施例可以適用于其它通信協(xié)議。在一些實施例中,配置信息可以在客戶端設備130和主機設備110之間被交換。配置信息的交換可以根據(jù)諸如USB協(xié)議之類的通信協(xié)議來實現(xiàn)。參考圖10,在框1002,客戶端設備130可以接收來自主機設備110的針對配置信息的請求。在框1004處,客戶端設備130之后可以向主機設備110提供配置信息。在某些實施例中,配置信息可以包括枚舉信息。枚舉信息可以根據(jù)諸如USB協(xié)議之類的任何合適的通信協(xié)議來實現(xiàn)。在一些實施例中,枚舉信息(或其它配置信息)可以包括定義由客戶端設備130支持的配置、接口和端點的描述符。在某些實施例中,枚舉信息可以被定義可用來傳送掛起信息的掛起接ロ的描述符。在一些實施例中,枚舉信息還可以包括定義與掛起接ロ相關聯(lián)的一個或多個端點的端點描述符。端點描述符可以包括端點地址信息、傳送類型信息(例如中斷)和輪詢間隔信
O在發(fā)送配置信息給主機設備110之后,客戶端設備130可以接收來自主機設備110的配置值。配置值可以指示客戶端設備130和主機設備110被使能以用于操作。在操作被使能之后,客戶端設備130可以經由與客戶端設備130的枚舉信息中定義的掛起接ロ相關聯(lián)的中斷端點來與主機設備110交換掛起信息。在框1006處,客戶端設備130可以判斷掛起通信鏈路是否是適當?shù)?。對通信鏈路是否將被掛起的判斷可以以任何合適的方式進行。例如,客戶端設備130可以基于過去的使用模式、當前的環(huán)境條件、預測的將來的使用模式、通信鏈路已經處于空閑的時段(例如,沒有數(shù)據(jù)被傳送給主機設備110)、當前或將來的客戶端設備狀態(tài)(例如掛起模式)等,來判斷通信鏈路是否應當被掛起。例如,客戶端設備130可以提供對移動電話網(wǎng)絡的訪問。在操作期間,客戶端設備130可以判定其已經處于空閑(即,不向移動電話網(wǎng)絡傳送數(shù)據(jù)或從移動電話網(wǎng)絡傳送數(shù)據(jù))達超過閾值時段的時段。結果,客戶端設備130可以判定由于其當前的空閑狀態(tài),掛起通信鏈路150是適當?shù)?。在一些實施例中,掛起是否適當?shù)呐袛嗫梢砸远ㄆ诘幕虬攵ㄆ诘拈g隔自動進行。例如,客戶端設備130可以每I毫秒地自動執(zhí)行掛起判斷。在一些實施例中,掛起判斷可以被手動發(fā)起或被事件的發(fā)生而觸發(fā)。例如,用戶可以手動按壓按鈕來發(fā)起掛起判斷。在一些實施例中,如果客戶端設備130判定掛起是適當?shù)?,則客戶端設備13可以將中斷(例如掛起請求)入隊。例如,客戶端設備130可以生成掛起請求并將該請求置于與掛起接ロ相關聯(lián)的端點處。在框1008/1012處,客戶端設備130可以接收來自主機設備110的輪詢請求。在一些實施例中,輪詢請求可以由客戶端設備130在基于預先定義的輪詢間隔的時刻接收。如所論述的,輪詢間隔可以用在配置期間提供的ー個或多個端點描述符來定義。在接收到輪詢請求時,客戶端設備130可以向主機設備110發(fā)送掛起信息。掛起信息可以是基于由客戶端設備130在框1006處執(zhí)行的掛起判斷的。例如,如果客戶端設備130之前在框1006處判定通信鏈路150應當被掛起(即中斷被入隊),則客戶端設備130可以發(fā)送指示主機設備110掛起通信鏈路150的掛起請求(框1010)。在一些實施例中,掛起請求可能之前已經被客戶端設備130入隊。在一些實施例中,掛起通知或請求可以包括延遲時段值。延遲時段值可以指示主機設備110在掛起通信鏈路150之前將等待的時間量。在一些實施例中,掛起請求可以在按照USB協(xié)議格式化的數(shù)據(jù)分組中被發(fā)送。如果客戶端設備130之前在框1006處判定通信鏈路150不應當被掛起(即,中斷沒有被入隊),則客戶端設備130可以向主機設備110發(fā)送信息,指示通信鏈路不應當被掛起(框1014)。在一些實施例中,掛起信息可以包括“NAK”消息。圖11是用于與客戶端設備相接ロ的處理1100的流程圖。處理1100可以由例如圖I的主機設備Iio執(zhí)行。處理1100中的各個實體之間的通信可以通過USB協(xié)議來輔助。將明白,盡管以下處理主要是鑒于基于USB協(xié)議進行通信的設備來描述的,但是該上下文僅僅是說明性的,并且本發(fā)明的實施例可以適用于其它通信協(xié)議。在框1102處,主機設備110可以發(fā)起與客戶端設備130的配置處理(例如,配置信息的交換)。在某些實施例中,配置處理可以根據(jù)諸如USB協(xié)議之類的通信協(xié)議來實現(xiàn)。在某些實施例中,觸發(fā)事件可以促使主機設備110發(fā)起配置處理。例如,將客戶端設備130物理地耦合到主機設備110可以觸發(fā)主機設備110發(fā)起配置處理。作為另ー示例,主機設備110和客戶端設備130可能之前在制造處理期間已經被耦合(例如被整合到智能電話中的主機和客戶端設備組件)。這樣,設備上的供電可以觸發(fā)主機設備110發(fā)起配置處理。在一些實施例中,配置處理可以包括主機設備Iio向客戶端設備130發(fā)送針對配置信息的請求。在框1104處,主機設備110可以接收來自客戶端設備130的配置信息。在某些實施例中,配置信息可以包括枚舉信息。例如,根據(jù)USB協(xié)議構成和格式化的枚舉信息可以被提供給主機設備110。枚舉信息(或其它配置信息)可以包括定義由客戶端設備130支持的接口和端點的描述符。在某些實施例中,枚舉信息可以包括定義掛起接ロ的描述符。在一些實施例中,枚舉信息還可以包括與掛起接ロ描述符相關聯(lián)的端點描述符。端點描述符可以包括端點地址信息、傳送類型信息(例如中斷)和輪詢間隔信息。在框1106處,主機設備110可以被設置為基于配置信息來與客戶端設備130進行 操作。例如,軟件驅動可以被裝載到主機設備Iio上來訪問客戶端設備130的功能,用于各種接ロ的通信管道(基于所識別的端點、傳送類型和輪詢間隔)可以被配置,特有的7比特地址可以被指派給客戶端設備130,等等。在某些實施例中,掛起接ロ可以被配置用于傳送掛起信息。在一些實施例中,掛起接ロ可以基于由客戶端設備130提供的掛起接ロ與端點描述符來配置。在一些實施例中,掛起接口上的通信可以基于中斷型數(shù)據(jù)傳送。例如,客戶端設備130可以將將被發(fā)送給主機設備110的掛起請求置于其端點之一上。在接收到針對端點的輪詢請求時,客戶端設備130可以將掛起請求發(fā)送給主機設備110。在框1108處,主機設備110可以經由主機控制器120來向客戶端設備130發(fā)送請求掛起信息的輪詢請求。在某些實施例中,主機設備110可以向與掛起接ロ相關聯(lián)的客戶端設備130的端點發(fā)送輪詢請求。輪詢請求可以基于預先定義的間隔被發(fā)送。例如,主機設備110可以基于在框1104處從客戶端設備130發(fā)送的端點描述符以500微秒的間隔發(fā)送輪詢請求。在一些實施例中,主機控制器120可以在硬件層發(fā)送輪詢請求。在框1110處,主機設備110的主機控制器120可以接收來自客戶端設備130的掛起信息。在框1112處,主機控制器120可以判斷從客戶端設備130接收的掛起信息是否指示通信鏈路150應當被掛起。在一些實施例中,主機控制器120可以在硬件層作出這樣的判斷。如果掛起被指示,則主機控制器120可以(通過通知由處理器116運行的操作系統(tǒng)或應用程序)向處理器116通知客戶端設備130已經請求掛起通信鏈路150。在ー些實施例中,主機控制器120或處理器116還可以判斷掛起請求是否包括延遲時段值(框1114)。如果掛起請求包括延遲時段值,則主機設備110可以在發(fā)起通信鏈路150的掛起之前等待延遲時段值所指示的一時間段(框1116)。在框1118處,處理器116可以掛起通信鏈路150。通信鏈路的掛起可以以任何合適的方式進行。例如,掛起可以按照2000年4月27日出版的“通用串行總線規(guī)范”版本2. O來執(zhí)行。在通信鏈路被掛起之后,其可以以任何合適的方式被重新激活或“喚醒”。例如,通信鏈路可以由主機設備和/或客戶端設備根據(jù)2000年4月27日出版的“通用串行總線規(guī)范”版本2. O來“喚醒”。如果通信鏈路的掛起未被指示,則主機控制器120可以繼續(xù)周期性地向客戶端設備130發(fā)送輪詢請求。在某些實施例中,如果掛起信息指示掛起將不發(fā)生,則主機控制器120不向處理器116通知接收到了這樣的指示。通過進ー步說明主機設備和客戶端設備之間的通信,圖12示出圖示出根據(jù)本發(fā)明實施例的在圖I中示出的主機設備和客戶端設備之間執(zhí)行的示例通信序列的梯形圖。將明白,盡管以下示例主要鑒于基于USB協(xié)議進行通信的設備來描述,但是該上下文僅僅是說明性的,并且本發(fā)明的實施例可以廣泛地適用于其它通信協(xié)議。此外,本領域技術人員將認識到圖12中示出的通信還可以在圖2至圖5中示出的主機設備和客戶端設備之間被執(zhí) 行。在通信1202處,枚舉信息可以被提供給主機設備110。在通信1204處,主機設備110的主機控制器120可以向客戶端設備130發(fā)送第一輪詢請求。該請求可以基于由枚舉信息指定的輪詢間隔的時刻被發(fā)送。在一些實施例中,輪詢請求可以是IN令牌。在通信1206處,客戶端設備130可以響應于該請求來發(fā)送NAK。NAK可以向主機控制器120信令通知通信鏈路的掛起未被請求。在通信1208處,主機控制器120可以向客戶端設備130發(fā)送第二輪詢請求。作為響應,在通信1210處,客戶端設備130可以向主機設備110發(fā)送掛起請求。在一些實施例中,掛起請求可以是根據(jù)USB協(xié)議格式化的數(shù)據(jù)分組。在通信1212處,主機控制器120可以發(fā)送指示掛起請求被成功接收到的ACK (例如,請求/通知未被毀壞)。圖12中示出的通信序列是說明性的。當主機設備110和客戶端設備130之間的通信鏈路是活動的時,也可以發(fā)生其它通信。圖13示出根據(jù)本發(fā)明另ー實施例的可以由經由集線器設備與客戶端設備通信的主機設備執(zhí)行的處理。應當明白,由經由集線器設備與主機設備通信的客戶端設備執(zhí)行的對應處理可以類似于圖10中示出的處理。如所論述的,圖13圖示出根據(jù)本發(fā)明實施例的可由主機設備用干與客戶端設備相接ロ的處理的流程圖。處理1300可以由例如圖2的主機設備210執(zhí)行。處理1300中的各個實體之間的通信可以通過USB協(xié)議來輔助。將明白,盡管以下處理主要是鑒于基于USB協(xié)議進行通信的設備來描述的,但是該上下文僅僅是說明性的,并且本發(fā)明的實施例可以廣泛適用于其它通信協(xié)議???302-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。這樣的掛起可以稱為“全局掛起”。在通信鏈路被掛起之后,其可以以任何合適的方式被重新激活或“喚醒”。例如,通信鏈路可以由主機設備和/或客戶端設備根據(jù)2000年4月27日出版的“通用串行總線規(guī)范”版本2. O來“喚醒”。應當明白,圖8-11和13中示出的處理是說明性的并且變形例和修改例是可能的。順序描述的框可以被并行執(zhí)行,框的次序可以改變,并且框可以被修改、組合、増加或省略。此外,本領域技術人員將認識到,圖8-11和13中示出的處理可以被實現(xiàn)用于其它客戶端設備和/或主機設備,諸如圖3、4和5中示出的客戶端設備和主機設備。盡管已經針對具體實施例描述了本發(fā)明,但是變形例是可能的。例如,主機設備和客戶端設備可以是能夠經由USB協(xié)議或任何其它非對稱通信協(xié)議進行通信的便攜式計算設備(例如智能電話)的組件(例如單個PCB上的ー個或多個集成電路、不同PCB上的分立組件),其中僅ー個設備(例如主機設備)可以掛起通信鏈路。主機設備和客戶端設備可以經由任何合適的連接類型來連接,包括USB HSIC連接、傳統(tǒng)的USB連接或用于輔助使用非対稱通信協(xié)議的通信的任何其它的連接類型。主機設備還可以直接地連接到和/或(經由一個或多個集線器設備)間接地連接到一個或多個客戶端設備。作為另ー示例,掛起信息可以包括掛起持續(xù)時間,其可以指示通信鏈路應當保持掛起的時間量。
本發(fā)明的實施例可以使用專用組件和/或可編程處理器和/或其它可編程設備的任意組合來實現(xiàn)。在此描述的各種處理可以在相同處理器或不同處理器中以任何組合實現(xiàn)。相應地,當組件被描述為配置來執(zhí)行某些操作時,這樣的配置可以例如通過將電子電路設計成執(zhí)行所述操作、通過將可編程電子電路(諸如微處理器)編程為執(zhí)行所述操作或它們的任意組合來實現(xiàn)。處理可以使用各種技術來傳送,包括但不限于用于處理間通信的傳統(tǒng)技術,并且不同處理對可以使用不同技術,或者相同處理對可以在不同時刻使用不同技術。此外,盡管以上所述的實施例可以參考具體的硬件和軟件組件,但是本領域技術人員將明白,硬件和/或軟件組件的不同組合也可以被使用并且被描述為以硬件實現(xiàn)的具體操作也可以以軟件實現(xiàn),并且反之亦然。結合了本發(fā)明的各種特征的計算機程序可以被編碼在各種計算機可讀存儲介質上;適合的介質包括磁盤或磁帶、諸如致密盤(CD)或DVD(數(shù)字通用盤)之類的光學存儲介質、閃存等。被編碼有程序代碼的計算機可讀介質可以與兼容的電子設備封裝到一起,或者程序代碼可以(例如經由因特網(wǎng)下載)而與電子設備分開提供。因此,盡管已經參考具體實施例描述了本發(fā)明,但是經明白,本發(fā)明意圖涵蓋在權利要求書的范圍以內的所有修改例和等同例。
權利要求
1.ー種操作客戶端設備的方法,該方法包括由所述客戶端設備 使能經由通信鏈路與主機設備的操作,其中,操作是根據(jù)通信協(xié)議執(zhí)行的; 判斷掛起所述通信鏈路是否是適當?shù)模? 接收來自所述主機設備的輪詢請求;以及 響應于所述輪詢請求來向所述主機設備發(fā)送掛起信息,所述掛起信息至少部分地基于掛起所述通信鏈路是否是適當?shù)摹?br>
2.如權利要求I所述的方法,其中,所述通信協(xié)議是非対稱的。
3.如權利要求I所述的方法,其中,所述通信協(xié)議是通用串行總線USB協(xié)議。
4.如權利要求I所述的方法,其中,所述輪詢請求在中斷端點處被接收。
5.如權利要求I所述的方法,其中,所述通信鏈路是根據(jù)USB高速片間HSIC標準實現(xiàn)的。
6.如權利要求I所述的方法,其中,如果判定掛起所述通信鏈路是適當?shù)?,則所述掛起信息請求掛起所述通信鏈路。
7.如權利要求6所述的方法,其中,所述掛起信息還包括延遲時段值,其中所述延遲時段值指示所述主機設備在掛起所述通信鏈路之前將要等待的時間段。
8.ー種包含程序指令的計算機可讀存儲介質,所述程序指令當被客戶端設備執(zhí)行吋,使得所述客戶端設備執(zhí)行ー種方法,該方法包括 根據(jù)通信協(xié)議來向主機設備提供枚舉信息,其中,與所述主機設備的操作是基于所述枚舉信息被使能的; 判斷掛起所述主機設備和所述客戶端設備之間的通信鏈路是否是適當?shù)模? 接收來自所述主機設備的輪詢請求;以及 在掛起所述通信鏈路是適當?shù)那闆r下,向所述主機設備發(fā)送掛起請求,所述掛起請求指示所述通信鏈路應當被掛起。
9.如權利要求8所述的計算機可讀存儲介質,其中,所述枚舉信息包括掛起接ロ描述符和與所述掛起接ロ描述符相關聯(lián)的端點接ロ描述符,其中,所述端點接ロ描述符指定端點并指示與該端點的通信將是基于中斷型數(shù)據(jù)傳送的。
10.如權利要求8所述的計算機可讀存儲介質,其中,所述掛起請求指示所述主機設備將發(fā)起所述通信鏈路的掛起的時間。
11.ー種操作主機設備的方法,該方法包括由所述主機設備 使能經由通信鏈路與客戶端設備的操作,其中,通信是根據(jù)通信協(xié)議執(zhí)行的; 向所述客戶端設備發(fā)送輪詢請求; 接收來自所述客戶端設備的掛起信息; 判斷所述掛起信息是否請求掛起所述通信鏈路;以及 如果所述掛起信息請求掛起所述通信鏈路,則掛起到所述客戶端設備的所述通信鏈路。
12.如權利要求11所述的方法,其中,所述通信協(xié)議是通用串行總線USB協(xié)議。
13.如權利要求11所述的方法,其中,所述輪詢請求在硬件層被發(fā)送。
14.如權利要求11所述的方法,其中,所述輪詢請求是在沒有所述主機設備的處理器的幫助的情況下由所述主機設備的通用串行總線USB控制器發(fā)送的。
15.如權利要求11所述的方法,其中,判斷所述掛起信息是否請求掛起所述通信鏈路在硬件層被執(zhí)行。
16.如權利要求11所述的方法,其中,判斷所述掛起信息是否請求掛起所述通信鏈路是在沒有所述主機設備的處理器的幫助的情況下由所述主機設備的通用串行總線控制器執(zhí)行的。
17.如權利要求11所述的方法,其中,使能與所述客戶端設備的操作包括從所述主機設備接收掛起接ロ指示符和與所述掛起接ロ描述符相關聯(lián)的一個或多個端點接ロ描述符,其中,所述ー個或多個端點接ロ描述符指定ー個或多個端點并指示與所述ー個或多個端點的通信將是基于中斷型數(shù)據(jù)傳送的。
18.—種主機設備,包括 主機控制器; 耦合到所述主機控制器的處理器;以及 耦合到所述處理器的存儲器設備; 其中,所述主機控制器被配置為 在一時間間隔之后向客戶端設備發(fā)送針對掛起信息的請求; 從所述客戶端設備接收響應于該請求的掛起信息; 判斷所述掛起信息是否請求掛起所述主機設備和所述客戶端設備之間的通信鏈路;以及 在所述掛起信息請求掛起所述通信鏈路的情況下,向所述處理器通知所述客戶端設備已經請求掛起所述通信鏈路;并且其中,所述處理器被配置為 響應于來自所述主機控制器的通知來掛起到所述客戶端設備的所述通信鏈路。
19.如權利要求18所述的主機設備,其中,所述通信鏈路是根據(jù)USB高速片間HSIC標準實現(xiàn)的。
20.如權利要求18所述的主機設備,其中,掛起所述通信鏈路包括將所述通信鏈路置于低功率模式。
21.如權利要求18所述的主機設備,其中,所述主機控制器被配置為在基于預先定義的輪詢間隔的時刻發(fā)送所述輪詢請求。
22.如權利要求18所述的主機設備,其中,所述處理器還被配置為 在等待一時段之后掛起到所述客戶端設備的所述通信鏈路,其中所述時段由所述掛起信息中所包含的延遲時段值指示。
23.—種系統(tǒng),包括 客戶端設備,所述客戶端設備被配置為 判斷掛起通信鏈路是否是適當?shù)模? 在掛起是適當?shù)那闆r下生成掛起請求;以及 主機設備,所述主機設備被配置為 向所述客戶端設備的中斷端點發(fā)送輪詢請求; 從所述客戶端設備接收響應于所述輪詢請求的所述掛起請求;以及 響應于所述掛起請求來掛起所述通信鏈路。
24.如權利要求23所述的系統(tǒng),其中,所述通信協(xié)議是通用串行總線USB協(xié)議。
25.如權利要求23所述的系統(tǒng),其中,所述主機設備和所述客戶端設備是單個印刷電路板上的集成電路。
全文摘要
本發(fā)明公開了主機設備基于通知掛起到客戶端設備的通信鏈路。主機設備和客戶端設備之間的通信鏈路可以基于由客戶端設備提供的掛起請求或通知而被掛起。如果客戶端設備判定掛起是適當?shù)?,則掛起請求可以被客戶端設備發(fā)送給主機設備,并且可以響應于從主機設備接收到輪詢請求而被發(fā)送。在接收到掛起請求之后,主機設備可以發(fā)起掛起設備之間的通信鏈路的操作。
文檔編號H04L29/06GK102739634SQ201210063419
公開日2012年10月17日 申請日期2012年3月8日 優(yōu)先權日2011年3月9日
發(fā)明者海寧·張, 米特切爾·D·安德勒爾, 阿南德·德拉爾 申請人:蘋果公司