USB入門系列之二 —— USB的連接模型
USB的拓撲結構為金字塔型。由一個USB主控制器出發,下面接USB集線器,USB集線器將一個USB口擴展為多個USB口,多個USB口又可以通過集線器為更多個接口。但USB協議中對集線器的層數是有限制的,USB1.1規定最多為4層,USB2.0規定最多為6層。理論上,一個USB主控制器最多可接127個設備,這是由數據包中的7位地址位決定的,但是實際上不會接這么多的設備。我們所說的一個USB主控制器可以連接多個USB設備,并不是直接簡單的將多個設備并聯或者串聯,而是要由集線器負責端口擴展,才能連接更多的設備。在我們的電腦上,也有一個(或者多個,視USB主控制器的個數而定)集線器,它叫做根集線器,直接連在USB主控制器上。在設備管理器中,我們可以看到USB主控制器和根集線器。如下圖所示。USB數據傳輸路徑如下:USB主控制器發出數據包,通過根集線器,再通過下面的集線器(如果有的話),再發給USB設備;設備返回數據,交給它上層的集線器,上層的集線器再交給更上層的集線器,直到USB主控制器為止。而USB主控制器就可以跟CPU打交道了。在標準的PC機上,USB主控制器是掛在PCI總線上的。在Windows中,USB由各種驅動程序負責管理,最后由驅動程序產生功能設備(FDO),這就是我們所看到的實際設備了。我們的應用程序就可以通過Windows提供的各種API進行訪問USB設備了,例如CreateFile,ReadFile,DeviceIOControl等等。本文引用地址:http://www.104case.com/article/201612/329592.htm
評論