《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于SL811HS的嵌入式USB主機的實現

基于SL811HS的嵌入式USB主機的實現

2008-05-29
作者:段海龍,程 健

  摘 要: 以S3C44BOX作為主控制器、SL811HS作為接口芯片構建USB主機的硬件設計方案及軟件實現。該系統把USB主機引入嵌入式系統" title="嵌入式系統">嵌入式系統中,拓寬了USB的應用領域。
  關鍵詞: SL811HS USB主機 嵌入式系統


  隨著USB(Univeral Serial Bus)應用領域的逐步擴大,人們對于USB的期望也越來越高。尤其是在移動數據領域,希望能通過PDA等移動設備直接與USB外設" title="外設">外設通信,使USB可以應用在沒有PC的領域。但任何一次USB的數據傳輸都必須由主機發起和控制,所有USB設備只能與主機建立連接,任何兩個外設之間或兩個主機之間無法直接通信。由于當前大多數主機使用PC,所以所使用的USB移動設備都是只能在PC上使用的USB設備,如USB移動硬盤、USB接口的數碼相機等,只能通過PC進行文件和數據交換。因此開發嵌入式的USB主機系統十分必要。
1 硬件電路設計
  本文采用三星公司ARM7系列的S3C44BOX作為主處理器,Cypress公司生產的SL811HS作為USB主控制器。
1.1 S3C44BOX芯片介紹
  S3C44BOX微處理器是三星公司專為手持設備和一般應用提供的高性價比和高性能的微控制器解決方案。它使用ARM7TDMI內核,最高工作頻率為66MHz。S3C44BOX通過在ARM7TDMI基礎上擴展完整的通用外圍器件,使系統費用降至最低。集成的片上" title="片上">片上功能主要有:(1)擴展內存控制器(FP/FDO/SDRAM控制,片選邏輯);(2)帶8KB緩存的2.5V靜態ARM7TDMI CPU核;(3)帶有1個專用DMA通道的LCD控制器;(4)2個通用DMA通道,1個帶外部請求管腳的DMA通道;(5)1個多主機I2C總線控制器;(6)5個PWM定時器及1個內部定時器;(7)看門狗定時器;(8)71個通用I/O口,8個外部中斷源;(9)能量控制模式:正常、低、休眠和停止模式;(10)8個10位ADC;(11)帶PLL的片上時鐘發生器。
1.2 SL811HS芯片介紹
  SL811HS是一款嵌入式USB主機/設備控制器" title="設備控制器">設備控制器,它既可做主機控制器,又可做設備控制器,本系統只用做USB主機控制器。SL811HS的功能模塊如圖1所示。


  SL811HS的主要特點:(1)可作為USB主機或設備的接口控制器;(2)支持USB協議1.1,提供全速和低速兩種總線速度方式;(3)片上集成了SIE、單端口根Hub、USB收發器和256B的SRAM;(4)3.3V工作電壓,接口兼容5V電平;(5)硬件自動產生幀起始包SOF和CRC5/16校驗。
1.3 硬件電路
  處理器與SL811HS的連線如圖2所示。8位數據總線、中斷請求引腳接S3C44BOX的數據總線D0~D7和外部中斷2,片選連到處理器的nGCS1,即Bank1,A0是地址指針信號。M/S是工作模式選擇,M/S=1是Slave模式,M/S=0是Master模式。此處M/S接地,工作在主機(Host)模式。D+和D-是與USB設備相連的數據信號。由于USB接在S3C44B0X的Bank1上,因此SL811HS的RAM基址是0x02000000。


2 軟件設計
  處理器對SL811HS的狀態進行檢測和控制等操作都是基于寄存器實現的,因此從硬件的角度看,系統編程就是對其一系列寄存器和緩存區的讀/寫訪問。
2.1 SL811HS的相關寄存器介紹
  SL811HS內帶256B的RAM,其片內尋址范圍為0x00~0xFF,CPU可以通過接口進行訪問。其中低地址的16個字節是SL811HS定義的寄存器,其余的240字節則是存儲緩存區。寄存器分布如表1所示。


  USB-A Host與USB-B Host是兩套完全并行的寄存器,即其功能和結構完全相同。例如,EP0XferLen的功能與EP1XferLen的功能和使用方法完全一樣。之所以這樣安排是為了實現“乒乓”的數據處理機制。這種機制下,兩套寄存器完全可以交替操作,即其中一套正在被配置時,另一套可以進行數據傳輸,從而提高系統處理數據的效率。
2.2 讀寫程序的實現
  SL811HS的外接總線地址與數據信號是復用的,通過A0信號來區分地址和信號。由上面的硬件電路設計可知,A0接ARM的A0地址線,其基地址為0x02000000。另外SL811HS采用自動地址增加模式。下面給出讀寫緩存區的程序。
  #define USB_SL811ADDR (*(volatile unsigned char*)0x02000000)
  #define USB_SL811DATA (*(volatile unsigned char*)0x02000001)
  void SL811Write(U8 address,U8 value)
  {
  USB_SL811ADDR=address;
  USB_SL811DATA=value;
  }
  U8 SL811Read(U8 address)
  {
  USB_SL811ADDR=address;
  return USB_SL811DATA;
  }
  void SL811BufRead(U8 addr,U8*s,U8 c)
  {
  U8 i;i=c;
  USB_SL811ADDR=addr;
  while (i--)
  *s++=USB_SL811DATA;
  }
  void SL811BufWrite(U8 addr,U8*s,U8 c)
  {
  USB_SL811ADDR=addr;
  while (c--)
  USB_SL811DATA=*s++;
  }
  本文給出了在S3C44BOX處理器上外擴USBHost的具體設計,并詳細介紹了SL811HS的功能及其工作原理。在此基礎上,可以開發讀取U盤、攝像頭等USB設備的嵌入式" title="的嵌入式">的嵌入式系統。此設計將會廣泛地應用到數據采集系統、工控、遠程監控等領域。
參考文獻
1 馬偉.計算機USB系統原理及其主/從機設計.北京:北京航空航天大學出版社,2004
2 吳明暉.基于ARM的嵌入式系統開發與應用.北京:人民郵電出版社,2004
3 SL811 Embeded USB Host/Slave Controller Data Sheet.Cypress Semiconductor Corporation,2002

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧美不卡一区二区三区 | 国产欧美成人一区二区三区 | 国产二区视频在线观看 | 久久久高清免费视频 | 国产原创中文字幕 | 精品久久久一二三区 | 欧美成人性视频在线黑白配 | 国产一区二区三区在线观看精品 | 美女福利视频一区 | 久久久久久久久久久久久久 | 亚洲国产精品久久久久 | 国产91精品一区二区麻豆网站 | 日本亚洲国产精品久久 | 精品福利一区二区免费视频 | 久久综合气久久狠狠狠97色 | 国产人免费人成免费视频 | 日日综合网| 99视频九九精品视频在线观看 | 国产免费久久精品久久久 | 深爱婷婷激情网 | 深爱五月激情 | 青草国内精品视频在线观看 | 春色www视频在线观看 | 久久成人国产精品免费 | 最新久久免费视频 | 久久久久久九九 | 久草综合在线 | 2020年最新国产精品视频免费 | 色视频在线免费观看 | 特级一级毛片免费看 | 日本草草影院 | 精品一区二区免费视频 | 国产欧美va欧美va香蕉在线 | 国产三级久久久精品三级 | 色开心婷婷| www.日本在线视频 | 国产一级一片免费播放i | 免费国产成人 | 国产天堂在线视频 | 丁香婷婷开心激情深爱五月 | 毛片视频免费 |