在系統設計中加入具有通用序列匯流排(USB)介面的通訊應用,可讓系統能與多種USB主機設備連結,並提供系統另一種以USB供電的便利方式。現今的印表機、手機、數位相機、媒體播放器、外接硬碟和遊戲皆是透過USB協定進行資料傳輸。運用同一條傳輸線供電和傳輸資料可提升整體應用的便利性和靈活性。
USB通訊能夠設計在新系統中或增加到須升級的原有系統中,這可以透過固定功能USB通訊橋接器或具有客製化USB韌體能力的微控制器(MCU)實現。開發USB須要考量的主要因素包括:所需的資料吞吐量、開發時間及是否具有開發USB所需的專業知識。小型USB微控制器和固定功能USB橋接器可提供增加系統USB通訊設計最具成本效益的解決方案。
USB可傳輸資料並同時供電
USB通訊介面包含D+、D-、Ground和VBUS四種訊號線。D+和D-訊號是差動資料線,VBUS訊號是5伏特(V)電源線,由USB主機提供。VBUS訊號除了用於指示USB埠上是否存在USB連接線外,還可以從自供電的集線器上獲得最大500毫安培(mA)電流,或是從匯流排供電的非自供電的集線器上獲得最大100毫安培電流給系統。
整合3~5伏特轉換調節器的微控制器或固定功能USB橋接器能夠利用調節器輸出為整個系統供電。USB規範也支援多種USB連接器,包括不同尺寸和形狀的標準、小型和微型連接器。多樣化的USB連接器,為設計、整合USB通訊應用的開發人員提供多種選擇。
此外,USB規範允許高達一百二十七個裝置連接到單一匯流排,並支援多種裝置類別,包括人機介面裝置(HID)類別,它原本就受到大多數的作業系統支援,且不須要安裝驅動程式。主機在枚舉過程中確定連接的USB裝置的類型。將USB裝置插入主機後,該USB裝置會發送描述元到主機,並指示其類型及須載入的驅動程式。
開發人員可透過升級原有系統增加USB連接功能,或者從頭開始設計配有USB的新系統。USB微控制器或固定功能USB橋接器都能夠滿足這兩種需求。表1列出增加USB通訊到系統中的各種方式,也包括對開發人員和終端用戶的要求。
選擇何種USB通訊方式取決於幾個因素,包括開發人員是否須要升級現有系統或建立新系統。首先,說明如何設計一個具有USB功能的新系統。
設計具備USB功能新系統
建立新系統的開發人員可靈活選擇如何增加USB通訊功能,以USB微控制器或固定功能USB通訊橋接器為中心進行系統設計,並調整某些設計以適合USB解決方案。例如,一開始的印刷電路板(PCB)設計可以包含USB裝置和USB連接器等所有必要的元件,電路板設計者能夠視實際須要重新配置。另外,連接USB裝置到系統的方法是不受限制,開發人員能夠由表1中的四種USB通訊方式自由選用任一種來配置。
增加USB通訊到新系統最簡易的解決方案是採用固定功能的USB橋接器,但這也最缺乏靈活性。開發人員可利用HID或非HID固定功能USB通訊橋接器,例如USB轉通用異步收發傳輸器(UART)虛擬通訊埠(VCP)橋接器。由於毋須開發USB韌體和驅動程式,因此即使不具備USB專業知識也能使用這些通訊橋接器。
對於非HID類別裝置,製造商提供作業系統所需的驅動程式,同時也提供動態連結程式庫(DLL)以輔助USB主機應用的開發。不必自行開發USB韌體、DLL和驅動程式,縮短系統的上市時間。使用這種方法時,USB介面沒有直接連接到目標系統,而是透過UART、序列周邊介面(SPI)或I2C等其他橋接介面直接連接到目標應用。圖1為USB轉UART VCP橋接器透過UART與目標系統通訊示意圖。
|
圖1 USB轉UART VCP橋接器 |
開發人員若選用這種方式為系統增加USB通訊功能,必須確保目標系統可以使用UART介面通訊,並考慮到橋接器的吞吐量,因為它通常受限於UART的通訊速度。另外,開發人員須提供終端用戶驅動程式和驅動程式安裝包。終端用戶必須安裝驅動程式才能使用該設備。在此例中,橋接器在USB主機中被當作COM埠。如果開發人員想要主機端毋須安裝驅動程式的固定功能USB橋接器,則應當考慮選擇HID通訊橋接器。
基於靈活性、整體吞吐量和無需驅動程式安裝的優勢,HID類別裝置逐漸被嵌入式系統所接受。因為大多數作業系統都可支援HID類別,毋須開發驅動程式,終端用戶可以直接連接並使用它,且終端用戶不必安裝驅動程式。在先前的USB轉UART VCP範例中,橋接器將能被HID USB轉UART元件所替代(圖2)。
|
圖2 HID USB轉UART元件 |
HID橋接器的主要設計原則與範例中的VCP橋接器是相同的,但是範例中HID和VCP USB轉UART橋接器間有幾個設計差異。以HID進行配置,橋接器吞吐量的上限是HID最大的吞吐量,為64kB/s。另外,該裝置在USB主機上也並非是COM埠,而是作為一個HID類別裝置。HID固定功能通訊橋接器為那些想盡量減少整體USB開發時間並同時在系統中增加USB通訊功能的開發人員提供最少變動的解決方案。如果固定功能USB通訊橋接器的吞吐量或一般功能未能滿足其應用需求,則開發人員應當考慮採用USB微控制器。
USB微控制器靈活性大/控制力強
USB微控制器為USB通訊介面提供最大的靈活性和控制能力,但須付出大量的設計心力。開發人員必須製作所有的USB韌體,而且若建立非HID類別裝置,必須撰寫其驅動程式。撰寫USB韌體和驅動程式不是一件簡單的事,這須要具備USB的專業知識。
由於所有MCU韌體都是可訂製的,USB微控制器能夠配合需求執行額外的任務,這種強大的靈活性是通訊橋接器所不具備的。舉例來說,如果USB微控制器具備一個類比數位轉換器(ADC),則開發人員可依照需求增加韌體用於配置ADC並執行測量。在韌體中,USB的描述元也是完全可訂製的。在枚舉過程中,USB主機透過接收裝置端的描述元以判定該裝置是HID還是非HID。
|
圖3 USB主機系統配置 |
使用USB微控制器時,USB通訊直接連接到目標系統,並且系統能夠以USB微控制器為中心進行建構(圖3)。
除了開發時間的增加外,開發人員也應考慮所需的吞吐量。HID類別裝置的吞吐量上限為64kB/s,即512kbit/s。非HID類別裝置吞吐量的限制是12Mbit/s,即12,000kbit/s。相較之下,非HID類別裝置的吞吐量較HID來得更高,但它須要開發客製化驅動程式,終端用戶也須安裝驅動程式,這將增加應用的整體開發時間。對於HID吞吐量即可滿足需求的應用,可透過使用HID配置的USB微控制器來實現。
建立包含USB微控制器的系統可靈活改變某些設計,以達到最佳的USB解決方案。例如,一個經USB通訊發送測量資料到主機的醫療設備,能夠藉由改變USB微控制器資料傳輸類型去滿足期望的USB微控制器解決方案的吞吐量限制,或者實現多介面裝置,如同時具有同步和HID介面的裝置。當設計新的USB應用時,開發人員可以分析每種USB方案需求去選擇最合適的。接下來,說明如何利用USB通訊升級原有系統。
利用USB通訊進行系統升級
開發人員使用USB通訊升級原有系統時,能夠為新系統設計選擇四種可用方案中的任一種,而且必須選擇一種適合的USB解決方案以適應現有應用,而非設計應用去適應USB解決方案。
|
圖4 原有的UART設計 |
在這個案例中,開發人員必須考慮當前的通訊方式,所需要的USB資料吞吐量和額外元件使用的PCB空間。原有設計已具備與主機系統建立通訊的功能。如果與主機通訊的介面在橋接器中是可用的,那麼增加固定功能USB通訊橋接器是選擇之一。在大多數應用中,這將是UART介面。對於這些應用,一個USB轉UART通訊橋接器可以被增加到設計中。圖4~5顯示如何把橋接器增加到原有的設計。
|
圖5 利用USB轉UART升級原有設計 |
從硬體的角度來看,既有PCB將須要重新設計以使USB裝置和USB連接器適用於既有的電路板。從軟體角度來看,USB轉UART裝置製造商通常會提供開發人員VCP驅動程式,因此毋須自行開發。
在此例中,橋接器的吞吐量受限於UART介面的傳輸速率。只要橋接器支援應用所需的傳輸速率,吞吐量將不是個問題。該裝置將依然在USB主機上顯示為COM埠,使得原有主機應用功能毋須修改即可正常運行。原有設計和升級設計的主要區別是,提供一個經USB到主機的介面,並須要終端用戶安裝驅動程式。
如果希望能夠免安裝驅動程式,HID固定功能USB橋接器則是可行的解決方案。當使用這種方案時,應遵循與VCP固定功能通訊橋接器同樣的設計原則,但橋接器的吞吐量被限制在64kB/s,即最大的HID吞吐量。
在前面的原有設計升級範例中,開發人員可以改用一個HID USB轉UART橋接器,但該裝置在主機上不會被當作COM埠,而是被視為一個HID。如果不進行修改,原有的主機應用將無法正常運行。雖然,在該方案中不必安裝驅動程式,但是將須要修改既有的主機應用程式,透過HID作業系統(OS)應用程式介面(API)通訊代替COM埠API。在大部分的原有設計升級中,固定功能USB橋接器是理想的選擇,因為它們為設計中新增USB通訊提供最簡單的解決方案,且無需USB專業知識。
對於需要更高吞吐量、附加功能或客製化USB韌體的原有設計而言,USB微控制器是最好的選擇。這種方案的許多設計原則和新設計方案是相同的。這種方案需要一些USB專業知識,因為開發人員必須撰寫所有USB韌體,同時也需要VCP USB裝置開發和安裝驅動程式。USB微控制器必須透過GPIO接腳或外接介面如USB微控制器上的系統管理總線(SMBus)或SPI,與現有應用系統進行通訊(圖6)。
|
圖6 與原有應用的USB通訊 |
此外,既有PCB將須與其他元件重新設計。對於需要比橋接裝置所能達到的吞吐量更高或須要使用橋接器不具備通訊方式的開發人員而言,使用USB微控制器升級原有應用是最好的選擇。
依產品條件選擇開發方式
選擇是否在設計中增加固定功能通訊橋接器或USB微控制器,乃取決於目標應用、開發人員的USB專業知識和所需的開發時間。使用USB微控制器提供最大的靈活性,但也需要USB專業知識和可能的驅動程式開發。選擇固定功能USB通訊橋接器不需要任何USB韌體或驅動程式開發,因而減少整體開發時間,這也是增加USB到系統的最簡易方式,而且重新設計的工作量也最小。
增加USB功能到系統內,能夠與多種主機進行通訊,同時也增加供電選項,可以在單一電纜中提供最大500毫安培電流,這為系統增加便利性和靈活性。芯科實驗室(Silicon Laboratories)提供多種USB微控制器,也提供多種固定功能USB通訊橋接器,包括USB轉UART、HID USB轉UART和HID USB轉SMBus橋接器。小型USB微控制器和固定功能USB通訊橋接器為增加USB通訊到新設計或原有系統提供最佳的經濟效益。
(本文作者任職於芯科實驗室)