新聞中心

USB應(yīng)用技術(shù)

作者: 時(shí)間:2012-04-18 來(lái)源:網(wǎng)絡(luò) 收藏

通用串行總線(xiàn)(Universal Serial Bus,簡(jiǎn)稱(chēng))從誕生后發(fā)展到今天,已將近十年。伴隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,協(xié)議從1.1過(guò)渡到2.0,作為其最重要指標(biāo)的設(shè)備傳輸速度也從1.5Mb/s的低速和12Mb/s的全速提高到如今的480Mb/s的高速。USB作為過(guò)去幾年里計(jì)算機(jī)和嵌入式系統(tǒng)領(lǐng)域中的熱點(diǎn),推動(dòng)了計(jì)算機(jī)外設(shè)的飛速發(fā)展。毫無(wú)疑問(wèn)的是,USB已經(jīng)占領(lǐng)了PC和外設(shè)的市場(chǎng);而在未來(lái),USB又將以O(shè)TG再次引領(lǐng)計(jì)算機(jī)外設(shè)產(chǎn)業(yè)的發(fā)展方向,同時(shí)也將把計(jì)算機(jī)和嵌入式領(lǐng)域的學(xué)術(shù)研究帶入更為深入的層次。

圖1 帶有USB接口的PC外設(shè) USB設(shè)備開(kāi)發(fā)技術(shù)
1994年11月,以Intel為首的7家公司推出了USB協(xié)議規(guī)范的第一個(gè)草案。自從1996年2月USB版本1.0發(fā)布后短短幾年內(nèi),USB不光成為了PC主板上的標(biāo)準(zhǔn)接口,而且成為了所有PC外部設(shè)備如鍵盤(pán)、鼠標(biāo)、顯示器、打印機(jī)、數(shù)碼相機(jī)、掃描儀和游戲手柄等與PC相連的標(biāo)準(zhǔn)協(xié)議之一,迅速占領(lǐng)了計(jì)算機(jī)中低速外部設(shè)備的市場(chǎng),大有取代串口和并口之勢(shì)。圖1展示了幾款帶有USB接口的PC外設(shè)、數(shù)碼家電和通信產(chǎn)品。
首先,我們總結(jié)出USB設(shè)備開(kāi)發(fā)的基本內(nèi)容:

USB設(shè)備作為一個(gè)完整的硬件設(shè)備,是由硬件和固件兩部分來(lái)組成的。其中固件中包括了有關(guān)系統(tǒng)配置和CPU的一些設(shè)置模塊、USB協(xié)議棧模塊等幾部分。USB總線(xiàn)上的信息有兩種:一種是差模數(shù)據(jù)線(xiàn)上的包;另一種則是有特殊定義的數(shù)據(jù)線(xiàn)的信號(hào),比如復(fù)位信號(hào)、遠(yuǎn)程喚醒信號(hào)等等。因此,設(shè)備的USB棧就要能夠識(shí)別并處理這些不同的信息內(nèi)容。同時(shí),在上層,這些信息又要被組成各種傳輸?shù)念?lèi)型來(lái)加以處理。所以,整個(gè)協(xié)議棧的內(nèi)容是非常龐大的。
一般來(lái)說(shuō),USB設(shè)備在硬件上要由USB的芯片來(lái)實(shí)現(xiàn)。這個(gè)芯片的作用有:管理和實(shí)現(xiàn)USB物理層差模信號(hào);提供給連接的端口;電源管理(主要指提供3.3V的電源);以寄存器的形式提供各種端點(diǎn);提供各種配置和存儲(chǔ)寄存器。因此,固件就是以這些硬件資源為基礎(chǔ)來(lái)實(shí)現(xiàn)USB的功能。一般的USB芯片都會(huì)提供幾個(gè)標(biāo)準(zhǔn)的端點(diǎn),每個(gè)端點(diǎn)都支持單一的總線(xiàn)傳輸方式。其中端點(diǎn)0必須支持控制傳輸,而其他的端點(diǎn)則可以支持同步傳輸、批量傳輸或中斷傳輸中的任意一種傳輸方式。管理和使用這些端點(diǎn),就需要通過(guò)相應(yīng)的控制寄存器、狀態(tài)寄存器、中斷寄存器和數(shù)據(jù)寄存器來(lái)實(shí)現(xiàn)。其中,控制寄存器用于設(shè)置端點(diǎn)的工作模式、啟用端點(diǎn)的功能等;狀態(tài)寄存器用于查詢(xún)端點(diǎn)的當(dāng)前狀態(tài);中斷寄存器則用于設(shè)置端點(diǎn)的中斷觸發(fā)和響應(yīng)功能;數(shù)據(jù)寄存器則是設(shè)備與主機(jī)交換數(shù)據(jù)用的緩沖區(qū)。合理和有效地使用這些寄存器,是編好USB協(xié)議棧的關(guān)鍵。
簡(jiǎn)而言之,USB的協(xié)議棧以設(shè)備端點(diǎn)的使用和管理作為基礎(chǔ)和核心。而在端點(diǎn)的這些寄存器中,對(duì)中斷寄存器的管理尤其重要。也因此,編寫(xiě)USB的中斷服務(wù)程序是整個(gè)設(shè)備端USB固件編寫(xiě)的主要內(nèi)容??梢苑譃槿齻€(gè)步驟:

USB主機(jī)的嵌入式開(kāi)發(fā)技術(shù)

USB主機(jī)嵌入式化的必要性
隨著USB應(yīng)用領(lǐng)域的逐漸擴(kuò)大,人們希望USB能應(yīng)用在各種計(jì)算機(jī)領(lǐng)域中,尤其是在移動(dòng)數(shù)據(jù)交換等沒(méi)有PC的領(lǐng)域中。
非PC應(yīng)用領(lǐng)域?這正是USB一個(gè)致命的弱點(diǎn)。USB的拓?fù)浣Y(jié)構(gòu)中居于核心地位的是主機(jī)(Host),任何一次USB的數(shù)據(jù)傳輸都必須由主機(jī)來(lái)發(fā)起和控制,所有的USB設(shè)備都只能和主機(jī)建立連接,任何兩個(gè)外設(shè)之間或是兩個(gè)主機(jī)之間無(wú)法直接通信。而目前,大量的扮演主機(jī)角色的是個(gè)人電腦(PC)。因此,我們目前所買(mǎi)到和使用的USB移動(dòng)設(shè)備,都是USB的設(shè)備,比如USB的移動(dòng)硬盤(pán)、USB接口的數(shù)碼相機(jī)等等。所有這些設(shè)備都只能在PC上使用,只能通過(guò)PC來(lái)進(jìn)行相互的文件和數(shù)據(jù)交換。沒(méi)有了PC,這些設(shè)備就“失靈”了(就數(shù)據(jù)交換的功能而言)。
因此,“如何將USB應(yīng)用到嵌入式領(lǐng)域?如何實(shí)現(xiàn)USB點(diǎn)對(duì)點(diǎn)的通信?”等問(wèn)題,開(kāi)始進(jìn)入了USB開(kāi)發(fā)者的討論議程。正是在這種新的需求之下,USB 主機(jī)的嵌入式應(yīng)用成了USB領(lǐng)域新的興奮點(diǎn)。
PC上USB主機(jī)的功能與工作原理
USB主機(jī)完成的主要功能包括以下5個(gè)方面:檢測(cè)USB設(shè)備的連接和斷開(kāi)、管理主機(jī)和設(shè)備之間的標(biāo)準(zhǔn)控制管道、管理主機(jī)和設(shè)備之間的數(shù)據(jù)流、收集設(shè)備的狀態(tài)和統(tǒng)計(jì)總線(xiàn)的活動(dòng)、控制和管理主機(jī)控制器與設(shè)備之間的電氣接口。
剖析PC上USB主機(jī)部分的結(jié)構(gòu),可以看到,PC主板上一般都有兩個(gè)USB端口,并由一個(gè)USB主機(jī)接口芯片控制;這個(gè)USB主機(jī)接口芯片又通過(guò)PCI總線(xiàn),與CPU進(jìn)行通信;此外,芯片附近還有一些電源管理的部分,用于對(duì)USB外設(shè)進(jìn)行電源的供給和管理。這是其硬件部分。軟件部分,很顯然,就是PC的操作系統(tǒng)所能夠提供的各種驅(qū)動(dòng)程序和應(yīng)用程序支持,具體來(lái)說(shuō),包括三部分:USB主控制器驅(qū)動(dòng)程序,其負(fù)責(zé)CPU與USB主機(jī)接口芯片的通訊,處理底層USB包的發(fā)送與接收;USB核心驅(qū)動(dòng)程序,這部分是USB底層與用戶(hù)程序之間的橋梁,負(fù)責(zé)解釋用戶(hù)程序中對(duì)USB的各種操作命令,并解碼后發(fā)送給底層驅(qū)動(dòng);USB用戶(hù)程序和類(lèi)協(xié)議驅(qū)動(dòng)程序,這部分就是上層的應(yīng)用層,主要包括操作系統(tǒng)提供給用戶(hù)的API、以及用戶(hù)自己定義的對(duì)USB設(shè)備的各種操作,比如讀取USB設(shè)備某幾個(gè)特定的數(shù)據(jù)等等。
嵌入式USB主機(jī)系統(tǒng)的設(shè)計(jì)內(nèi)容
毒俟copy;程,獲取USB設(shè)備的描述符并加以利用等。

移動(dòng)USB——USB OTG的發(fā)展
USB On-The-Go,顧名思義,是USB應(yīng)用在便攜式移動(dòng)設(shè)備領(lǐng)域中,因此,我們姑且將其翻譯為“便攜式USB”(或者“移動(dòng)USB”),簡(jiǎn)記成USB OTG。OTG 1.0作為USB 2.0的補(bǔ)充協(xié)議,基本上符合USB 2.0規(guī)范。但是,有所不同的是符合USB OTG的設(shè)備完全拋開(kāi)了PC,既可以作為主機(jī),也可以作為外設(shè),而與另一個(gè)OTG設(shè)備直接實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)(Pear to Pear)通訊。因此,這類(lèi)OTG設(shè)備也被稱(chēng)為是雙角色設(shè)備(Dual-Role Device,簡(jiǎn)稱(chēng)為DRD),并能夠根據(jù)接入設(shè)備的特性和數(shù)據(jù)傳輸過(guò)程中的情況,自動(dòng)切換為主機(jī)或是設(shè)備。需要


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: USB 應(yīng)用技術(shù)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