usbhost工作流程_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、USB枚舉步驟USB協(xié)議定義了設(shè)備的6種狀態(tài),僅在枚舉過程種,設(shè)備就經(jīng)歷了4個狀態(tài)的遷移:上電狀態(tài)(Powered),默認狀態(tài)(Default),地址狀態(tài)(Address)和配置狀態(tài)(Configured)(其他兩種是連接狀態(tài)(Attached)和掛起狀態(tài)(Suspend))。Attached和Powered狀態(tài)不難理解:當一個設(shè)備被正確插入到主機的USB接口時,就處于Attached(連接)的狀態(tài)。設(shè)備連接好了,USB設(shè)備就處于Sus

2、pended(掛起)狀態(tài)。USB主機識別了設(shè)備,同時沒有對設(shè)備進行請求,下面步驟是Windows系統(tǒng)下典型的枚舉過程,但是固件不能依此就認為所有的枚舉操作都是按照這樣一個流程行進。設(shè)備必須在任何時候都能正確處理所有的主機請求。1.用戶把USB設(shè)備插入USB端口或給系統(tǒng)啟動時設(shè)備上電這里指的USB端口指的是主機下的根連接著的設(shè)備處于上電狀態(tài)。hub或主機下行端口上的hub端口。Hub給端口供電,2.Hub監(jiān)測它各個端口數(shù)據(jù)線上(DD)的電

3、壓在hub端,數(shù)據(jù)線D和D都有一個阻值在14.25k到24.8k的下拉電阻Rpd,而在設(shè)備端,D(全速,高速)和D(低速)上有一個1.5k的上拉電阻Rpu。當設(shè)備插入到hub端口時,有上拉電阻的一根數(shù)據(jù)線被拉高到幅值的90%的電壓(大致是3V)。hub檢測到它的一根數(shù)據(jù)線是高電平,就認為是有設(shè)備插入,并能根據(jù)是D還是D被拉高來判斷到底是什么設(shè)備(全速低速)插入端口(全速、高速設(shè)備的區(qū)分在后面的章節(jié)中描述)。檢測到設(shè)備后,hub繼續(xù)給設(shè)備

4、供電,但并不急于與設(shè)備進行USB傳輸。3.Host了解連接的設(shè)備每個hub利用它自己的中斷端點向主機報告它的各個端口的狀態(tài)(對于這個過程,設(shè)備是看不到的,也不必關(guān)心),報告的內(nèi)容只是hub端口的設(shè)備連接/斷開的事件。如果有連接/斷開事件發(fā)生,那么信息。host會發(fā)送一個Get_Pt_Status請求(request)以了解更多hub上的Get_Pt_Status等請求屬于所有hub都要求支持的hub類標準請求(stardhubclass

5、requests)。4.Hub檢測所插入的設(shè)備是高速還是低速設(shè)備hub通過檢測USB總線空閑(Idle)時差分線的高低電壓來判斷所連接設(shè)備的速度類型,當host發(fā)來Get_Pt_Status請求時,hub就可以將此設(shè)備的速度類型信息回復(fù)給host。(USB2.0規(guī)范要求速度檢測要先于復(fù)位(5.hub復(fù)位設(shè)備當主機獲悉一個新的設(shè)備后,Reset)操作)。主機控制器就向hub發(fā)出一個Set_Pt_Feature請求讓hub復(fù)位其管理的端口。

6、hub通過驅(qū)動數(shù)據(jù)線到復(fù)位狀態(tài)(D和D全為低電平),并持續(xù)至少10ms。當然,hub不會把這樣的復(fù)位信號發(fā)送給其他已有設(shè)備連接的端口,的設(shè)備自然看不到復(fù)位信號,不受影響。6.Host檢測所連接的全速設(shè)備是否是支持高速模式所以其他連在該hub上因為根據(jù)USB2.0協(xié)議,高速(HighSpeed)設(shè)備在初始時是默認全速(FullSpeed)狀態(tài)運行,所以對于一個支持USB2.0的高速hub,當它發(fā)現(xiàn)它的端口連接的是一個全速設(shè)備時,會進行高速

