0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

USB設(shè)備枚舉過程

漫談嵌入式 ? 來源:漫談嵌入式 ? 2023-06-25 10:08 ? 次閱讀

USB 設(shè)備狀態(tài)切換

前面介紹了USB 設(shè)備的狀態(tài)如下:

Attached

Powered

Default

Address

Configured

Suspended

34cf887e-11d0-11ee-962d-dac502259ad0.png

設(shè)備插入后,先進(jìn)入【attached】 狀態(tài),然后hub 端口配置進(jìn)入【powered】 狀態(tài);主機(jī)發(fā)起復(fù)位信號,設(shè)備進(jìn)入【Default】狀態(tài),然后分配設(shè)置地址,設(shè)備配置。

35194fae-11d0-11ee-962d-dac502259ad0.png

USB 設(shè)備識別

USB 內(nèi)部連接

35478112-11d0-11ee-962d-dac502259ad0.png

1):高速數(shù)據(jù)傳輸。產(chǎn)生高速K/J 信號。D+/D- 上電流為17.78ma。

(2):用于低速獲取全速傳輸。產(chǎn)生SE0

(3):差分?jǐn)?shù)據(jù)接收。用于接收高速數(shù)據(jù)。

(4):傳輸數(shù)據(jù)包檢測。當(dāng)接受差分信號低于數(shù)據(jù)閾值VHSSQ,數(shù)據(jù)無效

(5):低速差分?jǐn)?shù)據(jù)接收。用于接收低速數(shù)據(jù)

(6):高速端口檢測。當(dāng)連接器電壓大于625mv 必須指示設(shè)備斷開。當(dāng)電壓小于525mv 設(shè)備連接

(7):單端接收。用于LS/FS

(8):下拉電阻(15k)。上游端口使用。一般 Host端

(9):上拉電阻(1.5k)。下游端口使用。Device

USB 硬件連接

低速設(shè)備

35aed5ec-11d0-11ee-962d-dac502259ad0.png

全速/高速設(shè)備

35dfe8a8-11d0-11ee-962d-dac502259ad0.png

整個usb 系統(tǒng)對于上游端口(一般是hub 或者h(yuǎn)ost),D+ D- 連接著RPD(15k)

對于下游端口,一般是usb device。根據(jù)速度模式不同匹配不同的終端電阻。LS 設(shè)備 D- 連接著RPU(1.5k)。FS/HS D+ 連接著RPU(1.5k)

可以看到LS 與 FS 信號電平完全相反。

從硬件分布可以看到。一個usb設(shè)備 可以同時支持LS/FS,HS/FS,但是不能同時支持LS 和 HS

對于HS 與 FS 的區(qū)分,依賴于高速握手信號(handshake)和 終端電阻RS(45)的掛載及切換。

設(shè)備斷開與連接

設(shè)備斷開:

360c2a44-11d0-11ee-962d-dac502259ad0.png

設(shè)備連接:

對于高速設(shè)備,它先作為全速設(shè)備被識別出來,然后再被識別為高速設(shè)備。工作于高速模式時,D+的上拉電阻是斷開的,所以對于工作于高速模式的USB設(shè)備,無法通過D+的引腳電平變化監(jiān)測到它已經(jīng)斷開。

工作于高速模式的設(shè)備,D+、D-兩邊有RS 45歐姆的下拉電阻,用來消除反射信號:

36713272-11d0-11ee-962d-dac502259ad0.png

當(dāng)斷開高速設(shè)備后,Hub發(fā)出信號,得到的反射信號無法衰減,Hub監(jiān)測到這些信號后就知道高速設(shè)備已經(jīng)斷開。

36a90224-11d0-11ee-962d-dac502259ad0.png

速度枚舉

36e18ab8-11d0-11ee-962d-dac502259ad0.png

設(shè)備插入,進(jìn)入powered 狀態(tài)

首先進(jìn)入FS 檢測。USB device 進(jìn)入IDLE 狀態(tài)

