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