7、檢測,看看目前這個設(shè)備是否還支持高速傳輸,否則就一直在全速狀態(tài)下工作。7.Hub建立設(shè)備和主機之間的信息通道主機不停得向hub發(fā)送Get_Pt_Status請求,以查詢設(shè)備是否復(fù)位成功。Hub返回的報告信息中有專門的一位用來標志設(shè)備的復(fù)位狀態(tài)。當hub撤銷了復(fù)位信號,設(shè)備就處于默認/空閑狀態(tài)(求。設(shè)備和主機之間的通信通過控制傳輸,默認地址Defaultstate),準備著主機發(fā)來的請0,端點號0進行。在此時,設(shè)備能從總線上得到的最大電流

8、是100mA。8.主機發(fā)送GetDe請求獲取默認管道的最大包長度默認管道(DefaultPipe)在設(shè)備一端來看就是端點端點0,雖然所有位分配地址的設(shè)備都是通過地址0。主機此時發(fā)送的請求是默認地址0來獲取主機發(fā)來的信息,但由于枚舉過0,程不是多個設(shè)備并行處理,響應(yīng)主機發(fā)來的請求。而是一次枚舉一個設(shè)備的方式進行,所以不會發(fā)生多個設(shè)備同時設(shè)備描述符的第8字節(jié)代表設(shè)備端點0的最大包大小。對于Windows系統(tǒng)來說,GetDe請求中的wLeng

9、th一項都會設(shè)為64,雖然說設(shè)備所返回的設(shè)備描述符(DeviceDe)長度只有18字節(jié),但系統(tǒng)也不在乎,此時,描述符的長度信息對它來說是最重要的,其他的瞄一眼就過了。Windows系統(tǒng)還有個怪癖,當完成第一次的控制傳輸后,也就是完成控制傳輸?shù)臓顟B(tài)階段,系統(tǒng)會要求hub對設(shè)備進行再一次的復(fù)位操作再次復(fù)位的目的是使設(shè)備進入一個確定的狀態(tài)。(USB規(guī)范里面可沒這要求)。9.主機給設(shè)備分配一個地址(Address)主機控制器通過Set_Addr

10、ess請求向設(shè)備分配一個唯一的地址。在完成這次傳輸之后,設(shè)備進入地址狀態(tài)(Addressstate),之后就啟用新地址繼續(xù)與主機通信。是終生制的,設(shè)備在,地址在;設(shè)備消失(被拔出,復(fù)位,系統(tǒng)重啟)個設(shè)備當再次被枚舉后得到的地址不一定是上次那個了。10.主機獲取設(shè)備的信息主機發(fā)送Get_De請求到新地址讀取設(shè)備描述符,這次主機發(fā)送這個地址對于設(shè)備來說,地址被收回。同一Get_De請求可算是誠心,它會認真解析設(shè)備描述符的內(nèi)容。設(shè)備描述符內(nèi)信

11、息包括端點0的最大包長度,設(shè)備所支持的配置(Configuration)個數(shù),設(shè)備類型,VID(VendID,由USBIF分配),PID(ProductID,由廠商自己定制)等信息。Get_De請求(Devicetype)和設(shè)備描述符(已抹去VID,PID等信息)。之后主機發(fā)送Get_De請求,讀取配置描述符(ConfigurationDe),字符串等,逐一了解設(shè)備更詳細的信息。事實上,對于配置描述符的標準請求中,有時wLength一項

12、會大于實際配置描述符的長度(9字節(jié)),比如255。這樣的效果便是:主機發(fā)送了一個Get_De_Configuration的請求,設(shè)備會把接口描述符,端點描述符等后續(xù)描述符一并回給主機,主機則根據(jù)描述符頭部的標志判斷送上來的具體是何種描述符。11.主機給設(shè)備掛載驅(qū)動(復(fù)合設(shè)備除外)主機通過解析描述符后對設(shè)備有了足夠的了解,會選擇一個最合適的驅(qū)動給設(shè)備。在驅(qū)動的選擇過程中,Windows系統(tǒng)會和系統(tǒng)inf文件里的廠商ID,產(chǎn)品ID,有時甚至

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論