ISP1362 USB OTG控制芯片及其應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
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ī)。
2 Isp1362的結(jié)構(gòu)特點(diǎn)
飛利浦Isp1362由OTG控制器、主機(jī)控制器、外設(shè)控制器、USB收發(fā)器、OTG收發(fā)器和緩存器等組成,通過內(nèi)部集成的總線接口可與cpu相連,Isp1362的內(nèi)部結(jié)構(gòu)如圖1所示。
OTG控制器模塊用于提供OTG要求的所有控制、監(jiān)控及交換功能。它還支持OTG supplement 1.0標(biāo)準(zhǔn)規(guī)定的所有功能。
若以O(shè)TG模式進(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)控功能可以用來支持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è))的過流保護(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è)模式下工作,并可通過hnp或布線變化來動(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)器訪問對(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)輸入。表明來自hc的dma傳輸請(qǐng)求已經(jīng)被dma控制器確認(rèn)。
dack2(引腳29):dma確認(rèn)輸入。表明來自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開關(guān)相連。當(dāng)引腳電平為低時(shí),打開pmos開關(guān)以為vbus提供下行端口;引腳電平為高時(shí),關(guān)閉pmos開關(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開發(fā)的USB主機(jī)為例詳細(xì)說明Isp1362的應(yīng)用。該設(shè)計(jì)所采用硬件平臺(tái)是mo-torola mcf5249c3實(shí)驗(yàn)開發(fā)板,以它作為母板,為USB主機(jī)開發(fā)提供rs232、bdm接口,并提供8m的sdram及2m的flash rom的編程調(diào)試資源。該設(shè)計(jì)采用的軟件平臺(tái)是metrowerks codewarrIor,通過對(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è)定地址等操作,主要通過mcf5249訪問Isp1362的控制寄存器來完成。Isp1362的寄存器結(jié)構(gòu)是命令—數(shù)據(jù)寄存器對(duì)結(jié)構(gòu),一個(gè)完整的寄存器訪問周期需要在一個(gè)命令階段后緊跟一個(gè)數(shù)據(jù)階段。命令階段用來告知Isp1362將在數(shù)據(jù)階段訪問它的寄存器。在微處理器的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è)程序通過中斷調(diào)度來完成主機(jī)功能。USB總線在工作的時(shí)候,系統(tǒng)仍然按照特定的時(shí)序和協(xié)議規(guī)范運(yùn)行。如系統(tǒng)通過數(shù)據(jù)線上的電平變化檢測(cè)到USB設(shè)備的接入與移出,接著主機(jī)和外設(shè)就按照事先約定的順序執(zhí)行一系列的信息交換, 即:主機(jī)重啟外設(shè)→主機(jī)給外設(shè)供電→外設(shè)通過缺省的地址0與主機(jī)通訊→主機(jī)給外設(shè)分配地址→主機(jī)請(qǐng)求外設(shè)的一系列功能和設(shè)備描述符。因此, 在c 語言中, 通過順序的編程和中斷的調(diào)度,就可以完成主機(jī)系統(tǒng)的標(biāo)準(zhǔn)的USB活動(dòng)。
5 結(jié)束語
借助Isp1362,開發(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)格要求。