先了解一下USB設備的連接過程: 當 USB 設備接上或從 USB 設備移開的時候,主機啟動一個被稱作總線標識 (bus enumeration) 的進程,來標識并管理設備狀態的改變,當 USB 設備接上一個加電端口時,系統當采取以下操作: 1.USB 設備所連的集線器通過其通向主機
先了解一下USB設備的連接過程:
當USB設備接上或從USB設備移開的時候,主機啟動一個被稱作總線標識(bus enumeration)的進程,來標識并管理設備狀態的改變,當USB設備接上一個加電端口時,系統當采取以下操作:
1.USB設備所連的集線器通過其通向主機的狀態改變通道向主機,匯報本USB設備已連接上。此時,USB設備處于加電狀態,它所連接的端口是無效的。
2.主機通過尋問集線器決定此次狀態改變的確切含義。
3.主機一旦得知新設備已連上以后,它至少等待100ms以使得插入操作的完成以及設備電源穩定工作。然后主機發出端口使能及復位命令給那個端口。
4.集線器將發向端口的復位信號持續10ms。當復位信號撤消后,端口已經有效了。這時USB設備處于缺省狀態,并且可從VBUS汲取小于100mA的電能,所有設備寄存器及狀態已經被復位,設備可對缺省地址產生響應。
5.主機給設備分配一個唯一的地址,設備轉向編址狀態。(Address state)。
6.在USB設備接受設備地址之前,它的缺省控制通道(Default Control Pipe)在缺省地址處自然是可尋址的,主機通過讀取設備描述表,判決設備缺省通道的實際凈數據負載。
7.主機從設備讀取配置信息要從配置0讀到配置n-1,其中n為配置個數,此操作須花費幾個毫秒。
8.基于從設備取來的配置信息及設備如何被使用的信息,主機給設備一個配置值,此刻,設備就處于配置狀態(Configured state)并此配置有關的所有端節點,都按照配置各就各位,USB設備現在可以從VBUS得到描述中所要求的電量了。從設備的角度來講,它已經準備就緒了。
當UBS設備被取走時,集線器同樣會通知主機,斷開一個設備連接會使得設備所連接的端口無效,一收到斷開通知后,主機就會更新的拓撲信息。
地址分配
當USB設備連接以后,由主機負責給此設備分配一個唯一的地址,這個操作是在設備復位及端口使能操作以后。
配置
USB設備在正常被使用以前,必須被配置,由主機負責配置設備。主機一般會從USB設備獲取配置信息后再準定此設備有哪些功能。
作為配置操作的一部分,主機會設置設備的配置值,并且,如果必要的話會選擇合適的接口的備選設置。
只須一個簡單配置,一個設備可能支持多重接口。一個接口是一組端結點集合,它們代表了設備向主機提供的單一的功能或特性,用來與這組相關端結點通信的協議以及接口內各端結點的目的可以作為一個設備類的一部分或者由廠商制定具體定義。
另外,一個配置中的結口可能有備選設置。這些備選設置會重定義相關端結點的數目或特性。如果是這樣的話,設備必須支持GetInterface(接口請求)與Set Interface(接口設置)請求,來匯報及選擇指定的接口的設備選設置。
在每個設備配置下,每個接口描述表可能包括用來標識接口的及備選設置的域,接口被從0~N-1編號。n為配置所支持的能同時使用的接口數目,類似的設置的編號也從0開始。當設備初始化配置后,缺省設置是備選設置0。
為了支持通用的設備驅動程序管理一組相關的BUS設備,設備與接口描述表中包含了類(Class),子類(Sub class),及協議(Protocol)域。這些域用來標識一個設備的功能及用于通信的協議。
一個類值被分配給一組按照特性劃分成USB類說明一部分的設備。一個類的設備可進一步劃分成子類,并且在一個類或子類中,一個協議代值可定義主機軟件是怎樣與設備通信的。
數據傳送
數據可能以四種方式(控制,批量,中斷,同步)在USB設備端結點與主機之間傳送。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com