主機(jī)驅(qū)動產(chǎn)生SE0

Device responds Chirp K 信號。

Host 回應(yīng)Chirp K 和 Chirp J 對至少保持3對

移除D+ 上RPU 并掛載高速設(shè)備終端電阻RS (45Ω),產(chǎn)生高速 J/K 信號

進(jìn)入HS IDLE 狀態(tài)。

SOF

整個過程D+ D- 上電平變化。

全速 IDLE:D+ 為高電平,D- 低電平

全速ChirpJ:17.78ma * (15k || 45Ω) ≈ 800mv

高速J:17.78ma * (45Ω || 45 Ω) ≈ 400mv

高速 IDLE:D+, D- 接近低電平

高速握手信號Handshake

高速握手信號是用來進(jìn)行速度協(xié)商,區(qū)分FS/HS。當(dāng)檢測到以下行為時將進(jìn)入高速握手:

如果一個設(shè)備從suspend 狀態(tài)恢復(fù)時,則在設(shè)備檢測到SE0 支持不少于2.5us 立即進(jìn)入高速握手。---- 掛起

如果設(shè)備正在從全速設(shè)備進(jìn)行復(fù)位,則設(shè)備在檢測到SE0 不少于2.5us 不超過3ms 內(nèi),立即進(jìn)入高速握手 ---- 上電

如果設(shè)備從高速狀態(tài)進(jìn)行復(fù)位,那么設(shè)備在恢復(fù)到全速狀態(tài)之前等待不少于3ms。設(shè)備對總線狀態(tài)進(jìn)行采樣,并檢查se0,不少于100us,立即進(jìn)入高速握手。---- 復(fù)位

總結(jié)

371114ea-11d0-11ee-962d-dac502259ad0.png37562c60-11d0-11ee-962d-dac502259ad0.png

整個USB 高速設(shè)備枚舉流程大致如下:

設(shè)備上電,Attached 檢測,在100ms 內(nèi)Vbus > 4.01 V

Hub poweron, 100ms 內(nèi)D+/D- 電平穩(wěn)定

主機(jī)發(fā)出復(fù)位信號SE0, 持續(xù)10ms(10ms 完成速度枚舉)

SE0 期間進(jìn)行高速握手信號

維持D+ 設(shè)備發(fā)出Chirp K

hub 回應(yīng)Chirp K 和 Chirpj 對

移除上拉電阻,并掛載高速45Ω等效對地電阻,產(chǎn)生高速J/K 信號

設(shè)備準(zhǔn)備接收Set_Address 請求

開始描述符獲?。ㄔO(shè)備描述符/配置描述符/...)

主機(jī)可訪問設(shè)備






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 上拉電阻
    +關(guān)注

    關(guān)注

    5

    文章

    360

    瀏覽量

    30639
  • 連接器
    +關(guān)注

    關(guān)注

    98

    文章

    14568

    瀏覽量

    136756
  • USB設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    16351
  • RPU
    RPU
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6825

原文標(biāo)題:USB 設(shè)備枚舉過程

