usb通訊協議
④握手(Handshake)封包
握手封包僅包含SYNC和一個PID資料域,格式如下:
⑤特殊(special)封包
PRE是主機從高速傳輸變成低速傳輸時送來的封包。格式如下:
14.2.3 事務
事務處理(Transaction):在USB上資料資訊的一次接收或傳送的處理過程。
(1)輸入(IN)事務處理
輸入事務處理表示USB主機從總線上的某個USB裝置接收一個數據包的過程。
①正常的輸入事務處理
②裝置忙時的輸入事務處理
③裝置出錯時的輸入事務處理
(2)輸出(OUT)事務處理
①正常的輸出事務處理
②裝置忙時的輸出事務處理
③裝置出錯時的輸入事務處理
(3)設定(SETUP)事務處理
①正常的設定事務處理
②裝置忙時的設定事務處理
③裝置出錯時的設定事務處理
(4)幀起始(SOF)事務處理
(5)幀結束(EOF)事務處理
14.2.4 控制傳輸
在USB的傳輸中,制定了4種傳輸型別:控制傳輸、中斷傳輸、批量傳輸以及等時傳輸。
控制傳輸是USB傳輸中最重要的傳輸。它包含3種類型:控制讀取、控制寫入以及無資料控制。這3種控制傳輸型別又分為2~3個階段:設定階段、資料階段(無資料控制沒有此階段)以及狀態階段。
階段一:設定階段
主機從USB裝置獲取配置資訊,並設定裝置的配置值。
設定階段的資料交換包含了SETUP令牌封包、緊隨其後的DATA0資料封包以及ACK握手封包。它的作用是執行一個設定(概念含糊)的資料交換,並定義此控制傳輸的內容。
階段二:資料傳輸階段
資料傳輸階段用來傳輸主機與裝置之間的資料。控制讀取——將資料從裝置移到主機上;控制寫入——將資料從主機傳到裝置上。
階段三:狀態階段
狀態階段用來表示整個傳輸的過程已完全結束。
狀態階段傳輸的方向必須與資料階段的方向相反,即原來是IN令牌封包,這個階段應為OUT令牌封包;反之,原來是OUT令牌封包,這個階段應為IN令牌封包。對於控制讀取而言,主機會送出OUT令牌封包,其後再跟著0長度的DATA1封包。而此時,裝置也會做出相對應的動作,送ACK握手封包、NAK握手封包或STALL握手封包。相對地對於控制寫入傳輸,主機會送出IN令牌封包,然後裝置送出表示完成狀態階段的0長度的DATA1封包,主機再做出相對應的動作:送ACK握手封包、NAK握手封包或STALL握手封包。
14.2.5 裝置列舉
(1)裝置描述符
USB描述符就好像是USB外圍裝置的“身份證”一樣,詳細地記錄著外圍裝置相關的一切資訊。為了描述不同的資料,就需以不同型別的USB描述符來加以描述,它共有以下幾種型別:
①裝置描述符 ②配置描述符
③介面描述符 ④端點描述符
(2)USB裝置請求
在USB介面的通訊協議中,由於主機是取得絕對的主控權,因此,主機與裝置之間就必須遵循某種已溝通的特定命令格式,以達到通訊的目的。而這個命令格式就是USB規範書中所制定的“裝置請求”。
資料請求的資料格式內容
幾個主要的裝置請求
①Clear Feature ②Get Descriptor
③Set Address ④Set Configuration
(3)裝置列舉
裝置列舉可以簡單地概括為這樣的一個過程:主機通過USB裝置請求來取得裝置描述符並對該裝置進行配置。該過程可以簡化為如下5個步驟:
第一步,使用預設的地址0取得裝置描述符。
第二步,設定裝置的新地址。
第三步,使用新地址取得裝置描述符。
第四步,取得配置描述符。
第五步,設定配置描述符。
裝置列舉使用的是控制傳輸。上述的5個步驟必須符合控制傳輸的基本架構,第一步、第三步和第四步使用的是控制讀取,第二步和第五步使用的是無資料控制。