usb外設本身應包含一定數量的獨立的暫存器埠,並能由usb裝置驅動程式直接操作。這些暫存器也就是usb裝置的端點。乙個裝置可以有多個端點,但所有的usb裝置都必須有乙個零端點以用於設定,完成control型別傳送。
每乙個裝置都有乙個由主機分配的唯一的位址,而各個裝置上的端點都有裝置確定的端點號和通訊方向。每個端點只支援單向通訊,要麼是輸入端點,資料流方向是從裝置到主機;要麼是輸出端點,資料流方向是從主機到裝置。裝置位址、端點號和通訊方向三者結合起來就唯一確定了各個端點。
在裝置配置時,必須告訴主機裝置的各個端點的特性,包括端點號、通訊方向、端點支援的最大包大小、頻寬要求,以及支援的通訊方式等。其中,端點支援的最大包大小稱為資料有效負載(data payload),這是個重要的概念。前面提到的端點0比較特殊,它實際是由輸入和輸出兩個端點組成。每個裝置都必須有端點0、主機和它建立的預設管道(default pipe),用於配置裝置和實現對裝置的一些基本的控制功能。除了端點0,其餘的端點在裝置配置之前是不能和主機通訊的。只有裝置在配置描述符中報告了主機,它有那些端點及這些端點的特性,待主機確認後,這些端點才被啟用。除端點0之外,低速usb裝置最多只能有兩個端點,而全速裝置最多能有15個。
通訊流管道(pipe)是usb裝置的端點和主機軟體進行資料傳輸的通道。管道是從邏輯概念上來描述資訊傳輸的通道。usb協議規定了流管道(stream pipe)和訊息管道(message pipe)兩種管道。其中,訊息管道有定義的結構;預設控制管道屬於訊息管道。
在乙個傳輸發生之前,主機與裝置之間必須先建立乙個管道。因此,每條管道與端點的特性都有直接關係,它只能支援一種通訊方式。例如,乙個usb裝置應有乙個端點來支援接收資料的管道,還應有另乙個端點來支援傳送資料的管道。端點0所對應的管道稱為預設管道。usb主機對外設的控制就是通過在與外設之間相連的預設管道發「外設請求」來實現的。
usb中的endpoint 端點 和傳輸模式
端點 端點位於usb 外設內部,所有通訊資料的 或目的都基於這些端點,是乙個可定址的fifo。每個usb 外設有乙個唯一的位址,可能包含最多十六個端點。主機通過發出器件位址和每次資料傳輸的端點號,向乙個具體端點 fifo 傳送資料。每個端點的位址為0 到15,乙個端點位址對應乙個方向。所以,端點2 ...
usb中的endpoint 端點 和傳輸模式
端點 端點位於usb 外設內部,所有通訊資料的 或目的都基於這些端點,是乙個可定址的fifo。每個usb 外設有乙個唯一的位址,可能包含最多十六個端點。主機通過發出器件位址和每次資料傳輸的端點號,向乙個具體端點 fifo 傳送資料。每個端點的位址為0 到15,乙個端點位址對應乙個方向。所以,端點2 ...
usb中的endpoint 端點 和傳輸模式
端點 端點位於usb 外設內部,所有通訊資料的 或目的都基於這些端點,是乙個可定址的fifo。每個usb 外設有乙個唯一的位址,可能包含最多十六個端點。主機通過發出器件位址和每次資料傳輸的端點號,向乙個具體端點 fifo 傳送資料。每個端點的位址為0 到15,乙個端點位址對應乙個方向。所以,端點2 ...