概述
USB匯流排屬於一種輪詢式匯流排,主機控制連線埠初始化所有的數據傳輸。每一匯流排動作最多傳送三個數據包,包括令牌(Token)、數據(Data)、聯絡(HandShake)。
按照傳輸前制定好的原則,在每次傳送開始時,主機送一個描述傳輸動作的種類、方向、USB設備地址和終端號的USB數據包,這個數據包通常被稱為令牌包(TokenPacket)。USB設備從解碼後的數據包的適當位置取出屬於自己的數據。數據傳輸方向不是從主機到設備就是從設備到主機。
在傳輸開始時,由標誌包來標誌數據的傳輸方向,然後傳送端開始傳送包含信息的數據包或表明沒有數據傳送。接收端也要相應傳送一個握手的數據包表明是否傳送成功。傳送端和接收端之間的USB數據傳輸,在主機和設備的連線埠之間,可視為一個通道。USB中有一個特殊的通道一預設控制通道,它屬於訊息通道,設備一啟動即存在,從而為設備的設定、狀態查詢和輸入控制信息提供一個入口。
USB傳輸類型
數據和控制信號在主機和USB設備間的交換存在兩種通道:單向和雙向。
USB的數據傳送是在主機軟體和一個USB設備的指定連線埠之間。這種主機軟體和USB設備的連線埠間的聯繫稱作通道。總的來說,各通道之間的數據流動是相互獨立的。一個指定的USB設備可有許多通道。例如,一個USB設備存在一個連線埠,可建立一個向其它USB設備的連線埠,傳送數據的通道,它可建立一個從其它USB設備的連線埠接收數據的通道。
USB包含四種基本的數據傳輸類型:
控制傳輸:設備連線時用來對設備進行設定,還可對指定設備進行控制。
批量傳輸:大批量產生並使用的數據,在傳輸約束下,具有很廣的動態範圍。
中斷傳輸:用來描述或匹配人的感覺或對特徵反應的回饋。
同步傳輸:由預先確定的傳送延遲來填滿預定的USB頻寬。