專利名稱:操作遠程usb主控制器的制作方法
技術領域:
本發(fā)明一般涉及裝置連接性領域。
背景技術:
常規(guī)通用串行總線(“USB”)結構基于主/從通信,其中系統(tǒng)中的主控稱為USB主控制器(“主控制器”)。常規(guī)主控制器緊密集成在“主機”平臺中(例如集成在處理器、處理器芯片組中),作為外圍控制接口(“PCI”)或其他“機內”總線等上的總線主控制器。USB主機包括應用、裝置驅動器(driver)(它管理附著的USB裝置)、USB總線驅動器(它給USB裝置驅動器提供標準的USB總線服務抽象)、主控制器驅動器和物理USB主控制器(其中有幾種類型),所有這些都管理總線的數(shù)據(jù)通信。主控制器提供狀態(tài)和控制機制以使USB主機管理USB端口用于將USB裝置和/或USB集線器連接。USB集線器是使一個或多個USB裝置(通過附加的一個或多個附加端口)通過該集線器連接回USB端口的裝置。按照通用串行總線規(guī)范2.0,一個主控制器最多可連接127個裝置。
常規(guī)主控制器提供寄存器和基于存儲器的接口,主控制器驅動器利用該接口在系統(tǒng)和連接的USB裝置之間實現(xiàn)數(shù)據(jù)傳送。寄存器為主控制器的“根端口”提供狀態(tài)控制信息、以及關于數(shù)據(jù)傳送的管理和一般狀態(tài)/控制信息?;诖鎯ζ鞯慕涌谔峁┛刂?狀態(tài)信息。寄存器是用于根端口的狀態(tài)和控制、關于數(shù)據(jù)傳送的主控制器管理和一般狀態(tài)/控制信息。基于存儲器的接口是用于特定于數(shù)據(jù)傳送的控制/狀態(tài)。常規(guī)的USB系統(tǒng)軟件實施向USB裝置驅動器提供面向緩沖區(qū)的流服務。USB裝置驅動器將緩沖區(qū)輸入/輸出(“I/O”)請求提交到USB總線驅動器,USB總線驅動器依次將該緩沖區(qū)發(fā)送給合適的USB主控制器驅動器。USB主控制器驅動器然后利用其特定接口將該緩沖區(qū)交付給主控制器硬件。實際上,整個棧是面向緩沖區(qū)的。
常規(guī)USB主機的產品已緊密集成了主控制器。因此,USB裝置必須在USB主機規(guī)定的距離之內。該距離由電纜的長度而定,并且電纜的長度是若干限制最大傳輸時間的協(xié)議參數(shù)的函數(shù)。因此,常規(guī)USB控制器的瓶頸是其可連接到USB裝置的距離。
將通過附圖中說明的示例性實施例、而非限定的方式描述本發(fā)明,附圖中相似的編號指示類似的組件,并且附圖中圖1說明根據(jù)本發(fā)明實施例的計算環(huán)境的方框圖。
圖2說明根據(jù)本發(fā)明一個實施例、為與遠程主控制器通信而進行的圖1的軟件組件的耦合。
圖3說明根據(jù)本發(fā)明實施例具有主計算機和遠程主控制器的計算系統(tǒng)環(huán)境的方框圖。
圖4a-d說明根據(jù)本發(fā)明實施例連接到遠程主控制器的主機系統(tǒng)的示例性配置。
具體實施例方式
本發(fā)明的說明性實施例包括但不限于面向緩沖區(qū)的抽象,其能使主控制器實際地被放置在除USB主計算機內部之外的某個地方。
將通過使用本領域的那些技術人員向本領域的其他技術人員表達他們工作主旨時普遍采用的術語描述說明性實施例的各個方面。然而,本領域技術人員顯見,僅使用某些所描述的方面可實現(xiàn)本發(fā)明。出于說明的目的,闡述了特定的數(shù)字、材料和配置以便使讀者透徹地理解說明性實施例。然而,本領域技術人員顯見,沒有這些特定的細節(jié)也可實現(xiàn)本發(fā)明。在其他情況下,為了不混淆說明性實施例,省略或簡化了眾所周知的特征。
而且,各種操作和/或通信將作為多個離散的操作和/或通信依次以最有助于理解本發(fā)明的方式描述;然而,描述的順序不應該理解為暗示這些操作和/或通信是必須是順序相關的。具體地說,這些操作和/或通信不必按提出的順序執(zhí)行。
“在一個實施例中”這一術語重復使用。該術語一般不指同一實施例;當然,它也可以指同一實施例?!鞍?、“具有”和“包括”這些術語是同義的,除非語境指定不同的含義。
本發(fā)明的實施例定義了使USB主控制器物理放置在除USB主機(例如,主計算機)“內部”以外的某個地方的結構。換句話說,USB主控制器對于傳統(tǒng)主機平臺可能是“遠程的”。在各種實施例中,遠程USB主控制器(“遠程主控制器”)通過擴展靈活的、面向緩沖區(qū)的USB接口使USB連接映射在多鏈路技術之上從而增強了傳統(tǒng)USB主機系統(tǒng)軟件的結構,多鏈路技術包括但不限于局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)、個域網(wǎng)(“PAN”)、電話網(wǎng)(例如,POT、PBX等)、無線鏈路(例如,無線電話網(wǎng)、802.11網(wǎng)、藍牙等)、USB、電氣和電子工程師協(xié)會(“IEEE”)1394、電力線等。盡管各種示例性實施例中的抽象是以USB為中心的(以便容易結合現(xiàn)有軟件棧),但是其他實施例可以不是以USB為中心的。無論如何,遠程主控制器的下游裝置可以是或不是USB裝置。因此,該抽象使遠程主控制器的示例性實施暴露在下游作為USB裝置連接到USB主機的裝置,無論它們是否為活動的USB裝置。
通過在最低驅動層提供良好定義的抽象,遠程主控制器還可提供將USB主系統(tǒng)軟件橋接到非USB應用(例如基于電力線的家庭自動化)的標準化方法,這允許非USB技術使用在USB裝置類規(guī)范和驅動器中出現(xiàn)的全套應用支持。
遠程主控制器以至少兩種方式擴展如何將裝置連接到主計算機的模型。首先,它允許與主計算機物理分離的USB裝置連接到主計算機上。例如,家庭中一個房間中的USB打印機和掃描儀能使用兩個房間之間的一些其他連接(例如有線或無線LAN)連接另一個房間中的計算機。其次,遠程主控制器允許裝置使用不同的物理鏈路作為遠程主控制器和裝置之間的連接。換句話說,遠程主控制器提供了用于將USB支持軟件橋接到其他類型的物理硬件的單端標準化接口。該模型例如可能是如何引進無線USB的基礎。它還可允許已連接到電力線的裝置(例如,家庭應用、照明開關、插座等)連接到計算機上,并作為USB裝置出現(xiàn),給出了計算機與這些裝置對接并控制這些裝置的標準化方式。
在計算環(huán)境中使用一個或多個遠程主控制器的另一個優(yōu)點是具有多個主控制器(或者是多個遠程控制器或者是具有一個或多個遠程主控制器的本地主控制器)時,由于每個主控制器管理它自己的一組USB端口,USB使計算機可訪問的USB端口的數(shù)量有相應的增加。
圖1說明適用于本發(fā)明實施例的示例性主計算機100。本領域中的那些普通技術人員和其他人員可以理解主計算機100可包括比圖1中示出的那些組件更多的組件。然而,為了公開用于實現(xiàn)本發(fā)明的授權實施例,沒有必要示出所有這些常規(guī)組件。如在圖1中所示,主計算機100包括用于通過遠程USB主控制器(沒有示出)連接到遠程裝置(沒有示出)的傳輸接口130。如上所述,傳輸接口130可以是用于支持LAN、WAN、PAN、電話網(wǎng)、電力線連接、串行總線(USB)或無線連接的傳輸接口。傳輸接口130包括用于這種連接的必要的電路、驅動器和/或收發(fā)器,并且被構造為與用于這種連接的適當協(xié)議一起使用。在說明書和權利要求中如“遠程USB主控制器”中使用的“遠程”這一詞以及類似的其他術語是指遠程主控制器通過自身或結合本地USB主控制器來使USB或非USB裝置能夠位于比通用串行總線規(guī)范v2.0中規(guī)定的距離更遠的地方。
主計算機100還包括處理單元110、可選顯示器140和存儲器150,所有這些通過總線120與傳輸接口130互連。本領域中的那些普通技術人員和其他人員可以理解顯示器140在所有形式的計算裝置中不是必須的,因此它是可選組件。存儲器150一般包括隨機訪問存儲器(“RAM”)、只讀存儲器(“ROM”)和永久海量存儲裝置,例如磁盤驅動器、閃存RAM等。存儲器150存儲操作系統(tǒng)155和根據(jù)本發(fā)明的實施例形成的至少一個USB驅動器160(例如,特定USB裝置驅動器、小端口驅動器或驅動器的某些組合)。在各種實施例中,存儲器150還存儲至少一個遠程主控制器功能165(例如,小端口)、至少一個遠程USB主控制器驅動器170和應用175。本領域中的那些普通技術人員和其他人員可以理解當作為分離的、單個的軟件組件描述USB驅動器160、遠程主控制器功能165、遠程主控制器驅動器170和應用175時,它們實際上可能由多個軟件組件組成,或者實際上是一個或多個集成的軟件組件的子部分。
可以理解,使用與計算機可讀介質(例如軟盤、磁帶、DVD/CD-ROM驅動、閃存RAM或者網(wǎng)絡接口卡)相關聯(lián)的驅動機制(沒有示出)或網(wǎng)絡機制(沒有示出)可將軟件組件從計算機可讀介質載入到主計算機100的存儲器150中。
雖然僅示出一個遠程主控制器傳輸接口130,但是主計算機100可選地包括一個或多個本地USB主控制器(沒有示出)。在各種實施例中,遠程主控制器功能165、遠程主控制器驅動器170和遠程主控制器傳輸接口130便于遠程主控制器300將例如用于讀和/或寫機器可讀介質的裝置、數(shù)碼相機、打印機、例如MP3播放器的數(shù)字音樂播放器/錄音機等外部裝置與主計算機100相連。例如鍵盤或鼠標的各種輸入裝置還可通過組件165、170和130耦合到個人計算機100。
圖2說明根據(jù)本發(fā)明的一個實施例、為與遠程主控制器300通信而進行的圖1的軟件組件的耦合。一般而言,根據(jù)本發(fā)明實施例的遠程主控制器系統(tǒng)的實施包括遠程主控制器功能165、遠程主控制器驅動器170和遠程主控制器傳輸接口130,通過該遠程主控制器傳輸接口130,操作系統(tǒng)155經由USB驅動器160與遠程主控制器300通信并控制遠程主控制器300。在一個實施例中,應用175提供與經由遠程主控制器300連接的遠程USB裝置(沒有示出)相連的必要邏輯連接。下文中,遠程主控制器傳輸接口130也可稱為遠程主控制器介質傳輸。
USB驅動器160執(zhí)行其常規(guī)功能,即對遠程主控制器功能165進行緩沖區(qū)I/O請求并且服務來自遠程主控制器功能165的回復,就像遠程主控制器功能165結合遠程主控制器驅動器170和傳輸接口130組成“本地USB主控制器”一樣。因此,可采用多種裝置類相關方式的任何其中之一實施USB驅動器160。遠程主控制器功能165與遠程主控制器300上的對應物協(xié)作來完成USB驅動器160對遠程主控制器功能165所支持的功能的緩沖區(qū)I/O請求。在各種實施例中,可使用多個遠程主控制器功能165來支持多個功能。每個遠程主控制器功能165的實施是功能相關的。遠程主控制器驅動器170配置為根據(jù)遠程主控制器協(xié)議(例如,基于傳輸控制/網(wǎng)際協(xié)議[“TCP/IP”]的消息協(xié)議)將緩沖區(qū)I/O請求(獨立于遠程主控制器功能165支持的功能的本質)打包成由遠程主控制器傳輸接口130傳輸?shù)倪m當?shù)膫鬏敻袷?例如以太網(wǎng))。遠程主控制器驅動器170還配置為提取通過遠程主控制器傳輸接口130從遠程主控制器300接收的應答消息中的USB內容。
圖3說明本發(fā)明的一個示例性實施例,其中通過遠程主控制器300將主計算機100連接到遠程放置的USB裝置、USB鍵盤380。本領域中的那些普通技術人員和其他人員可以理解圖3示出的裝置布置僅是根據(jù)本發(fā)明一個示例性實施例的裝置的一種布置,并且包括非USB裝置和/或非USB通信鏈路的裝置的其他配置可與本發(fā)明的其他實施例一起使用。
主計算機100包括用來通過遠程主控制器300與遠程放置的USB裝置、USB鍵盤380通信的多個軟件和硬件組件。一個這樣的組件是USB人機接口裝置(“HID”)驅動器320,它是用于在邏輯上控制USB鍵盤380的裝置驅動器。USB鍵盤380還包括在邏輯上受控于主計算機的USB HID驅動器320的USB HID鍵盤功能385。主計算機100還包括為主計算機100提供USB功能的USB驅動器160。
另外,主計算機100還包括用來“抽象”主計算機100和遠程主控制器300之間的連接的抽象層360。抽象層360包括遠程主控制器功能165、遠程主控制器驅動器170和遠程主控制器介質傳輸130。遠程主控制器功能165通過遠程主控制器驅動器170、遠程主控制器介質傳輸130和遠程主控制器300的相應遠程主控制器介質傳輸305與遠程主控制器300的遠程主控制器功能驅動器315在邏輯上通信。更具體地說,遠程主控制器驅動器170和遠程主控制器300之間的物理通信路徑通過遠程主控制器介質傳輸130借助于遠程主控制器協(xié)議到達遠程主控制器300上的遠程主控制器介質傳輸305。遠程主控制器介質傳輸305還與遠程主控制器功能驅動器315通信,也借助于遠程主控制器協(xié)議(同一遠程主控制器協(xié)議或另一協(xié)議)。
遠程主控制器300還包括其自身的物理連接遠程USB裝置(例如USB鍵盤380)的USB主控制器310。USB主控制器310物理連接USB鍵盤380的USB總線接口395。然而,在遠程主控制器300和USB鍵盤380之間的邏輯連接是在遠程主控制器功能驅動器315和USB鍵盤380的USB邏輯裝置390之間。如上文所述,經由USB鍵盤380的USB HID鍵盤功能385處理USB鍵盤的高級通信和控制,該USB鍵盤HID鍵盤功能385與主計算機100上的USB HID驅動320程序通信(通過主計算機100與遠程主控制器300以及遠程主控制器300與USB鍵盤380之間的上述邏輯和物理連接)。
從上文對經由遠程主控制器300連接到主計算機100的遠程放置的USB鍵盤380的描述可知,本發(fā)明的實施例允許裝置“遠程”于這些裝置要連接的主計算機。
本領域中的那些普通技術人員和其他人員可以理解圖3示出的裝置僅是本發(fā)明的一個實施例的一種示例性配置,并且可包括更多或更少的組件。例如,主計算機的驅動器(USB驅動器160、主控制器功能165和遠程主控制器驅動器170)作為分離的單個驅動器示出。在本發(fā)明的其他實施例中,可使用更多或更少的驅動器以便于USB裝置、本地和遠程主控制器之間的通信。在其他實施例中,可使用備選通信路徑(邏輯的和物理的)在組件之間發(fā)送信號。
圖4a至4d說明本發(fā)明的其他示例性實施例,包括非USB裝置可耦合到具有USB驅動器的主計算機、允許主計算機使用其USB棧操作非USB裝置的示例性實施例。非USB裝置可包括但不局限于其他串行總線裝置(例如IEEE1394)、局域網(wǎng)絡裝置或并行接口裝置。
圖4a說明本發(fā)明的實施例的配置,其中,主計算機100A具有到遠程主控制器300A的非USB有線連接,但是具有到USB裝置405A的USB連接。本領域中的那些普通技術人員和其他人員可以理解從主計算機100A到USB裝置405A的邏輯通信可繼續(xù)使用USB驅動器作為遠程主控制器300A,并且主計算機上的抽象層360抽象出非USB連接使得無須引入分離的非USB連接驅動器,可繼續(xù)進行與USB裝置405A邏輯通信。
圖4B說明一個示例性實施例,其中主計算機100B具有到遠程主控制器300B的非USB有線連接,該遠程主控制器300B又具有到非USB裝置410B的非USB有線連接。對于該實施例,USB主控制器310被替換為適于非USB連接的非USB主控制器。遠程主控制器功能驅動器315還可配置為處理USB命令和非USB命令之間的轉換。本發(fā)明的這種實施例雖然沒有采用任何USB連接,仍能利用主計算機100B的抽象層360將100B的非USB裝置當作USB裝置,并且利用USB裝置驅動器與非USB裝置410B通信和/或控制非USB裝置410B。
圖4c類似于圖4a,然而,主計算機100C和遠程主控制器300C間的傳輸介質是無線連接。也就是說,遠程主控制器介質傳輸130和305配置為支持主計算機100和遠程主控制器300之間的無線連接。遠程主控制器300C又具有到USB裝置405C的USB連接。
類似地,在圖4d中,主計算機100D具有到遠程主控制器300D的無線連接。因此,如圖4c所述同樣配備了遠程主控制器介質傳輸130和305。然而,遠程主控制器300D具有到類似圖4B的非USB裝置41OD的非USB連接。也就是說,USB主控制器310被替換為非USB主控制器,并且遠程主控制器功能驅動器315配置為處理上文所述的USB和非USB命令之間的轉換。
盡管本文中說明和描述了特定的實施例,但是本領域中的那些普通技術人員和其他人員可以理解,在沒有背離本發(fā)明的范圍的情況下,大量不同的備選和/或等效實施可代替示出和描述的特定實施例。本申請要涵蓋本文討論的任何修改和變更。因此,顯然本發(fā)明僅由權利要求以及其等價項所限定。
權利要求
1.一種系統(tǒng),包括計算機,包括處理器,以及耦合到所述處理器的存儲器,具有USB驅動器和遠程主控制器的抽象;以及與所述計算機耦合并且距所述計算機遠程設置的遠程主控制器,與作為所述計算機的USB主控制器的遠程主控制器的所述抽象結合來工作。
2.如權利要求1所述的系統(tǒng),還包括耦合到所述遠程主控制器的遠程裝置。
3.如權利要求2所述的系統(tǒng),其中,所述遠程裝置是從數(shù)碼相機、打印機、數(shù)字音樂播放器/錄音機、鍵盤和光標控制裝置中選定的一個。
4.如權利要求1所述的系統(tǒng),其中,遠程主控制器的所述抽象包括遠程主控制器功能,配置為向所述遠程主控制器的功能的USB緩沖區(qū)I/O請求提供功能特定處理。
5.如權利要求1所述的系統(tǒng),其中,遠程主控制器的所述抽象包括遠程主控制器驅動器,配置為提供功能獨立處理以對USB緩沖區(qū)I/O請求進行格式處理用于傳輸?shù)剿鲞h程主控制器。
6.如權利要求1所述的系統(tǒng),其中,遠程主控制器的所述抽象包括介質傳輸,配置為將用于某種介質類型的經格式處理的USB緩沖區(qū)I/O請求在所述介質類型的介質上傳輸?shù)剿鲞h程主控制器。
7.如權利要求6所述的系統(tǒng),其中,所述遠程主控制器包括相似類型的介質傳輸、耦合到所述遠程主控制器的介質傳輸?shù)倪h程主功能驅動器和USB主控制器。
8.如權利要求6所述的系統(tǒng),其中,所述介質包括從由局域網(wǎng)、廣域網(wǎng)、個域網(wǎng)、電話網(wǎng)、并行接口、無線鏈路、USB、IEEE 1394和電力線組成的組中選定的通信鏈路。
9.一種遠程USB主控制器,包括介質傳輸,與遠程放置的主計算機中設置的所述遠程USB主控制器的抽象的對應介質傳輸通信;遠程主控制器功能驅動器,耦合到所述介質傳輸以處理來自所述遠程USB主控制器的抽象的遠程主控制器功能的USB緩沖區(qū)I/O請求;以及USB主控制器,耦合到所述遠程主控制器功能驅動器以便于將USB裝置耦合到所述遠程放置的主計算機。
10.如權利要求9所述的遠程USB主控制器,其中,所述介質傳輸配置為支持從由局域網(wǎng)、廣域網(wǎng)、個域網(wǎng)、電話網(wǎng)、無線鏈路、USB、IEEE 1394和電力線組成的組中選定的介質。
11.如權利要求9所述的遠程USB主控制器,其中,所述遠程主控制器功能驅動器包括對小端口功能的支持。
12.一種遠程主控制器,包括介質傳輸,與遠程放置的主計算機中設置的所述遠程主控制器的抽象的對應介質傳輸通信,所述主計算機包括耦合到所述遠程主控制器的抽象的USB驅動器;遠程主控制器功能驅動器,耦合到所述介質傳輸以處理來自所述遠程主控制器的抽象的遠程主控制器功能的USB緩沖區(qū)I/O請求,所述遠程主控制器功能驅動器配置為將USB命令轉換成非USB命令,反之亦然;以及非USB主控制器,耦合到所述遠程主控制器功能驅動器以便于將非USB裝置耦合到所述遠程放置的主計算機。
13.如權利要求12所述的遠程主控制器,其中,所述介質傳輸配置為支持從由局域網(wǎng)、廣域網(wǎng)、個域網(wǎng)、電話網(wǎng)、并行接口、無線鏈路、USB、IEEE 1394和電力線組成的組中選定的介質。
14.如權利要求12所述的遠程主控制器,其中,非USB主控制器包括硬件,所述硬件支持對利用從由局域網(wǎng)、廣域網(wǎng)、個域網(wǎng)、電話網(wǎng)、并行接口、無線鏈路、USB、IEEE 1394和電力線組成的組中選定的通信介質鏈路的裝置的控制。
15.一種將USB裝置連接到主計算機的方法,所述方法包括將遠程設置的主控制器耦合到具有USB驅動器和所述遠程主控制器的抽象的主計算機;以及將USB裝置耦合到所述遠程主控制器的USB主控制器。
16.如權利要求15所述的方法,其中,所述遠程主控制器的抽象和所述遠程主控制器包括配置為支持在介質類型的介質上的傳輸?shù)幕パa介質傳輸,并且所述方法還包括對USB緩沖區(qū)I/O請求進行格式處理用于在所述介質上從所述主計算機傳輸?shù)剿鲞h程主控制器。
17.如權利要求15所述的方法,其中,所述方法還包括在所述遠程主控制器上恢復收到的所述USB緩沖區(qū)I/O請求。
18.一種將非USB裝置作為USB裝置連接到主計算機的方法,所述方法包括將遠程設置的主控制器耦合到具有USB能力和所述遠程主控制器的抽象的主計算機,其中所述遠程主控制器配置為接收非USB裝置并且用來在USB信號和至少一種類型的非USB信號之間轉換;以及通過所述遠程主控制器將非USB裝置耦合到所述主計算機。
19.如權利要求18所述的方法,其中,所述遠程主控制器的抽象和所述遠程主控制器包括配置為支持在介質類型的介質上的傳輸?shù)幕パa介質傳輸,并且所述方法還包括對USB緩沖區(qū)I/O請求進行格式處理用于在所述介質上從所述主計算機傳輸?shù)剿鲞h程主控制器;以及在所述遠程主控制器上恢復收到的所述USB緩沖區(qū)I/O請求。
20.如權利要求19所述的方法,其中,所述方法還包括將所述USB緩沖區(qū)I/O請求轉換成非USB緩沖區(qū)I/O請求。
全文摘要
本文描述的是用于遠程USB主機控制的設備和方法。
文檔編號G06F13/40GK1934553SQ200580009419
公開日2007年3月21日 申請日期2005年3月25日 優(yōu)先權日2004年3月31日
發(fā)明者J·凱斯, J·霍沃德, A·伊斯邁爾 申請人:英特爾公司