USB總線介紹及應用
?USB(Universal Serial Bus)是1995年Microsoft、Compaq、IBM等公司聯合制定的一種新的PC串行通信協議。USB協議出臺后得到各PC廠商、芯片制造商和PC外設廠商的廣泛支持。USB本身也處于不斷的發展和完善中,從當初的0.7、0.8到現在廣泛采用的1.0、1.1版本到即將被采用的2.0版本。USB外設在國外以驚人的速度發展,迄今為止,各種USB的外設已經有上千種。那么,USB為什么如此受親睞呢?這要從它自身所具有的很多優點談起。
1. PC為什么急需USB
??? 隨著PC的廣泛應用,其外設也越來越多,打印機、鼠標、掃描儀、游戲桿、音箱...。每個外設都需要通過一個接口與PC相連。外設多了,PC的接口自然也就不夠用了。在很多特定的應用場合,如工業數據采集等領域,常常用采集板卡來完成工作,而每一個板卡自然會占用一個PC插槽。PC插槽就那么幾個,要是采集點多了怎么辦呢? PC外設安裝過程中比較麻煩的另一件事情是在加減設備時,必須關掉電源,加減設備完成之后再從新啟動機器。對于板卡式的外設就更加麻煩了,您不得不打開機箱,弄得滿頭大汗,一不小心,汗水滴到主板上,機器就死翹翹了。我就碰到過這樣的事情。
??? USB的出現就能夠為您完全解決掉上面提到的這些尷尬,每臺PC通過USB端口最多可以接127個外設!把您所有的東西全接上來吧,沒問題!還有,USB完全是PNP的,在您第一次安裝完成以后,加減設備只需要拔出或插上USB插頭就一切OK了,不必理會機器是開還是關,就這么簡單。
??? 可不要因為慢得象蝸牛的232而使你聯想到串行就代表慢。USB有快速和慢速工作方式,傳輸速率分別為12Mbps和1.5Mbps,比232快了不知道多少倍。
2. USB的結構框架
????????????????????????????????? root hub
??????????? ______________|___________
??????????? | ???????????????????????????????????????????????? |
?????????? hub ?????????????????????????????????????????? hub
????? ___|______ ???????????????????? ________|________
????? |??? |????? | ??? | ?????????????????????? | ?????? | ????????????? | ???????? |
??? d1 d2?? d3 h1 ??????????????????? h2 ??? d4????????? d5 ????? d6
????????????? d* ? 外設??????????? h* ?? hub
??? 上圖顯示了USB的拓撲結構。
??? PC主板上的那兩個插口,就是root hub。root hub是一個USB系統的總控制端口。它既可以直接接外設,也可以通過hub控制更多的外設。 USB hub結構類似通常的網絡集線器,有一個upper link和很多子端口,每個子端口可以接一個外設,也可以再通過一個hub接入更多外設,直到所有外設加起來到127為止。
3. USB設備的加載過程
??? 當USB設備接入hub或root hub后,主機控制器和主機軟件(host controller & hos
t software)能自動偵測到設備的接入。然后host software讀取一系列的數據用于確認
設備特征,如vendor ID, product ID, interface工作方式,電源消耗量等參數。之后
主機分配給外設一個單獨的地址。地址是動態分配的,各次可能不同。在分配完地址之后對設備進行初始化,初始化完成以后就可以對設備進行IO操作了。
4. USB的適用范圍
??? 其實除了象顯卡這種需要極高數據量和一些實時性要求特別高的控制設備,幾乎所有的PC外設都可以移植到USB上來。而事實上國外幾乎已經做到了這一點。我想對于國內的開發者來說,在鼠標、鍵盤等產品上就不必去和國外競爭了。但即使這樣,USB的PC外設仍然有大得不可限量的發展空間。我歸納了以下幾個大類供開發者參考:
1. 傳統PC外設,象鼠標、鍵盤、音箱、游戲桿、掃描儀、打印機等。
2. 基于PC的通信設備,如Modem, ISDN等
3. 端口轉接器,如USB-->232, USB-->LPT等,以適應原來的設備。
4. 具有中國特色的設備,象漢字輸入筆那樣的東西。
5. 工業領域。USB在這個領域產生的影響是驚人的,我將另外專門寫關于這方面的文章。