RM新时代网站-首页

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

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

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

如何適時(shí)的知道是否有外部USB設(shè)備插入電腦USB端口的呢?

中穎電子 ? 來源:中穎電子 ? 作者:中穎電子 ? 2022-05-05 16:07 ? 次閱讀

USB(UniversalSerialBus),其中文為通用串行總線,是一個(gè)外部總線標(biāo)準(zhǔn),也是一種輸入輸出接口的技術(shù)規(guī)范,被廣泛地應(yīng)用于個(gè)人計(jì)算機(jī)和計(jì)算機(jī)周邊配套的通信。標(biāo)準(zhǔn)USB接口通過四線實(shí)現(xiàn)主機(jī)跟設(shè)備之間的通信連接(Vdd/D+/D-/GND),每臺(tái)主機(jī)最多可以連接127個(gè)外部設(shè)備,并且不會(huì)損失通信速度。常用的電腦周邊USB設(shè)備有鼠標(biāo)、鍵盤、U盤、音響、攝像頭等等。那么一臺(tái)主機(jī)(電腦),是如何適時(shí)的知道是否有外部USB設(shè)備插入電腦USB端口的呢?

一、USB端口及設(shè)備硬件架構(gòu)

如下圖所示,圖(1)為USB主機(jī)接口內(nèi)部示意圖,圖2為支持全速通信的USB設(shè)備端,圖3為支持低速通信的USB設(shè)備端口。

251505de-cc4a-11ec-bce3-dac502259ad0.png

二、USB端口插入外部設(shè)備識(shí)別

1)全速/低速設(shè)備插入識(shí)別

USB支持三種類型的傳輸速率:1.5Mb/s的低速傳輸、12Mb/s的全速傳輸和480Mb/s的高速傳輸。當(dāng)主控制器或集線器的下行端口上沒有USB設(shè)備連接時(shí),其D+和D-線上的下拉電阻使得這兩條數(shù)據(jù)線的電壓都是近地的(圖1);當(dāng)全速/低速設(shè)備連接以后,電流流過由集線器的下拉電阻和設(shè)備在D+/D-的上拉電阻構(gòu)成的分壓器。由于下拉電阻的阻值是15KΩ,上拉電阻的阻值是1.5KΩ,所以在D+/D-線上會(huì)出現(xiàn)大小為(Vcc*15/(15+1.5))的直流高電平電壓。當(dāng)USB主機(jī)探測(cè)到D+/D-線的電壓已經(jīng)接近高電平,而其它的線保持接地時(shí),它就知道全速/低速設(shè)備已經(jīng)連接了(D+為高電平,主機(jī)判定接入全速設(shè)備;如果檢測(cè)D-為高電平,則接入的USB設(shè)備為低速設(shè)備)。

2)高速設(shè)備插入識(shí)別

高速設(shè)備初始是以一個(gè)全速設(shè)備的身份出現(xiàn)的,即和全速設(shè)備一樣,D+線上有一個(gè)1.5k的上拉電阻。USB2.0的hub把它當(dāng)作一個(gè)全速設(shè)備,之后,主機(jī)hub和設(shè)備通過一系列握手信號(hào)確認(rèn)雙方的身份。在這里對(duì)速度的檢測(cè)是雙向的,比如高速的hub需要檢測(cè)所掛上來的設(shè)備是高速、全速還是低速,高速的設(shè)備需要檢測(cè)所連上的hub是USB2.0的還是1.x的,如果是前者,就進(jìn)行一系列動(dòng)作切到高速模式工作,如果是后者,就以全速模式工作。

總結(jié)下來,高速設(shè)備的識(shí)別過程如下:

252cabb2-cc4a-11ec-bce3-dac502259ad0.png

1)D+/D-上拉電阻確定為全速/高速設(shè)備

2)主機(jī)hub檢測(cè)到有設(shè)備插入,向主機(jī)通報(bào),主機(jī)發(fā)送Set_Port_Feature請(qǐng)求讓hub復(fù)位新插入的設(shè)備。設(shè)備復(fù)位操作是hub通過驅(qū)動(dòng)數(shù)據(jù)線到復(fù)位狀態(tài)SE0(Single-ended 0,即D+和D-全為低電平),并持續(xù)至少10ms(中穎設(shè)備中產(chǎn)生bus reset信號(hào))。

3)如果是高速設(shè)備,看到復(fù)位信號(hào)后,通過內(nèi)部的電流源向D-線持續(xù)灌大小為17.78mA電流。因?yàn)榇藭r(shí)高速設(shè)備D+的1.5k上拉電阻還未撤銷,在hub端,全速/低速驅(qū)動(dòng)器形成一個(gè)阻抗為45歐姆(Ohm)的終端電阻,兩個(gè)電阻并聯(lián)后仍是45歐姆左右的阻抗,所以在hub端看到一個(gè)約800mV的電壓(45歐姆*17.78mA),這就是Chirp K信號(hào)。Chirp K信號(hào)的持續(xù)時(shí)間是1ms~7ms。

