| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> DSP >> 其它 >> 文章正文 用户登录 新用户注册
[组图]不可不知的USB Know How            【字体:
不可不知的USB Know How
作者:David Me…    文章来源:电子技术资源网    点击数:    更新时间:2005-12-18

不可不知的USB Know How

David Mervine
 

自從1990年代中期出現以來,USB已獲得各種不同產品採用,其範圍從體積精巧的邏輯分析儀和堅固的瑞士刀到USB熱帶魚缸,這類電子魚缸能顯示栩栩如生的熱帶魚。但究竟是什麼原因讓USB如此強大?最簡單的答案就是標準,其中又以USB規格最重要。
掌握規格
USB規格包含讓最終使用者很容易應用的所有USB低階細節。這項新規格為USB裝置定義了三種匯流排速度:低速 (1.5 Mbps)、全速 (12 Mbps) 和高速 (480 Mbps)。所有裝置速度都支援熱插拔,它們最多都能連接127部裝置,接頭和纜線的型式也完全相同。這些裝置速度的唯一區別在於系統成本:匯流排速度越快,系統成本就越高。

全速和低速裝置都由USB 1.1規範,高速裝置則列於2.0版,它也是目前最新標準,這使得許多人誤將USB 2.0和高速USB混為一談;事實上,USB裝置速度和規格版本是不同的屬性,例如USB 2.0全速裝置的工作速度雖為12 Mbps,但也符合USB 2.0規格。

USB裝置列舉 (enumeration) 是與匯流排速度密切相關的另一項重要概念。裝置列舉的定義是:辨識匯流排所連接的裝置,並為其指定一個獨特編號。列舉裝置時,首先會判斷裝置是在低速、全速或高速下操作,等到決定了通訊過程所使用的匯流排速度後,主機就會利用USB規格第九章所定義的標準查詢命令向其詢問資訊,目標裝置則會使用USB描述項 (descriptor) 回應這些標準要求,讓主機知道該裝置的要求和能力以及所應載入的驅動程式。當主機完成了裝置的組態設定,整個列舉過程就順利結束,裝置則處於隨時可用的狀態;另一方面,若主機無法提供裝置所要求的頻寬和電源,列舉動作就算失敗。

USB規格還允許週邊裝置從主機汲取電源,這使得USB隨身碟之類的小型可攜式裝置不需外接電源就能工作;除此之外,某些裝置會於連接至主機時利用USB電源進行電池充電。透過同一條纜線傳送資料和電源讓這些裝置的使用更簡單,更不容易發生故障,因為它們只有一條電線與外界相連。其它裝置則只是透過USB汲取電源,它們完全不使用資料通道,前述的USB熱帶魚缸就是個例子。在這些例子裡,透過USB汲取電源讓裝置更耐用,操作也更簡單,這些優點使它們的價值更高。

USB規格還包含多個稱為類別 (classes) 的延伸規格,它們對消費者極有價值。這些已定義的裝置類別有著人們很熟悉的名稱,例如音訊、人機界面(HID)和大量儲存裝置,它們可用來製造各種產品,例如喇叭、搖桿和外接式硬碟。為特定的裝置類別定義標準界面後,主電腦就能以類似方式與某個類別的所有裝置互傳資訊,不必採用專屬存取方式;另外,這些類別的驅動程式也多半會內建於作業系統,並隨其安裝到所有個人電腦,因此類別驅動程式所支援的USB裝置在銷售給客戶時,就不必附上驅動程式磁碟。這些產品只需較少的步驟就能完成安裝,整個過程會變得更簡單,另一項優點是產品製造商不必再浪費資源發展、供應和維護裝置驅動程式。除此之外,由於標準界面與作業系統無關,因此同一部裝置可連接至執行Windows、Mac O/S、Linux或其它作業系統的任何電腦。
 
