1. 程式人生 > >USB host 如何判斷插入的裝置是高速還是低速的裝置

USB host 如何判斷插入的裝置是高速還是低速的裝置

usb有主從裝置之分,主裝置有:pc,現在市面上的那些插u-disk即可播放mp3的“mp3”之類的,usb訊號是差分訊號,訊號線為D+, D-。 在usb host 端, D+,D-各接一個15kohm 的下拉電阻,而在usb device端,這時就有高速低速裝置的區別了。usb1.0, 1.1,2.0協議中都有定義高低速裝置以滿足不同情況的需求,這些在硬體上的區別就是:高速裝置:d+接一個1.5kohm的上拉電阻,d-不接;低速裝置則相反。

這樣當usb device插入到host中時,如果是高速裝置,則d+被拉高,d-不變;低速裝置則與之相反。這個上拉過程需要大概2.5us的時間,host這這個時間內便檢測到了該訊號,即可判斷有device plug in,和該device的型別,然後開始通訊。

Usb充電器的D+,D-是短路的,因此可以通過檢測資料線的連線方式來判斷是usb充電還是usb傳資料。

USB OTG(on the go)就是既可以做host又可以做client,我們一般是作為client接受pc傳輸資料,作為host時可以接印表機直接把手機中的照片打印出來。判別是host還是client是靠USB_ID這根pin,當作為client時,USB_ID基本是懸空的(內部有上拉),如果偵測到 USB_ID被拉低,就被認為是作為host,向外輸出,所以需要外部client裝置把USB_ID拉低。

相關推薦

USB host 如何判斷插入裝置高速還是低速裝置

usb有主從裝置之分,主裝置有:pc,現在市面上的那些插u-disk即可播放mp3的“mp3”之類的,usb訊號是差分訊號,訊號線為D+, D-。 在usb host 端, D+,D-各接一個15kohm 的下拉電阻,而在usb device端,這時就有高速低速裝置的區別了。usb1.0, 1.1,2.0協議

Android USB Host開發之manager.getDeviceList()獲取不到裝置列表【轉載】

原文:https://www.2cto.com/kf/201305/211304.html 同樣遇到這樣的問題,我的Android裝置是原道N12C,官方的4.0.3系統,遇到這個問題,後來找了半天找到的,現在彙總一下吧: 1、建立 android.hardware.usb.h

Android USB HostUSB Hid裝置的通訊(印表機和android通訊,通過USB

記事:android和印表機通過網路通訊(網路印表機),有空也要記錄一下 堆疊關係也要記錄一下(通常我們所說的堆疊都是指棧,比如一個方法被呼叫的時候,我們就會把相關變數壓棧(巢狀才會壓棧,一個方法呼叫完是要出棧的),除非遞迴,一般情況下,棧是不會溢位的) 近期一直在做Android USB

安卓USB HOST開發之Android平板+OTG線+4口USB hub+4個HID裝置

        首先解釋一下此開發應用方案涉及到的幾個術語。意思不弄明白,就不好往下玩了。 釋義說明:        USB host:USB主裝置,可以從另外一個USB 從裝置中取得資料,包括USB host控制器和USB host協議。有主就有從,host裝置與USB

簡單頁面(jsp)判斷插入的數據是否成功

values weight username manager driver enc student exe col <%@ page language="java" import="java.sql.*" pageEncoding="UTF-8"%> <

STM32之獨立版USB(Host)驅動+MSC+Fatfs移植

stm32 details lan usb log net 說明 HR tails 源:STM32之獨立版USB(Host)驅動+MSC+Fatfs移植 STM32之USB驅動庫詳解(架構+文件+函數+使用說明+示例程序)STM32之獨立版USB(Host)驅動+M

用JSP判斷輸入是質數是非質數

break 圖片 amp 輸入 bre 技術分享 img 技術 ima <%int n=Integer.parseInt(request.getParameter("n"));if(n<=1){   out.print("既不是質數,也不是非質數");}for

USB HOSTUSB OTG的區別及工作原理

在SmartQ 7上面,同時存在USB HOST與 USB OTG兩個介面,我想問一下,這兩個介面有什麼區別麼?我怎麼認為HOST屬於是多餘呢? 麻煩高手解答,感激不盡!!!   零 USB背景知識 USB是一種資料通訊方式,也是一種資料匯流排,而且是最複雜的匯流排之一。&

USB大容量儲存裝置無法啟動--這個裝置(服務)的驅動程式已被禁用。另一個驅動程式可以提供這個功能。 (程式碼 32)

問題描述如下: 這個裝置(服務)的驅動程式已被禁用。另一個驅動程式可以提供這個功能。 (程式碼 32) 裝置 USB\VID_13FE&PID_4100\070C2647DC139778 在啟動時出現問題。 驅動程式名稱: usbstor.inf 類 GUI

移動APP開發工作筆記002---Hbuilder js判斷當前裝置是安卓裝置還是蘋果裝置

   JAVA技術交流QQ群:170933152    js判斷是否為手機系統是安卓還是蘋果,是否為微信瀏覽器                  

usb host分析

1:usb入口函式:usb_init 參考文件: https://blog.csdn.net/chenliang0224/article/details/79692045 註冊一個匯流排bus_register:bus_type:usb_bus_type 呼叫usb_hub_init

delphi數據庫進行增加操作時,怎麽判斷插入的這個值是否已經存在?

span 數據 for sage dcl 進行 emp rom trim //增 procedure TForm1.btnAddClick(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQ

delphi資料庫進行增加操作時,怎麼判斷插入的這個值是否已經存在?

//增 procedure TForm1.btnAddClick(Sender: TObject); begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from AZZ whe

linux USB HOST之EHCI和OHCI

轉載地址:https://blog.csdn.net/ljzcom/article/details/8186914 1. 主機控制器(Host Controller)       • UHCI: Universal Host Con

Android實戰技巧之四十九:Usb通訊之USB Host

零 USB背景知識 USB是一種資料通訊方式,也是一種資料匯流排,而且是最複雜的匯流排之一。 硬體上,它是用插頭連線。一邊是公頭(plug),一邊是母頭(receptacle)。例如,PC上的插座就是母頭,USB裝置使用公頭與PC連線。 目前USB硬體介面

WinCE6.0 USB Host驅動載入流程詳解(二)

; USB - Mass Storage Class Driver [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\8\Mass_Storage_Class]      "DLL"="USBMSC.DLL"      "Prefix"="

c++ set/map 判斷插入是否成功

set/map 裡面的key都是唯一的,如果存在,則不能再插入,但是map可以更新value值。這裡提供兩種方法檢測是否插入成功。 方法一: #include <iostream> #include <set> using namespace std; int m

std::pair用法,可用來判斷插入式否成功

最近在工作中遇到MAP和PAIR的新用法,將Map.Insert()方法的返回值放入PAIR中,可通過判斷PAIR的成員值來判斷插入是否成功。 例:std::pair<Map_t::itera

WinCE6.0 USB Host驅動載入流程詳解(一)

VOID GetUSBDVersion(LPDWORD lpdwMajorVersion, LPDWORD lpdwMinorVersion); BOOL RegisterClientDriverID(LPCWSTR szUniqueDriverId); BOOL UnRegisterClientDriv

如何判斷插入的卡是SIM卡還是USIM卡

1. 判斷這張卡是SIM卡還是UICC卡。   Driver判斷上電後ATR的history byte:0x80 0x31 0xXX 0x73   可從Catcher log中檢視system trace:   Message: [SIM