4)在hub端,雖然下達(dá)了復(fù)位信號(hào),并一直驅(qū)動(dòng)著SE0,但USB2.0的高速接收器一直在檢測(cè)Chirp K(D+位0,D-為1)信號(hào),如果沒有看到Chirp K信號(hào),就繼續(xù)復(fù)位操作,直到復(fù)位結(jié)束,之后就在全速模式下操作。如果只是一個(gè)全速的hub,不支持高速操作,那么該hub不理會(huì)設(shè)備發(fā)送的Chirp K信號(hào),之后設(shè)備也不會(huì)切換到高速模式。

設(shè)備發(fā)送的ChirpK信號(hào)結(jié)束后100us內(nèi),hub必須開始回復(fù)一連串的KJKJKJ….(K/J為USB信號(hào)端口的兩種狀態(tài),K狀態(tài)D+為高D-為低,J狀態(tài)D+為低D-為高)序列,向設(shè)備表明這是一個(gè)USB2.0的hub。這里的KJ序列是連續(xù)的,中間不能間斷,而且每個(gè)K或J的持續(xù)時(shí)間在40us~60us之間。KJ序列停止后的100~500us內(nèi)結(jié)束復(fù)位操作。hub發(fā)送ChirpKJ序列的方式和設(shè)備一樣,通過電流源向差分?jǐn)?shù)據(jù)線交替灌17.78mA的電流實(shí)現(xiàn)。

5)設(shè)備端確定上述高速流程后,斷開D+上拉1.5k電阻并連接D+/D-上的高速終端電阻。

三、USB端口設(shè)備枚舉

通過上述過程,主機(jī)只是知道有新的設(shè)備插入了,但是不知道插進(jìn)來個(gè)什么東西,所以就開始詢問它是什么設(shè)備,怎么用,負(fù)荷能力怎么樣。這個(gè)時(shí)候就進(jìn)入了USB協(xié)議的枚舉過程。USB枚舉過程簡(jiǎn)單來說如下:

1)獲取設(shè)備描述符

地址:默認(rèn)為0

主機(jī):發(fā)送獲取描述符指令包

設(shè)備:設(shè)備接到包后解析,然后按固定格式返回設(shè)備描述符信息

目的:主機(jī)獲取USB設(shè)備的基礎(chǔ)屬性,比如數(shù)據(jù)傳輸方式,數(shù)據(jù)長(zhǎng)度,設(shè)備最大電流負(fù)荷,USB版本,VID/PID等。

2)配置描述符

分配地址:主機(jī)給設(shè)備分配一個(gè)屬于它的地址;

主機(jī):給設(shè)備一個(gè)地址后,就開始詢問設(shè)備的具體配置(配置描述符)。

設(shè)備:解析主機(jī)信息,上傳設(shè)備配置信息;

目的:配置上傳設(shè)備描述符、字符串描述符等;HID設(shè)備還要上傳報(bào)告描述符。

到此,主機(jī)就已經(jīng)完全識(shí)別了端口插入的設(shè)備是什么,將怎么工作。

審核編輯 :李倩

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

    關(guān)注

    4

    文章

    147

    瀏覽量

    20524
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7936

    瀏覽量

    264457
  • 通信連接
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6227
  • 中穎電子
    +關(guān)注

    關(guān)注

    4

    文章

    174

    瀏覽量

    7434

原文標(biāo)題:主機(jī)識(shí)別USB設(shè)備原理簡(jiǎn)介

