USB入門系列之二 —— USB的鏈接模型 收藏
2007-12-10 14:29
USB是一種主從結構。主機叫作Host,從機叫作Device(也叫作設備),集線器也被看成一種特殊的設備處理。USB的數據交換隻能發生在主機和設備之間,主機和主機,設備和設備之間不能互連。爲了在物理上區分主機和設備,使用了不一樣的插頭和插座,這個在USB的鏈接器一節中會講到。全部的數據傳輸都由主機主動發起,而設備只是被動的負責應答。例如,在讀數據時,USB先發出讀命令,設備收到該命令後,才返回數據。在USB OTG中,一個設備能夠在從機和主機之間切換,這樣就能夠實現設備與設備之間的鏈接,大大增長了USB的使用範圍。但這時依然沒有脫離這種主從關係,兩個設備之間必然有一個做爲主機,另外一個做爲從機。USB OTG增長了一種MINI USB接頭,比普通的4線USB多了一個ID表識線,用來代表它是主機仍是設備,這個之後會講到。
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等等。 .net
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/benny5609/archive/2008/03/18/2194752.aspxblog