《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > USB OTG擴展子板的實現(xiàn)

USB OTG擴展子板的實現(xiàn)

2008-05-30
作者:宋宇寧, 周兆英, 趙煥軍, 姜

  摘 要:介紹了采用ISP1362控制芯片制作的一塊擴展子板,該板為美國模擬器件公司的ADSP-BF533 EZKIT-Lite 評估板" title="評估板">評估板提供了USB OTG支持,并在BlackFin 16位DSP上通過USB OTG接口實現(xiàn)了與PC機以及U盤的數(shù)據(jù)通信。
  關(guān)鍵詞: USB OTG BlackFin DSP U盤


  USB協(xié)會于2000年推出了USB 2.0規(guī)范,將USB的傳輸速度" title="傳輸速度">傳輸速度由全速的12Mbps 提高到高速的480Mbps,使得USB的傳輸速度得以大幅度提升;2001年底又推出了USB OTG技術(shù),提供了USB產(chǎn)品彼此間可以脫離電腦進行連接通訊的規(guī)范;之后,許多半導體公司先后推出了支持這一新型標準的芯片解決方案,其中飛利浦公司的單芯片USB OTG主機及外設(shè)" title="外設(shè)">外設(shè)控制器ISP1362就適用于嵌入式系統(tǒng)及外設(shè)的點到點連接。
  USB一開始被定位在電腦與周邊設(shè)備的連接,USB 協(xié)會在制定USB 的基本架構(gòu)時選擇了主從式的架構(gòu),將較困難及較復雜的工作都交給主機(Host)端,從而降低了USB設(shè)備(Slave)設(shè)計的復雜度。同時,USB具有即插即用、提供電源等特性,使得USB產(chǎn)品的使用方便性大幅度提高。
  USB 2.0規(guī)范將傳輸速度提高到480Mbps,使USB技術(shù)在電腦周邊產(chǎn)品的連接應用上進入成熟階段。越來越多的USB產(chǎn)品出現(xiàn)后,有部分產(chǎn)品需要脫離電腦的約束互相連接進行通訊,例如數(shù)碼相機和打印機的連接。但是USB原有的架構(gòu)限制了USB產(chǎn)品間互相連接的可能性。對于這種情況,USB協(xié)會又推出了USB OTG規(guī)范來彌補這個缺陷。
1 USB OTG規(guī)范簡介
  USB OTG是USB On The Go的縮寫。在這里“Go”是國際象棋棋盤的意思,On The Go的意思為在國際象棋棋盤上任一條黑格線和白格線都可以找到相連的點。USB OTG意味著,在USB OTG規(guī)范之下,任意兩個符合規(guī)范的USB產(chǎn)品都可以互相連接進行通訊,而不是必須通過電腦才能做到,從而實現(xiàn)了各類USB產(chǎn)品完全脫離電腦進行數(shù)據(jù)傳輸?shù)墓δ堋?BR>  USB OTG 是一個依存于USB 2.0的規(guī)范,所有在USB OTG規(guī)范中未提到的事項都必須以USB 2.0 的規(guī)范為準。因此USB OTG規(guī)范存在的目的僅在于提供一種方式,讓兩個USB產(chǎn)品得以連接,實現(xiàn)數(shù)據(jù)處理的功能。
  隨著USB 體系結(jié)構(gòu)的逐步完善,移動數(shù)據(jù)的交換和存儲設(shè)備" title="存儲設(shè)備">存儲設(shè)備大量涌入市場,U 盤在計算機上的應用已經(jīng)十分常見。因此,USB 主機的嵌入式應用就成了USB 領(lǐng)域新的研究焦點。在此基礎(chǔ)上人們希望以嵌入式USB 主機為核心的系統(tǒng)能夠同時兼容通用USB 設(shè)備的功能,在需要的時候依然可以作為通用PC 機的可移動存儲器。
