通訊橋接器 驅動程式 評估套件 USB SPI

橋接晶片牽成 嵌入式系統新增USB連接功能

2014-06-02
對於現今的系統設計人員而言,透過一種快速且簡易的方式把嵌入式系統連接到電腦已成為系統設計的必備條件。而嵌入式應用與電腦通訊最常見的方式是透過通用序列匯流排(USB),它在每台桌上型電腦、筆記型電腦和平板上幾乎都可以被找到。
隨著USB日漸普及,嵌入式開發人員也面臨著新的設計挑戰,例如如何使用USB協定,以及如何將其整合到系統裡。不幸的是,USB通訊協定很複雜,並且使用通用型微控制器(MCU)實現USB設計十分費時且挑戰重重。少數的半導體廠商之所以提供具備固定功能的通訊橋接器,就是為了簡化USB設計相關的複雜度,並降低增加USB功能的設計難度。

關於這種通訊介面產品的其中一個例子就是芯科實驗室(Silicon Labs)的CP2130 USB轉序列周邊介面(SPI)橋接控制器,它透過使用通用型微控制器上的SPI與USB連接。圖1顯示這種通訊橋接介面是如何與嵌入式系統連接的。除了USB轉SPI橋接元件,以下是一些支援其他介面的通訊橋接器,包括USB轉1UART、2UART、4UART,以及USB轉SMBus/I2C與USB轉I2S。

USB通訊的嵌入式系統能夠被分成兩種類型,包括使用USB更新原有設計,或是在新設計中增加USB功能。

對於任何一種類型,開發人員只要遵循三個簡單步驟,就可以很快地實現USB通訊,且開發人員不須要具有USB專業知識,第一步驟是確定主機微控制器上所提供的通訊介面,第二步驟為使用評估套件和跳線建立原型設計,第三步驟則是使用通訊橋接器建立客製化的原理圖和印刷電路板(PCB)圖。另外,開發人員能夠建構應用客製化裝置和驅動程式,這在本文後面將會討論。接著,仔細看看每一個具體步驟,並探討這些步驟中幾種設計選擇的利弊。

圖1 系統層級USB主機與微控制器主機連接示意圖

步驟1:確認主機微控制器上所提供的通訊介面

無論是升級原有設計或最佳化全新設計,開發人員必須明確了解主機微控制器可用的通訊介面。如果是原有設計方案,開發人員應尋找主機微控制器上的可用介面。如果沒有,開發人員可以使用可定址協定,例如SMBus/I2C。若是全新設計,開發人員可以選擇主機微控制器去匹配預定要滿足的通訊協定。例如,如果SPI通訊是預定要滿足的協定,開發人員應選擇一個具有空閒SPI介面的主機微控制器。

當選擇一個通訊介面時,考量應用所需的最大通訊速率也很重要。倘若有大量資料需要高速傳輸,那麼SPI或通用異步收發器(UART)是最好的選擇。如果傳輸速率不重要而具有仲裁機制的多裝置匯流排連接才重要,那麼SMBus/I2C是最好選擇,因為其僅需兩個接腳。

除了選擇通訊介面,對於可用的驅動程式選項的選擇也很重要。最人性化的是人機介面裝置(HID)通訊橋接器,其不須要安裝驅動程式,HID裝置使用一般作業系統中內含的驅動程式,只須將裝置插入USB介面就可以開始使用。其他驅動程式選項包括虛擬COM埠(VCP)驅動程式、WinUSB/LibUSB驅動程式和供應商客製化的驅動程式。所有的這些選項都須要安裝驅動程式,並且通常能夠比HID產品獲得更高的傳輸量。

步驟2:使用評估套件和跳線構建原型設計

圖2 匯流排供電的原型系統範例

在接下來的步驟中,開發人員能夠使用通訊橋接評估套件去建構一個原型設計,這個原型設計可以使用跳線來連接評估套件和主機微控制器。此原型設計是為了驗證兩個裝置之間的通訊並作為原理圖設計的起始點。一般情況下,評估板上有明確清楚的標示,說明開發人員須連接哪些跳線,且不用翻閱技術文檔。

在圖2的範例中,將評估板連接到一個正在運行SPI Slave範例代碼的微控制器板上。其中,具有SPI訊號測試點的原有設計被用來替代微控制器板卡。SPI已經連接到微控制器開發板的特定埠的接腳,而且這些接腳已連接到內部SPI介面。

圖3  CP2130安裝過程中在視窗顯示的預設字串

現在硬體已經準備就緒,可以開始為USB主機準備安裝範例應用和驅動程式(如果需要)(圖3)。其所需的軟體通常能夠在元件製造商網站上找到,這個做法值得推薦,因為它通常包含最新的軟體和文件。

