精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

USB的枚舉過程

冬至子 ? 來源:binnary ? 作者:binnary ? 2023-06-25 14:14 ? 次閱讀

每當一個USB外設接入主機后,系統會提示用戶USB設備接入了,并不停的查找對應的驅動文件,如果找到驅動文件,則加載對應驅動;如果沒有找到,則提示用戶沒有對應的驅動,需要用戶主動去配置驅動。

那么主機是如何判斷設備類型以及找到對應的設備驅動?在解決這問題之前,先來了解幾個概念:

  • 設備描述符 :描述設備的通用信息,如廠商IDD、產品ID和修訂ID,支持的設備類、設備子類、適用的協議以及默認端點的最大包大小等。
  • 配置描述符 :描述當前配置中的接口數、支持的掛起和恢復能力以及功率要求。單個物理的USB設備,可以包含一個或者多個配置,不同的配置描述表現出不同的設備功能。
  • 接口描述符 :接口類、子類和適用的協議,接口備用配置的數目和端點數目。USB協議根據功能將不同的接口劃分成不同的類,如下:

1:音頻類,2:CDC控制類,3:人機接口類(HID),5:物理類,6:圖像類,7:打印機類,8:大數據存儲類,9:集線器類,10:CDC數據類,11:智能卡類,13:安全類,220:診斷設備類,224:無線控制類,254:特定應用類,255廠商定義的設備。

  • 端點描述符 :描述端點地址、方向和類型、支持的最大包大小。主機只能通過端點和設備通信。主機通過USB地址+端點號來尋址,確定數據最終是發到那個端點。

0號端點是個特殊端點,通常稱作控制端點,用戶設備的初始化

我們來看一下下面這個圖,描述了設備描述符、配置、接口以及端點個層次包含關系。

圖片

USB各描述符層次關系

我們可以看到,最頂層的設備描述符包含一個USB設備的所有信息,也就是說可以通過設備描述符依次獲取到整個USB設備的信息.

枚舉的整個過程大概就是這樣:

  1. 獲取設備描述: 獲取設備基本信息,并獲取配置描述符。
  2. 獲取配置信息: 根據配置描述獲取到接口描述
  3. 獲取接口描述: 根據接口描述,得到端點描述符
  4. 獲取端點描述: 得到端點描述符

以上只是個基本過程,大體上要識別一個USB設備,這幾步驟是必須的。

那么這幾步驟具體是怎么完成的的?說到這就得說說SETUP過程,枚舉過程中每次HOST和Device的交互,都是通過SETUP來完成的。下來詳細說說這SETUP過程, 整個過程分為三個階段:

1. CMD階段(SETUP階段)

數據方向:HOST->DEVICE單方向,這就是為什么USB所有的動作都必須是由HOST發起的原因

HOST發出的都是固定的8字節,每個字節代表不同含義。

每個字節含義解釋

2. DATA階段

數據方向雙方向:HOST<->DEVICE。數據傳輸方向由CMD命令決定。

數據階段是可有可無的,具體根據命令字的類型,比如:設置地址命令,是沒有數據階段,Device端接收命令成功,后設置地址,如果地址設置成功則返回ACK信號,失敗則是NAK信號。

3. ACK階段

數據雙方向:HOST<->DEVICE。比如設置地址的命令,DEVICE端設置完成之后需要給HOST回復ACK/NAK信號.

4. SETUP實例

下圖是USB協議分析儀解析出的獲取描述符的過程(這里主要關注軟件部分,圖例中設置數字標號的部分):

  • 圖中標號1: 命令階段,主機發送獲取描述符指令,請求獲取設備描述符.
  • 圖中標號2: 數據階段(Device->Host),設備回送設備描述信息.
  • 圖中標號3: 數據階段(Device->Host),在USB1.1設備中,0號端點的BUFFER都比較小,單次不能把數據發送完成,需要多次
  • 圖中標號4: ACK階段(Host->Device),主機告訴設備數據正確接收完成

圖片

獲取設備描述符

HOST端主機軟件就是通過以上SETUP過程,一步一步完成整個枚舉過程。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • USB主機
    +關注

    關注

    0

    文章

    22

    瀏覽量

    9340
  • 集線器
    +關注

    關注

    0

    文章

    383

    瀏覽量

    39459
  • ACK
    ACK
    +關注

    關注

    0

    文章

    28

    瀏覽量

    11134
  • 無線控制
    +關注

    關注

    0

    文章

    96

    瀏覽量

    19965