2 ISP1362控制器簡介
  飛利浦公司生產(chǎn)的ISP1362控制器主要包括一個OTG控制器、一個主機控制器及一個外設(shè)控制器" title="外設(shè)控制器">外設(shè)控制器。它們彼此相連,同時還通過一個數(shù)據(jù)總線接口與外部CPU相連。主機及外設(shè)控制器都配有內(nèi)置存儲器,以緩沖USB通信流量。ISP1362芯片上還集成了一個OTG收發(fā)器、一個VBUS電荷激勵器以及上拉與下拉電阻器,用來減少外部元件的數(shù)量以降低成本。ISP1362內(nèi)部結(jié)構(gòu)如圖1所示。


  ISP1362控制器提供OTG模式要求的所有控制、監(jiān)控及角色交換功能。它支持OTG Supplement 1.0標準規(guī)定的所有功能。
  若以O(shè)TG模式進行配置,ISP1362控制器既可用作主機,也可用作外設(shè),并支持主機與外設(shè)互相轉(zhuǎn)換的主機通信協(xié)議HNP(Host Negotiation Protocol)。此外,它還支持兩種模式下的對話請求協(xié)議SRP(Session Request Protocol),作為主機使用時能夠關(guān)閉VBUS以響應SRP;而作為外設(shè)使用時,能夠啟動SRP以喚醒主機。
  ISP1362有一套OTG寄存器,能提供控制及狀態(tài)監(jiān)控功能,用來支持HNP及SRP軟件。
  ISP1362支持內(nèi)置電源及外部電源兩種供電模式。對于極低功率設(shè)計,采用內(nèi)部集成的電荷激勵器可避免使用外部電源;對于較高功率要求,ISP1362采用外部電源為USB總線供電。
  它還集成了4KB可直接尋址的片內(nèi)緩沖存儲器,并可隨意擴展。
  ISP1362采用更穩(wěn)定、更先進的USB數(shù)據(jù)傳輸結(jié)構(gòu),在增強了已經(jīng)應用成熟的ISP1161控制器性能的同時,還充分利用USB帶寬提供了比以往產(chǎn)品更高的性能。其獨特的結(jié)構(gòu)特性,如用于海量傳輸?shù)呐鋵彌_、用于等時傳輸?shù)亩鄮彌_、用于中斷傳輸?shù)淖詣又袛噍喸兯俾?,使得ISP1362能夠?qū)崿F(xiàn)USB 2.0標準制定的全速數(shù)據(jù)傳輸速率。
  ISP1362由經(jīng)市場檢驗應用成熟的ISP1181外設(shè)控制器及2462B內(nèi)置緩沖存儲器等組成,可滿足各種不同應用場合的需求。ISP1362的高效雙緩沖結(jié)構(gòu)最大限度地增加了數(shù)據(jù)的吞吐量。
  作為外設(shè)控制器,ISP1362除支持兩個控制端點外,還能以全速及低速將多達14個端點編程為任何四種傳輸類型。
3 USB OTG擴展子板
  為了方便開發(fā)人員基于ADSP-BF533 16位DSP處理器進行開發(fā),美國模擬器件公司研制了ADSP-BF533 EZKIT-Lite評估板。評估板的核心是一片160腳Mini-BGA封裝的ADSP-BF533 DSP處理器,工作頻率最高可以達到600MHz,評估板具有32MB(16M×16bit)SDRAM,2MB Flash存儲器(512K×16bit×2chip)。在音頻處理方面評估板由AD1836提供多路聲音接口,包括4路2通道音頻輸入端口、6路3通道音頻輸出端口;在視頻方面則由ADV7183視頻解碼器和ADV7171視頻編碼器分別提供3路視頻輸入/輸出端口。評估板還提供了JTAG、UART等標準接口,按鈕電路和LED顯示電路等,其擴展接口預留了包括PPI、SPI、EBIU、PF、SPORT0/1等所有關(guān)鍵信號管腳,使得USB OTG擴展功能能夠得以實現(xiàn)?;贗SP1362設(shè)計的USB OTG子板原理框圖如圖2所示。它由ADSP-BF533 EZKIT-Lite評估板、ISP1362控制器和一些接口及電源管理電路組成。


4 Blackfin軟件設(shè)計
  基于USB OTG子板,本文設(shè)計了一套層次分明的C語言驅(qū)動程序,其底層提供了操作ISP1362控制器的所有函數(shù),并且經(jīng)過了科學、合理的封裝;而上層提供了許多使用方便的API,使用這些API可以實現(xiàn)設(shè)備狀態(tài)與PC機的通信和主機狀態(tài)對U盤的讀寫。
4.1 VDSP ++集成調(diào)試環(huán)境
  Visual DSP++是美國模擬器件公司為其DSP系列研制的集成編譯環(huán)境,提供了界面良好、效率極高的編輯和編譯環(huán)境,并且支持ASM,C,C++。所有的文件都以項目(Project)和工作空間(Workspace)的形式存儲和管理,使用方便、簡潔。
  VDSP++的在線仿真和軟件仿真功能可以方便地進行程序調(diào)試,最新版本的VDSP++支持Xthread多線程實時操作系統(tǒng),同時支持雙核DSP的調(diào)試。本文的USB OTG程序全部在VDSP++上實現(xiàn)。
