日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

USB中的端點詳細了解

 slimfeng 2019-08-06
/***********************************************************************

USB入門系列:

1、USB行業(yè)標準介紹

2、USB具體通訊過程

3、USB中端點詳細了解

4、USB傳輸之控制傳輸

......(待補充)

************************************************************************/


前言
    端點在實際的USB通訊過程種的具體作用與含義十分重要,但是有些難以理解,自己整理一些知識作為備忘。
(注:
    1、文中的EP表示Endpoint;

一、端點概念。
    端點(Endpoint),是主機與設備之間通訊數(shù)據(jù)的接收或來源。主機與設備之間通信時最終會總用于設備上的各個端點,它是主機與設備間通信流的一個邏輯終端。一系列相互獨立的端點在一起構成了USB邏輯設備,在系統(tǒng)結構中,位于下方紅色方框內(nèi):

二、端點的分類
    每個USB設備都有一個唯一的設備地址,設備地址是設備連接上主機時由主機分配的,主機主要依靠這個設備地址對USB設備進行訪問。但是在設備內(nèi)部地址會被分的更細,設備會分出一些端點來,每個端點在設備都會有唯一的端點號,這個端點號是設計設備時給定的。如端點0,端點1等。一個設備最多可以包含16個端點,每個端點的地址為0-15。(網(wǎng)上也有說幾十個的,有待考究)    
    其中每個端點地址對應一個方向。例如端點3-IN,端點3-OUT,這兩個含義完全不同。但是需要注意其中的一個特殊端點--端點0,每個USB設備必須要有一個端點0,其作用為對設備枚舉和對設備進行一些基本的控制功能,端點0也被稱為控制端點。并且它與其他的端點還有一個不同之處在于端點0的數(shù)據(jù)傳輸方向是雙向的,即端點0既可以給主機發(fā)送數(shù)據(jù),也可以接收主機發(fā)送過來的數(shù)據(jù),而其它端點均為單向。
    雖然有16個端點,但通常我們只用到3個,如下:
     1)、EP0:做傳輸配置和控制信息;
     2)、EP1:做數(shù)據(jù)輸入IN_EP;
     3)、EP2:做數(shù)據(jù)輸出OUT_EP。

注意:除了端點0,其余的端點在設備配置之前不能與主機通信,只有向主機報告這些端點的特性并被確認后才能被激活。

三、端點的特性
    一個端點的特性決定了它與客戶軟件進行傳送的類型。一個端點具有以下一些特性:
   ·端點的總線訪問頻率要求
   ·端點的總線延遲要求
   ·端點的帶寬要求
   ·端點的端點號
   ·對錯誤處理的要求
   ·端點能接收或發(fā)送的包的最大長度
   ·端點的傳送類型
   ·端點與主機的數(shù)據(jù)傳送方向

四、端點描述符
    USB設備中端點描述符描述了端點信息,端點描述符格式如下:
typedef struct _USB_ENDPOINT_DESCRIPTOR_
{
    BYTE        bLength,
    BYTE        bDescriptorType,
    BYTE        bEndpointAddress,
    BYTE        bmAttributes,
    WORD      wMaxPacketSize,
    BYTE        bInterval
}USB_ENDPOINT_DESCRIPTOR;
各變量具體釋義如下:
bLength : 描述符大?。潭?x07.
bDescriptorType : 接口描述符類型.固定為0x05.
bEndpointType : USB設備的端點地址.Bit7,方向,對于控制端點可以忽略,1/0:IN/OUT.Bit6-4,保留.BIt3-0:端點號.
bmAttributes : 端點屬性.Bit7-2,保留.BIt1-0:00控制,01同步,02批量,03中斷.
wMaxPacketSize : 本端點接收或發(fā)送的最大信息包大小.
bInterval : 輪訓數(shù)據(jù)傳送端點的時間間隔.對于批量傳送和控制傳送的端點忽略.對于同步傳送的端點,必須為1,對于中斷傳送的端點,范圍為1-255。

五、端點與管道
1、管道的概念
    管道主機軟件(數(shù)據(jù)緩存區(qū)),和USB設備各各端點之間的數(shù)據(jù)傳輸連接,他是兩者之間通信流的抽象(實際上數(shù)據(jù)傳輸是USB總線接口完成)。管道與USB設備中的端點逐個對應,并且各個管道的數(shù)據(jù)傳輸是相互獨立的。

2、管道的格式分類
    管帶的通信格式分為兩種,一種為流,另一種為消息,這兩種通信格式不同且互斥。
1)、“流”指不具有USB定義格式的數(shù)據(jù)流,流通道中的數(shù)據(jù)是流的形式,也就是該數(shù)據(jù)內(nèi)容不具有USB要求的結構。數(shù)據(jù)從流通道一端流進的順序與它們從流通道另一端流出時的順序是一樣的(先進先出),并且流通道中的通信流總是單向的
2)、“消息”指具有某種USB定義格式的數(shù)據(jù)流。消息通道與端點的關系同流通道與端點的關系是不同的。首先,主機向USB設備發(fā)出一個請求;接著,就是數(shù)據(jù)的傳送;最后,是一個狀態(tài)階段(這部分即一次命令請求的過程)。為了能夠容納請求/數(shù)據(jù)/狀態(tài)的變化,消息通道要求數(shù)據(jù)有一個格式,此格式保證了命令能夠被可靠地傳送和確認。消息通道允許雙方向的信息流。

六、端點的傳輸類型
    一個具體的端點只能屬于四個傳輸模式下中的一種。數(shù)據(jù)傳輸類型分為四種分別是:控制傳輸、批量傳輸、同步傳輸和中斷傳輸。一般情況下,通常把工作在什么模式下的端點就叫什么端點,例如:控制端點、批量端點、同步端點和中斷端點。
    端點0,是設備的默認控制端點,在設備上電后就存在并可以使用,在Set Config之前所有的傳輸都是通過端點0傳輸?shù)摹?/span>


總結:
    關于端點的了解暫時總結這么多,后面有時間繼續(xù)補充;歡迎大家指正上面可能存在的問題,我會及時改正。



    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多