文章出處:【微信號:漫談嵌入式,微信公眾號:漫談嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32H750 FATFS文件系統(tǒng)掛載USB驅(qū)動,USB驅(qū)動枚舉過程一直處于ready狀態(tài)是為什么?

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

    調(diào)試USB hots的時候,枚舉過不去,為什么?

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

    USB入門總結(jié)(1)枚舉(轉(zhuǎn)載)

    有新的設(shè)備插入了,但是不知道插進(jìn)來個什么東西,所以就開始詢問它是什么設(shè)備,怎么用,負(fù)荷能力怎么樣。這個時侯就進(jìn)入了枚舉過程。因?yàn)閯倓偛迦氲?b class='flag-5'>設(shè)備沒有分配地址,就用默認(rèn)地址0,首先發(fā)送一個
    發(fā)表于 11-17 08:27

    USB枚舉過程是怎樣的?

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

    USB HID設(shè)備枚舉失敗,返回STALL(請大俠們幫幫手,急)

    : 插入USB接口,計算機(jī)可以識別為HID設(shè)備,如下圖所示: 但查看設(shè)備狀態(tài)為“該設(shè)備無法啟動。(代碼10)”,如下圖所示: 用Bus Hound監(jiān)控,
    發(fā)表于 05-01 14:34

    圈圈教你玩USB(全書)

    機(jī)制1.7USB的描述符及其之間的關(guān)系1.8USB設(shè)備枚舉過程1.9USB的包結(jié)構(gòu)及傳輸過程1
    發(fā)表于 01-07 12:14

    USB枚舉和HID枚舉實(shí)例

    在說枚舉過程之前,先把一些必須了解的說明白一.USB包結(jié)構(gòu)和分類包的共同特點(diǎn)是,都是以同步域開始,接著是PID,最后以EOP結(jié)束,而設(shè)備端則靠SEI(串行接口引擎,硬件上實(shí)現(xiàn))來進(jìn)行這些底層的處理
    發(fā)表于 07-06 06:02

    USB設(shè)備檢測過程USB總線枚舉有哪些步驟

    )。USB 總線枚舉過程中,USB 設(shè)備需要經(jīng)歷后 4 個狀態(tài),如圖 6-12 所示。USB 集線器負(fù)責(zé)監(jiān)測
    發(fā)表于 11-09 09:30

    USB枚舉失敗

    我使用的芯片是STM32F105,F(xiàn)ull-speed模式,ST官網(wǎng)的USB-OTG的庫,現(xiàn)在枚舉過程總是失敗,電腦設(shè)備管理器已經(jīng)可以顯示USB人體輸入
    發(fā)表于 05-10 06:23

    FAQ0094 AT32 USB 不斷開連接, USB 設(shè)備重新枚舉操作

    本帖最后由 貪玩 于 2022-5-20 18:32 編輯 USB 不斷開連接, USB 設(shè)備重新枚舉操作Questions:USB
    發(fā)表于 02-07 20:24

    使用MFC枚舉USB設(shè)備的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用MFC枚舉USB設(shè)備的程序免費(fèi)下載。
    發(fā)表于 07-25 17:36 ?1次下載
    使用MFC<b class='flag-5'>枚舉</b><b class='flag-5'>USB</b><b class='flag-5'>設(shè)備</b>的程序免費(fèi)下載

    USB設(shè)備枚舉過程的詳細(xì)資料說明

    USB設(shè)備在正常工作以前,第一件要做的事就是枚舉。 枚舉就是讓HOST認(rèn)得這個設(shè)備,并且為該設(shè)備
    發(fā)表于 05-09 08:00 ?3次下載
    <b class='flag-5'>USB</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>枚舉過程</b>的詳細(xì)資料說明

    電腦是如何識別你插上了USB設(shè)備

    次當(dāng)插上鼠標(biāo)或者U盤的時候,電腦是怎么知道是什么設(shè)備的呢?這里用到的就是枚舉了。枚舉,其實(shí)就是讓HOST認(rèn)識這個USB涉筆,并且為該設(shè)備準(zhǔn)備
    的頭像 發(fā)表于 07-14 10:25 ?2.2w次閱讀
    電腦是如何識別你插上了<b class='flag-5'>USB</b><b class='flag-5'>設(shè)備</b>

    CDC設(shè)備枚舉過程解析

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

    USB枚舉過程

    每當(dāng)一個`USB`外設(shè)接入主機(jī)后,系統(tǒng)會提示用戶`USB`設(shè)備接入了,并不停的查找對應(yīng)的驅(qū)動文件,如果找到驅(qū)動文件,則加載對應(yīng)驅(qū)動;如果沒有找到,則提示用戶沒有對應(yīng)的驅(qū)動,需要用戶主動去配置驅(qū)動。
    的頭像 發(fā)表于 06-25 14:14 ?2604次閱讀
    <b class='flag-5'>USB</b>的<b class='flag-5'>枚舉過程</b>