1. 程式人生 > >USB裝置的插入檢測機制

USB裝置的插入檢測機制

參考:USB入門系列之五

USB主機是如何檢測到裝置的插入的呢?首先,在USB集線器的每個下游埠的D+和D-上,

分別接了一個15K歐姆的下拉電阻到地。這樣,在集線器的埠懸空時,就被這兩個下拉電阻

拉到了低電平。而在USB裝置端,在D+或者D-上接了1.5K歐姆上拉電阻。對於全速和高速裝置,

上拉電阻是接在D+上;而低速裝置則是上拉電阻接在D-上。這樣,當裝置插入到集線器時,

由1.5K的上拉電阻和15K的下拉電阻分壓,結果就將差分資料線中的一條拉高了。集線器檢測

到這個狀態後,它就報告給USB主控制器(或者通過它上一層的集線器報告給USB主控制器),

這樣就檢測到裝置的插入了。USB高速裝置先是被識別為全速裝置,然後通過HOST和DEVICE

兩者之間的確認,再切換到高速模式的。在高速模式下,是電流傳輸模式,這時將D+上的

上拉電阻斷開。


相關推薦

USB裝置插入檢測機制

參考:USB入門系列之五 USB主機是如何檢測到裝置的插入的呢?首先,在USB集線器的每個下游埠的D+和D-上, 分別接了一個15K歐姆的下拉電阻到地。這樣,在集線器的埠懸空時,就被這兩個下拉電阻

USB學習系列之二——USB裝置插入檢測機制

1.USB的插入檢測機制:USB埠的D+和D-均用一個15k的電阻接地,當無裝置接入時,均處於低電平;在裝置端在D+(表示高速裝置或者全速裝置)或者D-(表示低速裝置)接了一個1.5k的上拉電阻到+3.3v,一旦將裝置接入,USB埠的D+或者D-其中一個被拉高為3v,系統

PyQt4實現USB裝置插入到彈出的檢測(Windows)

直沒怎麼看過 QextSerialPort 中windows下列舉串列埠的具體實現(原因?對win32api不瞭解,看不懂啊_) 經過一段時間的學習,對QextSerialPort總算理清了一些,於是,就可以用python實現列舉串列埠了,也可以檢測串列埠的載入與移除了。

Android有兩種方法檢測USB裝置插入

  OTG線一條, USB介面轉換器, 可以把XOOM下面的USB口轉成USB母口,可以插USB鍵盤,Joystick之類          PS3遊戲手柄, 測試成功的有 北通,Logitech, 手柄. 檢測手柄的插入與拔出 根據Android文件介紹, 有兩種方法檢測

USB OTG插入檢測識別

一 USB引腳一般四根線,定義如下: 為支援OTG功能,mini/micro usb介面擴充套件了一個ID引腳(第4腳) A裝置端ID腳接地,則初始狀態為Host,例如PC和支援OTG裝置做主裝置時 B裝置端ID腳懸空,預設上拉為高電平,則初始狀態為Device,例

QT 監聽 USB 裝置 插入、拔出動作

參考網上資料,通過QT 實現#ifndef WIDGET_H #define WIDGET_H #include <QtGui/QWidget> #include <window

檢測USB裝置插入和拔出

1.需求 需要一個DLL,它可以自動檢測USB裝置插入和拔出,並以回撥函式的方法告訴呼叫DLL的應用程式。   2.預研 2.1參考文件 (1)關於“Registering for DeviceNotification”(官方文件) 地址:https://msdn.micr

Vmware虛擬機器檢測不到USB裝置

VMware USB Arbitration Service服務沒有啟動 啟動VMware USB Arbitration Service服務步驟 找到開始->執行輸入 services.

QT程式設計--監聽USB裝置拔出和插入

第一步過載函式winEvent(),5.6.0版本是nativeEvent(),如下: bool Dialog_XXX::nativeEvent(const QByteArray &eventType, void *message, long *result) {

Android插入USB裝置,自動彈出提示執行apk

USB HOST模式開發下可能會遇到這個問題。 第一步是在AndroidManifest.xml檔案中修改,主意下面紅色字型 <manifest ...><uses-featureandroid:name="android.hardware.usb.ho

USB裝置插拔檢測

1)hub初始化時 hub_wq = alloc_workqueue(“usb_hub_wq”, WQ_FREEZABLE, 0); INIT_WORK(&hub->events, hub_event) queue_work(hub_wq, &am

linux app應用如何檢測USB裝置熱插拔

框架是這樣的。原理就是建立一個socket捕獲核心發過來的netlink訊息,很簡單的。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <

USB裝置插入波形變化2

=============  本系列參考  ============= 《圈圈教你玩USB》、《Linux那些事兒之我是USB》 協議文件:https://www.usb.org/document-library/usb-20-specification  usb_

U盤小偷——C++實現U盤插入檢測和文件掃描拷貝

行為 true sla log broadcast border push n) disable 重點就是U盤插入監控,獲得U盤盤符,開機自啟動,文件掃描和復制。 1.對u盤插入行為監控,並獲得盤符   當U盤插入的時候會產生一個消息WM_DEVICECHANG,

componentWillReceiveProps詳解(this.props)狀態改變檢測機制

指定 獲取 urn 相同 dcom obj 簡單 經典 int 參考資料:http://blog.csdn.net/ElinaVampire/article/details/51813677 大家先看一張關於組件掛載的經典的圖片: 下面一一說一下這

《Linux總線、設備與驅動》USB設備發現機制

buffer 嵌入 void smo b- 嵌入式系統 root 顯示 ice 說明:本分析基於mstar801平臺Linux2.6.35.11內核,其他內核版本僅供參考。 一、程序在內核中的位置 1.usb host做為pci總線下的一個設備存在(嵌入式系統中有可能也會

javascript websocket 心跳檢測機制介紹

use isa toa 谷歌 lse var https 目的 text ====測試代碼: ==index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha

如何檢視LINUX下的一個USB裝置使用的驅動模組

http://unix.stackexchange.com/questions/60078/find-out-which-modules-are-associated-with-a-usb-device Finding the Kernel Driver(s) Th

虛擬機器VMware下ubuntu無法識別usb裝置的除錯過程

插入U盤或者串列埠轉USB裝置,採用lsusb命令找不到新插入的U盤 shell中執行ls /dev/tty*也找不到USB相關裝置 按照網上教程,設定虛擬機器->設定->硬體 ,將usb相關選項全打鉤,新增串列埠並將其物理連結至windows裝置管理器下顯示

WDF開發USB裝置驅動教程(1)

PDF下載地址(1.2版):連結地址 CY001開發板討論帖:連結地址 注:本文件新版本已出,請在部落格中查詢,或下載PDF全文文件。   連結地址WDF開發USB裝置驅動教程 by 張佩   文件說明     &