從零開始學USB(三、基礎知識3)
1. USB 2.0協議內容概覽
當前最新的USB協議,已經發展到USB 3.0了。但是主流的USB裝置和技術,還是以USB 2.0居多。所以此文,主要是以USB 2.0為基礎來學習USB協議的基礎知識,當然,會在相關內容涉及到USB 3.0的時候,也把USB 3.0的相關內容新增進來。
關於USB 2.0和USB 3.0等USB的協議規範,可以去官網下載:
http://www.usb.org/developers/docs/
下圖就是USB2.0協議的主要章節。
借用網友總結的圖表,詳細資訊如下:
USB 2.0協議的內容組成
章節 | 名稱 | 內容描述 | 頁數 |
---|---|---|---|
1 | 介紹 | 介紹了為何要有USB以及USB協議內容的涵蓋範圍。此章節最重要的資訊就是,引用了USB Device Class規範。不需要看。 | 2 |
2 | 術語和縮寫 | 名詞解釋,一般的協議都會有這一章節的。無需看。 | 8 |
3 | 背景 | 說明了USB的來由,以及目的是為了是USB的使用者,注意不是為了是USB的開發者,更加容易使用。介紹了Low,Full,High Speed三種不同的速度以及對應的應用領域。所以也不需要看。 | 4 |
4 | 系統架構綜述 | 可以從這章開始看。此章介紹了USB系統的基本架構,包括拓撲關係,資料速度,資料流型別,基本的電氣規範。 | 10 |
5 | USB資料流模型 | 此章開始介紹USB中資料是如何流向的。其先介紹了端點和管道,然後對控制,中斷,等時,批量四種傳輸型別進行了詳細闡述。其中,重要的一點是,要搞懂每種傳輸型別,當然,這對於初學者來說可能會有那麼一點難。 | 60 |
6 | 機械的 | 此章詳細介紹了USB的兩種標準的連線頭,即介面的型別,其中需要了解的一點是,A類介面旨在用於資料向下流的(downstream),而B類介面旨在用於資料向上流的(upstream)。因此,你應該知道,不應該也不可能去將一個USB線,連到兩個都是upstream的埠上。而所有的full或high speed的USB線,都是可拔插的,而低速的USB線,應該是焊死的。如果你不是USB介面的製造商,那麼就沒必要細看這章,而只需要大概瀏覽一下其中關於USB的介面型別的相關內容即可。 | 33 |
7 | 電子的 | 此章詳解了USB總線上的電子訊號,包括線阻,上下沿的時間,驅動者和接受者的規範定義,以及位元位編碼,位元位填充等。此章中需要知道的,更重要的一點是,關於使用電阻在資料線上的偏壓,去實現USB裝置的速度型別檢測,以及裝置是匯流排供電還是自供電。除非你是在晶元級別上設計USB資料收發模組的相關人士,否則都可以直接跳過此章節。而正常的USB裝置的資料手冊中,都會有相關的解釋,說明關於USB匯流排阻抗需要匹配電阻的阻值是多少。 | 75 |
8 | 協議層 | 此章,從位元組的級別,解釋了USB資料包的細節,包括了同步,PID,地址,端點,CRC域。多數的開發人員都還沒注意到這部分的底層的協議層,因為USB的裝置中的硬體IC,會幫你做這些事情的。然而,多學習和了解一些關於報告狀態和握手協議方面的知識,還是有必要的。。 | 45 |
9 | USB裝置框架工作[1] | 此章,是整個USB協議中,用到的最多的一章。此章詳細闡述了USB匯流排列舉的過程,以及一些USB Request的詳細語法和含義,比如set address,get descriptor等,這些相關內容在一起,就構成了最常用的USB的協議層,也是通常USB程式設計人員和開發者所看到的這一層。此章節,必須詳細閱讀和學習。 | 36 |
10 | USB主機的硬體和軟體 | 此章介紹了和USB Host相關的知識。包括了資料幀frame和微幀microframe的產生,主機控制器的需求,軟體機制和USB的驅動模型等。如果你不是去設計USB Host的話,那麼就直接跳過此章即可。 | 23 |
11 | Hub規範 | 此章定義了USB Hub相關的規範,包括了Hub的配置,分離傳輸,Hub類的標準描述符等。同理,如果你不是去設計USB Hub,那麼也可以忽略此章。 | 143 |
提示 | |
---|---|
所以,由上述總結,我們可以看出:
對於只是為USB外設開發驅動的開發者的話,那麼有關的章節只有:
- 4 系統架構綜述
- 5 USB資料流模型
- 9 USB裝置框架工作
- 10 USB主機的硬體和軟體
如果是對於USB外設的電子設計研發人員,有關係的章節有:
- 4 系統架構綜述
- 5 USB資料流模型
- 6 機械的
- 7 電子的
2. USB協議的版本和支援的速度
USB協議,也像其他協議一樣,經歷過很多個版本,但是正式釋出出來的,主要有4個。
其中,從開始的USB 1.1,發展到後來的USB 2.0,以及最新的協議版本是USB 3.0.
不過這三個版本都是針對的是有線的(corded)裝置來說的,在USB 2.0和USB 3.0之間,釋出過一個是針對無線裝置的USB協議,叫做USB Wireless,也被稱為USB 2.5。
其中,USB 1.1中所支援的速度是低速(Low Speed)的1.5Mbits/s,全速(Full Speed)的12Mbits/s,而USB 2.0提高了速度至高速(High Speed)的480Mbits/s,而最新的USB 3.0,支援超高速(Super Speed)的5Gbits/s。
下面簡要總結一下,各個USB協議版本的演化歷史:
下表展示了USB協議的版本的演化
USB協議 | 針對的裝置 | 對應的速度 | 備註 | ||
---|---|---|---|---|---|
版本號 | 釋出日期 | 名稱 | 速率 | ||
1.1 | 1998年8月 | 有線的 | Low Speed |
1.5Mbits/s=192KB/s |
|
2.0 | 2000年4月 | 有線的 | High Speed | 480Mbits/s=60MB/s | |
2.5 | 2010年9月 | 無線的 | Wireless USB 1.1 | ||
3.0 | 2008年11月 | 有線的 | Super Speed | 5.0Gbits/s=640MB/s |
3.為何USB的速度,最開始沒有設計的更快些?
有人會問,既然USB技術本身可以設計成速度更快的,為何最開始不把USB的設計成速度更快的呢?比如,最開始為啥沒有把USB設計成2.0的那樣的速度呢?
那是因為,任何規範和協議,都離不開當時的背景。關於USB的速度發展,其有其自身的考慮。
比如最開始的USB 1.1,對於低速的1.5Mbits/s的速度,雖然速度很低,但是由於此速度,主要用於USB滑鼠,鍵盤等低速裝置,所以本身就夠用了,而且速度低還有個好處,那就是對於電磁輻射EMI的抗干擾能力較強些,而使得設計和製造對應的硬體裝置的成本要降低些,比如可以使用相對便宜的陶瓷振盪器(resonator)做晶振(crystal)。
而後來的USB 2.0,的出現,則是為了滿足人民群眾日益增長的對於高速速度傳輸方面的需求,比如你從MP3裡面拷貝歌曲出來,如果是USB 1.1,那麼實際效果最快也就1MB左右,而如果是USB 2.0,平均效果大概有3MB/s,5MB/s,效能好的可達10MB/s,20MB/s,所以,如果拷貝個1G的東西,相當於USB 1.1要1小時左右,而USB 2.0只要1分鐘左右。因為如果沒有USB 2.0的出現的話,那麼現在的人們,早就放棄了USB了,因為誰也忍受不了這個太慢的速度。所以為了滿足大家的需求,才有了USB 2.0的出現。
而對於最新的USB 3.0,同理,也是為了滿足現在的一些及以後的可能的需求,即希望拷貝藍光光碟的內容到硬碟上,動輒都是幾個G的內容,以USB 2.0的速度,那怎麼說也得個幾分鐘,而有了USB 3.0後,就有望實現,幾秒或者幾十秒,嘩的一下,就把多少個G的東西,拷貝傳輸到別的介質上了。當然,這只是理論上的,實際的USB 3.0的速度,受到USB裝置的硬體本身能力,和對應的軟體驅動,以及所設計的介質不同,而會有不同的速度。
4. USB的功能和特點
USB規範提供了一系列可以實現多種價格/效能的屬性整合點,可以啟用允許在系統和元件級別進行區分的功能。
功能分為以下優點:
方便終端使用者使用
- 電纜和聯結器具有唯一的型號
- 對終端使用者隱藏了電氣細節(例如,匯流排終端)
- 自識別外設,自動完成配置和驅動程式的功能對映
- 可動態連線和可重新配置的外圍裝置
工作負荷和應用範圍廣
- 可以同時支援速度幾Kb/s至Mb/s的裝置
- 在同一套總線上可以同時支援同步和非同步傳輸型別
- 支援多連線,支援對多個裝置的同時操作
- 支援多大127個物理裝置
- 在主機和裝置上支援對多個數據和訊息流的傳輸
- 允許使用複合裝置,即具有多個功能的外設
- 具有較小的協議開銷,因而匯流排利用率較高
等時頻寬
- 適用於電話,音訊,視訊等的保證頻寬和低延遲
靈活性
- 支援多種不同大小的分組,允許在一定範圍內選擇裝置的緩衝區
- 通過適應資料包緩衝區大小和延遲,允許廣泛的裝置資料速率
- 協議中內建了緩衝區處理的流量控制
穩定性
- 協議中內建了錯誤處理/故障恢復機制
- 使用者感知的實時識別裝置的動態插入和移除(熱插拔)
- 支援識別故障裝置
與PC行業的協同作用
- 協議易於實施和整合
- 與PC即插即用架構一致
- 利用現有的作業系統介面
低成本實施
- 低成本子通道,速率為1.5 Mb / s
- 針對外設和主機硬體的整合進行了優化
- 適合開發低成本外圍裝置
- 所需的電纜和聯結器價格低廉
- 使用商用技術
升級路徑
USB體系結構可以升級,從而在一個系統中支援多個通用序列匯流排控制器