USB認證
USB雖有許多優點,但發展一部認證合格的USB裝置需要那些步驟?首先是新產品的硬體設計,這個步驟會隨著裝置種類的不同而有各種定義,但通常都包含零件選擇、電路板佈局和硬體製造 – 也就是硬體設計程序的所有常見步驟,唯一區別在於認證合格的USB產品會使用認證合格的USB零件;對於絕大多數裝置,這表示它們會使用USB建置論壇 (USB implementer’s Forum,簡稱USB-IF) 認證合格的矽晶片和纜線組件。關於特定裝置的完整詳細說明,請至 www.usb.org 網站查詢;一般而言,任何通過USB認證的裝置都會列於該網站,其中還包括它們的認證測試編號 (Certification Test Identification,簡稱TID),新產品接受測試時必須提供這些編號,它們會被記錄下來以供未來使用。
 
選擇軟體
下一步是軟體選擇,它與硬體設計的關係非常密切。這兩個步驟的完成順序並不重要,因為它們彼此獨立。圖1是整個系統的互動情形。

圖1:USB系統通用模型

 

這個模型詳細描述了普通USB週邊裝置的相關軟體架構,它還能直接用於許多常見系統架構。此處的主機 (host) 是指USB主機或電腦,裝置 (device) 則是指透過USB線路連接至主機的USB裝置。在圖1中,除非方塊名稱包含「硬體」(hardware) 這個字,否則所有方塊都是軟體元件。

讓我們從圖的左上方開始,然後延著逆時針方向往下看:主機的最上層程式除了提供產品主要使用者界面之外,還會直接或透過程式庫與USB裝置驅動程式溝通。裝置驅動程式會透過低階USB硬體和軟體利用USB匯流排傳送和接收資料,協定層 (protocol layer) 也是透過裝置的低階USB硬體利用匯流排傳送和接收資料。USB裝置的最上層程式會與協定層互動,這個過程最終會變成它與主機最上層程式的互動。裝置軟體通常是由微控制器執行,這個微控制器可能內建USB硬體,或是連接至另一顆內建USB硬體的獨立晶片。

需要高度彈性或特殊功能的產品最適合由專為其量身訂製的特殊軟體提供支援,包含原始程式的範例軟體套件則是這類產品的最佳起點。一般而言,這些套件會針對通用USB模型的每一個軟體方塊提供相關原始程式,它們不但是架構設計的絕佳起點,還包含複雜的USB程式碼,裝置可利用它執行列舉工作,驅動程式也可用它配置緩衝記憶體。資源需求是這種做法的最大缺點,就算從很好的起點出發,廠商仍需投入龐大的時間和努力才能完成這類設計。

對於要求不是那麼嚴格的產品,更快的方法是使用物件碼程式庫,由它將USB的細節隱藏起來。舉例來說,主機端的物件碼程式庫可以提供簡單界面與外部裝置溝通,至於所有USB功能則在物件碼程式庫內部或由它所使用的裝置驅動程式處理。這種方法雖能減少產品設計時間,卻也缺乏彈性,因此最好在設計專案初期就決定程式庫的功能範圍。

對於絕大多數設計而言,使用USB橋接器晶片是最簡單快速的方法。雖然這應算是一種硬體選項,我們仍將橋接器晶片列入討論,因為它們會取代圖1模型的軟體元件,這些晶片的功能就像是USB裝置的低階硬體和協定層。橋接器會透過UART之類的標準界面連接至裝置的最上層程式,使得裝置的微控制器完全免除USB作業負擔,並能提供簡單的資料連接至主機;除此之外,這些橋接器還能透過物件碼程式庫與最上層的主機程式互動,因此研發人員就算沒有任何USB知識也能設計USB產品。對於採用串列埠的既有設計,橋接器還可另外使用虛擬串列埠裝置驅動程式,使得現有的最上層主機程式仍能繼續支援新型USB產品。

 
相容性測試
產品設計結束後,就應進行USB相容性測試,所有想使用USB標誌的產品都要接受這項測試,其用意是確保所有USB裝置的品質都符合要求。這些測試不會驗證USB規格的每個部份,它們的目的只是提供合理的可接受度量測值 (measures of acceptability)。產品接受測試的方法有兩種:參加USB-IF贊助的相容性測試工作室 (compliance workshop) 或將產品交給已經核准的私人測試實驗室。若產品通過相容性測試,它就會列入USB整合廠商清單,獲得一個TID編號,並有權使用USB標誌。

