專利名稱:用于快速啟動(dòng)usb裝置的系統(tǒng)、設(shè)備及方法
用于快速啟動(dòng)USB裝置的系統(tǒng)、設(shè)備及方法
背景技術(shù):
通用串行總線(USB)為用于將計(jì)算機(jī)附接到多種外圍裝置的標(biāo)準(zhǔn)外圍接口。這些外圍裝置通常稱作功能,其可包括集線器及例如鍵盤、鼠標(biāo)、相機(jī)、監(jiān)視器、調(diào)制解調(diào)器的裝置,及許多其它外圍裝置。USB系統(tǒng)中的裝置以分層星狀拓?fù)溥B接到USB主機(jī),其中每一裝置經(jīng)由一個(gè)或一個(gè)以上集線器連接到所述USB主機(jī)。USB系統(tǒng)為輪詢總線,其中主機(jī)計(jì)算機(jī)包括單一 USB控制器,所述USB控制器管理總線上的所有通信且監(jiān)視總線拓?fù)溆捎诟浇踊蛞瞥b置而發(fā)生的改變。多數(shù)總線事務(wù)包括三個(gè)包。主機(jī)控制器發(fā)送一描述事務(wù)的類型及方向、裝置地址及端點(diǎn)編號(hào)的令牌包。經(jīng)尋址的USB裝置從所述令牌包辨識(shí)其地址?;诹钆瓢兴付ǖ姆较?qū)?shù)據(jù)從主機(jī)傳送到經(jīng)尋址的裝置或從經(jīng)尋址的裝置傳送到主機(jī)。多數(shù)情況下,數(shù)據(jù)的目的地以一指示經(jīng)傳送數(shù)據(jù)的接收狀態(tài)的信號(hào)交換包(handshake packet)來回應(yīng)。雖然USB系統(tǒng)支持連接到總線的多個(gè)外圍裝置,但USB協(xié)議為點(diǎn)對(duì)點(diǎn)協(xié)議。換句話說,單一主機(jī)一次可將數(shù)據(jù)發(fā)送到單一的經(jīng)唯一地尋址的裝置。因此,對(duì)用于各種裝置的數(shù)據(jù)進(jìn)行時(shí)間多路復(fù)用,使得每一裝置可在其時(shí)隙期間接收或發(fā)射數(shù)據(jù)。USB系統(tǒng)通常界定一毫秒長(zhǎng)的幀,在所述幀內(nèi),USB系統(tǒng)可將不同時(shí)隙分配到總線上的許多或所有裝置。每一裝置具有唯一地址,因而所述裝置知曉所發(fā)射數(shù)據(jù)是針對(duì)其,或隨其發(fā)送的數(shù)據(jù)供應(yīng)唯一地址,使得主機(jī)知曉數(shù)據(jù)是從哪一裝置接收。當(dāng)初次插入U(xiǎn)SB裝置時(shí),其經(jīng)歷初始化、枚舉及配置過程以設(shè)置所述USB裝置用于供USB主機(jī)及其上的客戶端軟件使用。對(duì)于具有大量固件或其它設(shè)置要求的復(fù)雜USB裝置來說,此設(shè)置過程可能相當(dāng)長(zhǎng)。然而,許多操作系統(tǒng)強(qiáng)加關(guān)于USB裝置在可用于操作系統(tǒng)之前可花費(fèi)多久來執(zhí)行設(shè)置過程的認(rèn)證要求。需要用于執(zhí)行快速設(shè)置過程以滿足操作系統(tǒng)要求,同時(shí)仍允許USB裝置的復(fù)雜配置的系統(tǒng)、設(shè)備及方法。
圖1展示USB系統(tǒng)的拓?fù)鋱D。圖2展示本發(fā)明的示范性實(shí)施例中的邏輯通信管道的簡(jiǎn)化框圖。圖3展示本發(fā)明的示范性實(shí)施例的簡(jiǎn)化框圖。圖4展示根據(jù)本發(fā)明的實(shí)施例的初始化過程的狀態(tài)圖。圖5展示根據(jù)本發(fā)明的實(shí)施例的枚舉過程的簡(jiǎn)化流程圖。圖6A展示在第一枚舉過程之后由操作系統(tǒng)顯示的示范性控制面板。圖6B展示在第二枚舉過程之后由操作系統(tǒng)顯示的示范性控制面板。
具體實(shí)施例方式詞“示范性”在本文中用以意味著“充當(dāng)一實(shí)例、個(gè)例或說明”。不必將本文中描述為“示范性”的任何實(shí)施例解釋為比其它實(shí)施例優(yōu)選或有利。下文中結(jié)合隨附圖式所闡述的詳細(xì)描述意在作為對(duì)本發(fā)明的示范性實(shí)施例的描述,而不意在表示可實(shí)踐本發(fā)明的僅有實(shí)施例。貫穿此描述所使用的術(shù)語(yǔ)“示范性”意味著 “充當(dāng)實(shí)例、個(gè)例或說明”,且未必應(yīng)解釋為比其它示范性實(shí)施例優(yōu)選或有利。所述詳細(xì)描述包括特定細(xì)節(jié)以便實(shí)現(xiàn)提供對(duì)本發(fā)明的示范性實(shí)施例的透徹理解的目的。所屬領(lǐng)域的技術(shù)人員將顯而易見,可在無這些特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明的示范性實(shí)施例。在一些個(gè)例中,以框圖形式來展示眾所周知的結(jié)構(gòu)及裝置以避免混淆本文中所呈現(xiàn)的示范性實(shí)施例的新穎性。本發(fā)明的示范性實(shí)施例是針對(duì)執(zhí)行快速USB設(shè)置過程(其可包括USB裝置的初始化、枚舉及配置),同時(shí)仍允許USB裝置的復(fù)雜的相對(duì)較長(zhǎng)的配置過程。圖1展示常規(guī)USB系統(tǒng)的拓?fù)鋱D100。USB主機(jī)110包括一具有多個(gè)連接點(diǎn)的根集線器(root hub)。在圖1中,第一功能150A連接于一個(gè)連接點(diǎn)處,且第一集線器120A連接到第二連接點(diǎn)。第一集線器120A包括多個(gè)連接點(diǎn)。第二功能150B、第二集線器120B及第三集線器120C連接到第一集線器120A。第二集線器120B可包括多個(gè)連接點(diǎn)。第三功能 150C連接到第二集線器120B。第三集線器120C包括多個(gè)連接點(diǎn)。第四功能150D及第五功能150E連接到第三集線器120C。所述集線器通過將在其上游端口上接收的數(shù)據(jù)發(fā)送到其下游端口中的每一者及將來自其下游端口中的一者的信息發(fā)送到其上游端口而充當(dāng)中繼器(r印eater)。在任何給定時(shí)間,應(yīng)僅有一個(gè)功能或主機(jī)正將信息置于總線上。因此,作為實(shí)例,主機(jī)可發(fā)送以第五功能150E為目的地的信息。所述信息途經(jīng)第一集線器120A及第三集線器120C而流到第五功能150E。USB功能通常為將能力提供到裝置的USB裝置。作為實(shí)例,USB功能可為USB裝置、USB集線器、USB主機(jī)控制器、USB收發(fā)器及其類似者。USB集線器包括用以報(bào)告在其端口上附接及移除USB裝置的狀態(tài)位。USB主機(jī)可查詢USB集線器以確定拓?fù)渲械乃醒b置的連接狀態(tài)且維持所有經(jīng)連接USB裝置的映射。 當(dāng)從端口移除USB裝置時(shí),USB集線器停用所述端口且經(jīng)由狀態(tài)位報(bào)告所述移除。如果所述經(jīng)移除的裝置為USB集線器,則主機(jī)控制器軟件將更新所述映射以指示原本連接到經(jīng)移除USB集線器的所有USB裝置現(xiàn)在解除連接。USB數(shù)據(jù)傳送發(fā)生于主機(jī)與USB裝置上的特定端點(diǎn)之間。主機(jī)與端點(diǎn)之間的關(guān)聯(lián)件通常稱作管道(pipe)。通常,一個(gè)管道中的數(shù)據(jù)移動(dòng)獨(dú)立于其它管道中的數(shù)據(jù)移動(dòng)。因此,一給定USB裝置可包括多個(gè)管道,且在整個(gè)USB系統(tǒng)中可能存在大量管道。USB協(xié)議支持四種基本類型的數(shù)據(jù)傳送;控制傳送、批量數(shù)據(jù)傳送、中斷數(shù)據(jù)傳送及等時(shí)數(shù)據(jù)傳送??刂苽魉陀靡栽诟浇右谎b置時(shí)配置所述裝置且管理其它裝置特定任務(wù), 例如,控制所述裝置上的其它端點(diǎn)。批量數(shù)據(jù)傳送用于通常為突發(fā)性的數(shù)據(jù),且不包括對(duì)帶寬或等待時(shí)間要求的顯著限制。中斷數(shù)據(jù)傳送用于可能具有低等待時(shí)間要求的數(shù)據(jù)(例如,人類可感知數(shù)據(jù))。等時(shí)數(shù)據(jù)傳送將USB帶寬的預(yù)商定部分用于要求大致恒定的帶寬及低等待時(shí)間的裝置。所述數(shù)據(jù)的實(shí)例為視頻及音頻流式數(shù)據(jù)。
圖2展示本發(fā)明的示范性實(shí)施例中的邏輯通信管道的簡(jiǎn)化框圖。USB主機(jī)110可包括針對(duì)多個(gè)管道190饋送或接收數(shù)據(jù)的多個(gè)緩沖器170。每一管道可連接到USB裝置200 內(nèi)的不同端點(diǎn)(210、220)。主機(jī)內(nèi)的客戶端軟件160從各緩沖器170接收信息或?qū)⑿畔l(fā)送到各緩沖器170。端點(diǎn)0210用于控制傳送,如下文所解釋。USB裝置200可包括其它端點(diǎn)220,所述端點(diǎn)220用于接收及發(fā)送其它信息或控制其它功能。USB管道190為一邏輯構(gòu)造,其表示經(jīng)由存儲(chǔ)器緩沖器170在USB主機(jī)110上的軟件與USB裝置200上的端點(diǎn)(210、220)之間移動(dòng)數(shù)據(jù)的能力。存在兩種類型的管道通信模式。經(jīng)由管道移動(dòng)的流數(shù)據(jù)不具有USB定義的結(jié)構(gòu)。經(jīng)由管道移動(dòng)的消息數(shù)據(jù)包括由USB 架構(gòu)定義的某一類型的結(jié)構(gòu)。圖3展示本發(fā)明的示范性實(shí)施例的簡(jiǎn)化框圖。圖3以更偏功能性的表示來說明 USB系統(tǒng),而圖2將USB系統(tǒng)說明為一數(shù)據(jù)流表示。在圖3中,根據(jù)本發(fā)明的實(shí)施例,USB主機(jī)110展示為經(jīng)由USB總線205連接到USB 裝置200。當(dāng)然,可能存在連接于如以上針對(duì)圖1的USB拓?fù)?00所解釋的各種層級(jí)處的許多USB裝置200。USB裝置200包括地址寄存器230及端點(diǎn)零210 (在本文中也稱作默認(rèn)控制端點(diǎn)210)。USB裝置200還可包括其它端點(diǎn)220。端點(diǎn)(210、220)為USB裝置200的可唯一地識(shí)別的部分。每一 USB裝置200包括獨(dú)立端點(diǎn)的集合。每一 USB裝置200包括一由系統(tǒng)指派且容納于地址寄存器230中的唯一地址。另外,USB裝置200內(nèi)的每一端點(diǎn)被給定一特定地址。另外,每一端點(diǎn)為單向性的, 其具有朝向主機(jī)的數(shù)據(jù)流方向或朝向端點(diǎn)的數(shù)據(jù)流方向。因此,主機(jī)將給定端點(diǎn)辨識(shí)為裝置地址、端點(diǎn)地址及流方向的組合。默認(rèn)控制端點(diǎn)210被指派端點(diǎn)地址零且支持控制傳送。需要使所有USB裝置200包括默認(rèn)控制端點(diǎn)210用于輸入及輸出兩者。USB系統(tǒng)軟件使用默認(rèn)控制端點(diǎn)210來初始化枚舉及配置USB裝置200。舉例來說,控制器280可與 USB主機(jī)110協(xié)作來執(zhí)行初始化、枚舉及配置過程。另外,控制器280可在一操作模式下執(zhí)行許多其它功能以執(zhí)行USB裝置200經(jīng)設(shè)計(jì)而用于的任務(wù)。作為非限制性實(shí)例,如此項(xiàng)技術(shù)中所已知,USB裝置可配置為廣域網(wǎng)(WAN)裝置, 且包括具有天線的RF模塊四0以經(jīng)由無線信號(hào)295通信。USB裝置200可包括存儲(chǔ)器沈0。作為非限制性實(shí)例,所述存儲(chǔ)器可包括用于由控制器執(zhí)行的軟件、與枚舉及配置有關(guān)的信息及與USB裝置200的操作模式有關(guān)的信息。USB裝置200還可包括非易失性存儲(chǔ)器270,例如,快閃存儲(chǔ)器及電可擦除可編程 (EEPROM)存儲(chǔ)器。作為非限制性實(shí)例,所述非易失性存儲(chǔ)器270可包括用于由控制器執(zhí)行的軟件、與枚舉及配置有關(guān)的信息及與USB裝置200的操作模式有關(guān)的信息。本發(fā)明的示范性實(shí)施例包括第一裝置描述符240及第二裝置描述符250。第一裝置描述符240包括第一供貨商識(shí)別符242及第一產(chǎn)品識(shí)別符M4。第二裝置描述符250包括第二供貨商識(shí)別符252及第二產(chǎn)品識(shí)別符254。對(duì)于每一裝置描述符O40及250)來說, 供貨商識(shí)別符及產(chǎn)品識(shí)別符形成用于使USB主機(jī)110查詢以便確定將何種類型的裝置連接到USB總線205的唯一組合。當(dāng)然,第一及第二供貨商識(shí)別符052及254)可相同,只要供貨商識(shí)別符/產(chǎn)品識(shí)別符的組合在第一裝置描述符240與第二裝置描述符250之間不同即可。操作系統(tǒng)要求裝置迅速地通電。舉例來說,對(duì)于Windows Vista 來說,所有裝置必須在兩秒或小于兩秒內(nèi)執(zhí)行從高級(jí)配置與電力接口(ACPI) S3狀態(tài)的系統(tǒng)恢復(fù) (resume)。對(duì)于復(fù)雜USB裝置200來說,此要求可能難以滿足。許多裝置通過將較快硬件新增到裝置、通過限制或最小化軟件鏡像用于快速啟動(dòng),或通過限制裝置上的功能性以實(shí)現(xiàn)快速枚舉來解決此問題。因此,多數(shù)USB裝置200僅包括具有供貨商識(shí)別符及產(chǎn)品識(shí)別符的單一裝置描述符。本發(fā)明的實(shí)施例使用雙枚舉過程。如果使用兩個(gè)枚舉,則裝置可迅速地通電,因?yàn)榭稍O(shè)計(jì)第一枚舉使得最小初始化在少量時(shí)間(例如,< 500毫秒)內(nèi)發(fā)生。此做法實(shí)現(xiàn)操作系統(tǒng)快速啟動(dòng)要求且允許完成系統(tǒng)恢復(fù)。在第一枚舉之后,裝置變得完全在第一模式下起作用,且接著開始第二枚舉過程以變得完全在第二模式下起作用。因此,本發(fā)明的實(shí)施例包括兩個(gè)裝置描述符Q40及250),以使得可以兩種不同模式枚舉及配置USB裝置200。如以下參看圖4到圖7B所更完整地解釋,這兩種不同模式為固件加載模式及操作模式。因此,USB主機(jī)110可包括針對(duì)所述兩種模式中的每一者的單獨(dú)客戶端軟件160模塊。因此,USB主機(jī)110可包括用于控制固件加載模式的加載器驅(qū)動(dòng)程序162及用于控制操作模式的操作驅(qū)動(dòng)程序164。圖3說明作為單獨(dú)塊的裝置描述符O40及250)。然而,一般所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,裝置描述符O40及250)可以許多不同形式來實(shí)施。作為非限制性實(shí)例,裝置描述符Q40及250)可體現(xiàn)為USB裝置200內(nèi)的可配置切換功能(configurable switch),體現(xiàn)為存儲(chǔ)于非易失性存儲(chǔ)器270內(nèi)的值,或體現(xiàn)為存儲(chǔ)于控制器觀0內(nèi)的非易失性存儲(chǔ)器中的值。圖4展示根據(jù)本發(fā)明的實(shí)施例的初始化及枚舉過程的狀態(tài)圖。參看圖3及圖4描述所述初始化及枚舉過程。當(dāng)插入U(xiǎn)SB裝置200時(shí),在可使用所述USB裝置200之前其必須經(jīng)歷此初始化及枚舉過程。當(dāng)附接時(shí),USB裝置200在附接狀態(tài)510下開始。如果所述 USB裝置200所附接的集線器經(jīng)適當(dāng)配置,則USB裝置200轉(zhuǎn)變?yōu)榭蓪㈦娏κ┘拥経SB裝置 200的供電狀態(tài)520。USB主機(jī)110起始對(duì)USB裝置200的復(fù)位,且所述裝置轉(zhuǎn)變?yōu)槟J(rèn)狀態(tài) 530。在默認(rèn)狀態(tài)530下,USB裝置200響應(yīng)于默認(rèn)地址(通常為零)。因此,可在默認(rèn)地址處存取默認(rèn)控制端點(diǎn)210以使得能夠讀取裝置描述符且執(zhí)行USB裝置200的大體設(shè)置。USB主機(jī)110接著向USB裝置200指派唯一地址。在指派了唯一地址的情況下,USB裝置200轉(zhuǎn)變?yōu)閷ぶ窢顟B(tài)M0。在所有配置完成之后,USB裝置200轉(zhuǎn)變?yōu)榕渲脿顟B(tài)560,準(zhǔn)備好執(zhí)行其經(jīng)設(shè)計(jì)而用于的操作。本發(fā)明的示范性實(shí)施例經(jīng)歷兩個(gè)初始化及枚舉過程。因此,首先將USB裝置200 初始化并枚舉為相對(duì)較簡(jiǎn)單的USB裝置200,其經(jīng)配置用于將固件加載到USB裝置200的存儲(chǔ)器沈0中。因此,當(dāng)USB裝置200初次進(jìn)入配置狀態(tài)560時(shí),其處于固件加載模式下。當(dāng)加載器完全經(jīng)配置時(shí),USB裝置200基于重新枚舉指示符轉(zhuǎn)變回到默認(rèn)狀態(tài)以再次經(jīng)初始化及枚舉為相對(duì)較復(fù)雜的USB裝置200,其將基于所加載的固件而在操作模式下操作。如先前所解釋,除了此次用于操作模式而非固件加載模式之外,USB裝置200再次轉(zhuǎn)變經(jīng)過默認(rèn)狀態(tài)530、尋址狀態(tài)及配置狀態(tài)??捎迷S多方式來實(shí)現(xiàn)基于重新枚舉指示符在固件加載模式結(jié)束時(shí)從配置狀態(tài)560 到默認(rèn)狀態(tài)530的此轉(zhuǎn)變以開始操作模式的枚舉。作為非限制性實(shí)例,可將USB 200裝置部分地復(fù)位使得其重新進(jìn)入默認(rèn)狀態(tài)530,但須知其先前是在固件加載模式下配置。作為另一非限制性實(shí)例,當(dāng)處于固件加載模式下時(shí),USB裝置200可將一請(qǐng)求發(fā)送到USB主機(jī)110 以在操作模式下重新配置。USB裝置200可使電力中斷。如果電力中斷從配置狀態(tài)560、尋址狀態(tài)540及默認(rèn)狀態(tài)530中的任一者發(fā)生,則USB裝置200轉(zhuǎn)變回到供電狀態(tài)520以在固件加載模式下復(fù)
位及重新配置。USB裝置200可接收來自USB主機(jī)110的復(fù)位。如果復(fù)位從供電狀態(tài)520、配置狀態(tài)560及尋址狀態(tài)MO中的任一者發(fā)生,則USB裝置200轉(zhuǎn)變回到默認(rèn)狀態(tài)530以重新配置。圖5為根據(jù)本發(fā)明的實(shí)施例的雙枚舉過程600的簡(jiǎn)化流程圖??上鄬?duì)于WAN裝置的配置來描述此過程的部分。然而,一般所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,所述過程可通過許多其它USB裝置來執(zhí)行,且特定地針對(duì)WAN裝置的所述部分可容易地適用于所述其它USB 裝置。另外,如一般所屬領(lǐng)域的技術(shù)人員將顯而易見,圖5中所描述的過程中的許多過程具有圖4的狀態(tài)圖中的對(duì)應(yīng)物。雙枚舉過程600的執(zhí)行為USB主機(jī)110與USB裝置200之間的協(xié)作。因此,如一般所屬領(lǐng)域的技術(shù)人員將顯而易見,一些操作是由USB主機(jī)110執(zhí)行且一些是由USB裝置200執(zhí)行。在描述雙枚舉過程600時(shí)參考圖3及圖5,過程600在操作框602處開始以測(cè)試啟用信號(hào)的狀態(tài)。在WAN裝置中,ff_DISABLE_N可用以停用無線通信,應(yīng)用程序可能復(fù)位所述裝置,或其上連接有所述裝置的系統(tǒng)可能移除到所述裝置的電力。因此,在枚舉過程進(jìn)行之前執(zhí)行測(cè)試以確保所述裝置已為通信做好準(zhǔn)備。如果USB裝置200為通信做好準(zhǔn)備,則操作框604為USB裝置200通電。在操作框606中,USB裝置200通過啟動(dòng)映像(本文中也稱作用于固件加載模式的第一固件及軟件)來初始化。此啟動(dòng)映像可為非易失性存儲(chǔ)器270、控制器280上的非易失性存儲(chǔ)器或USB裝置200上的其它非易失性存儲(chǔ)器的部分。另外,啟動(dòng)映像的若干部分可駐存于主機(jī)上的硬盤驅(qū)動(dòng)器上且可傳送到USB裝置200 (作為配置過程的部分)。視實(shí)施例而定,所述啟動(dòng)映像可由控制器280從非易失性存儲(chǔ)器270執(zhí)行或可移到存儲(chǔ)器260供執(zhí)行。決策框608測(cè)試以查看W_DISABLE_N是否在作用中歷時(shí)大于一秒。換句話說,裝置已被停用,因而無需完成枚舉過程。如果USB裝置200被停用,則操作框610使USB裝置 200斷電,且控制傳送回到操作框602以等待啟用USB裝置200。將操作框608及610展示為發(fā)生于操作框606之后。然而,一般所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,停用可為中斷驅(qū)動(dòng)的事件,且因此可從過程中的多數(shù)位置發(fā)生。操作框612尤其通過將第一裝置描述符240發(fā)送到主機(jī)而繼續(xù)第一枚舉過程。在裝置已成功地在固件加載模式下被枚舉之后,操作框614執(zhí)行將固件(本文中也稱作第二固件或操作固件)移動(dòng)到存儲(chǔ)器260的操作。所述操作固件可駐存于主機(jī)上的硬盤驅(qū)動(dòng)器上且可傳送到存儲(chǔ)器沈0,或可處于USB裝置200的非易失性存儲(chǔ)器270上且傳送到存儲(chǔ)器沈0。對(duì)于復(fù)雜裝置來說,操作固件可能較大且此傳送過程可能較長(zhǎng)。然而, USB裝置200已在固件加載模式下得以枚舉且因此已滿足一些操作系統(tǒng)的快速枚舉要求。在下載操作固件之后,決策框616測(cè)試以驗(yàn)證操作固件已成功下載且通過鑒認(rèn)過程。如果非如此,則控制返回到操作框614以再次下載操作固件。如果鑒認(rèn)成功,則操作框618使用操作固件及第二裝置描述符250執(zhí)行第二枚舉過程。在此第二枚舉過程中,卸除用于第一枚舉的USB堆棧且在操作模式下建置新的USB 堆棧(作為第二枚舉的部分)。決策框620測(cè)試以查看第二枚舉是否成功。如果未成功,則控制傳送回到操作框 606,在操作框606處,再次開始第一枚舉。如果第二枚舉成功,則操作框622指示USB裝置 200在其操作模式下起作用,且雙枚舉過程600完成。圖6A展示在第一枚舉過程之后由操作系統(tǒng)顯示的示范性控制面板。類似地,圖6B 展示在第二枚舉過程之后由操作系統(tǒng)顯示的示范性控制面板。作為非限制性實(shí)例,當(dāng)枚舉完成時(shí),Windows 將新裝置新增到控制面板中的裝置管理器顯示中。當(dāng)從總線移除裝置時(shí),Windows 將所述裝置從裝置管理器移除。因此,圖6A展示在第一枚舉過程之后由Windows 顯示的示范性控制面板。展示加載器710端口,說明加載器驅(qū)動(dòng)程序162(圖3)可用于操作系統(tǒng)及其它客戶端軟件。正常用戶空間應(yīng)用程序及操作驅(qū)動(dòng)程序164(圖3)正尋找不同于加載器710的裝置。因此, 當(dāng)已在固件加載模式下枚舉USB裝置200時(shí),僅加載器驅(qū)動(dòng)程序162辨識(shí)出USB裝置200 以用于與客戶端軟件通信。圖6B展示在第二枚舉過程之后由Windows⑧顯示的示范性控制面板,其指示對(duì)于多個(gè)裝置的復(fù)合枚舉。現(xiàn)在,將診斷端口 750及NMEA(國(guó)家航海電子協(xié)會(huì))端口 740展示為客戶端軟件。另外,控制面板展示USB調(diào)制解調(diào)器720及USB網(wǎng)絡(luò)適配器730。另外,現(xiàn)在從圖 6B的控制面板去掉圖6A中所展示的加載器710端口。當(dāng)然,一般所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,端口、適配器及其它功能對(duì)于使用本發(fā)明的示范性實(shí)施例的不同類型的USB裝置200 可能不同。所屬領(lǐng)域的技術(shù)人員將理解,可使用多種不同技術(shù)及技藝中的任一者來表示信息及信號(hào)。舉例來說,可通過電壓、電流、電磁波、磁場(chǎng)或粒子、光場(chǎng)或粒子,或其任何組合來表示可能貫穿以上描述而引用的數(shù)據(jù)、指令、命令、信息、信號(hào)、位、符號(hào)及碼片。所屬領(lǐng)域的技術(shù)人員將進(jìn)一步了解,結(jié)合本文中所揭示的實(shí)施例而描述的各種說明性邏輯塊、模塊、電路及算法步驟可實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚地說明硬件與軟件的此可互換性,已在上文大體按照其功能性描述了各種說明性組件、 塊、模塊、電路及步驟。將此功能性實(shí)施為硬件還是軟件視特定應(yīng)用及強(qiáng)加于整個(gè)系統(tǒng)上的設(shè)計(jì)約束而定。對(duì)于每一特定應(yīng)用來說,所屬領(lǐng)域的技術(shù)人員可用變化的方式實(shí)施所描述的功能性,但不應(yīng)將所述實(shí)施決策解釋為導(dǎo)致脫離本發(fā)明的示范性實(shí)施例的范疇??赏ㄟ^通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或經(jīng)設(shè)計(jì)以執(zhí)行本文中所描述的功能的其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件或其任何組合來實(shí)施或執(zhí)行結(jié)合本文中所揭示的實(shí)施例而描述的各種說明性邏輯塊、模塊、控制器及電路。通用處理器可為微處理器,但在替代例中,所述處理器可為任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可實(shí)施為計(jì)算裝置的組合, 例如,DSP與微處理器的組合、多個(gè)微處理器、結(jié)合一 DSP核心的一個(gè)或一個(gè)以上微處理器, 或任何其它此類配置。
結(jié)合本文中所揭示的實(shí)施例所描述的方法或算法的步驟可直接體現(xiàn)于硬件中、由處理器執(zhí)行的軟件模塊中或所述兩者的組合中。軟件模塊可駐存于隨機(jī)存取存儲(chǔ)器(RAM)、 快閃存儲(chǔ)器、只讀存儲(chǔ)器(ROM)、電可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、寄存器、硬盤、可裝卸盤、CD-ROM,或此項(xiàng)技術(shù)中已知的任何其它形式的存儲(chǔ)媒體中。示范性存儲(chǔ)媒體耦合到處理器,使得處理器可從存儲(chǔ)媒體讀取信息及將信息寫入到存儲(chǔ)媒體。在替代例中,存儲(chǔ)媒體可與處理器成一體。處理器及存儲(chǔ)媒體可駐存于ASIC中。所述ASIC可駐存于用戶終端中。在替代例中,處理器與存儲(chǔ)媒體可作為離散組件駐存于用戶終端中。在一個(gè)或一個(gè)以上示范性實(shí)施例中,所描述的功能可用硬件、軟件、固件,或其任何組合來實(shí)施。如果用軟件來實(shí)施,則所述功能可作為一個(gè)或一個(gè)以上指令或代碼存儲(chǔ)于計(jì)算機(jī)可讀媒體上或經(jīng)由計(jì)算機(jī)可讀媒體傳輸。計(jì)算機(jī)可讀媒體包括計(jì)算機(jī)存儲(chǔ)媒體及通信媒體兩者,通信媒體包括促進(jìn)計(jì)算機(jī)程序從一處傳送到另一處的任何媒體。存儲(chǔ)媒體可為可由計(jì)算機(jī)存取的任何可用媒體。以實(shí)例說明而并非限制,所述計(jì)算機(jī)可讀媒體可包含 RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置,或可用以載運(yùn)或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所要程序代碼且可由計(jì)算機(jī)存取的任何其它媒體。 又,可恰當(dāng)?shù)貙⑷魏芜B接稱為計(jì)算機(jī)可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(DSL),或例如紅外線、無線電及微波的無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸軟件,則同軸電纜、光纖電纜、雙絞線、DSL或例如紅外線、無線電及微波的無線技術(shù)包括于媒體的定義中。如本文中所使用,磁盤及光盤包括壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟磁盤及藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤通過激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。上述各物的組合也應(yīng)包括在計(jì)算機(jī)可讀媒體的范疇內(nèi)。提供所揭示的示范性實(shí)施例的前述描述以使任何所屬領(lǐng)域的技術(shù)人員能夠制作或使用本發(fā)明。這些示范性實(shí)施例的各種修改對(duì)于所屬領(lǐng)域的技術(shù)人員來說將顯而易見, 且本文所界定的一般原理可在不脫離本發(fā)明的精神或范疇的情況下應(yīng)用到其它實(shí)施例。因此,本發(fā)明并不意在限于本文中所展示的實(shí)施例,而應(yīng)符合與本文中所揭示的原理及新穎特征相一致的最廣泛范疇。
權(quán)利要求
1.一種USB裝置,其包含存儲(chǔ)器,其用于保持用于所述USB裝置的操作的固件;控制器,其用于執(zhí)行所述固件;第一裝置描述符,其用于在固件加載模式下枚舉所述USB裝置;以及第二裝置描述符,其用于在操作模式下枚舉所述USB裝置;其中所述固件包含第一固件,其用于控制所述固件加載模式;以及第二固件,其用于控制所述操作模式。
2.根據(jù)權(quán)利要求1所述的USB裝置,其中所述第一固件是在USB主機(jī)上且用于在所述固件加載模式期間下載到所述存儲(chǔ)器。
3.根據(jù)權(quán)利要求1所述的USB裝置,其進(jìn)一步包含非易失性存儲(chǔ)器,且其中所述第一固件是用于選自由以下各者組成的群組的模式在所述固件加載模式期間移動(dòng)到所述存儲(chǔ)器,或在所述固件加載模式期間由所述控制器從所述非易失性存儲(chǔ)器執(zhí)行。
4.根據(jù)權(quán)利要求1所述的USB裝置,其中所述第二固件是在USB主機(jī)上且用于在所述固件加載模式期間下載到所述存儲(chǔ)器。
5.根據(jù)權(quán)利要求1所述的USB裝置,USB進(jìn)一步包含非易失性存儲(chǔ)器,且其中所述第二固件是用于選自由以下各者組成的群組的模式在所述固件加載模式期間移動(dòng)到所述存儲(chǔ)器,或在所述操作模式期間由所述控制器從所述非易失性存儲(chǔ)器執(zhí)行。
6.根據(jù)權(quán)利要求1所述的USB裝置,其中所述第一裝置描述符包含第一供貨商識(shí)別符及第一產(chǎn)品識(shí)別符。
7.根據(jù)權(quán)利要求6所述的USB裝置,其中所述第二裝置描述符包含第二供貨商識(shí)別符及第二產(chǎn)品識(shí)別符。
8.根據(jù)權(quán)利要求7所述的USB裝置,其中所述第一供貨商識(shí)別符與所述第二供貨商識(shí)別符相同。
9.根據(jù)權(quán)利要求1所述的USB裝置,其中所述USB裝置進(jìn)一步包括天線,且所述USB裝置是作為廣域網(wǎng)裝置而用于無線操作。
10.一種USB主機(jī),其用于可操作地耦合到USB裝置且包含計(jì)算指令,所述計(jì)算指令用于由計(jì)算機(jī)執(zhí)行以使用來自所述USB裝置的第一裝置描述符來執(zhí)行所述USB裝置的第一枚舉;從所述USB裝置接收重新枚舉指示符;以及使用來自所述USB裝置的第二裝置描述符來執(zhí)行所述USB裝置的第二枚舉。
11.根據(jù)權(quán)利要求10所述的USB主機(jī),其中所述用于由所述計(jì)算機(jī)執(zhí)行的計(jì)算指令進(jìn)一步包括用以在所述第一枚舉期間將第一固件從所述USB主機(jī)移動(dòng)到所述USB裝置上的存儲(chǔ)器的指令,所述第一固件用于在所述第一枚舉期間控制所述USB裝置上的操作。
12.根據(jù)權(quán)利要求10所述的USB主機(jī),其中所述用于由所述計(jì)算機(jī)執(zhí)行的計(jì)算指令進(jìn)一步包括用以在所述第一枚舉期間將第二固件從所述USB主機(jī)移動(dòng)到所述USB裝置上的存儲(chǔ)器的指令,所述第二固件用于在所述第二枚舉之后在操作模式期間控制所述USB裝置上的操作。
13.—種系統(tǒng),其包含USB裝置,其包含存儲(chǔ)器,其用于保持用于所述USB裝置的操作的固件; 控制器,其用于執(zhí)行所述固件;第一裝置描述符,其用于在固件加載模式下枚舉所述USB裝置;以及第二裝置描述符,其用于在操作模式下枚舉所述USB裝置;以及USB主機(jī),其可操作地耦合到所述USB裝置且用于通過如下操作來控制所述USB裝置使用所述第一裝置描述符來控制所述USB裝置的第一枚舉;且在所述第一枚舉之后從所述USB裝置接收重新枚舉指示符;以及使用所述第二裝置描述符來控制所述USB裝置的第二枚舉。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中第一固件是在所述USB主機(jī)上,用于在所述固件加載模式期間下載到所述存儲(chǔ)器。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述USB裝置進(jìn)一步包含非易失性存儲(chǔ)器,且其中所述非易失性存儲(chǔ)器中的第一固件是用于選自由以下各者組成的群組的模式在所述固件加載模式期間移動(dòng)到所述存儲(chǔ)器,或在所述固件加載模式期間由所述控制器從所述非易失性存儲(chǔ)器執(zhí)行。
16.根據(jù)權(quán)利要求13所述的系統(tǒng),其中用于控制所述操作模式的第二固件是在所述 USB主機(jī)上且用于在所述固件加載模式期間下載到所述存儲(chǔ)器。
17.一種方法,其包含 檢測(cè)USB拓?fù)渖系腢SB裝置;通過第一固件及第一裝置描述符枚舉所述USB裝置; 在固件加載模式下啟用所述USB裝置以供第一客戶端軟件存??; 將第二固件下載到所述USB裝置的存儲(chǔ)器; 通過第二裝置描述符來枚舉所述USB裝置;以及在使用所述第二固件的操作模式下啟用所述USB裝置以供第二客戶端軟件存取。
18.根據(jù)權(quán)利要求17所述的方法,其進(jìn)一步包含通過廣域網(wǎng)裝置中的無線通信來操作所述USB裝置。
19.根據(jù)權(quán)利要求17所述的方法,其中下載所述第二固件包含選自由以下各者組成的群組的動(dòng)作從USB主機(jī)下載到所述存儲(chǔ)器,及從所述USB裝置上的非易失性存儲(chǔ)器下載到所述存儲(chǔ)器。
20.根據(jù)權(quán)利要求17所述的方法,其中通過所述第一固件枚舉所述USB裝置進(jìn)一步包含將所述第一固件下載到所述存儲(chǔ)器。
21.根據(jù)權(quán)利要求20所述的方法,其中下載所述第一固件包含選自由以下各者組成的群組的動(dòng)作從USB主機(jī)下載到所述存儲(chǔ)器,及從所述USB裝置上的非易失性存儲(chǔ)器下載到所述存儲(chǔ)器。
22.根據(jù)權(quán)利要求17所述的方法,其中所述第一裝置描述符包含第一供貨商識(shí)別符及第一產(chǎn)品識(shí)別符。
23.根據(jù)權(quán)利要求22所述的方法,其中所述第二裝置描述符包含第二供貨商識(shí)別符及第二產(chǎn)品識(shí)別符。
24.根據(jù)權(quán)利要求23所述的方法,其中所述第一供貨商識(shí)別符與所述第二供貨商識(shí)別符相同。
25.—種系統(tǒng),其包含用于檢測(cè)USB拓?fù)渖系腢SB裝置的裝置;用于通過第一固件及第一裝置描述符枚舉所述USB裝置的裝置;用于在固件加載模式下啟用所述USB裝置以供第一客戶端軟件存取的裝置;用于將第二固件下載到所述USB裝置的存儲(chǔ)器的裝置;用于通過第二裝置描述符來枚舉所述USB裝置的裝置;以及用于在使用所述第二固件的操作模式下啟用所述USB裝置以供第二客戶端軟件存取的裝置。
26.根據(jù)權(quán)利要求25所述的系統(tǒng),其進(jìn)一步包含用于通過廣域網(wǎng)裝置中的無線通信來操作所述USB裝置的裝置。
27.根據(jù)權(quán)利要求25所述的系統(tǒng),其中所述用于下載所述第二固件的裝置包含選自由以下各者組成的群組的裝置用于從USB主機(jī)下載到所述存儲(chǔ)器的裝置,及用于從所述USB 裝置上的非易失性存儲(chǔ)器下載到所述存儲(chǔ)器的裝置。
28.根據(jù)權(quán)利要求25所述的系統(tǒng),其中所述用于通過所述第一固件枚舉所述USB裝置的裝置進(jìn)一步包含用于將所述第一固件下載到所述存儲(chǔ)器的裝置。
29.根據(jù)權(quán)利要求觀所述的系統(tǒng),其中所述用于下載所述第一固件的裝置包含選自由以下各者組成的群組的裝置用于從USB主機(jī)下載到所述存儲(chǔ)器的裝置,及用于從所述USB 裝置上的非易失性存儲(chǔ)器下載到所述存儲(chǔ)器的裝置。
30.根據(jù)權(quán)利要求25所述的系統(tǒng),其中所述第一裝置描述符包含第一供貨商識(shí)別符及第一產(chǎn)品識(shí)別符。
31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中所述第二裝置描述符包含第二供貨商識(shí)別符及第二產(chǎn)品識(shí)別符。
32.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述第一供貨商識(shí)別符與所述第二供貨商識(shí)別符相同。
全文摘要
示范性實(shí)施例是針對(duì)USB系統(tǒng)中的裝置的快速枚舉,所述USB系統(tǒng)包括USB裝置及USB主機(jī)。所述USB裝置包括兩個(gè)裝置描述符、一用于保持用于所述USB裝置的操作的固件的存儲(chǔ)器,及一用于執(zhí)行所述固件的控制器。第一裝置描述符是用于在固件加載模式下枚舉所述USB裝置,且第二裝置描述符是用于在操作模式下枚舉所述USB裝置。所述USB主機(jī)使用所述第一裝置描述符來控制所述USB裝置的第一枚舉。在所述第一枚舉之后,所述USB主機(jī)從所述USB裝置接收重新枚舉指示符,且使用所述第二裝置描述符來控制所述USB裝置的第二枚舉。
文檔編號(hào)G06F9/445GK102272723SQ201080004364
公開日2011年12月7日 申請(qǐng)日期2010年1月13日 優(yōu)先權(quán)日2009年1月13日
發(fā)明者史蒂芬·F·哈里斯 申請(qǐng)人:高通股份有限公司