【導(dǎo)讀】你是否想過為什么電腦上的USB口可以接鍵盤、鼠標(biāo)等,而你的手機(jī)上的USB卻不可以?是否想過電腦上的USB口可以接多少USB設(shè)備?是否想過為啥主板上面的USB口比起前面板的USB口要好用且穩(wěn)定?是否想過為啥同樣PCIE轉(zhuǎn)USB的板卡,為啥有的很貴,有的很便宜。
如果都知道,你是否解釋下一下,下面這張圖是啥意思?
首先說 USB口除去物理尺寸,形狀,顏色,款式的區(qū)別, 在他的內(nèi)在也是有極大區(qū)別的。
一個USB口可以是以下三種規(guī)格中的一種:
1)USB主控制器又叫USB HOST。 可以有控制作用;
2)USB device(slave),就是被控制的;
3)USB OTG就是指既可以做Host口亦可以做device口。
×××××××××××××××××××××××××××××××××××××
USB Host是指驅(qū)動過后,板子就可以連接USB接口連接的器件,讀取和裝載數(shù)據(jù)了,類似PC。USB Device是指驅(qū)動過后,板子可以當(dāng)做一個USB移動設(shè)備,通過USB連接到電腦上,類似U盤。
×××××××××××××××
所以說我們的手機(jī)上面的USB口屬于 Device。但是我們的手機(jī)本質(zhì)就是電腦,所以以后的趨勢是手機(jī)的USB可以像電腦的主機(jī)的USB口那樣,自由外接設(shè)備。首先對 host controller 展開說明。一個電腦主機(jī)上面可以多少個 host controller ?
經(jīng)過一番搜索,USB控制器有EHCI,UHCI,OHCI,XHCI 等多種,這些是常見的。UHCI,OHCI是USB 1.1的控制器,是用來支持低速設(shè)備的(鼠標(biāo),鍵盤);EHCI是USB2.0的控制器,支持高速設(shè)備(USB2.0 U盤,移動硬盤等);XHCI是USB3.0的控制器,支持超高速設(shè)備;于Win7原生系統(tǒng)沒有帶有XHCI驅(qū)動,因此100系列主板安裝Win7系統(tǒng)會出現(xiàn)USB鼠標(biāo)鍵盤失效的情況,而Win8和Win10原生系統(tǒng)由于內(nèi)置了XHCI驅(qū)動。
×××××××××××××××××
正常來說一臺PC只需要一個host controller就夠了,但是現(xiàn)實中主機(jī)似乎不止一個host controller。
然后就是 Root hub。
××××××××××××××××××××××××
所有的usb設(shè)備最終都是連接到Root Hub上,或者說所有的根源都是從這里開始的。Root Hub 上可以連接別的設(shè)備,可以連接 U盤,可以連接 usb 鼠標(biāo),同樣也可以連接另一個hub.所謂 hub,就是用來級連。
但是普通的 hub,它一頭接上級 hub, 另一頭可以有多個口,多個口就可以級連多個設(shè)備,也可以只有一個口,一個口的就像我們宿舍里常用的那種延長線。
而 Root Hub 呢?比較特殊,這當(dāng)然也是一種 usb 設(shè)備,但是它屬于一人之下萬人之上的角色,它只屬于被 Host Controller,換言之,通常做芯片的同志們會把 Host Controller和 Root Hub 集成在一起。特別是PC主機(jī)上,
通常你就只能看到接口,看不到 Root Hub,因為它在 Host Controller 的內(nèi)部。下面這張圖看得很清楚,其中的那個host hub其實就是 root hub.
Root HUB ,是什么??轉(zhuǎn)載一篇文章 。
根據(jù)usb協(xié)議,root hub可以連接127個usb設(shè)備吧 ,直接連也是可以的,但是控制設(shè)備沒那么多。每個USB Root HUB 會給每個連接到自己身上的 USB 設(shè)備分配 ID,這個ID是 8 位的二進(jìn)制碼。
所以每個USB Root Hub最多可以連接127可以USB外設(shè)。地址編號從0-127.據(jù)說現(xiàn)在USB HUB芯片最多可以連接處四個USB口,算是自己要占用一個,另外也就三個可以使用。那些10幾個口HUB ,里面都是用了多個USB 芯片。再者,USB 的級聯(lián)層數(shù)越多,越不穩(wěn)定。所以最好減少級聯(lián)的層數(shù),增加每層的個數(shù)。