4.2 USB OTG 程序設(shè)計
  USB OTG驅(qū)動程序用來控制ISP1362完成各種操作,實現(xiàn)其功能。其程序棧結(jié)構(gòu)如圖3所示。主要分為四個部分:USB設(shè)備棧,OTG驅(qū)動程序,USB主機棧和OTG設(shè)備應用程序接口(API)。其中,USB設(shè)備棧由設(shè)備控制器驅(qū)動、USB協(xié)議層、USB設(shè)備類驅(qū)動三層組成;USB主機棧由主機控制器驅(qū)動、USB驅(qū)動和目標外設(shè)主機類驅(qū)動組成。


  USB OTG 驅(qū)動程序簡要流程圖如圖4所示。系統(tǒng)上電后,首先進行初始化,對CPU的頻率、讀寫周期及延時、GPIO、中斷等進行初始設(shè)置。通過檢測連接在ISP1362的ID管腳上的跳線,判斷當前是工作于從設(shè)備狀態(tài)還是主機狀態(tài)。如果工作于主機狀態(tài),則對ISP1362進行相應初始化,并對端口進行檢測。如果有設(shè)備連接,則進行枚舉;否則進入空閑(IDLE)狀態(tài)。若工作于從設(shè)備狀態(tài),則對ISP1362進行相應的初始化,等待連接到主機完成枚舉。


  為了節(jié)省開發(fā)時間,本文使用WinDriver生成PC端驅(qū)動程序,并開發(fā)了簡單的PC端用戶應用程序,與工作于USB從設(shè)備狀態(tài)的子板進行通信。
4.3 U盤讀寫的實現(xiàn)
  嵌入式系統(tǒng)通常需要進行大容量數(shù)據(jù)存儲,U盤是一種很好的存儲媒介,具有容量大、可移動、可擴展、與PC機交互數(shù)據(jù)方便等優(yōu)點,因而在本文的USB OTG子板上實現(xiàn)與U盤的讀寫具有很強的應用價值和市場前景。
  U盤屬于USB大容量存儲設(shè)備(USB Mass Storage Device),要對U盤讀寫,USB主機必須具有相應的驅(qū)動,對各種讀寫指令進行封裝、解釋和執(zhí)行。
  本文首先在USB主機接口驅(qū)動上層封裝一個API函數(shù)——USBXfer,實現(xiàn)USB數(shù)據(jù)傳輸。USBXfer函數(shù)流程圖如圖5所示。
  其次,在USBXfer函數(shù)的基礎(chǔ)上,添加USB大容量存儲設(shè)備中規(guī)定的CBW和CSW管理程序,并進一步添加實現(xiàn)各種ATAPI指令的CBW。
  最后,通過各種命令的有機組合使用,實現(xiàn)數(shù)據(jù)傳輸。U盤讀寫程序流程圖如圖6所示。


  本文采用飛利浦公司的ISP1362控制芯片,基于ADSP-BF533 EZKIT-Lite評估板設(shè)計的USB OTG子板初步實現(xiàn)了從設(shè)備和主機的數(shù)據(jù)傳輸:作為從設(shè)備,PC機端的應用程序可以通過USB OTG接口對評估板上的SDRAM進行數(shù)據(jù)的讀寫;作為主機,可以枚舉連接到USB OTG接口上的各種USB 設(shè)備,如鼠標、鍵盤、U盤、USB硬盤等,而且實現(xiàn)了對U盤的讀寫?;诒疚牡腢SB OTG子板,可以方便地將USB OTG功能加入到各種基于Blackfin DSP的嵌入式系統(tǒng)之中去,實現(xiàn)USB嵌入式設(shè)備之間的數(shù)據(jù)傳輸。
參考文獻
1 Lane Hauck. Embedding USB. Embedded Systems Confer-ence, Session 206, Cypress Semiconductor, March 13, 2002
2 ADSP-BF533 EZ-KIT Lite Evaluation System Manual. Ana-log Device Inc., April 2004
3 譚 剛, 林水生. ISP1362 USB OTG控制芯片及其應用. 國外電子元器件,2005;(2)
4 楊智君,田 地,余青松等. USB On-The-Go技術(shù)概述,電子技術(shù)應用,2003;29(4)
5 程 軍,陳貴燦,姜 飛.通用串行總線的OTG技術(shù).微電子學與計算機,2003;(6)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。