USB是英文Universal SerialBus的簡稱,中文名稱是“通用串行總線”。調查一下中關村的硬件市場,可以列舉出一大堆 USB 設備:USB移動硬盤、USB數碼相機、USBMP3播放器、USB數碼相機、USB鍵盤、鼠標、游戲手柄……仿佛所有的計算機硬件都沾上了USB的邊。USB支持即插即用(PlugandPlay),即允許外設在主機和其他外設工作時進行連接、配置、使用和刪除。應用USB總線規范,可以清除PC上過多的I/O接口,而僅以一個串行接口取代,使得PC與外部設備之間的連接變得更加容易。關鍵詞:
(1) 握手應答包(AcknowledgePacket,簡寫為ACK)。用于USB主機與設備之間數據傳輸時,指示應答的握手 信號。
(2)緩沖區(Buffer)。計算機或者是嵌入式系統中,用于暫時存儲不能及時或大量傳送的數據的內存單元。
(3) 批量傳輸(BulkTransfer)。USB的4種傳輸類型之一。用于對時間沒有特殊要求,但總量很大的數據的 傳輸。
(4) 總線枚舉(BusEnumeration)。USB主機對于USB設備的檢測和配置。
(5) 控制傳輸(ControlTransfer)。USB的4種傳輸類型之一。主要用于主機與設備之間配置、命令及狀態等 數據的傳輸。
(6)設備(Device)。這是一個非常重要的概念,是指能夠實現某種USB功能的邏輯或物理實體。USB協議將設 備分為3個層次:
從最低的層次來講,設備指的就是單個的元件,比如一個Flash存儲設備;
從更高一層次來講,設備是能夠實現某種特定功能的硬件的集合體,比如USB的接口設備;
最高層次上的USB設備,是指其所能夠實現的功能。在文中沒有特殊提到時,設備指的就是一個USB集線 器或者是一種USB的功能。比如優盤就是一個USB設備,因為它能實現USB的MassStorage的功能。
(7)端點(Endpoint,簡寫為EP)。又一個重要的概念。從物理機制來說,端點可以是嵌入式系統或PC上的一 個數據緩沖區,用來存放和發送 USB的各種數據;從邏輯上來說,端點可以視為數據的收發器,可以按 照定義的傳輸方式來交換數據。每個端點都有惟一確定的地址,即端點號。每個端點根據相關硬件芯片 的不同設置成不同的傳輸特性,比如輸入/輸出端點、配置端點及批量傳輸端點等。
(8)域(Field)。USB協議中規定的組成包的單元。
(9)幀(Frame)。這是一個時間概念,指的是從一個SOF令牌開始到下一個SOF發送之間的時間,其中包含了 一系列的數據傳送。
(10)功能(Function)。通過USB實現的某種作用或任務。比如USB的數碼相機等,它同時也是一個USB的設 備,起到了傳輸照片數據等的功能。
(11)人機交互設備(HumanInterface Device,簡寫為HID)。USB協議規定的設備類之一。常見的USB鼠標、 鍵盤等設備均屬于HID。Windows等操作系統對于HID有很好的支持,提供了完整的驅動程序。HID的PC 級開發因此僅需針對應用級用戶程序。
(12)主機(Host)。是整個USB體系的核心。它包括主機接口控制器硬件和驅動程序2個層次。
(13)集線器(Hub)。提供USB設備到主機的連接點。能夠為相應的 USB 設備提供電源,并在一定程度上檢測 和管理連接的USB設備。
(14)同步傳輸(IsochronousTransfer)。4種USB傳輸類型之一。適用于對時間有嚴格要求的數據的傳輸,比 如音頻數據的傳輸。USB總線能夠保證為同步傳輸提供固定的帶寬,并有可能因此占用批量傳輸等的帶 寬,而優先滿足同步傳輸的需要。
(15)最低有效位(LeastSignificant Bit,簡寫為 LSB)。
(16)微控制器(MicroController Unit ,簡寫為MCU)。國內俗稱單片機。
(17)最高有效位(MostSignificant Bit ,簡寫為MSB)。
(18)移動式USB(USB On TheGo,簡寫為OTG)。基于 USB協議2.0的補充版本,用于解決USB點對點通信的瓶 頸。OTG既具有USB主機的功能,又具有 USB設備的功能,并且能夠自由地在這兩種角色中進行切換。
(19)包(Packet)。USB協議中規定的有一定格式的數據組合。典型的一個包中,包含了該包的信息、傳輸的數 據和校驗糾錯信息等3部分。可以說,包是USB數據傳輸的最基本單位。
(20)個人計算機(PersonalComputer,簡寫為PC)。
(21)包標志域(PacketIdentified Field,簡寫為PID)。用于表明包的類型和格式的域。
(22)即插即用(Play andPlug,簡寫為PnP)。基于PC的一項技術,用于管理I/O地址、內存地址和IRQ等在內 的主機資源,使得外部設備能夠使用的PC中沒有沖突的某項資源。
(23)端口(Port)。USB設備的接入點,一般由集線器或USB主機的根集線器提供。
(24)事務(Transaction)。USB中基于一個端點的數據發送與接收的行為。注意與Transfer的區別。
(25)傳輸(Transfer)。USB的各種數據發送的總的格式。包括4種傳輸類型。傳輸由1筆或多筆事務組成。
(26)嵌入式USB主機(EmbeddedUSB Host)。隨著對USB點對點方案的發展,出現“嵌入式 USB主機”的解決 方案的需求,這也是一個新的提法和名稱。指的是在嵌入式系統中實現USB主機的功能,從功能上來 說,它應該完全具備和PC上一樣的所有USB主機的功能,但是,從實現的角度來講,由于PC有很大的不 同,因此,凡是書中敘述有關如此內容的時候,均會嚴格標注“嵌入式USB主機”。
USB的拓撲結構如下圖所示:
USB的拓撲體系由3種元素組成:主機、Hub和設備。在PC平臺上的USB中,PC就是主機和根Hub,用戶可以將設備和下級Hub與之連接。而這些附加的Hub又可以連接更下一級的Hub和設備,從而構成了星形結構。在USB協議1.1中,一個USB的拓撲網絡最多可以支持4個Hub層(包括最后一級設備后共5層)以及127個外設。而在最新的USB協議2.0中,對于Hub層的支持已經達到了6層(包括最后一級設備后共7層)。
下圖演示了一個完整的USB系統的軟硬件組成以及它們之間的聯系:
USB系統的軟硬件資源可以分為3個層次,即功能層、設備層和接口層。接口層涉及的是具體的物理層,其主要實現物理信號和數據包的交互,也就是在主機端的USB主控制器和設備端的USB總線接口之間傳輸實際的數據流。設備層主要提供USB基本的協議棧,執行通用的USB的各種操作和請求命令,從邏輯上講,就是USB系統軟件與USB邏輯設備之間的數據交換。最后,功能層提供每個USB設備所需的特定的功能,主機端的這個功能由用戶軟件和設備類驅動程序提供,而設備端就由功能單元來實現,它們之間的這種聯系看作是邏輯上的數據流。
最后,以下表來總結一下USB系統的所有軟硬件資源,并重新加以歸類。
|