《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于SL811HS的嵌入式USB主機(jī)的實(shí)現(xiàn)

基于SL811HS的嵌入式USB主機(jī)的實(shí)現(xiàn)

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

  摘 要: 以S3C44BOX作為主控制器、SL811HS作為接口芯片構(gòu)建USB主機(jī)的硬件設(shè)計(jì)方案及軟件實(shí)現(xiàn)。該系統(tǒng)把USB主機(jī)引入嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)中,拓寬了USB的應(yīng)用領(lǐng)域。
  關(guān)鍵詞: SL811HS USB主機(jī) 嵌入式系統(tǒng)


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


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


2 軟件設(shè)計(jì)
  處理器對(duì)SL811HS的狀態(tài)進(jìn)行檢測(cè)和控制等操作都是基于寄存器實(shí)現(xiàn)的,因此從硬件的角度看,系統(tǒng)編程就是對(duì)其一系列寄存器和緩存區(qū)的讀/寫訪問(wèn)。
2.1 SL811HS的相關(guān)寄存器介紹
  SL811HS內(nèi)帶256B的RAM,其片內(nèi)尋址范圍為0x00~0xFF,CPU可以通過(guò)接口進(jìn)行訪問(wèn)。其中低地址的16個(gè)字節(jié)是SL811HS定義的寄存器,其余的240字節(jié)則是存儲(chǔ)緩存區(qū)。寄存器分布如表1所示。


  USB-A Host與USB-B Host是兩套完全并行的寄存器,即其功能和結(jié)構(gòu)完全相同。例如,EP0XferLen的功能與EP1XferLen的功能和使用方法完全一樣。之所以這樣安排是為了實(shí)現(xiàn)“乒乓”的數(shù)據(jù)處理機(jī)制。這種機(jī)制下,兩套寄存器完全可以交替操作,即其中一套正在被配置時(shí),另一套可以進(jìn)行數(shù)據(jù)傳輸,從而提高系統(tǒng)處理數(shù)據(jù)的效率。
2.2 讀寫程序的實(shí)現(xiàn)
  SL811HS的外接總線地址與數(shù)據(jù)信號(hào)是復(fù)用的,通過(guò)A0信號(hào)來(lái)區(qū)分地址和信號(hào)。由上面的硬件電路設(shè)計(jì)可知,A0接ARM的A0地址線,其基地址為0x02000000。另外SL811HS采用自動(dòng)地址增加模式。下面給出讀寫緩存區(qū)的程序。
  #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處理器上外擴(kuò)USBHost的具體設(shè)計(jì),并詳細(xì)介紹了SL811HS的功能及其工作原理。在此基礎(chǔ)上,可以開發(fā)讀取U盤、攝像頭等USB設(shè)備的嵌入式" title="的嵌入式">的嵌入式系統(tǒng)。此設(shè)計(jì)將會(huì)廣泛地應(yīng)用到數(shù)據(jù)采集系統(tǒng)、工控、遠(yuǎn)程監(jiān)控等領(lǐng)域。
參考文獻(xiàn)
1 馬偉.計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2004
2 吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用.北京:人民郵電出版社,2004
3 SL811 Embeded USB Host/Slave Controller Data Sheet.Cypress Semiconductor Corporation,2002

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