USB數(shù)據(jù)流的模式與管線的概念
USB對于與設(shè)各之間的通信提供了特殊的協(xié)議。雖然USB系統(tǒng)的總線是呈階梯式星形的結(jié)構(gòu),但實際USB主機與設(shè)備的連接方式卻是如圖1所示的一對一形式,用戶稱之為USB設(shè)各的邏輯連接;而數(shù)據(jù)流的模式則是以這些邏輯連接為基本的架構(gòu)。
圖1 USB設(shè)備的邏輯連接
對于USB的通信,用戶可以將其視為一種虛擬管線的概念,如圖2所示。在整個USB的通信中包含了一個大的虛擬管線(12 Mbps)以及高達127個小的虛擬管線,而每一個小的虛擬管線可比擬為USB的設(shè)各。這是由于在USB令牌封包中都含有7個用來尋址的位(位于令牌封包的地址數(shù)據(jù)域ADDR),因此最多可尋址到128個設(shè)各。但是由于地址0是預設(shè)地址,且用來指定給所有剛連上的設(shè)各,這也就是為什么USB總線上最多能連接到127個設(shè)備的原因。
圖2 虛擬管線的概念
每一個連接到設(shè)備的小虛擬管線又可再細分為許多的微虛擬管線。這些微虛擬管線可比擬為端點(endpoint)。由于在令牌封包中,包含了4個位的端點地址(位于端點數(shù)據(jù)域,ENDP)以及一個位于端點描述符中的輸人/輸出方向(IN/OUT)位,所以在一個單獨的小虛擬管線內(nèi)最多可再分割成16組微虛擬管線(端點),也就是可對16個輸人/輸出的端點(共32個端點)尋址,并可將USB的令牌封包中定義為IN(設(shè)備至主機)或OUT(主機至設(shè)備)兩類型令牌封包。如果設(shè)備收到了一個IN令牌封包,它將會傳送數(shù)據(jù)給主機;反之如果收到了一個OUT令牌封包,則它將會從主機接收到數(shù)據(jù)。當然,如圖2所示的架構(gòu)是一種“虛擬”的,用戶需要有一點想像的空間 這種端點(或微虛擬管線)的概念非常重要,對于全速或高速的設(shè)備而言,更是這樣。
評論