基于嵌入式應(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ù)存儲/傳輸,媒體錄音重放以及其他接口能力。
本文引用地址:http://www.ex-cimer.com/article/261725.htm當(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)用中實(shí)現(xiàn)USB功能時的許多關(guān)鍵問題而設(shè)計,并提供完整的單芯片USB解決方案。這款芯片的特點(diǎn)是有兩個獨(dú)立的可配置的USB 主/從接口,一個用戶可編程處理器核,具有多種靈活的接口以支持輕松集成到一個現(xiàn)有的嵌入式設(shè)計中。使用這種方案的好處在于設(shè)計者能夠重用其現(xiàn)有設(shè)計的核心部分,用最小的開發(fā)成本和最快的上市時間支持增強(qiáng)的產(chǎn)品特征。
進(jìn)一步觀察VNC2的性能,該芯片有2個獨(dú)立的USB 2.0接口,提供USB主控端或從控端的連接,具有一個16位哈弗結(jié)構(gòu)CPU核,16K字節(jié)的SRAM存儲器和258K字節(jié)的FLASH用于編程和固件存儲。由兩個嵌入式的USB主/從控制器以最小的內(nèi)部CPU負(fù)荷實(shí)現(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)鍵問題。為了實(shí)現(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ā)時,很重要的一點(diǎn)是首先要了解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)用中實(shí)現(xiàn)USB主控功能需要采用類似的方法。集成了USB功能的嵌入式處理設(shè)備需要驅(qū)動以支持枚舉和各種USB設(shè)備類型。有些情況下沒有完整的USB驅(qū)動,需要用戶用盡開發(fā)資源。還有一些特定的設(shè)備結(jié)構(gòu),USB協(xié)議處理是由軟件實(shí)現(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(實(shí)時操作系統(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ā)人員使用這些資源來實(shí)現(xiàn)他們自己的應(yīng)用代碼,允許在VNC2上直接處理用戶數(shù)據(jù),從而不需要在外部MCU或處理器上的主機(jī)處理功能。VNC2的軟件結(jié)構(gòu)圖如圖3所示。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論