專利名稱:通用串行總線(usb)的流控制的制作方法
技術(shù)領(lǐng)域:
本公開內(nèi)容總體上涉及數(shù)據(jù)通信,更具體地,涉及用于控制通過 USB的數(shù)據(jù)交換的技術(shù)。
背景技術(shù):
USB是一種串行總線,其廣泛用于將計(jì)算機(jī)與外部設(shè)備進(jìn)行互連, 所述外部設(shè)備例如鍵盤、鼠標(biāo)設(shè)備、打印機(jī)、掃描儀、記憶棒、磁盤驅(qū)動(dòng) 器、數(shù)字?jǐn)z像機(jī)、網(wǎng)絡(luò)攝像機(jī)等。USB也廣泛用于其它電子設(shè)備,例如個(gè) 人數(shù)字助理(PDA)、游戲機(jī)等。 USB利用一種以主機(jī)為中心(host-centric)的架構(gòu)來在USB主機(jī) (USB host)和耦合到USB主機(jī)的USB設(shè)備(USB device)之間進(jìn)行數(shù)據(jù)交換。 USB主機(jī)可以位于計(jì)算機(jī)上,而USB設(shè)備可以是通過USB線纜耦合到該 計(jì)算機(jī)的外部設(shè)備。在以主機(jī)為中心的架構(gòu)中,USB主機(jī)控制與所有USB 設(shè)備的通信。每當(dāng)新的USB設(shè)備耦合到計(jì)算機(jī)時(shí),USB主機(jī)和該USB設(shè) 備交換信令來配置該USB設(shè)備。此后,每當(dāng)USB主機(jī)希望向該USB設(shè)備 發(fā)送數(shù)據(jù)或從其接收數(shù)據(jù)時(shí),USB主機(jī)可以周期性地向該USB設(shè)備發(fā)送 令牌分組。每當(dāng)USB主機(jī)發(fā)出令牌分組時(shí),該USB設(shè)備可以從USB主機(jī) 接收數(shù)據(jù)或向其發(fā)送數(shù)據(jù)。 USB主機(jī)可以通過向USB設(shè)備發(fā)送令牌分組來開始事務(wù)處理 (transaction)。當(dāng)接收到令牌分組時(shí),如果USB設(shè)備臨時(shí)無法發(fā)送或接收數(shù) 據(jù),則USB設(shè)備可以發(fā)送否定確認(rèn)(NAK)握手分組。當(dāng)從USB設(shè)備接收 到NAK時(shí),USB主機(jī)可以通過稍后發(fā)送另一個(gè)令牌分組來重試被NAK的事務(wù)處理。 NAK握手分組可以用于USB中的流控制(flow control)。 USB設(shè)備 可以發(fā)送NAK握手分組以調(diào)整/調(diào)節(jié)(throttle)數(shù)據(jù)速率并防止其緩沖器下 溢(under-flowing)或上溢(over-flowing)。然而,被NAK的事務(wù)處理可能消 耗大量的USB帶寬和功率。因此本領(lǐng)域中需要有用來更高效地在USB中執(zhí)行流控制的技術(shù)。
發(fā)明內(nèi)容
本文描述了用以在USB中執(zhí)行流控制從而減少被NAK的事務(wù)處 理并改善數(shù)據(jù)性能和功率效率的技術(shù)。對于流控制,USB設(shè)備可以確定其 與USB主機(jī)交換數(shù)據(jù)的能力,并且可以基于其能力來發(fā)送用于流控制的通 知。在一種方案中,USB主機(jī)可以(例如,周期性地)向USB設(shè)備發(fā)送 令牌分組,以發(fā)起與USB設(shè)備的數(shù)據(jù)交換(例如,向USB設(shè)備發(fā)送數(shù)據(jù)或 從其接收數(shù)據(jù))。USB設(shè)備可以確定其無法與USB主機(jī)交換數(shù)據(jù),例如, 因?yàn)闆]有要發(fā)送的數(shù)據(jù)或者因?yàn)槠渚彌_器已滿或接近已滿。USB設(shè)備可以 向USB主機(jī)發(fā)送"流關(guān)閉(flowoff)"通知(例如,在中斷管道(pipe)上),以 暫停數(shù)據(jù)交換。USB主機(jī)可以接收流關(guān)閉通知,并暫停向USB設(shè)備發(fā)送 令牌分組。此后,USB設(shè)備可以確定其能夠與USB主機(jī)交換數(shù)據(jù)。USB 設(shè)備然后可以向USB主機(jī)發(fā)送"流開啟(flmvon)"通知,以恢復(fù)數(shù)據(jù)交換。 USB主機(jī)可以接收流開啟通知,并恢復(fù)向USB設(shè)備發(fā)送令牌分組。通過 在USB設(shè)備無法交換數(shù)據(jù)期間暫停令牌分組的傳輸,可以減少或避免被 NAK的事務(wù)處理。本公開內(nèi)容的各種方面和特征將在下面更詳細(xì)地描述。
圖1示出USB主機(jī)和USB設(shè)備的框圖。圖2A示出用以從USB設(shè)備讀取數(shù)據(jù)的入站(IN)事務(wù)處理。圖2B和2C示出用以向USB設(shè)備發(fā)送數(shù)據(jù)的出站(OUT)事務(wù)處理。圖3示出在無流控制的情況下令牌分組的傳輸和被NAK的事務(wù)處理。圖4示出使用在中斷管道上發(fā)送的通知的USB流控制。
圖5示出由USB設(shè)備執(zhí)行的用于流控制的處理。
圖6示出由USB主機(jī)執(zhí)行的用于流控制的處理。
圖7示出無線通信設(shè)備的框圖。
具體實(shí)施例方式本文所述的流控制技術(shù)可以用于USB、其他總線、基于輪詢的輸 入/輸出(I/0)系統(tǒng)、以及其中在實(shí)體之間交換數(shù)據(jù)的其它系統(tǒng)。為了清楚起 見,下面描述的技術(shù)具體針對被涵蓋在可公開獲得的文檔"通用串行總線 規(guī)范"(修訂版2.0, 2000年4月27日)中的USB。
USB使用下列術(shù)語
*功能(Function)-向USB主機(jī)提供能力/任務(wù)的USB設(shè)備
*端點(diǎn)(Endpoint)—在USB設(shè)備(或功能)和USB主機(jī)之間的通信流
中的信源或信宿。 *管道-USB主機(jī)和USB設(shè)備上的端點(diǎn)之間的邏輯信道,以及 *事務(wù)處理-針對端點(diǎn)的服務(wù)傳送,其由令牌分組、可選的數(shù)據(jù)分 組以及可選的握手分組構(gòu)成。
USB設(shè)備可以具有一個(gè)或多個(gè)功能,例如,網(wǎng)絡(luò)攝像機(jī)可以具有 用于視頻的一個(gè)功能和用于聲音的另一個(gè)功能。每個(gè)物理USB設(shè)備是通過 由USB主機(jī)分配的唯一的7位地址來標(biāo)識(shí)的。USB主機(jī)可以支持多達(dá)127 個(gè)物理USB設(shè)備,其127個(gè)不同地址為1至127。 一個(gè)功能可以具有一個(gè) 或多個(gè)端點(diǎn)。每個(gè)端點(diǎn)是通過4位的端點(diǎn)號來標(biāo)識(shí)的。例如, 一個(gè)功能可 以具有用于向USB主機(jī)發(fā)送數(shù)據(jù)的入站端點(diǎn)和用于從USB主機(jī)接收數(shù)據(jù) 的出站端點(diǎn),其中,"入站"和"出站"是從USB主機(jī)的角度來看的。
圖1示出USB設(shè)備110和USB主機(jī)120的一種方案的框圖。在該 方案中,USB主機(jī)110包括應(yīng)用112、功能驅(qū)動(dòng)器(driver) 114以及總線驅(qū) 動(dòng)器116。應(yīng)用112可以包括任意的有數(shù)據(jù)要與USB設(shè)備交換的應(yīng)用。應(yīng) 用112可以駐留在USB主機(jī)110上,如圖1所示,或者可以是其中駐留有 USB主機(jī)110的計(jì)算機(jī)或一些其它電子設(shè)備的一部分。功能驅(qū)動(dòng)器114管理針對耦合到USB主機(jī)110的功能的數(shù)據(jù)交換。功能驅(qū)動(dòng)器114與應(yīng)用 112交互,并發(fā)起事務(wù)處理以發(fā)送和/或接收數(shù)據(jù)用于所述應(yīng)用。總線驅(qū)動(dòng) 器116支持通過USB線纜130與USB設(shè)備進(jìn)行分組交換,并且執(zhí)行用于 分組交換的物理層處理??偩€驅(qū)動(dòng)器116可以在功能驅(qū)動(dòng)器114的控制下 發(fā)送和接收分組。 在圖1所示的方案中,USB設(shè)備120包括應(yīng)用122、功能124、 USB驅(qū)動(dòng)器126、入站緩沖器128a和出站緩沖器128b。通常,USB設(shè)備 120可以具有一個(gè)或多個(gè)功能。為了簡便起見,下述說明假設(shè)USB設(shè)備120 具有單個(gè)功能。應(yīng)用122可以包括任意的有數(shù)據(jù)要與USB主機(jī)110交換的 應(yīng)用。功能124與應(yīng)用122交互,并支持與USB主機(jī)110進(jìn)行針對應(yīng)用的 數(shù)據(jù)交換。USB驅(qū)動(dòng)器126支持通過USB線纜130與USB主機(jī)110進(jìn)行 分組交換,并執(zhí)行用于分組交換的物理層處理。入站緩沖器128a存儲(chǔ)要被 發(fā)送到USB主機(jī)110的數(shù)據(jù),而出站緩沖器128b存儲(chǔ)從USB主機(jī)110接 收到的數(shù)據(jù)。 圖1示出USB主機(jī)110和USB設(shè)備120的特定方案。通常,USB 主機(jī)可以包括與圖1所示的USB主機(jī)110中相同或不同的模塊。USB設(shè) 備也可以包括與圖1所示的USB設(shè)備120中相同或不同的模塊。每個(gè)模塊 都可以用硬件、固件、軟件或其組合來實(shí)現(xiàn)。 USB主機(jī)110可以發(fā)起事務(wù)處理,以從USB設(shè)備120處的功能124 的入站端點(diǎn)接收數(shù)據(jù),或者向功能124的出站端點(diǎn)發(fā)送數(shù)據(jù)。對于不同類 型的事務(wù)處理,可能交換不同的分組序列。USB 2.0支持三種不同的速度 設(shè)定-低速,涵蓋到高達(dá)1.5兆比特/秒(Mpbs);全速,涵蓋到高達(dá)12Mbps; 以及高速,涵蓋到高達(dá)480Mbps。對于不同速度設(shè)定的出站事務(wù)處理,可 能交換不同的分組序列。圖2A示出用于以全部三種速度設(shè)定從USB設(shè)備120讀取數(shù)據(jù)的 入站事務(wù)處理。對于入站事務(wù)處理,USB主機(jī)110發(fā)送入站令牌分組,其 為請求從USB設(shè)備120讀取數(shù)據(jù)的分組(步驟212)。入站令牌分組包含USB 設(shè)備120的地址和入站端點(diǎn)號。USB設(shè)備120接收入站令牌分組,確定其 有數(shù)據(jù)要發(fā)送且能夠發(fā)送該數(shù)據(jù),并向USB主機(jī)110發(fā)送數(shù)據(jù)分組(步驟 214)。 USB主機(jī)110接收數(shù)據(jù)分組,確定該分組被正確接收,并發(fā)送確認(rèn)(ACK)握手分組(步驟216)。步驟212、 214和216構(gòu)成了一次成功的入站 事務(wù)處理。對于稍后的另一個(gè)入站事務(wù)處理,USB主機(jī)110向USB設(shè)備120 中的功能124的入站端點(diǎn)發(fā)送入站令牌分組(步驟222)。 USB設(shè)備120接 收入站令牌分組,確定其沒有數(shù)據(jù)要發(fā)送或其無法發(fā)送數(shù)據(jù),并向USB主 機(jī)110發(fā)送NAK握手分組(步驟224)。 USB主機(jī)110接收NAK分組,并 可以在稍后重試該入站事務(wù)處理。步驟222和224構(gòu)成一次被NAK的入 站事務(wù)處理,其中,在USB主機(jī)110和USB設(shè)備120之間交換了兩個(gè)開 銷分組(而沒有數(shù)據(jù)分組)。圖2B示出以低速和全速向USB設(shè)備120發(fā)送數(shù)據(jù)的出站事務(wù)處 理。對于出站事務(wù)處理,USB主機(jī)110發(fā)送出站令牌分組,其為請求向 USB設(shè)備120寫入數(shù)據(jù)的分組(步驟232)。出站令牌分組包含USB設(shè)備120 的地址和出站端點(diǎn)號。USB主機(jī)110然后在出站令牌分組之后馬上就向 USB設(shè)備120發(fā)送數(shù)據(jù)分組,而不等待來自USB設(shè)備120的回復(fù)(步驟 234)。 USB設(shè)備120接收出站令牌分組,接收數(shù)據(jù)分組,確定該數(shù)據(jù)分組 被正確地接收,并發(fā)送ACK握手分組(步驟236)。步驟232、 234和236 構(gòu)成一次成功的低速或全速出站事務(wù)處理。對于稍后的另一個(gè)出站事務(wù)處理,USB主機(jī)110向USB設(shè)備120 處的功能124的出站端點(diǎn)發(fā)送出站令牌分組和數(shù)據(jù)分組(步驟242和244)。 USB設(shè)備120接收出站令牌分組和數(shù)據(jù)分組,確定其無法接收數(shù)據(jù),并發(fā) 送NAK握手分組(步驟246)。 USB主機(jī)110接收NAK分組,并可以稍后 重試該出站事務(wù)處理。步驟242、 244和246構(gòu)成一次被NAK的事務(wù)處理, 其中,對于一次不成功的傳輸,在USB主機(jī)110和USB設(shè)備120之間交 換了兩個(gè)開銷分組和一個(gè)數(shù)據(jù)分組。圖2C示出以高速向USB設(shè)備120發(fā)送數(shù)據(jù)的出站事務(wù)處理。對 于出站事務(wù)處理,USB主機(jī)IIO發(fā)送PING令牌分組,其為査詢USB設(shè)備 120接收數(shù)據(jù)的能力的分組(步驟252)。 PING分組被歸類為USB中的特殊 分組,但在本文中被稱為一種令牌分組。步驟252中的PING令牌分組包 含設(shè)備120的地址和出站端點(diǎn)號。USB設(shè)備120接收PING令牌分組,且 如果其能夠接收數(shù)據(jù),貝撥送ACK握手分組(步驟254)。當(dāng)接收到ACK后,USB主機(jī)110向USB設(shè)備120發(fā)送出站令牌分組和數(shù)據(jù)分組(步驟262 和264),而USB設(shè)備120返回ACK或NYET握手分組(步驟266)。步驟 252至266構(gòu)成一次成功的高速出站事務(wù)處理。對于稍后的另一個(gè)出站事務(wù)處理,USB主機(jī)110向USB設(shè)備120 發(fā)送PING令牌分組(步驟272)。 USB設(shè)備120接收PING令牌分組,確定 其無法接收數(shù)據(jù),并發(fā)送NAK握手分組(步驟274)。 USB主機(jī)110接收 NAK分組,并可以在稍后重試該出站事務(wù)處理。步驟272和274構(gòu)成一次 被NAK的出站事務(wù)處理,其中,對于一次不成功的傳輸,在USB主機(jī)110 和USB設(shè)備120之間交換了兩個(gè)開銷分組。如圖2A和2B所示,USB主機(jī)110控制與USB設(shè)備120的數(shù)據(jù) 交換。USB主機(jī)110發(fā)起從USB設(shè)備120讀取數(shù)據(jù)的入站事務(wù)處理以及 向USB設(shè)備寫入數(shù)據(jù)的出站事務(wù)處理。USB主機(jī)110可以基于USB設(shè)備 120的數(shù)據(jù)需求和可用的USB帶寬,周期性地發(fā)送入站令牌分組。USB主 機(jī)110可以在每當(dāng)有數(shù)據(jù)要發(fā)送給USB設(shè)備120時(shí)就發(fā)送出站或PING令 牌分組。通常,USB主機(jī)110盲目發(fā)送入站令牌分組,并且預(yù)先并不知道 USB主機(jī)IIO有任何要發(fā)送的數(shù)據(jù)或能夠發(fā)送數(shù)據(jù)。此外,通常,USB主 機(jī)110在有數(shù)據(jù)要發(fā)送時(shí)發(fā)送出站或PING令牌分組,并且預(yù)先并不知道 USB主機(jī)IIO能夠接收數(shù)據(jù)。圖3示出USB主機(jī)110和USB設(shè)備120之間的分組交換的例子。 在該例子中,USB設(shè)備120具有與USB主機(jī)110的中斷管道和數(shù)據(jù)管道。 在USB中,管道通常與特定功能、特點(diǎn)端點(diǎn)以及特定方向相關(guān)聯(lián)。中斷管 道可以被認(rèn)為是信令信道,其可用于發(fā)送信令信息,例如,流控制信息。 通常,USB設(shè)備可以或可以不具有中斷管道。數(shù)據(jù)管道可以被認(rèn)為是數(shù)據(jù) 信道,其可以用于發(fā)送數(shù)據(jù)業(yè)務(wù)。數(shù)據(jù)管道可以是USB中的批量管道(bulk pipe)或等時(shí)管道(isochronous pipe),并可以用于入站或出站方向。管道是 單向的,并且可以針對從USB設(shè)備120到USB主機(jī)110的入站方向或者 從USB主機(jī)110到USB設(shè)備120的出站方向而攜帶信息。在圖3所示的 例子中,中斷管道和數(shù)據(jù)管道都是針對入站方向的。
中斷管道的端點(diǎn)可以在與USB主機(jī)110建立該管道期間指定該管 道的期望的總線訪問周期。中斷管道的總線訪問周期可以從以下范圍之一中選出
*如果該端點(diǎn)支持低速,則為10至255毫秒(ms), *如果該端點(diǎn)支持全速,則為l至255ms,
*如果該端點(diǎn)支持高速,則為0.125至0.125x2Mms,其中M^15。
USB主機(jī)110可以以周期Tintemipt向USB設(shè)備120發(fā)送針對中斷管 道的入站令牌分組,該周期可以等于或小于該中斷管道的總線訪問周期。 每當(dāng)接收到針對中斷管道的入站令牌分組時(shí),USB設(shè)備120可以向USB 主機(jī)110發(fā)送或者是帶有控制信息的數(shù)據(jù)分組或者是NAK握手分組,如 圖2A所示。 USB主機(jī)110可以以周期Tdata向USB設(shè)備120發(fā)送針對數(shù)據(jù)管道 的入站令牌分組,該周期可以是基于USB設(shè)備120的數(shù)據(jù)需求、可用的
USB帶寬等確定的。Tdata可以遠(yuǎn)小于Tinte呻pt,并且對于全速和高速而言可 以是在微秒Ois)的級別上。因此,對于所發(fā)送的針對中斷管道的每個(gè)入站
令牌分組,USB主機(jī)IIO可以發(fā)送許多個(gè)(例如,成百個(gè))針對數(shù)據(jù)管道的 入站令牌分組。每當(dāng)接收到針對數(shù)據(jù)管道的入站令牌分組時(shí),USB設(shè)備120 可以向USB主機(jī)IIO發(fā)送或者是帶有業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)分組或者是NAK握 手分組。為了簡便起見,圖3中并未示出ACK握手分組。
如圖3所示,對于數(shù)據(jù)管道而言,可能有許多個(gè)被NAK的事務(wù)處 理。被NAK的事務(wù)處理可能消耗大量的USB帶寬,并且可能減少USB 線纜上的其它管道的最大效率的數(shù)據(jù)吞吐。被NAK的事務(wù)處理也可能消 耗USB主機(jī)110和USB設(shè)備120中的功率,而不提供任何有益的結(jié)果。
在一個(gè)方面,為USB執(zhí)行流控制,以便減少或避免被NAK的事 務(wù)處理。這可以改進(jìn)數(shù)據(jù)性能和功率效率。為了進(jìn)行流控制,USB設(shè)備120 可以確定其與USB主機(jī)110交換數(shù)據(jù)的能力。USB設(shè)備120可以基于該 確定的能力向USB主機(jī)110發(fā)送通知以用于進(jìn)行流控制。
通常,USB設(shè)備120可以向USB主機(jī)110發(fā)送各種類型的信息以 用于流控制。例如,可以發(fā)送下列信息以用于流控制
參流關(guān)閉通知-指示暫停事務(wù)處理/數(shù)據(jù)交換,
*流開啟通知-指示恢復(fù)事務(wù)處理/數(shù)據(jù)交換,
*數(shù)據(jù)速率-指示要交換的業(yè)務(wù)數(shù)據(jù)的速率,*緩沖器大小-指示要在入站或者出站方向中發(fā)送的數(shù)據(jù)量,
令牌速率-指示要由USB主機(jī)110發(fā)送的令牌分組的速率,
*超時(shí)-用于周期性地確定是否允許進(jìn)行流控制,
參N發(fā)(N-shot)指示-指示執(zhí)行了 N次數(shù)據(jù)傳輸然后停止,其中 論l,
*控制持續(xù)時(shí)間-指示應(yīng)用流控制的持續(xù)時(shí)間。 流控制信息在與被流控制的管道不同的管道上發(fā)送。
在一種方案中,流控制是基于流關(guān)閉和流開啟通知(也可以被稱為 其它名字)來執(zhí)行的。在該方案中,當(dāng)USB設(shè)備120確定其內(nèi)無法針對特 定管道交換數(shù)據(jù)時(shí),USB設(shè)備120向USB主機(jī)110發(fā)送流關(guān)閉通知,以 暫停該管道上的事務(wù)處理。當(dāng)接收到流關(guān)閉通知后,USB主機(jī)110不再在 該管道上調(diào)度事務(wù)處理,這于是避免了由于被NAK的事務(wù)處理而導(dǎo)致的 USB帶寬的浪費(fèi)。當(dāng)USB設(shè)備120后來確定其再次能夠針對被暫停的管 道而交換數(shù)據(jù)時(shí),USB設(shè)備120向USB主機(jī)110發(fā)送流開啟通知,以恢 復(fù)該管道上的事務(wù)處理。當(dāng)接收到流開啟通知后,USB主機(jī)110恢復(fù)該管 道上的事務(wù)處理。在該方案中,流關(guān)閉和流開啟通知實(shí)質(zhì)上是要求在該管 道上停止和開始事務(wù)處理的請求??梢詫SB設(shè)備120處的每個(gè)管道獨(dú)立地執(zhí)行流控制。由于每個(gè) 管道是單向的,因此可以對入站和出站方向獨(dú)立地執(zhí)行流控制。也可以對 "捆綁"在一起的一組管道(例如,作為單個(gè)邏輯單元)執(zhí)行流控制。
USB設(shè)備120可以在上行(upstream)和/或下行(downstream)與USB 主機(jī)110交換數(shù)據(jù)。因此,交換數(shù)據(jù)可以是指在入站方向上(或上行)向USB 主機(jī)110發(fā)送數(shù)據(jù),或者是指在出站方向上(或下行)從USB主機(jī)110接收 數(shù)據(jù)。在給定方向上,出于各種原因,USB設(shè)備120可能無法成功地與 USB主機(jī)110交換數(shù)據(jù)。對于入站方向,如果沒有數(shù)據(jù)要發(fā)送,如果入站 緩沖器128a已空或接近己空,如果在USB設(shè)備中處理資源不可用等等, USB設(shè)備120可能無法向USB主機(jī)110發(fā)送數(shù)據(jù)。對于出站方向,如果 出站緩沖器128b已滿或接近已滿,如果在USB設(shè)備中處理資源不可用, 如果USB設(shè)備的CPU被其它任務(wù)占用等等,USB設(shè)備120可能無法從 USB主機(jī)110接收數(shù)據(jù)。
對于入站方向上的上行USB傳輸,當(dāng)USB設(shè)備120沒有任何數(shù) 據(jù)要在管道x上發(fā)送給USB主機(jī)110時(shí),USB設(shè)備120可以發(fā)送針對特 定管道x的流關(guān)閉通知。流關(guān)閉通知可以包括向USB主機(jī)110標(biāo)識(shí)出管道 x的信息。USB主機(jī)110可以停止在管道Jc上請求數(shù)據(jù),并因此可以暫停 向USB設(shè)備120發(fā)送針對管道x的入站令牌分組。當(dāng)USB設(shè)備120有數(shù) 據(jù)可用于在管道上發(fā)送時(shí),USB設(shè)備120可以向USB主機(jī)110發(fā)送針 對管道義的流開啟通知。流開啟通知可以包括向USB主機(jī)110標(biāo)識(shí)管道x 的信息。USB主機(jī)110然后可以恢復(fù)向USB主機(jī)110發(fā)送針對管道x的 入站令牌分組。在針對管道x的流關(guān)閉通知被發(fā)出時(shí),管道x上的上行USB傳輸 可能并未完成。在這種情況下,當(dāng)發(fā)送流開啟通知后,USB設(shè)備120可以 恢復(fù)上行USB傳輸,并且從其停止處繼續(xù)進(jìn)行。或者,USB設(shè)備120可 以從起始處重新開始上行USB傳輸,并且重傳在流關(guān)閉通知之前發(fā)出的那 一部分。對于出站方向上的下行USB傳輸,當(dāng)USB設(shè)備120確定其無法 在管道jc上從USB主機(jī)110接收數(shù)據(jù)時(shí),USB設(shè)備120可以發(fā)送針對特 定管道x的流關(guān)閉通知。例如,USB設(shè)備120中的出站緩沖器128b可能 己滿或接近已滿,并且USB設(shè)備120可能無法在那時(shí)或此后短時(shí)間內(nèi)接收 新的數(shù)據(jù)。流關(guān)閉通知可以包括向USB主機(jī)110標(biāo)識(shí)管道x的信息。USB 主機(jī)110可以停止在管道x上發(fā)送數(shù)據(jù),并因此可以暫停向USB設(shè)備120 發(fā)送針對管道x的出站或PING令牌分組。當(dāng)USB設(shè)備120再次能夠在管 道x上接收數(shù)據(jù)時(shí),USB設(shè)備120可以向USB主機(jī)110發(fā)送針對管道x 的流開啟通知。流開啟通知可以包括向USB主機(jī)UO標(biāo)識(shí)管道x的信息。 USB主機(jī)llO然后可以開始在管道x上發(fā)送數(shù)據(jù),并因此可以恢復(fù)向USB 設(shè)備120發(fā)送針對管道x的出站或PING令牌分組。在針對管道;c的流關(guān)閉通知被發(fā)出時(shí),管道x上的下行USB傳輸 可能并未完成。在這種情況下,當(dāng)收到流開啟通知后,USB主機(jī)llO可以 恢復(fù)下行USB傳輸,并且從其停止處繼續(xù)進(jìn)行?;蛘?,USB主機(jī)llO可 以從起始處重新開始下行USB傳輸,并且重傳在流關(guān)閉通知之前發(fā)出的那 一部分。
流關(guān)閉和流開啟通知可以以各種方式被發(fā)送,例如,使用現(xiàn)有的 USB消息或新的USB消息。在一種方案中,使用在用于通信設(shè)備的USB 類定義中所定義的現(xiàn)有的ConnectionSpeedChange通知消息,來傳遞流關(guān) 閉和流開啟通知。在該方案中,連接速度值零可以用于傳遞流關(guān)閉通知, 而非零值可以用于傳遞流開啟通知(以及可能的所允許的數(shù)據(jù)速率)??梢?在中斷管道上發(fā)送ConnectionSpeedChange通知消息。也可以用其它現(xiàn)有 的USB消息或?yàn)榇四康亩x的新的USB消息來傳遞流關(guān)閉和流開啟通知。
在一種方案中,流關(guān)閉和流開啟通知是在中斷管道上發(fā)送的,中 斷管道在USB設(shè)備120連接到USB主機(jī)110時(shí)總是可用的。中斷管道的 工作方式與數(shù)據(jù)管道類似。然而,中斷管道的總線訪問周期比數(shù)據(jù)管道的 慢得多,例如,中斷管道是在毫秒級上,而全速或高速數(shù)據(jù)管道是在微秒 級上。因此,對于中斷管道,USB主機(jī)110可以以比數(shù)據(jù)管道慢得多的速 率發(fā)送令牌分組。每當(dāng)USB設(shè)備120接收到針對中斷管道的入站令牌分組 時(shí),USB設(shè)備120可以在中斷管道上向USB主機(jī)110發(fā)送流控制通知消 息、NAK握手分組、或一些其它分組。流控制通知可以是流關(guān)閉通知或流 開啟通知。圖4示出使用在中斷管道上發(fā)送的通知的USB流控制的一種方 案。通常,可以針對入站方向和/或出站方向來執(zhí)行流控制。在圖4所示的 例子中,USB設(shè)備120具有中斷管道和數(shù)據(jù)管道,這兩個(gè)管道都是針對入 站方向。 USB主機(jī)110可以周期性地向USB設(shè)備120發(fā)送針對數(shù)據(jù)管道的 入站令牌分組。USB設(shè)備120可以通過向USB主機(jī)110發(fā)送或者ACK握 手分組和數(shù)據(jù)分組或者NAK握手分組來響應(yīng)每個(gè)入站令牌分組。在時(shí)間 T,, USB設(shè)備120確定其沒有數(shù)據(jù)要在數(shù)據(jù)管道上發(fā)送給USB主機(jī)110。 USB設(shè)備然后等待針對中斷管道的下一個(gè)入站令牌分組,并且在時(shí)間T2, 在中斷管道上向USB主機(jī)110發(fā)送流關(guān)閉通知消息。USB主機(jī)110接收 流關(guān)閉通知,并且在時(shí)間T3,開始暫停發(fā)送針對數(shù)據(jù)管道的入站令牌分組。 USB主機(jī)110可以周期性地發(fā)送針對中斷管道的入站令牌分組,其可能被 USB設(shè)備120NAK。在時(shí)間T4, USB設(shè)備120確定其有數(shù)據(jù)要在數(shù)據(jù)管道上發(fā)送給USB主機(jī)110。 USB設(shè)備120然后等待針對中斷管道的下一個(gè)入站令牌分 組,并且在時(shí)間T5,在中斷管道上向USB主機(jī)110發(fā)送流開啟通知消息。 USB主機(jī)110接收流幵啟通知,并且在時(shí)間T6,開始恢復(fù)發(fā)送針對數(shù)據(jù)管 道的入站令牌分組。如圖4所示,通過當(dāng)確定沒有數(shù)據(jù)要在數(shù)據(jù)管道上發(fā)送時(shí)發(fā)送流 關(guān)閉通知,可以減少或避免在數(shù)據(jù)管道上被NAK的事務(wù)處理。通過避免 數(shù)據(jù)管道上被NAK的事務(wù)處理而節(jié)省的帶寬可以用于其它管道,所述其 它管道共享連接到USB主機(jī)110的USB線纜。如圖4所示,每當(dāng)接收到針對中斷管道的入站令牌分組時(shí),USB 設(shè)備120可以或可以不發(fā)送流控制通知。因此,中斷管道上的一些事務(wù)處 理可能被NAK。然而,中斷管道的事務(wù)處理速率可能比數(shù)據(jù)管道的事務(wù)處 理速率低得多。因此,由于中斷管道上被NAK的事務(wù)處理而非數(shù)據(jù)管道 上被NAK的事務(wù)處理,更少的USB帶寬可能會(huì)被浪費(fèi)。此外,可以選擇 中斷管道的總線訪問周期,以獲得期望的針對發(fā)送通知的響應(yīng)時(shí)間,而同 時(shí)減少由于被NAK的事務(wù)處理而引起的開銷。在如圖4所示的方案中,USB設(shè)備120能夠在接收到針對中斷管 道的入站令牌分組之后(而非在任何時(shí)間)發(fā)送流控制通知。此外,從USB 主機(jī)110接收到流關(guān)閉通知時(shí)到在數(shù)據(jù)管道上事務(wù)處理被暫停時(shí)可能有一 些延遲。USB設(shè)備120可以以能夠解決中斷管道的總線訪問周期和USB 主機(jī)110的延遲的方式來發(fā)送流關(guān)閉通知。對于出站方向中的數(shù)據(jù)管道, USB設(shè)備120可以繼續(xù)從USB主機(jī)110接收數(shù)據(jù),直到出站事務(wù)處理被 暫停。USB設(shè)備120可以保留出站緩沖器128b中的一些容量,以便避免 在從發(fā)出流關(guān)閉通知時(shí)到USB主機(jī)110暫停數(shù)據(jù)管道上的事務(wù)處理時(shí)的過 渡期間中將出站事務(wù)處理NAK掉。可以基于期望的過渡期間的長度、數(shù) 據(jù)管道的最大或平均數(shù)據(jù)速率等來確定保留的緩沖器容量的大小。
在如圖4所示的方案中,僅基于流關(guān)閉和流開啟通知來執(zhí)行流控 制。在另一種方案中,流控制是基于數(shù)據(jù)速率(除了流關(guān)閉和流開啟通知、 或者代替了這二者)來執(zhí)行的。USB設(shè)備120可以向USB主機(jī)110發(fā)送數(shù) 據(jù)速率,USB主機(jī)110然后可以發(fā)送令牌分組,從而能夠達(dá)到該數(shù)據(jù)速率。 在另一種方案中,流控制是基于緩沖器大小來執(zhí)行的,緩沖器大小指示了可發(fā)送的數(shù)據(jù)量。USB主機(jī)110可以以基于緩沖器大小而確定的速率來發(fā) 送令牌分組。在再一種方案中,流控制是基于令牌速率(除了流關(guān)閉和流開 啟通知之外、或者代替了這二者)來執(zhí)行的。USB主機(jī)可以以該令牌速率 向USB設(shè)備120發(fā)送令牌分組。通常,可以基于任意上面列出的參數(shù)(例 如,流關(guān)閉和流開啟通知、數(shù)據(jù)速率、緩沖器大小、令牌速率、控制持續(xù) 時(shí)間等)或其它參數(shù)來執(zhí)行流控制。圖5示出USB設(shè)備執(zhí)行的用于流控制的處理500的一種方案???以確定USB設(shè)備與USB主機(jī)交換數(shù)據(jù)的能力(方框512)??梢曰谒_定 的USB設(shè)備的能力,向USB主機(jī)發(fā)送用于流控制的第一通知(方框514)。 可以確定USB設(shè)備交換數(shù)據(jù)的能力上的變化(方框516)??梢曰谒_定 的USB設(shè)備的能力變化向USB主機(jī)發(fā)送用于流控制的第二通知(方框 518)。可以針對USB設(shè)備和USB主機(jī)之間多個(gè)管道中的特定管道發(fā)送用 于流控制的通知。
對于方框512至518,可以確定USB設(shè)備無法與USB主機(jī)交換數(shù) 據(jù)。可以向USB主機(jī)發(fā)送流關(guān)閉通知,以暫停數(shù)據(jù)交換。此后,可以確定 USB設(shè)備能夠與USB主機(jī)交換數(shù)據(jù)??梢韵騏SB主機(jī)發(fā)送流開啟通知, 以恢復(fù)數(shù)據(jù)交換。流關(guān)閉和流開啟通知可以分別對應(yīng)于第一和第二通知。
對于入站方向中的管道,可以確定USB設(shè)備無法向USB主機(jī)發(fā) 送數(shù)據(jù),例如,由于沒有要發(fā)送的數(shù)據(jù)。可以向USB主機(jī)發(fā)送流關(guān)閉通知, USB主機(jī)然后可以暫停向USB設(shè)備發(fā)送入站令牌分組。此后,可以確定 USB設(shè)備能夠向USB主機(jī)發(fā)送數(shù)據(jù)??梢韵騏SB主機(jī)發(fā)送流開啟通知, USB主機(jī)然后可以恢復(fù)向USB設(shè)備發(fā)送入站令牌分組。
對于出站方向中的管道,可以確定USB設(shè)備無法從USB主機(jī)接 收數(shù)據(jù),例如,由于USB設(shè)備中的緩沖器已滿或接近已滿??梢韵騏SB 主機(jī)發(fā)送流關(guān)閉通知,USB主機(jī)然后可以暫停向USB設(shè)備發(fā)送出站或 PING令牌分組。某些保留的緩沖器容量可以用于解決由USB主機(jī)在接收 到流關(guān)閉通知之后在暫停出站或PING令牌分組的過程中的延遲。此后, 可以確定USB設(shè)備能夠從USB主機(jī)接收數(shù)據(jù)??梢韵騏SB主機(jī)發(fā)送流開 啟通知,USB主機(jī)然后可以恢復(fù)向USB設(shè)備發(fā)送出站或PING令牌分組。
可以在中斷管道上將用于流控制的通知發(fā)送給USB主機(jī)??梢詮腢SB主機(jī)接收到針對中斷管道的入站令牌分組,并且可以在接收到入站令
牌分組之后在中斷管道上發(fā)送用于流控制的通知。圖6示出USB主機(jī)執(zhí)行的用于流控制的處理600的一種方案。可 以向USB設(shè)備發(fā)送令牌分組以發(fā)起與USB設(shè)備的數(shù)據(jù)交換(方框612)。這 些令牌分組可以是請求獲得來自USB設(shè)備的數(shù)據(jù)的入站令牌分組,或者是 指示要將數(shù)據(jù)發(fā)送給USB設(shè)備的出站或PING令牌分組??梢詮腢SB設(shè) 備接收到用于流控制的第一通知(方框614)。響應(yīng)于第一通知,USB主機(jī) 可以改變向USB設(shè)備發(fā)送令牌分組(方框616)。例如,USB主機(jī)可以暫停 發(fā)送令牌分組或者可以以較慢的速率發(fā)送令牌分組。此后,可以從USB設(shè) 備接收到用于流控制的第二通知(方框618)。 USB主機(jī)可以恢復(fù)向USB設(shè) 備發(fā)送令牌分組(方框620)。所述令牌分組和通知可以是針對USB設(shè)備和USB主機(jī)之間多個(gè) 管道中的特定管道。可以在中斷管道上從USB設(shè)備接收所述通知。針對中 斷管道的入站令牌分組可以按照總線訪問周期來發(fā)送。在針對中斷管道的 入站令牌分組之后可以接收所述通知。本文所述的流控制技術(shù)可以用設(shè)備發(fā)起的高級流控制來實(shí)現(xiàn)。所 述技術(shù)可以被實(shí)現(xiàn)在當(dāng)前的USB規(guī)范中,使用現(xiàn)有的消息來發(fā)送流控制通 知。所述技術(shù)可以通過修改USB主機(jī)和USB設(shè)備處的上層驅(qū)動(dòng)器來實(shí)現(xiàn), 這可以簡化實(shí)現(xiàn)。本文所述的流控制技術(shù)可以提供某些優(yōu)勢。首先,利用流控制, 可以減少或避免被NAK的事務(wù)處理。所節(jié)省的帶寬可以被重新分配給其 它管道,從而可以改善USB線纜上的總體數(shù)據(jù)吞吐。第二,對于USB設(shè) 備和USB主機(jī),可以改善總體功率效率。本文所述的流控制技術(shù)可以用于USB主機(jī)和USB設(shè)備,所述USB 主機(jī)和USB設(shè)備普遍用于計(jì)算機(jī)、無線通信設(shè)備和其它電子設(shè)備。下面描 述針對無線設(shè)備該技術(shù)的使用。圖7示出無線通信系統(tǒng)中的無線通信設(shè)備700的一種方案的框圖。 無線設(shè)備700可以是無線電話、終端、手持設(shè)備、PDA等。無線通信系統(tǒng) 可以是碼分多址(CDMA)系統(tǒng)、全球移動(dòng)通信系統(tǒng)(GSM)等。
無線設(shè)備700能夠通過接收路徑和發(fā)射路徑來提供雙向通信。在接收路徑上,由基站(圖7未示出)發(fā)射的信號被天線712接收,并被提供 給接收機(jī)(RVCR)714。接收機(jī)714調(diào)整并數(shù)字化所接收的信號,并將采樣 提供給數(shù)字部分720以進(jìn)行進(jìn)一步的處理。在發(fā)射路徑上,發(fā)射機(jī)(TMTR) 716從數(shù)字部分720接收要發(fā)送的數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理和調(diào)整,并生成 調(diào)制信號,該調(diào)制信號被經(jīng)由天線712發(fā)送到基站。數(shù)字部分720包括各種處理、接口和存儲(chǔ)器單元,例如,調(diào)制解 調(diào)器處理器722、控制器/處理器724、內(nèi)部存儲(chǔ)器726、圖形處理單元(GPU) 728、中央處理單元(CPU) 730、外部總線接口(EBI) 732、 USB設(shè)備734、 以及USB主機(jī)736。調(diào)制解調(diào)器處理器722可以執(zhí)行用于數(shù)據(jù)發(fā)送和接收 的處理,例如,編碼、調(diào)制、解調(diào)和解碼??刂破?處理器724可以控制數(shù) 字部分720內(nèi)的各種單元的操作。內(nèi)部存儲(chǔ)器726可以為數(shù)字部分720內(nèi) 的各種單元存儲(chǔ)數(shù)據(jù)和/或指令。GPU728可以執(zhí)行圖形、圖像、視頻、文 本等的處理。CPU 730可以為無線設(shè)備700上的各種應(yīng)用執(zhí)行通用處理。 EBI 732可以便于數(shù)字部分720 (例如,內(nèi)部存儲(chǔ)器726)與主存儲(chǔ)器742之 間的數(shù)據(jù)傳輸。USB設(shè)備734可以與USB主機(jī)744通信,后者可以位于 膝上型計(jì)算機(jī)或其它電子設(shè)備中。USB主機(jī)736可以與USB設(shè)備746通 信,后者可以是顯示單元、揚(yáng)聲器、網(wǎng)絡(luò)攝像機(jī)等。USB設(shè)備734和/或 USB主機(jī)736可以實(shí)現(xiàn)本文所述的流控制技術(shù)。數(shù)字部分720可以用一個(gè)或多個(gè)處理器來實(shí)現(xiàn)。數(shù)字部分720也 可以被制造在一個(gè)或多個(gè)專用集成電路(ASIC)和/或一些其它類型的集成 電路(IC)上。本文所述的流控制技術(shù)可以用各種手段來實(shí)現(xiàn)。例如,這些技術(shù) 可以用硬件、固件、軟件或其組合來實(shí)現(xiàn)。對于硬件實(shí)現(xiàn),用于在USB主 機(jī)或USB設(shè)備處執(zhí)行流控制的處理單元可以被實(shí)現(xiàn)在一個(gè)或多個(gè)ASIC、 數(shù)字信號處理器(DSP)、數(shù)字信號處理器件(DSPD)、可編程邏輯器件(PLD)、 現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、電子 設(shè)備、其它設(shè)計(jì)用來執(zhí)行本文所述功能的電子單元、計(jì)算機(jī)、或其組合中。
對于固件和/或軟件實(shí)現(xiàn),所述流控制技術(shù)可以用執(zhí)行本文所述的 功能的模塊(例如,過程、函數(shù)等等)來實(shí)現(xiàn)。固件和/或軟件指令可以被存 儲(chǔ)在存儲(chǔ)器(例如,圖7中的存儲(chǔ)器726或742)中,并由處理器(例如,處理器724)來執(zhí)行。存儲(chǔ)器可以被實(shí)現(xiàn)在處理器內(nèi)部或處理器外部。固件和 /或軟件指令也可以被存儲(chǔ)于其它的處理器可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)、非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)、可編程 只讀存儲(chǔ)器(PROM)、電可擦PROM (EEPROM)、FLASH存儲(chǔ)器、光盤(CD)、 磁或光數(shù)據(jù)存儲(chǔ)設(shè)備等等。實(shí)現(xiàn)本文所述的技術(shù)的裝置可以是單獨(dú)的單元或者是一個(gè)設(shè)備的 一部分。該設(shè)備可以是(i)單獨(dú)的集成電路(IC); (ii)由一個(gè)或多個(gè)IC(可
以包括用于存儲(chǔ)數(shù)據(jù)和/或指令的存儲(chǔ)器IC)構(gòu)成的一組;(iii)諸如移動(dòng)臺(tái) 調(diào)制解調(diào)器(MSM)這樣的ASIC; (iv)可以被嵌入到其它設(shè)備中的模塊;(v) 移動(dòng)電話、無線設(shè)備、手持設(shè)備或移動(dòng)單元;(vi)等等。
前面提供了對本公開內(nèi)容的描述,以使本領(lǐng)域任何技術(shù)人員都可 以制造或使用本發(fā)明。對本公開內(nèi)容的任何修改對于本領(lǐng)域技術(shù)人員來說 都將是顯而易見的,并且本文所定義的一般性原理可以應(yīng)用于其它變型, 而不背離本公開內(nèi)容的實(shí)質(zhì)或范圍。因此,本公開內(nèi)容并不是要被限制于 本文所描述的例子和方案,而是要符合與本文所公開的原理和新穎特征相 一致的最廣范圍。
權(quán)利要求
1、一種裝置,包括處理器,用于確定通用串行總線(USB)設(shè)備與USB主機(jī)交換數(shù)據(jù)的能力,并基于所確定的所述USB設(shè)備的能力向所述USB主機(jī)發(fā)送用于流控制的通知;以及存儲(chǔ)器,其耦合到所述處理器。
2、 如權(quán)利要求l所述的裝置,其中,所述處理器針對所述USB設(shè)備 與所述USB主機(jī)之間的多個(gè)管道中的特定管道而發(fā)送用于流控制的所述 通知。
3、 如權(quán)利要求l所述的裝置,其中,所述處理器確定所述USB設(shè)備 無法與所述USB主機(jī)交換數(shù)據(jù),并向所述USB主機(jī)發(fā)送流關(guān)閉通知以暫 停數(shù)據(jù)交換。
4、 如權(quán)利要求3所述的裝置,其中,在發(fā)送所述流關(guān)閉通知之后,所 述處理器確定所述USB設(shè)備能夠與所述USB主機(jī)交換數(shù)據(jù),并向所述USB 主機(jī)發(fā)送流開啟通知以恢復(fù)數(shù)據(jù)交換。
5、 如權(quán)利要求l所述的裝置,其中,所述處理器確定所述USB設(shè)備 無法向所述USB主機(jī)發(fā)送數(shù)據(jù),并向所述USB主機(jī)發(fā)送流關(guān)閉通知,并 且其中,所述USB主機(jī)響應(yīng)于所述流關(guān)閉通知而暫停向所述USB設(shè)備發(fā) 送入站令牌分組。
6、 如權(quán)利要求5所述的裝置,其中,當(dāng)沒有要發(fā)送的數(shù)據(jù)時(shí),所述處 理器確定所述USB設(shè)備無法向所述USB主機(jī)發(fā)送數(shù)據(jù)。
7、 如權(quán)利要求5所述的裝置,其中,在發(fā)送所述流關(guān)閉通知之后,所 述處理器確定所述USB設(shè)備能夠向所述USB主機(jī)發(fā)送數(shù)據(jù),并向所述USB主機(jī)發(fā)送流開啟通知,并且其中,所述USB主機(jī)響應(yīng)于所述流開啟通知而 恢復(fù)向所述USB設(shè)備發(fā)送入站令牌分組。
8、 如權(quán)利要求l所述的裝置,其中,所述處理器確定所述USB設(shè)備 無法從所述USB主機(jī)接收數(shù)據(jù),并向所述USB主機(jī)發(fā)送流關(guān)閉通知,并 且其中,所述USB主機(jī)響應(yīng)于所述流關(guān)閉通知而暫停向所述USB設(shè)備發(fā) 送出站或PING令牌分組。
9、 如權(quán)利要求8所述的裝置,其中,當(dāng)所述USB設(shè)備處的緩沖器己 滿或接近已滿時(shí),所述處理器確定所述USB設(shè)備無法從所述USB主機(jī)接 收數(shù)據(jù)。
10、 如權(quán)利要求8所述的裝置,其中,當(dāng)所述USB設(shè)備處的緩沖器處 于預(yù)定填滿量之內(nèi)時(shí),所述處理器確定所述USB設(shè)備無法從所述USB主 機(jī)接收數(shù)據(jù),所述預(yù)定填滿量對應(yīng)于用以解決所述USB主機(jī)在接收到所述 流關(guān)閉通知之后暫停所述出站或PING令牌分組的過程中的延遲而保留的 緩沖器容量。
11、 如權(quán)利要求8所述的裝置,其中,在發(fā)送所述流關(guān)閉通知之后, 所述處理器確定所述USB設(shè)備能夠從所述USB主機(jī)接收數(shù)據(jù),并向所述 USB主機(jī)發(fā)送流開啟通知,并且其中,所述USB主機(jī)響應(yīng)于所述流開啟 通知而恢復(fù)向所述USB設(shè)備發(fā)送出站或PING令牌分組。
12、 如權(quán)利要求l所述的裝置,其中,所述處理器在中斷管道上向所 述USB主機(jī)發(fā)送用于流控制的所述通知。
13、 如權(quán)利要求12所述的裝置,其中,所述處理器從所述USB主機(jī) 接收針對所述中斷管道的入站令牌分組,并在接收到所述入站令牌分組之 后在所述中斷管道上發(fā)送用于流控制的所述通知。
14、 一種方法,包括確定通用串行總線(USB)設(shè)備與USB主機(jī)交換數(shù)據(jù)的能力;以及 基于所確定的所述USB設(shè)備的能力,向所述USB主機(jī)發(fā)送用于流控 制的通知。
15、 如權(quán)利要求14所述的方法,其中,確定所述USB設(shè)備的能力的 步驟包括確定所述USB設(shè)備無法與所述USB主機(jī)交換數(shù)據(jù);并且其中, 發(fā)送用于流控制的所述通知的步驟包括向所述USB主機(jī)發(fā)送流關(guān)閉通知 以暫停數(shù)據(jù)交換。
16、 如權(quán)利要求15所述的方法,還包括 確定所述USB設(shè)備能夠與所述USB主機(jī)交換數(shù)據(jù);以及 向所述USB主機(jī)發(fā)送流開啟通知,以恢復(fù)數(shù)據(jù)交換。
17、 如權(quán)利要求14所述的方法,其中,發(fā)送用于流控制的所述通知的 步驟包括在中斷管道上向所述USB主機(jī)發(fā)送用于流控制的所述通知。
18、 一種裝置,包括用于確定通用串行總線(USB)設(shè)備無法與USB主機(jī)交換數(shù)據(jù)的模塊;以及用于向所述USB主機(jī)發(fā)送流關(guān)閉通知以暫停數(shù)據(jù)交換的模塊。
19、如權(quán)利要求18所述的裝置,還包括用于確定所述USB設(shè)備能夠與所述USB主機(jī)交換數(shù)據(jù)的模塊;以及 用于向所述USB主機(jī)發(fā)送流開啟通知以恢復(fù)數(shù)據(jù)交換的模塊。
20、 一種處理器可讀介質(zhì),用于存儲(chǔ)用來進(jìn)行以下操作的指令: 確定通用串行總線(USB)設(shè)備無法與USB主機(jī)交換數(shù)據(jù);以及 向所述USB主機(jī)發(fā)送流關(guān)閉通知,以暫停數(shù)據(jù)交換。
21、 如權(quán)利要求20所述的處理器可讀介質(zhì),還用于存儲(chǔ)用來進(jìn)行以下操作的指令確定所述USB設(shè)備能夠與所述USB主機(jī)交換數(shù)據(jù);以及 向所述USB主機(jī)發(fā)送流開啟通知,以恢復(fù)數(shù)據(jù)交換。
22、 一種裝置,包括處理器,用于向通用串行總線(USB)設(shè)備發(fā)送令牌分組,從所述USB 設(shè)備接收用于流控制的第一通知,并響應(yīng)于所述第一通知而改變向所述 USB設(shè)備發(fā)送令牌分組;以及存儲(chǔ)器,其耦合到所述處理器。
23、 如權(quán)利要求l所述的裝置,其中,所述令牌分組和所述第一通知 是針對所述USB設(shè)備與USB主機(jī)之間的多個(gè)管道中的特定管道。
24、 如權(quán)利要求22所述的裝置,其中,所述處理器響應(yīng)于所述第一通 知而暫停向所述USB設(shè)備發(fā)送令牌分組。
25、 如權(quán)利要求22所述的裝置,其中,所述處理器響應(yīng)于所述第一通 知而以較慢的速率向所述USB設(shè)備發(fā)送令牌分組。
26、 如權(quán)利要求22所述的裝置,其中,所述處理器從所述USB設(shè)備 接收用于流控制的第二通知,并恢復(fù)向所述USB設(shè)備發(fā)送令牌分組。
27、 如權(quán)利要求22所述的裝置,其中,所述處理器向所述USB設(shè)備 發(fā)送入站令牌分組,以從所述USB設(shè)備請求數(shù)據(jù)。
28、 如權(quán)利要求22所述的裝置,其中,所述處理器向所述USB設(shè)備 發(fā)送出站或PING令牌分組,以指示有要向所述USB設(shè)備發(fā)送的數(shù)據(jù)。
29、 如權(quán)利要求22所述的裝置,其中,所述處理器向所述USB設(shè)備 發(fā)送針對數(shù)據(jù)管道的令牌分組,并在中斷管道上從所述USB設(shè)備接收所述 第一通知。
30、 如權(quán)利要求29所述的裝置,其中,所述處理器根據(jù)選定的總線訪 問周期發(fā)送針對所述中斷管道的入站令牌分組,并在發(fā)送針對所述中斷管 道的入站令牌分組之一之后接收用于流控制的所述第一通知。
31、 一種方法,包括向通用串行總線(USB)設(shè)備發(fā)送令牌分組; 從所述USB設(shè)備接收用于流控制的第一通知;以及響應(yīng)于所述第一通知,暫停向所述USB設(shè)備發(fā)送令牌分組。
32、 如權(quán)利要求31所述的方法,還包括從所述USB設(shè)備接收用于流控制的第二通知;以及 恢復(fù)向所述USB設(shè)備發(fā)送令牌分組。
33、 如權(quán)利要求31所述的方法,其中,接收用于流控制的所述第一通 知的步驟包括在中斷管道上從所述USB設(shè)備接收用于流控制的所述第一通知。
34、 一種裝置,包括用于向通用串行總線(USB)設(shè)備發(fā)送令牌分組的模塊; 用于從所述USB設(shè)備接收用于流控制的第一通知的模塊;以及 用于響應(yīng)于所述第一通知而暫停向所述USB設(shè)備發(fā)送令牌分組的模塊。
35、 如權(quán)利要求34所述的裝置,還包括用于從所述USB設(shè)備接收用于流控制的第二通知的模塊;以及 用于恢復(fù)向所述USB設(shè)備發(fā)送令牌分組的模塊。
36、 一種處理器可讀介質(zhì),用于存儲(chǔ)用來進(jìn)行以下操作的指令 向通用串行總線(USB)設(shè)備發(fā)送令牌分組; 從所述USB設(shè)備接收用于流控制的第一通知;以及 響應(yīng)于所述第一通知,暫停向所述USB設(shè)備發(fā)送令牌分組。
37、 如權(quán)利要求36所述的處理器可讀介質(zhì),還用于存儲(chǔ)用來進(jìn)行以下操作的指令從所述USB設(shè)備接收用于流控制的第二通知;以及 恢復(fù)向所述USB設(shè)備發(fā)送令牌分組。
全文摘要
描述了用于在通用串行總線(USB)中執(zhí)行流控制的技術(shù)。在一種方案中,USB主機(jī)向USB設(shè)備發(fā)送令牌分組,以發(fā)起與USB設(shè)備的數(shù)據(jù)交換。USB設(shè)備確定其無法與USB主機(jī)交換數(shù)據(jù),例如,因?yàn)闆]有要發(fā)送的數(shù)據(jù)或者因?yàn)槠渚彌_器已滿或幾乎已滿。USB設(shè)備然后向USB主機(jī)發(fā)送“流關(guān)閉”通知,以暫停數(shù)據(jù)交換。USB主機(jī)接收流關(guān)閉通知,并暫停向USB設(shè)備發(fā)送令牌分組。此后,USB設(shè)備確定其能夠與USB主機(jī)交換數(shù)據(jù)。USB設(shè)備然后向USB主機(jī)發(fā)送“流開啟”通知,以恢復(fù)數(shù)據(jù)交換。USB主機(jī)接收流開啟通知,并恢復(fù)向USB設(shè)備發(fā)送令牌分組。
文檔編號G06F13/42GK101449254SQ200780018713
公開日2009年6月3日 申請日期2007年5月25日 優(yōu)先權(quán)日2006年5月25日
發(fā)明者H·郭, J·A·戴克 申請人:高通股份有限公司