基于嵌入式應(yīng)用的單芯片USB方案
USB技術(shù)的應(yīng)用已經(jīng)從最初應(yīng)用為一種連接外設(shè)和PC的方法經(jīng)過了長足的發(fā)展。USB標(biāo)準(zhǔn)的靈活性和適應(yīng)性,加上目前流行的基于USB的存儲設(shè)備和音樂播放器,激發(fā)了許多不是基于PC的嵌入式系統(tǒng)紛紛采用USB?,F(xiàn)在,從電視機(jī)和機(jī)頂盒等家庭娛樂設(shè)備,到智能儀器、機(jī)器控制器、數(shù)碼標(biāo)識系統(tǒng)和手持終端等工業(yè)應(yīng)用,各種嵌入式應(yīng)用都正在引入USB主機(jī)接口以提供數(shù)據(jù)存儲/傳輸,媒體錄音重放以及其他接口能力。
當(dāng)把USB連接引入到一個現(xiàn)有的嵌入式應(yīng)用的時候,對于如何升級設(shè)計者現(xiàn)有的設(shè)計以支持USB,有多種選擇。一個選擇就是用一個具有內(nèi)部USB協(xié)議處理能力的設(shè)備替代它們現(xiàn)有的處理設(shè)備(CPU或微控制器)。這時用戶通常需要重新設(shè)計他們的硬件和軟件的核心部分以支持新的處理器。尤其是如果需要USB主機(jī)能力,則需要新的軟件設(shè)備驅(qū)動和服務(wù)來處理設(shè)備枚舉之類的功能,支持不同的USB設(shè)備類和傳輸模式。對現(xiàn)有產(chǎn)品作這樣的重要變化,經(jīng)常是非常耗時并且代價不菲的。
FTDI Vinculum-II (VNC2)模塊圖。
另一種方法是使用一種現(xiàn)成的USB芯片方案,如英商飛特帝亞有限公司(FTDI)的Vinculum-II(VNC2)。Vinculum 是FTDI的嵌入式USB主/從控制器系列的名稱。最新發(fā)布的第二代芯片 VNC2是針對在嵌入式應(yīng)用中實現(xiàn)USB功能時的許多關(guān)鍵問題而設(shè)計,并提供完整的單芯片USB解決方案。這款芯片的特點是有兩個獨立的可配置的USB 主/從接口,一個用戶可編程處理器核,具有多種靈活的接口以支持輕松集成到一個現(xiàn)有的嵌入式設(shè)計中。使用這種方案的好處在于設(shè)計者能夠重用其現(xiàn)有設(shè)計的核心部分,用最小的開發(fā)成本和最快的上市時間支持增強(qiáng)的產(chǎn)品特征。
進(jìn)一步觀察VNC2的性能,該芯片有2個獨立的USB 2.0接口,提供USB主控端或從控端的連接,具有一個16位哈弗結(jié)構(gòu)CPU核,16K字節(jié)的SRAM存儲器和258K字節(jié)的FLASH用于編程和固件存儲。由兩個嵌入式的USB主/從控制器以最小的內(nèi)部CPU負(fù)荷實現(xiàn)完整的USB協(xié)議處理。這樣解放了CPU核,使它可用于用戶處理功能??刂破髦С?個主要的USB傳輸類型(控制、批處理、中斷和同步),因此可以支持廣泛的USB應(yīng)用。
除了USB接口,VNC2還支持一系列靈活的接口,使之能夠輕松的連接到其他的處理設(shè)備和外設(shè)。所支持的接口包括一個串行UART接口,用來連接到其它CPU或微控制器,一個高速FIFO接口,可用于比如一個ASIC或PLD(可編程邏輯器件)、SPI(串行外設(shè)接口)主從端口、以及8個PWM(脈沖寬度調(diào)制)通道之間傳輸數(shù)據(jù)以支持相關(guān)電路的控制。圖2為一個VNC2所提供的靈活連接的例子的細(xì)節(jié)設(shè)計。
圖2:帶有通訊功能的MP3/媒體播放器接口設(shè)計。
圖2描述的應(yīng)用是使用FTDI VNC2設(shè)備以對現(xiàn)有處理單元的最小的負(fù)荷提供MP3和視頻播放以及與現(xiàn)有應(yīng)用的通訊功能。
MP3/音頻重放:運(yùn)行在VNC2上的固件代碼用于從USB存儲棒上讀取文件。音頻數(shù)據(jù)傳送個MP3解碼器用于音頻輸出,同時顯示屏用于圖像或視頻重放。Vinculum II軟件工具鏈具有與USB閃存接口和與顯示控制器和音頻編解碼SPI接口的設(shè)備驅(qū)動。通信:通過第二個可用的USB接口可以對應(yīng)用增加進(jìn)一步的功能。這里,通過適當(dāng)?shù)腢SB KEY可以增加通訊設(shè)備類(CDC)來支持藍(lán)牙,3G/GPRS通訊。
對于所有的嵌入式應(yīng)用,無論是采用電池供電還是市電供電的,電源消耗和管理都是關(guān)鍵問題。為了實現(xiàn)低耗電工作,VNC2支持各種低功耗模式。在典型的工作模式,CPU運(yùn)行在48MHz,VNC2芯片在1.8V核電壓僅消耗25mA(1.8V是從3.3V供電的芯片內(nèi)部產(chǎn)生的)。要進(jìn)一步降低功耗,可以首先通過降低CPU的工作頻率至24MHz或12MHz的方式,其次可采用通過軟件關(guān)閉芯片上不使用的接口的方式。另外還可使用設(shè)備掛起模式。在掛起模式下,VNC2僅消耗128uA電流。這些不同的功耗模式為用戶提供了設(shè)備功耗管理的優(yōu)良的增益控制,幫助嵌入式應(yīng)用獲取優(yōu)化的功耗性能。
在考慮USB應(yīng)用的軟件開發(fā)時,很重要的一點是首先要了解USB軟件的功能。在許多USB連接方案中,有一個USB主機(jī)(比如PC)和一個USB從設(shè)備(比如打印機(jī)或USB鍵盤)。在USB從設(shè)備最初連接時,USB主機(jī)(PC)的作用是識別/枚舉這個設(shè)備。枚舉涉及到從從設(shè)備中讀取USB的參數(shù)和功能信息。從設(shè)備讀來的信息包含廠商/產(chǎn)品ID,支持的傳輸和設(shè)備類型。這個設(shè)備類型表示了從設(shè)備的功能和數(shù)據(jù)傳輸要求。比方說USB鍵盤(人機(jī)接口設(shè)備)設(shè)備按照他們不同的用法會有不同的功能,對USB存儲器(大容量存儲器類設(shè)備)支持不同的數(shù)據(jù)傳輸。每個設(shè)備類型會要求不同的軟件設(shè)備驅(qū)動。在PC應(yīng)用中,操作系統(tǒng)比如Windows執(zhí)行設(shè)備枚舉功能,具有各種驅(qū)動支持不同的USB類型。
在嵌入式應(yīng)用中實現(xiàn)USB主控功能需要采用類似的方法。集成了USB功能的嵌入式處理設(shè)備需要驅(qū)動以支持枚舉和各種USB設(shè)備類型。有些情況下沒有完整的USB驅(qū)動,需要用戶用盡開發(fā)資源。還有一些特定的設(shè)備結(jié)構(gòu),USB協(xié)議處理是由軟件實現(xiàn)的,要求設(shè)計者要么自己開發(fā)要么購買USB協(xié)議棧。這種方式除了開發(fā)和版權(quán)的開銷,USB接口性能也可能被運(yùn)行在設(shè)備CPU上的其他軟件進(jìn)程所限制。
使用VNC2 USB主/從控制器,用戶可受益于一個優(yōu)化的結(jié)構(gòu),它具有基于USB處理的硬件和軟件驅(qū)動綜合套件,以及在單個設(shè)備中提供完整USB功能的資源。用戶可以使用Vinculum II軟件工具套件在VNC2上作應(yīng)用開發(fā)。這個工具有一個嵌入式RTOS(實時操作系統(tǒng))管理下層接口函數(shù),一套設(shè)備驅(qū)動支持不同的硬件接口以及各種應(yīng)用層驅(qū)動。這個應(yīng)用層驅(qū)動對不同的USB類型設(shè)備提供支持,比如USB HID,USB主機(jī)和USB設(shè)備。還有其他的應(yīng)用驅(qū)動可用于管理FAT文件系統(tǒng)和執(zhí)行磁盤存儲功能。Vinculum II軟件工具套件幫助開發(fā)人員使用這些資源來實現(xiàn)他們自己的應(yīng)用代碼,允許在VNC2上直接處理用戶數(shù)據(jù),從而不需要在外部MCU或處理器上的主機(jī)處理功能。VNC2的軟件結(jié)構(gòu)圖如圖3所示。
圖3:Vinculum-II軟件結(jié)構(gòu)。
Vinculum II軟件開發(fā)工具套件允許用戶針對VNC2上的CPU處理器創(chuàng)建基于C的應(yīng)用程序。這個工具套件是封裝為一個集成開發(fā)環(huán)境(IDE),具有標(biāo)準(zhǔn)的代碼編譯,創(chuàng)建,調(diào)試和編輯功能。這個IDE可從FTDI免費(fèi)獲取,不需要許可證或版權(quán)費(fèi)用。
開發(fā)資源
除了開發(fā)工具,F(xiàn)TDI還開發(fā)了一系列的預(yù)編譯固件鏡像文件。固件鏡像文件能包含通常的USB應(yīng)用相關(guān)的功能,比如對USB存儲設(shè)備的管理和接口,音樂重放,與USB打印機(jī),HUB和HID類型設(shè)備的接口。這些固件鏡像文件已經(jīng)可用于第一代Vinculum芯片VNC1L。預(yù)編譯固件鏡像文件提供一個備用的應(yīng)用程序,嵌入式系統(tǒng)設(shè)計者可以展開它或直接用作一個引用來添加到他們自己的專用程序中。當(dāng)結(jié)合多種特征和前面提到的免費(fèi)的軟件開發(fā)資源,VNC2為嵌入式應(yīng)用提供了一種有成本效益的完整的USB功能,同時通過把重新設(shè)計用戶現(xiàn)有設(shè)計的核心部分的工作量最小化,從而減少了開發(fā)風(fēng)險。
許多的硬件平臺可用于支持采用FTDI VNC2 USB主/從芯片進(jìn)行USB應(yīng)用的原型和開發(fā)。VNC2 USB主/從控制器有各種封裝形式可用,LQFP和QFN類型的封裝有32腳、48腳和64腳等多種選擇。
評論