USB入門(mén)系列之二 —— USB的連接模型
USB的拓?fù)浣Y(jié)構(gòu)為金字塔型。由一個(gè)USB主控制器出發(fā),下面接USB集線器,USB集線器將一個(gè)USB口擴(kuò)展為多個(gè)USB口,多個(gè)USB口又可以通過(guò)集線器為更多個(gè)接口。但USB協(xié)議中對(duì)集線器的層數(shù)是有限制的,USB1.1規(guī)定最多為4層,USB2.0規(guī)定最多為6層。理論上,一個(gè)USB主控制器最多可接127個(gè)設(shè)備,這是由數(shù)據(jù)包中的7位地址位決定的,但是實(shí)際上不會(huì)接這么多的設(shè)備。我們所說(shuō)的一個(gè)USB主控制器可以連接多個(gè)USB設(shè)備,并不是直接簡(jiǎn)單的將多個(gè)設(shè)備并聯(lián)或者串聯(lián),而是要由集線器負(fù)責(zé)端口擴(kuò)展,才能連接更多的設(shè)備。在我們的電腦上,也有一個(gè)(或者多個(gè),視USB主控制器的個(gè)數(shù)而定)集線器,它叫做根集線器,直接連在USB主控制器上。在設(shè)備管理器中,我們可以看到USB主控制器和根集線器。如下圖所示。USB數(shù)據(jù)傳輸路徑如下:USB主控制器發(fā)出數(shù)據(jù)包,通過(guò)根集線器,再通過(guò)下面的集線器(如果有的話),再發(fā)給USB設(shè)備;設(shè)備返回?cái)?shù)據(jù),交給它上層的集線器,上層的集線器再交給更上層的集線器,直到USB主控制器為止。而USB主控制器就可以跟CPU打交道了。在標(biāo)準(zhǔn)的PC機(jī)上,USB主控制器是掛在PCI總線上的。在Windows中,USB由各種驅(qū)動(dòng)程序負(fù)責(zé)管理,最后由驅(qū)動(dòng)程序產(chǎn)生功能設(shè)備(FDO),這就是我們所看到的實(shí)際設(shè)備了。我們的應(yīng)用程序就可以通過(guò)Windows提供的各種API進(jìn)行訪問(wèn)USB設(shè)備了,例如CreateFile,ReadFile,DeviceIOControl等等。本文引用地址:http://www.ex-cimer.com/article/201612/329592.htm
評(píng)論