USB UVC學習筆記第3篇—枚舉與Processing Unit描述符的關係詳解

前言

      暫且將枚舉過程分爲兩個階段。

 

      第一個階段我稱其爲通性階段,就是只要是USB設備都會經歷這個階段,該階段USB主機完成了對從設備的設備、配置、接

口、端點描述符的獲取。主機會根據描述符中的信息,決定是否發起或如何發起第二階段枚舉。

     

      第二階段,我稱其爲個性階段,因爲大多數USB設備在完成上一步驟,枚舉過程就已經結束了,嚴格來說,該階段已不屬於

枚舉階段了,因爲不管什麼類型的USB設備在主機已經獲取到其相關描述符後,就能在設備管理器中找到該設備了。但是有些類

類型USB設備會在其接口描述符中描述一些該設備的屬性信息,主機在完成“第一階段”枚舉之後,會繼續向USB設備發起詢問,

獲取這些存在的屬性值。

 

UVC枚舉成功與Process Unit描述符

      

       下圖爲UVC設備的抓包數據,當其被PC枚舉成功後,主機又接連對其發送了若干request請求,如GET_INFO、GET_MIN

等,這是PC在獲取更加詳細的UVC視頻處理單元屬性。

 

         且看第一行:a1 86 00 02  00 03 01 00 ,在UVC官方文檔“USB_Video_Example 1.1.pdf”裏找到如下描述:

         該信息是PC在詢問UVC設備對其“亮度”屬性的操作權限,返回值爲“03”,那麼PC端對其“亮度”值屬性具有設置和獲取的權

限。緊接着GET_MIN、GET_MAX、GET_DEF分別獲取到“亮度”可調節的最小、最大值以及默認亮度值。

         接下來仍然是按照順序,對UVC處理單元的其他屬性進行最大、最小、默認值設置,一直到把所有的屬性查詢完成,“第二

階段”枚舉結束。

         打開PC攝像頭軟件,打開屬性對話框,如下圖所示,即爲UVC處理單元的所有屬性設置,黑色字體屬性爲該UVC設備存在

的屬性,灰色字體屬性是該UVC設備不具備的屬性。

 

         不信你可以使用“UVCView.x86.exe”軟件找到對Process Unit 描述符的解析,看看與上圖各個屬性是否一一對應?

         那我們就可以得出結論了,UVC枚舉的“第二階段”與其Process Unit描述符中的bmControls值有關,若我們在USB固件中對

此描述符賦值爲全0,則PC就不會發起“第二階段”枚舉!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章