橋接元件在使用前須要安裝驅動程式,並且還須使用一個評估軟體工具用於USB通訊,這兩個套裝軟體都包含在評估套件內。完成安裝後,評估軟體工具能夠透過USB讀寫微控制器上的SPI數據。此時,可以運行幾個讀寫測試來驗證操作。

步驟3:使用通訊橋接器建立客製化的原理圖/印刷電路板圖

來自步驟2的原型設計有助於為最終設計建立原理圖。首先,找到為通訊橋接器評估套件提供的原理圖,USB轉SPI橋接控制器的原理圖可以在使用者指南中找到,其使用者指南可經由供應商網站下載。

評估套件原理圖顯示哪些元件對USB是必要的操作。須特別說明的是一些通訊橋接器整合功能無須使用外部元件,可減少整體物料清單(BOM)成本並簡化設計。現在檢查手上的通訊橋接器是否支援下列功能:

無石英振盪器的USB
  通訊橋接器是否可以支援無石英振盪器的USB通訊?
內含5伏特穩壓器
  橋接器是否無須經由外部元件即可透過USB連接系統供電?輸出電流最大為多少?(這個功能主要用於USB匯流排供電的應用)
晶片內含可程式設計記憶體
  橋接器包含整合的可程式設計記憶體,且允許透過USB客製化?
小封裝
  更小的封裝使開發人員可設計更小、更便於攜帶的解決方案。

選擇這些功能的通訊橋接器將大幅簡化設計的複雜度。接下來,把在橋接器和主機微控制器之間的SPI訊號(SCLK、MOSI、MISO、SS及GND)原型連接轉換成原理圖連結。 值得一提的是,有些橋接器供應商可提供原理圖配置免費檢查服務,並在需要時給予修改建議,因此工程人員在開始進行電路板設計之前,可將原理圖經由供應商網站傳送給相關支援服務團隊。

接下來,板子即可發給加工廠生產。如果產品設計需要客製化的裝置和驅動程式,請繼續閱讀。如果不需要,開始進行通訊吧!

建立客製化裝置及驅動程式

通訊橋接器和驅動程式通常具有出廠時具備的供應商特定的標準USB描述符和字串。USB供應商ID(VID)、產品ID(PID)描述符和序列字串被作業系統用來匹配連接裝置的驅動程式。因此,強烈推薦描述符和字串組合具有唯一性,以避免當兩個有相同資訊的裝置連接到同一系統時產生錯誤。

建立客製化的驅動程式和設計,使得開發人員可以使用產品特定的字串和裝置描述符。圖3顯示當安裝非客製化橋接元件時,在Windows上呈現的預設字串。

為了成功客製化產品,通訊橋接器和相關驅動(如果需要)必須更新。通訊橋接器有相關的圖形式客製化工具,這款工具允許透過USB連接實現客製化。橋接器製造商通常也提供一個驅動程式客製化工具,指導用戶一步一步地建立客製化的驅動程式。客製化橋接器之後,除非相關客製化的驅動程式已經被安裝到主機上,否則這款橋接器不能與主機系統進行通訊。

留意其他實用技巧

一旦驅動程式以任何方式被客製化後,作業系統供應商可能需要額外的認證過程。例如微軟(Microsoft)的Windows硬體品質實驗室(WHQL)測試。Windows 7(x64)和Windows 8(x64)不允許安裝未認證過的驅動程式。其他Windows版本允許安裝,但會顯示使用者警告資訊。

而對於量產客製化的通訊橋接器,製造商可為最終系統的元件提供事先程式設計服務,且不須要提供圖形式客製化工具。

另外,在銷售產品給客戶時,記得包含一條USB線、快閃記憶體(Flash Memory)驅動程式以及CD/DVD,或者網路下載連結位址皆須提供客製化驅動。

選擇合適橋接晶片 節省開發成本

雖然以上三個步驟增加USB功能的主要目的是為了簡化嵌入式系統中USB通訊,但是這些橋接元件也具備其他特殊功能的通用輸入輸出(GPIO)接腳,它們整合了實用功能、無需外部元件,並進一步減少了整體物料清單成本。這些特殊功能範例包括:USB暫停指示(Suspend Indicator)、時脈輸出、發光二極體(LED)變化顯示資料傳輸、脈衝或邊緣觸發計數、遠程喚醒。

表1 常見通訊橋接器

在評估USB橋接器晶片時,要選擇可以提供完整橋接器產品組合解決方案的半導體供應商,因為他們支援大部分的主流通訊介面。同時確保所選擇的固定功能的通訊橋接器,具有無石英振盪器USB操作、內含穩壓器、可程式設計記憶體和小尺寸封裝選項。為下一個嵌入式應用選擇合適的橋接晶片,能夠節省大量的開發工作和費用,且有助於縮短產品設計上市時間。表1比對了將近十二種採用常見通訊介面的橋接器產品的特點。

(本文作者為芯科實驗室微控制器產品經理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!