USB週邊裝置的認證測試可分為三大類。首先是電氣特性測試,驗證產品在不同應用架構下的訊號品質。接著是功能測試,用來檢查較高階的產品細節,例如對於標準要求的支援程度和裝置列舉功能,最後則是產品相容性 (interoperability) 測試,用來決定受測產品與其它USB裝置的互動情形。

視窗硬體品質實驗室 (Windows Hardware Quality Lab,簡稱WHQL) 會針對Windows作業系統的裝置及裝置驅動程式提供額外認證程序。WHQL認證有三項好處:第一,通過這項認證的產品可在其包裝貼上 "Designed for Windows XP" 的標誌,微軟還會將該裝置的驅動程式加入Windows Catalog,使其能透過Windows Update提供給使用者。最後,它還會為驅動程式加入數位簽章,讓使用者安裝驅動程式時不會收到警告訊息;根據系統預設,如果所安裝的驅動程式未獲簽章,Windows XP就會發出警告訊息。

裝置的測試需求和相關成本會受到微軟對其分類方式的影響;裝置的分類不同,測試費用也會有所差異;另外,許多測試都需要採購特殊硬體,例如成本較低的迴路連接頭,有時甚至需要昂貴的實驗室設備。產品測試費用可能高達數千美元,但已通過認證的產品若因驅動程式改變而必須重新接受測試,則其測試費用只需第一次的幾分之一。雖然測試內容隨時都會改變,下列步驟仍是產品接受WHQL認證的正常程序:

1. 查詢微軟如何分類該裝置以及這類裝置必須接受那些測試。
2. 從WHQL網站下載測試軟體,然後發展或購買所需的硬體。
3. 架設測試硬體和安裝測試軟體。最好使用剛安裝作業系統的電腦,而且除了作業系統之外,測試電腦不要安裝任何不必要的驅動程式或軟體。利用Windows Update確認該作業系統為最新版本。
4. 執行測試,若它通過測試,則繼續進行下一步,否則就根據測試報告列出的錯誤代碼找出問題,然後重新進行測試。
5. 必要時取得VeriSign程式碼簽章 (VeriSign Code Signing)。詳細資訊,請至以下網站查詢: http://www.verisign.com/products/winlogo
6. 必要時建立新的Winqual帳號,詳細資訊請至 https://winqual.microsoft.com/SignUp 網站查詢。您需要VeriSign ID才能完成這個步驟。
7. 根據裝置分類規定的要求,對通過測試的記錄進行數位簽章,然後連同產品硬體一起交給WHQL實驗室。
8. WHQL完成記錄審核和測試結果驗證後,就會將驅動程式認證檔案傳回。
 
結語
USB是否會像放大鏡或羅盤一樣對人類造成長久深遠的影響?或許不會,但你很快就會在所購買的摺疊式求生刀上看到這三種裝置。廠商正不斷尋找新方法利用現有規格或於必要時為其增加新內容,另外還有幾項要點值得USB新手牢記在心,因為當您想要精密調整新設計的其它功能時,這些要點或能為您省下許多寶貴時間:根據專案需求來選擇軟體策略,並且使用已通過認證的零件,另外最好在最終產品的測試套件裡增加部份或所有的規格相容性測試程序,這不但對確保產品通過認證極有助益,還能讓問題浮現,使得產品的品質獲得改善。就算廠商因為成本考量而不打算讓產品接受認證測試,它們還是可以享受許多類似的好處,因為大部份測試只會收取很少的費用,有些甚至完全免費。

想更深入瞭解任何USB主題,最理想的參考資料就是USB規格本身,例如本文就曾多次引用這項規格。USB規格或許很長,但其內容也相當詳盡,編排也很好;無論所要開發的USB產品為何,這項規格及其附錄仍是迄今最有價值的工具。
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)