當USB插入USB總線時,USB控制器會自動為該USB裝置配置設定一個數字來标示這個裝置。另外,在裝置的每個端點都有一個數字來表明這個端點。
USB裝置驅動向USB控制器驅動請求的每次傳輸被稱為一個事務(Transaction),事務有四種類型,分别是Bulk Transaction、Control Transaction、Interrupt Transaction和Isochronous Transaction。每次事務都會分解成若幹個資料包在USB總線上傳輸。每次傳輸必須曆經兩個或三個部分,第一部分是USB控制器向USB裝置發出指令,第二部分是USB控制器和USB裝置之間傳遞讀寫請求,其方向主要看第一部分的指令是讀還是寫,第二部分有時候可以沒有。第三部分是握手信号。以下針對這四種傳輸,分别進行講解。
1.Bulk傳輸事務
顧名思義,改種事務傳輸主要是大塊的資料,傳送這種事務的管道叫做Bulk管道。這種事務傳輸的時候分為三部分,如圖17-10所示。第一部分是Host端發出一個Bulk的令牌請求,如果令牌是IN請求則是從Device到Host的請求,如果是OUT令牌,則是從Host到Device端的請求。
第二部分是傳送資料的階段,根據先前請求的令牌的類型,資料傳輸有可能是IN方向,也有可能是OUT方向。傳輸資料的時候用DATA0和DATA1令牌攜帶着資料交替傳送。
第三部分是握手信号。如果資料是IN方向,握手信号應該是Host端發出,如果是OUT方向,握手信号應該是Device端發出。握手信号可以為ACK,表示正常響應,也可以是NAK表示沒有正确傳送。STALL表示出現主機不可預知的錯誤。
在第二部分,即傳輸資料包的時候,資料傳送由DATA0和DATA1資料包交替發送。資料傳輸格式DATA1和DATA0,這兩個是重複資料,確定在1資料丢失時0可以補上,不至于資料丢失。如圖17-11所示。
![]() |
(點選檢視大圖)圖17-10 Bulk傳輸 |
|
圖17-11 Bulk傳輸時的令牌 |
2.控制傳輸事務
控制傳輸是負責向USB設定一些控制資訊,傳送這種事務的管道是控制管道。在每個USB裝置中都會有控制管道,也就是說控制管道在USB裝置中是必須的。控制傳輸也分為三個階段,即令牌階段、資料傳送階段、握手階段,如圖17-12所示。
|
圖17-12 控制傳輸事務 |
3.中斷傳輸事務
|
(點選檢視大圖)圖17-13 中斷傳輸事務 |
|