USB控制傳輸

2021-07-09 09:41:57 字數 2281 閱讀 7766

控制傳輸

控制傳輸是

usb傳輸中最重要的傳輸,只有正確地執行完控制傳輸,才能進一步地執行其他的傳輸型別。這種傳輸是用來提供介於主機與設各之間的配置、命令或狀態的通訊協議。控制傳輸能夠使能主機去讀取相關設各的資訊,去設定設各位址,以及選擇配置與其他的設定等。此外,控制傳輸也能夠送出自定義的要求,以針對任何的目的送出與接收資料。因此,須以雙向傳輸來達到這個要求。當然,所有的

usb裝置必須支援控制傳輸。

控制傳輸又包含了

3種控制傳輸形態:控制讀取、控制寫人以及無資料控制。其中,又可再分為2~

3個層:設定層、資料層(無資料控制沒有此層)以及狀態層。當然,根據通訊協議的簡易口訣,這最後的

3則為實現乙個控制傳輸所需的

3個資料交易層。通過這樣介紹,使用者或許會有點模糊。如圖1

所示。

圖1 usb

控制傳輸的關聯圖

每當裝置第一次連線到主機時,控制傳輸就可用來交換資訊,設定設各的位址或讀取裝置的描述符與要求。由於控制傳輸非常重要,所以必須確保傳輸的過程沒有發生任何錯誤。這個幀錯的過程可以使用

crc(

cyclic redundancy check

,迴圈校驗)錯誤檢查方式來加以檢測。如果這個錯誤無法恢復,只好再重新傳輸一次。

每乙個usb

裝置第一次執行控制傳輸時,占用了端點

0以及位址

0。其中,端點

0是作為控制傳輸的特定端點,別的

usb傳輸型別不能拿來使用;而位址

0,則是一開始外圍裝置所占用的預留位址。

控制傳輸都是採用對設各發出要求的方式,讓裝置可以遵循

usb主機所起始的要求格式。而這種傳輸方式,主要就是將資料從裝置傳回至主機上。例如,當主機發出了乙個

「裝置要求

」去讀取乙個裝置描述符時,就會執行控制傳輸。該要求的結構中包了

setp

封包以及隨後緊接著描述

「設各要求」的

8位元組資料的

data0

封包。以下,列出主機對外圍設各產生起始作用的

3種基本控制傳輸:

·控制讀取;

·控制寫人;

·無資料控制。

這些控制傳輸能夠再區分為

3種不同的資料交易的型態:設定層、資料層以及咿層,如表所列。每乙個階段即是乙個資料交易。乙個控制傳輸共需

3個資料交易,這即是

54233的第5

個數字「3」

。使用者也可同時參考表3,

1的傳輸型別、資料交易與包的關係。

表控制傳輸

另外,在執行控制傳輸的時候,還須使用資料緊密連線機制來確保整個的傳輸赳中,主機與裝置能維持同步,並確保資料的正確性。而執行控制傳輸時的資料緊密連程式,如圖2所示

圖2執行控制傳輸時,資料緊急密連線程式

其中,每乙個層即是乙個資料交易的過程。以下,依序介紹控制傳輸的各種層。

1.設定層

設定層的資料交易包含了:

setup

令牌封包與隨後跟著的

datao

資料封包以及

ack握手封包共

3個階段。在

data0

封包內包含了用來描述從主機所要送給裝置的要求,其所占用的

8個資料宇節即可描述這個設各要求。若這個設各送出

ack令牌封包給主機,代表確認收到了資料。

設定層是控制傳輸中的第一層,其作用是執行乙個設定的資料交易,並定義此控制傳輸的內容是什麼。此時,資料就會傳至設各中,並指明是何種設各要求。如圖

3所示,顯示了控制傳輸的設定層。其中,包含了起始封包(

sof)、令牌封包(

setup

)、資料封包(

data0

)以及握手封包(

ack)。其中,說明了起始封包、令牌封包以及資料封包是由

pc主機所發出的,而緊接著設各再發出握手封包。除了起始封包外,根據前一章所提及的

usb通訊協議簡易口訣,即是

54233的第4

個數字「3」

圖3控制傳輸的第一層:設定層

**連線:

USB控制傳輸

1 usb 端點解釋 2 usb驅動之 端點 endpoint 3 usb驅動 描述符 urb 管道 控制傳輸 控制傳輸是 usb傳輸中最重要的傳輸,只有正確地執行完控制傳輸,才能進一步地執行其他的傳輸型別。這種傳輸是用來提供介於主機與設各之間的配置 命令或狀態的通訊協議。控制傳輸能夠使能主機去讀取...

USB控制傳輸

乙個usb的控制傳輸如圖所示 乙個usb的控制傳輸分為2個或3個階段,setup stage,data stage 視情況而定 status stage。一 首先是setup stage,usb host總是先發起第乙個packet 1.host先傳送乙個setup包 2.然後host傳送乙個dat...

USB控制傳輸過程 詳細解析

首先,要明白兩個觀點。第一,usb匯流排上所有的事務 資料流傳輸 都是由usb host主動發起,而usb裝置永遠永遠都是只是被動地接收然後處理usb host發來的各種各樣的命令 要求 第二,中斷是usb host和usb裝置之間的信令員,usb host所有的要求都是通過這個信令員即中斷來通知u...