USB設(shè)備的插入檢測機制 作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 USB主機是如何檢測到設(shè)備的插入的呢?首先,在USB集線器的每個下游端口的D+和D-上,分別接了一個15K歐姆的下拉電阻到地。這樣,在集線器的端口懸空時,就被這兩個下拉電阻拉到了低電平。而在USB設(shè)備端,在D+或者D-上接了1.5K歐姆上拉電阻。對于全速和高速設(shè)備,上拉電阻是接在D+上;而低速設(shè)備則是上拉電阻接在D-上。這樣,當設(shè)備插入到集線器時,由1.5K的上拉電阻和15K的下拉電阻分壓,結(jié)果就將差分數(shù)據(jù)線中的一條拉高了。集線器檢測到這個狀態(tài)后,它就報告給USB主控制器(或者通過它上一層的集線器報告給USB主控制器),這樣就檢測到設(shè)備的插入了。USB高速設(shè)備先是被識別為全速設(shè)備,然后通過HOST和DEVICE兩者之間的確認,再切換到高速模式的。在高速模式下,是電流傳輸模式,這時將D+上的上拉電阻斷開。一個簡單的實驗:只用一個上拉電阻接在USB的+5V和D+或者D-上,WINDOWS也會提示發(fā)現(xiàn)新硬件,但是無法找到驅(qū)動程序。這時去設(shè)備管理器里面看,有顯示未知USB設(shè)備,并且其VID和PID為0。根據(jù)這個,我們可以簡單的判斷設(shè)備是否枚舉成功。如下圖所示,分別是枚舉不成功和枚舉成功的圖。本文引用地址:http://butianyuan.cn/article/201612/330286.htm
評論