Professional Documents
Culture Documents
許多人閱讀了不少市面上有關 USB(通用串列匯流排)韌體設計的英文或
中文書,仍然對 USB 韌體設計還是力不從心。也有一些已經為公司設計了 USB
裝置的工程師朋友,也透露對 USB 韌體技巧還是一知半解。學習 USB 韌體技術
對許多人而言,一直不僅耗時耗力,也是困難重重。
一般 USB 韌體工程師分為二個層級:一是不知亦能行的韌體技術員,另一
為精通 USB 規範的韌體工程師。絕大多數的課程或書籍都在教導不知亦能行的
技術,也就是找一個相似功能的 USB 裝置的韌體範例,只去更改基本微控器的
功能相關程式,而避開 USB 通信相關的程式。USB 微控器廠商都會提供大量的
韌體範例,所以不知亦能行的技術已經能滿足許多人的求知願望或是工作需求。
然而這種技術也不是能速成的;另一方面,每次開發產品又要研讀大量似懂非懂
的韌體範例,也會拖延產品研發時間。就算能在很短時間開發出 USB 產品,也
無法非常安心擔保產品的完美無缺。事實上,精通 USB 的來龍去脈,才是一位
USB 韌體工程師在職場致勝的利器。
USB 是一種同步串列傳輸的標準,這個標準在硬體和軟體上制定了許多嚴
謹的規範。軟體方面的規範就是通信協定,USB 應用了最先進的資料通信理論。
了解這些先進的理論不是件容易的事,但是理解 USB 的通信協定並非難事。此
外,USB 規範也制定了裝置屬性和運作功能的描述元,主機(即個人電腦)藉
由描述元來認識各式裝置和解釋與應用傳輸的數據。在 USB 規範中的咨求函數
就是讓主機應用來讀取或選擇描述元,所以咨求函數就是 USB 通信的共通的指
令。通信協定中的控制型傳輸就是在傳送咨求函數。簡單的說,學習 USB 韌體
技術就是學習『通信協定』 ,『描述元』的撰寫,和『咨求函數』的格式。而這三
者的知識取得最好的方式就是閱讀 USB 規範的第八章和第九章。不過規範的編
2 快速上手 USB 單晶片
排為參考手冊方式,對初學者還是很難理解。作者曾在 e 科技雜誌先後發表有關
描述元的文章(2003 年 vol. 24,2003 年 vol. 25 和 vol. 30~32)
,文中即嘗試以範
例和韌體程式來說明這方面知識和撰寫技巧。撰寫描述元的韌體程式碼是 USB
韌體工程師必備的基本技能。
表1 各型 USB 微控器研發成本考量表
型 號 單價 CPU 蕊 發展系統 系統 備註
價格
低 CY7C63001A-SC ($1.35) M8 (A) CY3650 $495 A型
速 CY7C63101A-SC ($1.48) M8 (A) CPU
CY7C63413-PVC $2.65 M8 (B) CY3654, $800 B型
CY7C63513-PVC $2.90 M8 (B) CY3654-P02 +$400 CPU
CY7C63613-PVC $2.55 M8 (B)
CY7C63221A-PC $1.98 M8 (B) CY3654, $800 enCoRe
CY7C63231A-SC $2.05 M8 (B) CY3654-P05 +$400
CY7C63723-PC $2.40 M8 (B)
CY7C63743-PC $2.55 M8 (B)
全 CY7C64013-PC $3.95 M8 (B) CY3654, $800 B型
速 CY7C64113-PVC $4.30 M8 (B) CY3654-P03 +$700 CPU
CY7C64603-52NC $11.70 8051 CY3671 $495 EZ-USB
CY7C64613-52NC $8.50 8051 FX
SL11R ($4.15) CY16 SL11R-DK $495 16 bits
高 CY7C68001-56PVC $6.85 無 CY3682 $495 引擎
速 CY7C68013-56PVC $9.90 8051 CY3681
EZ-USB $495
FX2
註: 單價為數量為 10 至 99 顆的每顆價錢,單位為美金,括號內價錢表示為
數量 100 至 999 顆的單價。
個人電腦 USB裝置
(主機)
USB驅動程式 USB引擎
USB應用程式 韌體
初始化
等待USB
匯流排重置
USB
匯流排重置
USB匯流排列舉
(端點0中斷)
USB匯流排 USB資料傳輸
主程式
懸置模式 (端點1和2中斷)
USB 韌體技術
圖 2 USB 裝置的韌體架構圖。