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