USB匯流排簡介(一)

2021-10-07 19:50:21 字數 2045 閱讀 3091

usb(universal serial bus)是一種「通用序列外部匯流排」。首先,usb是一種「匯流排」,它與計算機內部的匯流排(如pci匯流排)不同,cpu不能通過訪問記憶體指令或者i/o指令直接訪問連線在usb上的裝置,而要通過乙個「usb控制器」,間接地與連線在usb上的裝置打交道,usb匯流排存在於計算機的外部,所以說是外部匯流排。其次usb訊號線一共只有兩條,線上的訊號是序列的,所以是「序列外部匯流排」。至於說「通用」,那是因為usb匯流排的設計從一開始就考慮到了許多不同種類的外部裝置,只要帶有usb介面(usb滑鼠、鍵盤、攝像頭、硬碟等)就都可以連線到usb匯流排上,並且可以在計算機帶電的條件下「現查現用」。

usb匯流排與外部裝置相連線,形成一種星形結構。usb主機可以直接和usb裝置連線也可以通過usb集中器再由usb集中器分叉連線到其它外部裝置。每個usb電纜的長度是5公尺,通過集中器級連時最多可以穿越5個集中器,從而使最大半徑達到29公尺。

usb裝置都帶有usb通訊控制器,裡面實際上包括了乙個微處理器,usb資訊的傳遞由控制器來完成。usb匯流排有個根集中器,通常與主控制器整合在同一晶元中。usb是一種主/從結構的星形網路。之所以說是主/從結構,是因為資訊在usb上的傳輸只能由主機啟動,而不能由裝置啟動,裝置永遠處於被動的地位。

usb通過具有一定格式的「信包」按照一定的「流程」傳輸資訊,這裡是不是很想網路傳輸啊,是的就是這樣。usb傳輸型別如下:

usb控制器把匯流排上的時間劃分成固定大小的「frame」,即「框架」,每個框架的大小為1毫秒。在每個框架中主機都可以與usb匯流排上的裝置相互傳送許多信包,但是在每一特定的時刻只能在乙個方向上傳送(半雙工鏈路)。由於usb匯流排是主從結構,所以每個互動中的第乙個信包總是從主機到裝置,因為只有主機可以發起一次互動。每個框架的開頭總是由主機向匯流排上的所有裝置廣播乙個特殊的「框架開始(sof)信包」,作為一種同步手段。框架的劃分是硬性的、沒有彈性的。時間一到,主機的usb控制器就發出sof信包。

主機與裝置之間的資訊傳遞又可以根據其目的分成三種:①應用資訊的傳遞,主要為資料以及由具體裝置規定的一些應用層上的控制/狀態資訊。從傳輸角度看,這些資訊對於usb匯流排是「透明」的,usb匯流排只負責傳遞,不參與解析。②usb匯流排為維持其本身的正常執行和管理所需的一些「usb層」的控制/狀態資訊,usb匯流排為這些資訊規定了特定的格式,如裝置描述符、介面描述符等③為了保證前兩種資訊的可靠傳輸,需要附加的資訊來輔助,稱為低層控制/狀態資訊。目的在於保證應用資訊或高層控制/狀態資訊的正確傳遞。

每次資訊的傳遞稱為一次「傳輸」,每次傳輸都由一次或數次「互動」構成。每次互動又包括三個資訊包(等時傳輸只有前兩個信包),其中第乙個信包總是由主機發出的低層控制資訊(token),包含互動物件以及後續的傳遞方向——>資料報——>確認資訊的信包(handshake)。每次互動只傳遞乙個資料信包,互動是乙個不可分割的整體,互動的信包傳遞必須在同乙個框架中完成。一次傳輸包含多次互動,則可以跨越多個時間框架。乙個框架可以包含多個互動,直到剩餘的時間不足以完成一次互動,然後停下等待下乙個框架的到來。

usb匯流排上的資訊流通都以信包的形式進行,可以分成下列幾類:

資料:互動的資料,內容為應用資訊或高層控制/狀態資訊。

握手:由資料信包接受方發出,說明對資料信包或傳令信包的接收情況。ack表示成功,nak表示出錯或無反應,stall表示不能接收

sof:用於框架的分隔,包含框架的序號

每個usb裝置上可以有乙個或多個「功能」,相當於"邏輯裝置"。在這些裝置中,這些功能的劃分和組合是可以改變的,此時一種特定的劃分和組合就稱為一種「配置」。在usb互動中,最小單元是端點,每個端點只支援一種性質的傳輸,除了用於控制傳輸的端點(端點0)為整個裝置所公用外,其它端點都屬於某個具體的功能,即邏輯裝置。主機與每個埠之間就是乙個邏輯上的管道。

主機負有排程usb匯流排上資訊傳輸的責任。每條usb匯流排有1024個等時互動佇列,這些佇列中都是等時互動請求。其餘的傳輸都分配不到具體的時間框架,usb匯流排控制器在執行完每個框架中的等時互動以後就會來執行這些佇列(控制、成塊、中斷)中的互動。

usb匯流排控制器根據其內部對時鐘脈衝的計數確定在什麼時候開始乙個框架以及哪乙個框架,接著就執行該框架的等時互動佇列,然後執行中斷互動。最後至少還有10%的時間剩餘用來執行其它佇列(成塊和控制)。等時互動和中斷互動在執行以後仍然留在佇列中。

USB匯流排協議 一

通訊過程 usb universal serial bus 統稱通用序列匯流排,主要是用於電腦裝置和外設連線和通訊。從硬體的層面看,包含usb介面 包含公頭和母頭 從軟體層面,通常指的是usb通訊協議,包含了握手 通訊等一系列行為的通訊定義。usb通訊協議由usb if usb implemente...

硬體匯流排學習之路 USB匯流排體系協議簡介

其實也想過很久,要不要去,猶豫了很久,本來想,其實不用這樣對技術痴迷,感覺,現在已經可以了,無所謂的非要這樣,去委屈自己,但是最後還是決定過去了,因為,真的就幾個月了,自己還沒有完全的想好,還有乙個原因,是自己想看看android是個什麼樣的,趁這個機會好好的了解一下整個系統,畢竟,目前,它是最最流...

USB匯流排介紹

1.usb發展史 usb universal serial bus 通用序列總 線,是一種外部匯流排標準,用於規範電腦與 外部裝置的連線和通訊。usb是在1994年底 由英特爾 康柏 ibm microsoft等多家公 司聯合提出的,自1996年推出後,已成功替 代串列埠和並口,成為當今個人電腦和大...