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

USB OTG擴展子板的實現

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

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


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


  ISP1362控制器提供OTG模式要求的所有控制、監(jiān)控及角色交換功能。它支持OTG Supplement 1.0標準規(guī)定的所有功能。
  若以OTG模式進行配置,ISP1362控制器既可用作主機,也可用作外設,并支持主機與外設互相轉換的主機通信協(xié)議HNP(Host Negotiation Protocol)。此外,它還支持兩種模式下的對話請求協(xié)議SRP(Session Request Protocol),作為主機使用時能夠關閉VBUS以響應SRP;而作為外設使用時,能夠啟動SRP以喚醒主機。
  ISP1362有一套OTG寄存器,能提供控制及狀態(tài)監(jiān)控功能,用來支持HNP及SRP軟件。
  ISP1362支持內置電源及外部電源兩種供電模式。對于極低功率設計,采用內部集成的電荷激勵器可避免使用外部電源;對于較高功率要求,ISP1362采用外部電源為USB總線供電。
  它還集成了4KB可直接尋址的片內緩沖存儲器,并可隨意擴展。
  ISP1362采用更穩(wěn)定、更先進的USB數據傳輸結構,在增強了已經應用成熟的ISP1161控制器性能的同時,還充分利用USB帶寬提供了比以往產品更高的性能。其獨特的結構特性,如用于海量傳輸的配對緩沖、用于等時傳輸的多幀緩沖、用于中斷傳輸的自動中斷輪詢速率,使得ISP1362能夠實現USB 2.0標準制定的全速數據傳輸速率。
  ISP1362由經市場檢驗應用成熟的ISP1181外設控制器及2462B內置緩沖存儲器等組成,可滿足各種不同應用場合的需求。ISP1362的高效雙緩沖結構最大限度地增加了數據的吞吐量。
  作為外設控制器,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等所有關鍵信號管腳,使得USB OTG擴展功能能夠得以實現?;贗SP1362設計的USB OTG子板原理框圖如圖2所示。它由ADSP-BF533 EZKIT-Lite評估板、ISP1362控制器和一些接口及電源管理電路組成。


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


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


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


  本文采用飛利浦公司的ISP1362控制芯片,基于ADSP-BF533 EZKIT-Lite評估板設計的USB OTG子板初步實現了從設備和主機的數據傳輸:作為從設備,PC機端的應用程序可以通過USB OTG接口對評估板上的SDRAM進行數據的讀寫;作為主機,可以枚舉連接到USB OTG接口上的各種USB 設備,如鼠標、鍵盤、U盤、USB硬盤等,而且實現了對U盤的讀寫?;诒疚牡腢SB OTG子板,可以方便地將USB OTG功能加入到各種基于Blackfin DSP的嵌入式系統(tǒng)之中去,實現USB嵌入式設備之間的數據傳輸。
參考文獻
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技術概述,電子技術應用,2003;29(4)
5 程 軍,陳貴燦,姜 飛.通用串行總線的OTG技術.微電子學與計算機,2003;(6)

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