USB Host、USB Device和USB otg的理論簡析
阿新 • • 發佈:2019-01-31
最近在弄USB Host、USB Device和USB otg的電路。先理論上分析一下這三者之間的區別與聯絡。
一、先說USB的引腳定義:
我們PC上目前常用的USB介面為USB3.0和USB2.0,但是以個人短淺的經驗,在ARM上基本還都是以USB2.0和USB1.1為主。介面定義以這個為準。 一般的USB介面為四根線:紅綠白黑-->從左至右! ![USB介面定義](https://img-blog.csdn.net/20151117222824739) 紅色-USB電源 標有-VCC、Power、5V、5VSB字樣 綠色-USB資料線(正)-DATA+、USBD+、DP+、、USBDT+ 白色-USB資料線(負)-DATA-、USBD-、DM-、USBDT+ 黑色-地線 -GND、Ground USB介面的輸出電壓和電流是:+5V/500mA 實際上有誤差,最大不能超過+/-0.2V 也就是4.8-5.2V 。USB2.0規範是由USB1.1規範演變而來的。它的傳輸速率達到了480Mbps,折算為MB為60MB/s。因此,USB2.0可以驅動程式上可以相容USB1.1。 各種USB介面的定義如下圖所示: ![常用USB介面型別](https://img-blog.csdn.net/20151117223636432) 從左往右依次為:miniUSB公口(A型插頭)、miniUSB公口(B型插頭)、USB公口(B型)、USB母口(A型插座)、USB公口(A型插頭) ![A/B型USB介面](https://img-blog.csdn.net/20151117223426600) ![Mini-USB介面](https://img-blog.csdn.net/20151117223457869) Micro-USB介面跟Mini-USB介面的定義是一樣的,在我們的手機中普遍應用,這裡就不再附圖說明。
二、三種方式的理論簡析
USB,英文全稱:Universal Serial Bus,即通用序列匯流排。 Host就是主,可以起到控制作用;device(slave)就是從,是被控制的。例如主機的USB口,可以識別U盤或者是其它USB裝置,所以主機的USB就是Host介面,而U盤的就是device。OTG就是指既可以做Host口亦可以做device口。 Mini-USB和Micro-USB的ID腳在OTG功能中才使用。在OTG中,初始主機裝置稱為A裝置,外設稱為B裝置。Mini-A插頭(即A外設)中的ID引腳接地,Mini-B插頭(即B外設)中的ID引腳浮空,預設上拉為高電平。當OTG裝置檢測到ID引腳接地時,表示預設的是A裝置(主機),而檢測到ID引腳浮空則認為是B裝置(外設)。 如果你的系統僅僅是用做Slave,那麼就使用B介面。系統控制器會判斷ID腳的電平判斷是什麼樣的裝置插入,如果是高電平,則是B接頭插入,此時系統就做主模式(master mode)。如果ID為低,則是A介面插入,然後系統就會使用HNP對話協議來決定哪個做Master,哪個做Slave。也就是說,手機既可以做外設,又可以做主機來傳送資料,可用電纜的連線方式來決定初始角色(由ID線的狀態來決定)。 簡單說就是: USB Host是指驅動過後,板子就可以連線USB介面連線的器件,讀取和裝載資料了,類似PC。 USB Device是指驅動過後,板子可以當做一個USB移動裝置,通過USB連線到電腦上,類似U盤。 實際的USB連線線中,是沒有USB_ID這根線的。 都是在介面部分直接拉死的的。 對於Host端,只需將連線線的USB_ID pin和地短接即可, 對於Slave端,USB連線線的USB_ID pin是懸空的。(裝置內部上拉)。