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