新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > USB應用技術

        USB應用技術

        作者: 時間:2012-04-18 來源:網絡 收藏

        通用串行總線(Universal Serial Bus,簡稱)從誕生后發展到今天,已將近十年。伴隨著計算機技術的迅猛發展,協議從1.1過渡到2.0,作為其最重要指標的設備傳輸速度也從1.5Mb/s的低速和12Mb/s的全速提高到如今的480Mb/s的高速。USB作為過去幾年里計算機和嵌入式系統領域中的熱點,推動了計算機外設的飛速發展。毫無疑問的是,USB已經占領了PC和外設的市場;而在未來,USB又將以OTG再次引領計算機外設產業的發展方向,同時也將把計算機和嵌入式領域的學術研究帶入更為深入的層次。

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

        USB設備作為一個完整的硬件設備,是由硬件和固件兩部分來組成的。其中固件中包括了有關系統配置和CPU的一些設置模塊、USB協議棧模塊等幾部分。USB總線上的信息有兩種:一種是差模數據線上的包;另一種則是有特殊定義的數據線的信號,比如復位信號、遠程喚醒信號等等。因此,設備的USB棧就要能夠識別并處理這些不同的信息內容。同時,在上層,這些信息又要被組成各種傳輸的類型來加以處理。所以,整個協議棧的內容是非常龐大的。
        一般來說,USB設備在硬件上要由USB的芯片來實現。這個芯片的作用有:管理和實現USB物理層差模信號;提供給連接的端口;電源管理(主要指提供3.3V的電源);以寄存器的形式提供各種端點;提供各種配置和存儲寄存器。因此,固件就是以這些硬件資源為基礎來實現USB的功能。一般的USB芯片都會提供幾個標準的端點,每個端點都支持單一的總線傳輸方式。其中端點0必須支持控制傳輸,而其他的端點則可以支持同步傳輸、批量傳輸或中斷傳輸中的任意一種傳輸方式。管理和使用這些端點,就需要通過相應的控制寄存器、狀態寄存器、中斷寄存器和數據寄存器來實現。其中,控制寄存器用于設置端點的工作模式、啟用端點的功能等;狀態寄存器用于查詢端點的當前狀態;中斷寄存器則用于設置端點的中斷觸發和響應功能;數據寄存器則是設備與主機交換數據用的緩沖區。合理和有效地使用這些寄存器,是編好USB協議棧的關鍵。
        簡而言之,USB的協議棧以設備端點的使用和管理作為基礎和核心。而在端點的這些寄存器中,對中斷寄存器的管理尤其重要。也因此,編寫USB的中斷服務程序是整個設備端USB固件編寫的主要內容。可以分為三個步驟:

        USB主機的嵌入式開發技術

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

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


        上一頁 1 2 下一頁

        關鍵詞: USB 應用技術

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 开原市| 宜兰县| 郯城县| 永嘉县| 阳泉市| 克拉玛依市| 邵阳县| 库车县| 长沙县| 比如县| 安国市| 绥棱县| 获嘉县| 湖北省| 宁南县| 云安县| 孝昌县| 淄博市| 仙桃市| 东海县| 东宁县| 丰台区| 自治县| 鹿邑县| 兴城市| 江口县| 信丰县| 邯郸市| 扶绥县| 敦化市| 盐源县| 金乡县| 奇台县| 峡江县| 凤山县| 镇原县| 财经| 卓资县| 长汀县| 屯昌县| 南丹县|