衡阳派盒市场营销有限公司

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

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

3天內不再提示

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

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

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

一、USB端口及設備硬件架構

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

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

二、USB端口插入外部設備識別

1)全速/低速設備插入識別

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

2)高速設備插入識別

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

總結下來,高速設備的識別過程如下:

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

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

2)主機hub檢測到有設備插入,向主機通報,主機發送Set_Port_Feature請求讓hub復位新插入的設備。設備復位操作是hub通過驅動數據線到復位狀態SE0(Single-ended 0,即D+和D-全為低電平),并持續至少10ms(中穎設備中產生bus reset信號)。

3)如果是高速設備,看到復位信號后,通過內部的電流源向D-線持續灌大小為17.78mA電流。因為此時高速設備D+的1.5k上拉電阻還未撤銷,在hub端,全速/低速驅動器形成一個阻抗為45歐姆(Ohm)的終端電阻,兩個電阻并聯后仍是45歐姆左右的阻抗,所以在hub端看到一個約800mV的電壓(45歐姆*17.78mA),這就是Chirp K信號。Chirp K信號的持續時間是1ms~7ms。

4)在hub端,雖然下達了復位信號,并一直驅動著SE0,但USB2.0的高速接收器一直在檢測Chirp K(D+位0,D-為1)信號,如果沒有看到Chirp K信號,就繼續復位操作,直到復位結束,之后就在全速模式下操作。如果只是一個全速的hub,不支持高速操作,那么該hub不理會設備發送的Chirp K信號,之后設備也不會切換到高速模式。

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

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

三、USB端口設備枚舉

通過上述過程,主機只是知道有新的設備插入了,但是不知道插進來個什么東西,所以就開始詢問它是什么設備,怎么用,負荷能力怎么樣。這個時候就進入了USB協議的枚舉過程。USB枚舉過程簡單來說如下:

1)獲取設備描述符

地址:默認為0

主機:發送獲取描述符指令包

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

目的:主機獲取USB設備的基礎屬性,比如數據傳輸方式,數據長度,設備最大電流負荷,USB版本,VID/PID等。

2)配置描述符

分配地址:主機給設備分配一個屬于它的地址;

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

設備:解析主機信息,上傳設備配置信息;

目的:配置上傳設備描述符、字符串描述符等;HID設備還要上傳報告描述符。

到此,主機就已經完全識別了端口插入的設備是什么,將怎么工作。

審核編輯 :李倩

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

    關注

    4

    文章

    147

    瀏覽量

    20595
  • usb
    usb
    +關注

    關注

    60

    文章

    7981

    瀏覽量

    266103
  • 通信連接
    +關注

    關注

    0

    文章

    7

    瀏覽量

    6257
  • 中穎電子
    +關注

    關注

    4

    文章

    176

    瀏覽量

    7611

原文標題:主機識別USB設備原理簡介

文章出處:【微信號:SINO_25181447,微信公眾號:中穎電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用TUSB1046插入USB3.0的U盤,發現有不識別的現象,為什么?

    插入沒反應后續再怎么拔插都沒反應,如果開機后第一次插入可以正常識別,后續拔插都會比較正常。 經過反復測試發現如果USB的電源一直是打開狀態就不會出現這個問題。 感覺像是設備
    發表于 12-05 07:15

    USB-C 與 USB-A 的區別

    矩形,一個較寬的一端和一個較窄的一端,以確保插頭只能以一種方式插入。 1. 形狀和方向性 USB-A 接口
    的頭像 發表于 11-05 11:43 ?3217次閱讀

    usb主機模式怎么打開

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

    usb主機模式和設備模式的區別

    USB(通用串行總線)是一種廣泛使用的接口技術,用于連接計算機和外部設備USB主機模式和設備模式是USB通信中的兩種不同角色,它們定義了
    的頭像 發表于 09-25 09:06 ?1112次閱讀

    請問CY7C65213的電腦USB驅動是否32位版本的?

    請問CY7C65213的電腦USB驅動是否32位版本的?網站上下載的僅支持64位。有些電腦比較舊,Win7-32bit的
    發表于 07-24 06:44

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

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

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

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

    USB插入電腦后,usb設備不識別的原因?

    請教下各位,我個項目使用電池供電,液晶段碼屏,工作邏輯是這樣:上電后一直處于STOP模式,外部觸發時進入終端程序,中斷處理完后繼續進入stop模式,這期間如果
    發表于 04-26 07:40

    STM32F407插入USB設備后會發生一個DISCNT中斷,這是為什么

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

    用STM32F407VET6做USB主機,USB3300 HOST模式檢測不到設備插入是什么原因?

    我用STM32F407VET6做USB主機,外接USB3300,代碼是STM32CubeMX生成,但是運行時,設備檢測不到U盤等外設的插入,不知道
    發表于 04-02 06:57

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

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

    STM32H723的USB內嵌DP上拉電阻如何控制?

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

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

    目前的現象就是板子通過USB查到PC上無法識別到USB端口,沒有任何反應,電源都是正常的.幫看下電路圖設計是否問題,謝謝!
    發表于 02-23 08:33

    usb-c接口是什么意思 usbc接口和usba接口區別

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

    type-c和usb-c什么區別

    ,我們需要先了解 USB的發展歷程。 USB 是一種廣泛使用的標準,旨在提供一種方便的方式來連接電腦外部設備。隨著時間的推移,USB 標準
    的頭像 發表于 02-19 10:00 ?2845次閱讀
    红桃K百家乐官网的玩法技巧和规则| 百家乐官网破战| 威尼斯人娱乐诚| 玩百家乐官网掉房| 大余县| 大发888亚洲| 乐百家乐官网彩现金开户| 太阳城御园| 百家乐博彩通博彩网皇冠网澳门赌场真人赌博 | 百家乐官网博彩吧| 百家乐官网最好的投注法| 大发888优惠码| 百家乐高返水| 百家乐官网波音平台有假吗| 百家乐赌缆十三式| 夜总会百家乐官网的玩法技巧和规则| 网上百家乐官网官方网站| 德州扑克大师| 百家乐平注秘籍| 百家乐官网必胜法技巧| 百家乐官网路单用处| 棋牌小游戏| 澳门百家乐大揭密| 免费百家乐官网倍投工具| 百家乐官网庄家闲| 真钱百家乐官网开户试玩| 大发888 xp缺少 casino| 赌片百家乐的玩法技巧和规则 | 澳门百家乐官网走势图| 大发888官方下载网址| 真钱百家乐游戏大全| 如何赢百家乐官网的玩法技巧和规则 | 百家乐桌布动物| 百博百家乐的玩法技巧和规则 | 百家乐官网正品| 百家乐官网旺门打| 迷你百家乐官网的玩法技巧和规则| 百家乐官网黄金城游戏大厅| 屯留县| 澳客网比分直播| 明珠国际|