ISP1362 USB OTG控制芯片及其應用
關鍵詞:ISP1362;OTG;USB主機控制器;MCF5249
1 引言
USB已在PC及筆記本電腦中得到了廣泛的應用,它們起到了集線器的作用,用以連接數碼相機、打印機等各種外設,但目前大部分設備還不能實現彼此之間的直接通信。
新的USB On-the-Go標準正是針對這一情況而推出的,它將最終結束用電腦作為各種電子設備連接紐帶的時代,借助USB On-the-Go,外設既可作為主機,也可作為從機,彼此之間能夠互相通信,并可根據實際情況協商確定哪個設備作為主機。
圖1
2 ISP1362的結構特點
飛利浦ISP1362由OTG控制器、主機控制器、外設控制器、USB收發(fā)器、OTG收發(fā)器和緩存器等組成,通過內部集成的總線接口可與CPU相連,ISP1362的內部結構如圖1所示。
OTG控制器模塊用于提供OTG要求的所有控制、監(jiān)控及交換功能。它還支持OTG Supplement 1.0標準規(guī)定的所有功能。
若以OTG模式進行配置,ISP1362既可用作主機,也可用作外設,并支持主機與外設之間角色轉換的主機通信協議HNP(Host Negotiation Protocol)和兩種模式下的對話請求協議SRP(Session Request Proto-col)。ISP1362作為主機使用時,能夠關閉VBUS以響應SRP,而作為外設使用時,能夠啟動SRP以喚醒主機。一套OTG寄存器提供的控制及狀態(tài)監(jiān)控功能可以用來支持HNP及SRP軟件。
ISP1362支持內置電源供電及外部電源供電兩種模式。對于較低功耗的應用設計,可用內部集成的電荷泵激勵器。而如果應用系統(tǒng)的功耗較高,則要用外部電源供電。
作為外設控制器時,ISP1362支持兩個控制端點,還能以全速及低速將多達14個端點編程為任何四種傳輸類型。
除了通用的USB收發(fā)器,ISP1362還集成了計時器及全OTG功能所需要的模擬元件。一個12MHz~48MHz的鎖相環(huán)?PLL?使得采用低成本的12MHz晶振成為可能,同時由于采用了低頻率運作模式,也降低了EMI。
ISP1362還內置了一個用于非OTG配置(僅限于主機及外設)的過流保護電路。當ISP1362用作主機時,一個片內的3.3V到5V電荷激勵器可調整支持大量外設所要求的輸出電流。此外,ISP1362還提供兩個USB端口。端口1可進行軟件配置,并可用作下行、上行或OTG端口。作為OTG端口,端口1可在主機或外設模式下工作,并可通過HNP或布線變化來動態(tài)轉換角色。端口2只用作下行傳輸。
3 ISP1362的引腳功能
圖2是LQFP封裝的ISP1362BD的引腳排列,其主要引腳功能如下:
D0~D15:連接到ISP1362內部寄存器和緩沖存儲器的16比特數據總線。
RD(引腳20):讀信號線。低電平時表示HC/DC驅動器需要讀相應的緩沖存儲器和寄存器。
CS(引腳21):片選信號,低電平有效。用于控制HC/DC驅動器訪問對應的緩沖存儲器和寄存器。
WR(引腳22):寫信號線。低電平時表示HC/DC驅動器需要寫數據到相應的緩沖存儲器和寄存器。
TEST0(引腳23):輸入輸出測試。
DREQ1(引腳24):DMA請求輸出。當它有效時,通知DMA控制器HC正在請求數據傳送。
DREQ2(引腳25):DMA請求輸出。當它有效時,通知DMA控制器DC正在請求數據傳送。
DACK1(引腳28):DMA確認輸入。表明來自HC的DMA傳輸請求已經被DMA控制器確認。
DACK2(引腳29):DMA確認輸入。表明來自DC的DMA傳輸請求已經被DMA控制器確認。
INT1和INT2(引腳30,31):連接到外部微處理器的IRQ引腳,使ISP1362執(zhí)行中斷服務程序(ISRS)。
RESET(引腳32):復位輸入。
圖3
D SUSPEND(引腳34):該引腳電平為高時,設備控制器處于“掛起”狀態(tài),電平為低時,喚醒設備控制器。
H-PSW1(引腳35):和外部PMOS開關相連。當引腳電平為低時,打開PMOS開關以為VBUS提供下行端口;引腳電平為高時,關閉PMOS開關。
CLKOUT(引腳38):可編程時鐘輸出。默認時鐘頻率為12MHz,變化范圍為3MHz~48MHz。
A0(引腳61):用于決定控制器處于命令狀態(tài)還是數據狀態(tài);
A1(引腳62):用于決定控制器工作于主機還是設備控制模式:0 表示處于主機控制(HC)模式;1表示處于設備控制(DC)模式。
4 應用舉例
下面以ISP1362開發(fā)的USB主機為例詳細說明ISP1362的應用。該設計所采用硬件平臺是MO-TOROLA MCF5249C3實驗開發(fā)板,以它作為母板,為USB主機開發(fā)提供RS232、BDM接口,并提供8M的SDRAM及2M的flash ROM的編程調試資源。該設計采用的軟件平臺是Metrowerks CodeWarrior,通過對MCF5249編程實現對ISP1362的控制,從而完成USB主機功能。
4.1 硬件連接原理圖
圖3所示為ISP1362控制芯片與MCF5249的硬件連接電路原理圖。
4.2 USB主機軟件流程
整個USB主機軟件流程如圖4所示,軟件部分主要包括USB主機和USB外設功能模塊。它們既可相互獨立,又可相互調用,共同完成USB主機的功能。
4.3 MCF5249和ISP1362底層通信的實現
這是整個USB體系軟件的根基,包括了MCF5249對ISP1362的讀、寫、設定地址等操作,主要通過MCF5249訪問ISP1362的控制寄存器來完成。ISP1362的寄存器結構是命令―數據寄存器對結構,一個完整的寄存器訪問周期需要在一個命令階段后緊跟一個數據階段。命令階段用來告知ISP1362將在數據階段訪問它的寄存器。在微處理器的16位數據總線上,命令階段占低字節(jié),高位填零。下面是讀32位寄存器的程序代碼:
unsigned long read_reg32(unsigned char reg_no)
{
unsigned int result_l,result_h;
unsigned long result;
outport(hc_com, reg_no); //命令階段
result_l=inport(hc_data); //數據階段
result_h=inport(hc_data); //數據階段
result = result_h;
result = result<<16;
result = result+result_l;
return(result);
}
4.4 主機功能實現
整個程序通過中斷調度來完成主機功能。USB總線在工作的時候,系統(tǒng)仍然按照特定的時序和協議規(guī)范運行。如系統(tǒng)通過數據線上的電平變化檢測到USB設備的接入與移出,接著主機和外設就按照事先約定的順序執(zhí)行一系列的信息交換, 即:主機重啟外設→主機給外設供電→外設通過缺省的地址0與主機通訊→主機給外設分配地址→主機請求外設的一系列功能和設備描述符。因此, 在C 語言中, 通過順序的編程和中斷的調度,就可以完成主機系統(tǒng)的標準的USB活動。
5 結束語
借助ISP1362,開發(fā)商可制造兼容OTG的雙功能產品,實現點到點通信,其中的ISP1362不僅可作為主機或傳統(tǒng)外設使用,還可根據需要動態(tài)轉換主機/外設角色。ISP1362的低功耗特性使其成為小型手持設備如個人數字助理(PDA)、數碼相機、MP3播放器及移動電話等的理想選擇,能滿足此類產品對電池使用壽命、產品尺寸的嚴格要求。
評論