收藏 人收藏

    評論

    相關推薦

    STM32H750 FATFS文件系統掛載USB驅動,USB驅動枚舉過程一直處于ready狀態是為什么?

    就是FATFS文件系統掛載USB驅動,讀寫U盤,我一直不成功USB驅動枚舉過程一直處于ready 狀態,文件系統掛載不成功!請問大家有知道怎么解決的嗎?或者類似案列參考一下!謝謝!
    發表于 03-27 06:52

    調試USB hots的時候,枚舉過不去,為什么?

    調試USB hots的時候,枚舉過不去,第一步的狀態都不對。我看數據是中斷函數USBH_OTG_ISR_Handler返回的,請問哪位有相關說明發一下,現在總是觸發gintsts.b.sofintr中斷。謝謝!
    發表于 04-10 07:28

    國產化USB轉串口芯片GP232RL 轉串口線 完美兼容替換FT232RL

    時,USB主機會檢測到設備的插入并進行復位。2.?枚舉過程?:計算機通過USB枚舉過程獲取設備的描述符信息,包括廠商ID、設備ID和Class類別等。3.?驅動匹配?:操作系統根據獲取
    發表于 09-10 16:20

    USB枚舉過程是怎樣的?

    USB枚舉過程是怎樣的?誰能描述下?謝謝
    發表于 11-21 15:34

    調試USB例程,USB枚舉失敗后導致不能下載程序

    Virtual_Com_Port_Reset(void)的內容注釋掉。下載成功,斷電重啟后,電腦報告未能識別的USB設備,我想大概這個函數的內容影響到了USB枚舉過程。所以,重新恢復void
    發表于 05-05 10:26

    USB描述符詳解

    對于實現USB功能的項目,不管是實現CDC,大容量存儲、HID等都必須使用實現USB標準描述符,從而實現USB枚舉過程。這里共享一個USB
    發表于 06-12 14:46

    求問關于ThreadX系統中開發的USB枚舉問題

    利用ds5+dstream將這個工程代碼燒錄到指定的目標板中,全程運行后再將目標板的USB端口連接到Linux主機上,USB枚舉過程時而成功,時而失敗,以下是將USB端口接到Linux
    發表于 11-06 10:45

    請問STM32F103的USB功能否由軟件開啟或關閉?

    USB枚舉過程,如果此時設備還沒有準備好回應,就會枚舉失敗!其它的一些具有USB功能單片機都可以由寄存器配置決定是否接入D+線上內置的上拉電阻, 不知STM32F103是否有類似的功
    發表于 11-06 08:46

    USB枚舉失敗

    我使用的芯片是STM32F105,Full-speed模式,ST官網的USB-OTG的庫,現在枚舉過程總是失敗,電腦設備管理器已經可以顯示USB人體輸入設備,但是顯示錯誤碼:(10)設備無法啟動
    發表于 05-10 06:23

    FX3 USB 3控制器不被重新枚舉和斷開連接

    來在FX3 RAM中上傳固件。轉會工作完美無瑕。例如,如果我們用閃爍的LED編寫一個固件,默認的引導加載程序,在程序跳轉進入USB命令之后,LED閃爍。到目前為止,這是很好的,但是如果我們看USB枚舉過程
    發表于 09-20 09:36

    ARM嵌入式裸機--USB的HOST枚舉

    設備就要自動進入掛起狀態,在進入掛起狀態后,總的電流功耗不超過280uA。狀態轉移圖如下所示:二、枚舉過程1、用戶將一個USB設備插入USB端口,主機為端口供電,設備此時處于上電狀態。主機檢測設備
    發表于 10-15 07:51

    USB 實驗裝置的研制與開發

    利用最新的嵌入式開發工具EDK,在FPGA中完成對PDIUSBD12的硬件定制和固件編程,從而在FPGA中實現USB 控制器, 并最終完成USB枚舉過程、驅動程序的開發和簡單的應用。
    發表于 05-18 13:24 ?12次下載

    daref101運行安裝程序的用戶指南

    、J8、J10和J11,安裝和跳線J9上沒有安裝板。 2)連接你的麥克風輸入的3.5mm音頻插孔標記上板。 3)連接你的耳機或音箱的3.5mm音頻插孔標記在董事會外。 4)連接從您的PC的USB端口的USB電纜J2板。這將電源應用于主板,并開始
    發表于 06-01 14:48 ?10次下載
    daref101運行安裝程序的用戶指南

    USB設備枚舉過程的詳細資料說明

    USB設備在正常工作以前,第一件要做的事就是枚舉枚舉就是讓HOST認得這個設備,并且為該設備準備其所請求的資源,建立好主機和設 備之間的信息溝通機制 。
    發表于 05-09 08:00 ?2次下載
    <b class='flag-5'>USB</b>設備<b class='flag-5'>枚舉過程</b>的詳細資料說明

    CDC設備枚舉過程解析

    本篇筆記將詳述 CDC設備枚舉過程,讓大家對整體的枚舉過程有個概念。
    的頭像 發表于 10-09 11:43 ?2688次閱讀
    CDC設備<b class='flag-5'>枚舉過程</b>解析