文章出處:【微信號(hào):SINO_25181447,微信公眾號(hào):中穎電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用TUSB1046插入USB3.0的U盤,發(fā)現(xiàn)有不識(shí)別的現(xiàn)象,為什么?

    插入沒反應(yīng)后續(xù)再怎么拔插都沒反應(yīng),如果開機(jī)后第一次插入可以正常識(shí)別,后續(xù)拔插都會(huì)比較正常。 經(jīng)過反復(fù)測(cè)試發(fā)現(xiàn)如果USB的電源一直是打開狀態(tài)就不會(huì)出現(xiàn)這個(gè)問題。 感覺像是設(shè)備
    發(fā)表于 12-05 07:15

    usb主機(jī)模式怎么打開

    USB主機(jī)模式(USB Host Mode)是指設(shè)備(如智能手機(jī)、平板電腦或某些類型的計(jì)算機(jī))能夠連接到USB
    的頭像 發(fā)表于 09-25 09:08 ?1240次閱讀

    CYPD3177 SAFE_PWR_EN無法與筆記本電腦USB-C端口配合使用怎么解決?

    SAFE_PWR_EN 引腳為高電平,因此沒有 5V 輸出。 從可用性的角度來看,這是不可接受的。 那么,什么辦法可以解決這個(gè)問題? 在 CC1 和 CC2 線路上添加 5.1K 電阻器是否
    發(fā)表于 05-31 06:22

    CYPD3177 SAFE_PWR_EN無法與筆記本電腦USB-C端口配合使用怎么解決?

    SAFE_PWR_EN 引腳為高電平,因此沒有 5V 輸出。 從可用性的角度來看,這是不可接受的。 那么,什么辦法可以解決這個(gè)問題? 在 CC1 和 CC2 線路上添加 5.1K 電阻器是否
    發(fā)表于 05-28 06:50

    USB插入電腦后,usb設(shè)備不識(shí)別的原因?

    請(qǐng)教下各位,我個(gè)項(xiàng)目使用電池供電,液晶段碼屏,工作邏輯是這樣:上電后一直處于STOP模式,外部觸發(fā)時(shí)進(jìn)入終端程序,中斷處理完后繼續(xù)進(jìn)入stop模式,這期間如果
    發(fā)表于 04-26 07:40

    STM32F407插入USB設(shè)備后會(huì)發(fā)生一個(gè)DISCNT中斷,這是為什么?

    我的工程基于STM32F407平臺(tái),用的stm32的官方庫;在usb在hs、host 模式下,上電時(shí)未插入USB設(shè)備,但是程序會(huì)發(fā)生一個(gè)HPRTINT中斷。
    發(fā)表于 04-26 07:08

    STLINK-V3SET燒錄器插入電腦提示無法識(shí)別此USB設(shè)備怎么解決?

    你好,剛買原廠STLINK-V3SET燒錄器,使用不到一個(gè)月,今天插入電腦提示無法識(shí)別此USB設(shè)備!這個(gè)問題應(yīng)該要怎么解決,謝謝。 [/td] 以下內(nèi)容為評(píng)論 [td]樓主您好。解
    發(fā)表于 03-29 07:56

    STM32H723的USB內(nèi)嵌DP上拉電阻如何控制?

    我在使用STM32H723ZGT6的USB功能時(shí)先采用了內(nèi)部USB控制器+外部上拉電阻的方式,把板子接入電腦可以檢測(cè)到設(shè)備
    發(fā)表于 03-07 07:21

    CY7C65215-32LTXI插入USB查到PC上無法識(shí)別到USB端口是怎么回事?

    目前的現(xiàn)象就是板子通過USB查到PC上無法識(shí)別到USB端口,沒有任何反應(yīng),電源都是正常的.幫看下電路圖設(shè)計(jì)是否問題,謝謝!
    發(fā)表于 02-23 08:33

    usb-c接口是什么意思 usbc接口和usba接口區(qū)別

    -A接口以下幾點(diǎn)區(qū)別: 插頭形狀:USB-C接口的插頭形狀是對(duì)稱的,因此可以無論插入方向如何都能正確插入。而USB-A接口則是非對(duì)稱的,只
    的頭像 發(fā)表于 02-20 16:30 ?1.6w次閱讀

    什么是USB HOST、USB Slave和USB OTG?它們之間什么區(qū)別?

    什么是USB HOST、USB Slave和USB OTG?它們之間什么區(qū)別? USB(通用串行總線)是一種用于連接
    的頭像 發(fā)表于 02-02 15:32 ?1.3w次閱讀

    使用MiniProg4時(shí),插入USB設(shè)備無法配備的原因?

    您好,技術(shù)管理員。當(dāng)我使用MiniProg4時(shí),插入USB后,我發(fā)現(xiàn)該設(shè)備無法配備。故障現(xiàn)象為:模式指示燈閃爍,錯(cuò)誤指示燈常亮。幫我看看問題是什么謝謝
    發(fā)表于 02-02 07:30

    USB連接器是什么 為什么usb連接器固定pin不一樣?

    USB連接器是一種通用串行總線接口,用于規(guī)范電腦外部設(shè)備的連接和通訊。
    的頭像 發(fā)表于 01-28 15:01 ?2066次閱讀

    在Win下,如何獲取對(duì)應(yīng)插入USB設(shè)備描述符

    各位大佬,請(qǐng)問在Win下,如何獲取對(duì)應(yīng)插入USB設(shè)備描述符?
    發(fā)表于 01-24 07:33

    usb虛擬串口和usb協(xié)議的區(qū)別

    USB虛擬串口和USB協(xié)議是兩個(gè)相關(guān)但不同的概念。在理解它們之前,我們首先需要了解USB的基本知識(shí)。 USB(通用串行總線)是一種用于連接計(jì)算機(jī)與
    的頭像 發(fā)表于 12-28 14:55 ?1853次閱讀
    RM新时代网站-首页