與PC系統(tǒng)相比,設(shè)計(jì)工程師在嵌入式系統(tǒng)中實(shí)現(xiàn)USB將面臨很多挑戰(zhàn)和局限性,包括功耗、PCB面積、CPU處理能力等。本文以TD1120為例,分析了嵌入式應(yīng)用中USB OTG控制器的功能特性,以及基于TD1120的軟件實(shí)現(xiàn)。
移動(dòng)設(shè)備和嵌入式市場(chǎng)的爆炸性增長(zhǎng)促進(jìn)了通過(guò)公共標(biāo)準(zhǔn)接口在不同設(shè)備之間進(jìn)行方便的數(shù)據(jù)共享需求的增長(zhǎng)。通用串行接口(USB)的廣泛應(yīng)用穩(wěn)固了其作為業(yè)界標(biāo)準(zhǔn)接口的地位,已經(jīng)成為嵌入式系統(tǒng)I/O連接的事實(shí)標(biāo)準(zhǔn)。USB的成功和流行歸功于其具有熱拔插和即插即用的易用性能。USB從最初引入到PC,到目前已經(jīng)迅速擴(kuò)展到非PC的應(yīng)用,包括移動(dòng)嵌入式系統(tǒng)。今天嵌入式系統(tǒng)生產(chǎn)商的問(wèn)題已經(jīng)不是在產(chǎn)品中實(shí)現(xiàn)USB,而是如何最佳地將USB性能集成到他的產(chǎn)品中去,以大大地提升產(chǎn)品的連接性能。
在嵌入式應(yīng)用中實(shí)現(xiàn)USB并不那么簡(jiǎn)單,與PC系統(tǒng)相比,設(shè)計(jì)工程師將面臨很多挑戰(zhàn)和局限性。如果USB實(shí)現(xiàn)的規(guī)劃很好,將簡(jiǎn)化并加快把USB集成到終端產(chǎn)品的工作。這其中涉及到關(guān)于根據(jù)終端產(chǎn)品的USB應(yīng)用情況進(jìn)行的系統(tǒng)層面決策,產(chǎn)品特性和性能要求的權(quán)衡的不同將影響到USB功能性的恰當(dāng)實(shí)現(xiàn)。
圖1:USB軟件與操作系統(tǒng)的上層關(guān)系圖
USB2.0與OTG
USB2.0規(guī)范是USB1.1的演進(jìn),采用一個(gè)高速接口使系統(tǒng)生產(chǎn)商能推出具有相同易用連接優(yōu)點(diǎn)的高性能產(chǎn)品。USB2.0支持高達(dá)480Mbps的高速數(shù)據(jù)傳輸,并且與USB1.1規(guī)范后向兼容,而后者僅支持全速的12Mbps和低速的1.5Mbps。
USB OTG是USB2.0規(guī)范的補(bǔ)充,結(jié)合了對(duì)移動(dòng)應(yīng)用友好的新特性,包括低功耗、更小的USB接頭以及在相同的USB端口上增加了雙重角色的功能(作為主機(jī)和外設(shè)的功能)。OTG通過(guò)在沒(méi)有計(jì)算機(jī)的情況下,相互之間對(duì)等連接使傳統(tǒng)的只能作為USB外設(shè)的移動(dòng)產(chǎn)品的性能和連接性得到擴(kuò)展。
OTG控制器
TD1120是TransDimension公司提供的第三代OTG控制器,并針對(duì)便攜式媒體播放器(PMP)、智能電話、個(gè)人數(shù)字助理(PDA)、便攜式視頻錄像機(jī)(PVR)、數(shù)字相冊(cè)和多功能打印機(jī)等進(jìn)行了優(yōu)化。TD1120使得這些產(chǎn)品能擴(kuò)展其應(yīng)用,既可以當(dāng)作全速USB主機(jī)操作或高速外設(shè),又能同時(shí)執(zhí)行兩種功能。
數(shù)據(jù)內(nèi)容量的增加和要求高帶寬的應(yīng)用(例如大數(shù)據(jù)文件的傳輸)推動(dòng)了高速外設(shè)連接需求。TD1120能實(shí)現(xiàn)高速數(shù)據(jù)傳輸,減少像連接到PC這樣的USB主機(jī)時(shí)大數(shù)據(jù)內(nèi)容(圖形文件)的傳輸時(shí)間。當(dāng)在主機(jī)模式時(shí),TD1120使系統(tǒng)能連接到更寬范圍的USB外設(shè),例如大容量存儲(chǔ)設(shè)備(U盤(pán))、鍵盤(pán)、鼠標(biāo)、打印機(jī)以及數(shù)碼相機(jī)。在全速下功耗較低,能延長(zhǎng)系統(tǒng)電池壽命。
對(duì)于多功能打印機(jī),TD1120提供了一種將打印機(jī)升級(jí)到具有USB主機(jī)功能和外設(shè)連接特性的一種具有成本效益的方法。高速USB外設(shè)控制器提供從打印機(jī)到PC的連接,同時(shí)全速主機(jī)控制器能支持PictBridge功能,這樣用戶就可以將數(shù)碼相機(jī)連接到具有PictBridge的打印機(jī),實(shí)現(xiàn)照片直接打印。
PC環(huán)境通常具有高性能的CPU,這個(gè)CPU具有充足的存儲(chǔ)器、功率預(yù)算以及PCB空間。然而,在嵌入式應(yīng)用中,由于產(chǎn)品設(shè)計(jì)的要求,這些資源是非常有限的。要恰當(dāng)?shù)貙?shí)現(xiàn)USB功能特性,需要認(rèn)真的產(chǎn)品規(guī)劃和系統(tǒng)層面的考慮,這需要從USB應(yīng)用、特性和性能要求以及權(quán)衡這些選擇對(duì)嵌入式處理器、操作系統(tǒng)(OS)和USB軟件堆棧的影響的判斷能力。
相對(duì)于需要分別用來(lái)支持高速外設(shè)和全速主機(jī)功能兩個(gè)USB控制器的雙芯片實(shí)現(xiàn)來(lái)說(shuō),TD1120提供USB設(shè)計(jì)靈活性、低功耗、大大節(jié)省PCB空間并縮短系統(tǒng)開(kāi)發(fā)周期的方案,這些都是工程師的主要關(guān)注的,這些好處同樣也轉(zhuǎn)換為系統(tǒng)成本的節(jié)省、加快客戶產(chǎn)品面市時(shí)間。
TD1120允許多端口配置、同時(shí)的主機(jī)和外設(shè)操作以及靈活的操作模式。支持以下端口配置:雙端口,一個(gè)OTG端口加標(biāo)準(zhǔn)的全速主機(jī)端口;三端口,兩個(gè)全速主機(jī)端口和一個(gè)高速外設(shè)端口。Mini-AB插座用來(lái)作為OTG端口(OTG端口具有雙重角色功能)。OTG端口可以配制成主機(jī)端口或外設(shè)端口,取決于插入Mini-A或Mini-B插頭時(shí)所檢測(cè)到的ID管腳。如果插入的是Mini-A插頭(ID管腳短路),端口配置為主機(jī),當(dāng)Mini-B插頭插入(ID管腳浮置),則端口配置為外設(shè)。
TD1120集成了一個(gè)片上高電流充電泵,可以支持高達(dá)100mA的電流,這樣可以支持很多種USB設(shè)備,包括鍵盤(pán)、鼠標(biāo)、部分U盤(pán),這樣就不存在需要外部充電泵的問(wèn)題。此外,還集成了鎖相環(huán)(PLL)來(lái)支持外部晶振或12MHz和30MHz晶振實(shí)現(xiàn)額外的系統(tǒng)靈活性。
采用TD1120在全速主機(jī)模式下功耗低于40mA(最大),全速外設(shè)操作時(shí)最大為80mA。TD1120整個(gè)芯片支持功率節(jié)省模式,包括主機(jī)控制器以及外設(shè)控制器的延緩模式以使功率消耗最小化,延長(zhǎng)系統(tǒng)電池壽命,對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),電池壽命是很關(guān)鍵的性能。
接口性能表現(xiàn)
USB數(shù)據(jù)傳輸速率高度依賴于系統(tǒng)平臺(tái)。對(duì)速率的期望要現(xiàn)實(shí)而適當(dāng),因?yàn)橛泻芏嘁蛩貢?huì)影響到系統(tǒng)的數(shù)據(jù)吞吐量,包括CPU處理能力、CPU的利用率、OS存儲(chǔ)系統(tǒng)總線訪問(wèn)時(shí)間、USB控制器、系統(tǒng)應(yīng)用程序、軟件和協(xié)議開(kāi)銷,等等。采用400MHz處理器的嵌入式系統(tǒng)不能與4GHz CPU的USB速度相提并論,后者在高速模式下可以達(dá)到200Mbps的吞吐量。
圖2:TD1120架構(gòu)框圖
TD1120設(shè)計(jì)實(shí)現(xiàn)了硬件處理調(diào)度和傳輸層協(xié)議,包括實(shí)現(xiàn)高級(jí)性能的數(shù)據(jù)轉(zhuǎn)換、重試和帶寬管理。當(dāng)出現(xiàn)傳輸錯(cuò)誤或者設(shè)備還沒(méi)有準(zhǔn)備接收傳輸時(shí),將發(fā)送設(shè)備否定應(yīng)答(NAK)。NAK可以是性能和系統(tǒng)影響的巨大因素,TD1120的設(shè)計(jì)減小了這些影響。當(dāng)出現(xiàn)在主機(jī)與連接的外設(shè)之間進(jìn)行大量的數(shù)據(jù)交換所采用的批量數(shù)據(jù)傳輸?shù)那闆r時(shí),批量列表結(jié)構(gòu)(Bulk list structure)經(jīng)過(guò)存儲(chǔ)器映射到TD1120的主機(jī)控制器,所有因?yàn)閁SB設(shè)備NAK而產(chǎn)生的重試以及傳輸描述符(TD)都在硬件內(nèi)部處理,而不需要對(duì)系統(tǒng)總線的持續(xù)訪問(wèn),這樣減少了中斷并降低了對(duì)CPU的占用。
TD1120的高速的外設(shè)控制器實(shí)現(xiàn)了像連接到PC這樣的主機(jī)的性能,減少了傳輸大量數(shù)據(jù)內(nèi)容的時(shí)間,因而大大提高了通過(guò)高速外設(shè)控制器的吞吐量,提升了用戶體驗(yàn)。TD1120支持兩個(gè)與外部直接存儲(chǔ)器存取(DMA)主機(jī)接口的從DMA通道,這樣可以在沒(méi)有CPU干涉的情況下實(shí)現(xiàn)從或到外部存儲(chǔ)器或設(shè)備的高帶寬數(shù)據(jù)傳輸,減少對(duì)系統(tǒng)CPU的占用。然而,必須注意仔細(xì)調(diào)整CPU的外部存儲(chǔ)器訪問(wèn)時(shí)間,以嚴(yán)格匹配外部USB主機(jī)控制器的時(shí)序要求,從而提高系統(tǒng)性能。
軟件支持
軟件在實(shí)現(xiàn)USB功能方面扮演了主要的角色。用于驅(qū)動(dòng)控制器的必要軟件可能很復(fù)雜。除了硬件之外,選擇適當(dāng)?shù)腛S和USB堆棧方案是USB實(shí)現(xiàn)的關(guān)鍵。支持TD1120的軟件可以從TransDimension的SoftConnex軟件套件得到,很多的實(shí)時(shí)操作系統(tǒng)(RTOS)都支持該軟件堆棧,該軟件套件提供完整的嵌入式USB方案的軟件堆棧和驅(qū)動(dòng)程序。嵌入式系統(tǒng)領(lǐng)域采用了大量的實(shí)時(shí)操作系統(tǒng)。本身帶有USB主機(jī)和外設(shè)堆棧支持的操作系統(tǒng)在市場(chǎng)上并不多,如WinCE或Linux。對(duì)這些本身就帶有USB堆棧的操作系統(tǒng),TransDimension支持主機(jī)和外設(shè)低級(jí)控制器驅(qū)動(dòng)程序來(lái)與USB協(xié)議層接口。協(xié)議堆棧負(fù)責(zé)協(xié)議管理和調(diào)度功能,包括處理即插即用特性,以便告知系統(tǒng)新插入的設(shè)備,并管理帶寬以及其他與USB相關(guān)的資源。
對(duì)于其他本身并不帶USB堆棧的操作系統(tǒng)來(lái)說(shuō),TransDimension可以通過(guò)向客戶發(fā)放許可證的形式讓客戶使用TransDimension的軟件堆棧和驅(qū)動(dòng)程序?qū)崿F(xiàn)USB主機(jī)、外設(shè)或OTG功能,并將其配置到很多種操作系統(tǒng)和CPU。模塊化的軟件架構(gòu)能實(shí)現(xiàn)靈活的產(chǎn)品設(shè)計(jì),系統(tǒng)設(shè)計(jì)工程師可以輕易地從主機(jī)或/和外設(shè)設(shè)計(jì)轉(zhuǎn)到OTG方案上。
此外,TransDimension還提供便攜主機(jī)控制器驅(qū)動(dòng)程序(HCD)以及外設(shè)控制器驅(qū)動(dòng)程序(PCD)。開(kāi)發(fā)商可以輕易地將驅(qū)動(dòng)程序移植到多種USB主機(jī)和外設(shè)軟件堆棧、操作系統(tǒng)、處理器和硬件平臺(tái)中。便攜HCD和PCD提供設(shè)計(jì)工程師低級(jí)的應(yīng)用編程接口(API)驅(qū)動(dòng)程序來(lái)開(kāi)發(fā)他們自己的USB方案,而可以不管TD1120是如何工作的細(xì)節(jié)。
便攜式HCD和PCD提供簡(jiǎn)單的API,使用戶能寫(xiě)?yīng)毩⒌腢SB應(yīng)用程序以及將驅(qū)動(dòng)程序連接到現(xiàn)存的USB堆棧,并實(shí)現(xiàn)特定應(yīng)用軟件。當(dāng)要求更多特性的應(yīng)用,如支持大容量存儲(chǔ),而內(nèi)部開(kāi)發(fā)能力和資源受到項(xiàng)目時(shí)間的限制,采用授權(quán)軟件產(chǎn)品可以提供最快的產(chǎn)品面世方案。
低功率設(shè)計(jì)
低功率特性包括可調(diào)節(jié)內(nèi)核時(shí)鐘、動(dòng)態(tài)寄存器關(guān)斷、動(dòng)態(tài)和可編程時(shí)鐘選通大大降低功率消耗
魯棒的OTG邏輯
可配置硬件和軟件主機(jī)協(xié)調(diào)協(xié)議和會(huì)話請(qǐng)求協(xié)議
內(nèi)存映射接口
16位數(shù)據(jù)總線允許直接連接到大多數(shù)微處理器
同時(shí)操作
主機(jī)和外設(shè)控制器實(shí)現(xiàn)允許同時(shí)操作
靈活的端口配置
允許多個(gè)端口配置,支持多達(dá)3個(gè)端口