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