USBlab
usb 車輛通訊網路 ic與產品 參考書籍 討論區 友善連結 工具檔案下載 與我們聯絡
usb基本概念
news


歡迎光臨USB實驗室!

這個網站設立的宗旨,主要是提供 USB的學習者一個技術交流與服務的園地。其中,提供一些USB裝置的學習工具與套件,並且開闢一個討論區,讓各路英雄好漢或是”涉世未深”的USB初學者共同交流的園地。


站長 08/14/2003

 

USB基本概念
USB的沿革
USB的匯流排結構 USB基本架構
USB資料流的模式與管線的概念 USB傳輸型態
USB硬體規格 USB的編碼方式
USB描述元
USB裝置群組
USB標準要求  


USB基本概念

若以USB的字面意思來看,其英文全稱是Universal Serial Bus,而直接翻譯成中文是『通用串列匯流排』。這是由7家包括了 Compaq、迪吉多、IBM、英代爾、微軟、NEC以及北方電訊(加拿大)等主要的電腦與電子科技大廠所研發與規劃出來的。
USB是一種標準的連接界面,允許把外面的設備與電腦連接時,不必重新配置規劃系統,也不必打開機殼,另外調整界面卡的指撥開關。而連接上電腦時,電腦會自動識別這些周邊設備,並且配附適當的驅動程式,無需使用者再另外重新設定。 以下,列出USB的諸多特性與優點:

1. USB界面統一了各種周邊設備的連接頭,包含通訊界面、印表機界面、顯示器輸出、音效輸出入裝置、儲存設備等,都採用相同的USB界面規格。USB界面就像是「萬用接頭」,只要將插頭插入,一切就可迎刃而解。

2. 即插即用(Plug-and-Play),並能自動偵測與配置系統的資源。再者,無須系統資源的需求。也即是,USB裝置不需要另外設定IRQ中斷、I/O位址,以及DMA等的系統資源。

3. 具有「熱插拔」(Hot Attach &Detach)的特性,在作業系統的已開機的執行狀態中,隨時可以插入或拔離USB裝置,而不需再另外關閉電源。

4.USB界面規格1.1中的12Mbps的傳送速度可滿足大部分的使用需求。當然,快速的2.0規格,提供更佳的傳輸率。

5. USB最多可以連接127個周邊設備。因為USB界面使用7-bit的定址欄位,所以2的7次方等於128。若扣掉USB主機預設給第一次接上的周邊設備使用,還剩127個位址可以使用。因此一部電腦最多可以連接127個USB裝置。

簡而言之,對於USB整體功能就是簡化外部周邊設備與主機之間的連線,並利用一條傳輸纜線上來串接各類型的周邊設備(如印表機之並列埠,數據機之串列埠),解決了現今主機後面一大堆纜線亂繞的困境。它最大的好處是可以在不需要重新開機的情況之下安裝硬體。而USB在設計上可以讓高達127個周邊設備在匯流排上同時運作,並且擁有比傳統的RS-232串列與並列界面快上許多的資料傳輸速度。

 

USB的歷史沿革

USB在1995年被提出,並由Compaq、Digital Equipment Corp.(現在屬於 Compaq)、IBM、Intel Corp.、Microsoft Corp.、NEC和Northern Telecom七個電腦與通訊工業領先的公司所組成的聯盟所定義和加以推廣。同一年,該聯盟建立了USB-IF(實施者論壇,以下簡稱USB-IF)來加速採用USB標準的高質量相容設備的開發。

在1996年,USB-IF公佈了USB規範1.0,這是第一個為所有的USB產品提出設計要求的標準。1998年,在進一步對以前版本的標準進行闡述和擴充的基礎上,發佈了USB標準的1.1規格。而此時聯盟僅剩四個核心的成員公司,它們是Compaq、Intel、Microsoft,以及NEC等公司。由於USB的方向已偏離了通訊的相關領域,使得IBM和Northern Telecom退出了該聯盟。如此,也造成了目前應用於電話的USB設備的發展仍然稍嫌緩慢一些。

第三個版本的USB 2.0是發佈於1999。此時,Hewlett Packard、Philips和Lucent等三個公司加入了USB-IF聯盟,使得聯盟的核心成員數重新又恢復為七個。之後,隨著USB的普及與推廣,USB的成員一直持續不斷地增加,如今已是非常龐大的推廣組織了。

USB1 .X
USB 2.0
Compaq
Compaq
Intel
Intel
Microsoft
Microsoft
NEC
NEC
IBM
Lucent
DEC
HP
Northern
Philips

USB 1.1
前應用USB1.1的周邊設備應用兩種不同的速度:12Mbps(全速)和1.5Mbps(慢速)。其中,慢速主要是應用於人機界面(HID)上。這是一個用於連接滑鼠、鍵盤、搖桿等設備的USB的群組。而儘管當前的USB 1.1的最大頻寬速度為12Mbps,但是主機端應用程式與其它的周邊設備則占據了部分的頻寬。

USB 2.0
雖然USB號稱可以熱插拔、隨插即用、最多同時連接127個裝置等功能。但是其中還是有它的若干缺點,例如熱插拔多次後往往會造成系統不正常當機,以及連接過多的裝置就會導致傳輸速度變慢等問題(USB的傳輸頻寬是由裝置來共同分享的)。因此,如何改進這些缺點便成為USB-IF推廣組織所要努力的目標。

在USB周邊設備不斷地被廣泛應用後,許多的裝置,如視訊會議的CCD,或是像外接式硬碟、光碟燒錄機、掃描器、讀卡機便成為USB界面的一個非常流行的應用。? USB 2.0利用傳輸時序的縮短(微訊框)以及相關的傳輸技術,將整個傳輸速度從原本12Mbps拉到80Mbps,整整提升了40倍。而在相容性方面,USB 2.0採用的是往下相容的做法。未來USB 2.0仍可向下支援目前各種以USB 1.1為傳輸界面的各種周邊產品,也就是舊有的USB 1.X版傳輸線,USB HUB依舊可以使用。不過若是要達到480Mbps的速度,還是需要使用USB 2.0規格的USB HUB。當然,各個周邊也要重新嵌入新的晶片組以及驅動程式才可以達到這個功能。也就是說,若需要使用高速傳輸設備的話,就接上USB 2.0版的USB HUB。而只要低速傳輸需求的周邊(如滑鼠,鍵盤等),則接上原有的USB HUB,便可以高低速裝置共存的目的。對於舊有的USB 1.1規格設計產品的傳輸速度最高仍僅能維持12Mbps。

USB 2.0對許多消費性電子應用,如視訊會議CCD、掃瞄器、印表機以及外部儲存裝置(硬碟以及光碟機)來說擁有相當大的吸引力。 而在USB 2.0問市之後,Intel公司發展並免費開放一套高速控制器標準規格技術:增強型主機控制器界面規格(Enhanced Host Controller Interface,簡稱EHCI)。在EHCI規格中,主機控制器能以480 MHz速度來傳送資料,所以在主機控制器與全速或是低速周邊裝置之間,就必須搭配舊型的控制器或高速集線器才能發揮整體的效能出來。

USB1.1與2.0之比較
若稍前已對USB 1.1有相當的瞭解,可是隨著新的USB 2.0規格的修訂,或許會感到更新速度得太快。因此以下,特別針對USB 1.1與2.0規格與特性,作個個別條列式的比較與分析,讓讀者先有若干的概念與瞭解,然後在稍後的章節中作再深入地介紹。首先,若以1.x規格為基礎的話,USB 2.0多了:
1.提供一個較高執行成效的界面。
2.運用所存在的USB 1.1連接器與全速的纜線。
3.設定微訊框的規格,其為USB 1.x訊框的1/8倍。
4.USB 2.0 集線器能以裝置-by-裝置為基礎,協調出連接的速 度,並且建立出適當的鏈結方式。
5.位於下游埠USB 2.0集線器能夠支援任何速度的裝置連接上來。

因此,USB2.0是以USB 1.1規格作為基礎,並加以延伸,其中,包含了:1.具備USB 1.1的所有功能。
2.高速訊號模式。
3.偵測高速能力的協定。
4.切入/脫離高速的協定。
5.偵測裝置脫離的機制。
6.嚴謹地符合低/全速規格,但僅針對高速相容的周邊埠。
7.USB規格7.2章節 (“電源消耗”的部分)其規格是不變的。

若是要與USB 2.0高速裝置相容的話,則:
1.需要支援全速信號。
2.需要支援至少以全速來作裝置列舉的動作。
3.需要符合嚴謹地全速電器的規格。
4.決不能支援低速模式。

如表格1所示,顯示了USB 1.1與2.0規格之間的相互操作的對應矩陣表。其中,我們知道若要真正地取得USB 2.0高速的特性,必須採用高速的USB主機控制器,高速的裝置,以及高速的集線器。也即是,全部都是高速的規格才可以。


表格1     USB1.x與2.0規格中,主機控制器圖,裝置與集線器的對應矩陣表

最後,我們要提及的是,在高速的規格協定中增加了:
1.高速”Ping”流程控制。
2.分割資料交易。
3.增加了規格第八章的部分。


USB與IEEE 1394之比較
這是大家都會比較分析的問題,在此稍微簡述一下。 1394與USB同為串列(Serial)傳輸界面埠,其中,1394b的格式可支援400Mbps資料傳輸速率,比USB1.1規格快了33倍,而且最多可串接至63部裝置。目前在市面上,除了數位視訊機器開始使用外,電腦周邊裝置也陸續採用,如目前較常見的外接式硬碟等。而有一些產品,甚至整合USB與1394界面成為comb的裝置,如此其使用更為方便了。
而隨著USB 2.0產品的推出,是否意味著目前已漸趨成熟的IEEE1394會被淘汰掉呢?基本上,USB與IEEE1394是使用在不同的應用領域,雖然USB 2.0的速度已經追上目前IEEE1394的傳輸速度。不過,新一代IEEE1394的規格已經制定出來,每秒的傳輸速度最高將可達到800MB。因此,未來IEEE1394將適用數位影像編輯(DV)等需要高速傳輸界面的消費性電子產品上,如數位錄放影機。而USB 2.0的界面則可望成為未來電腦周邊產品的主要傳輸界面。當然,USB的產品大部份還是以滑鼠、鍵盤以及搖桿等慢速的人工界面裝置為主。


表格2 1394與USB比較表格


表格3 各種界面比較表格



USB的匯流排結構

USB的匯流排結構是採用階梯式星狀(tiered star)的拓僕(topology)結構,如圖2所示。每一個星狀的中心是集線器,而每一個裝置可以透過集線器上的埠來加以連接。從圖中可以看到USB的裝置包含了兩種型態:USB集線器與USB裝置。位於最頂端的就是主機端(Host)。從主機端的連線往下連接至集線器,再由集線器按階梯式,以一層或一階的方式往下擴展出去,再連接下一層的裝置或是另一個集線器上。而事實上,集線器也可視為一種裝置。而其中最大階層數為6層(包括電腦內部的根集線器)。每一個星狀的外接點的數目可以加以變化,一般集線器具有2,4,或是7個埠。

在此,主機端通常是指PC主機。當然,主機端因具有根集線器,因此也含有集線器的功能。而集線器是在USB規格中特別定義出來的周邊裝置,除了擴增系統的連接點外,還負責中繼(repeat)上游 / 下游的訊號以及控制各個下游埠的電源管理。

至於另一個裝置,即是我們常見的周邊裝置設備。但在USB規格書中,稱這種裝置為“功能”(Functions),其意謂著,此系統提供了某些的“能力”,例如具有鍵盤,或是滑鼠等功能。當然不同的周邊裝置可以具有不同的功能。

圖 1   USB 1.1與USB 2.0裝置與集線器一起工作的拓僕結構


此外,當USB2.0與1.1的裝置與集線器在一起使用時,如何才能呈現出最佳的USB 2.0高速頻寬的特性出來?如下圖1所示,當USB 2.0與1.1規格的裝置混合使用時,整個匯流排上交雜著,高速/全速的裝置與集線器。而如圖2所示的,唯有在USB 2.0集線器與USB 2.0裝置的連接下,才具備高速匯流排頻寬的特性。

圖2  具備USB 2.0高速匯流排特性連接示意圖




USB的基本架構

根據USB的匯流排架構,我們可以將一般USB系統的基本架構分為下列三個主要的部分:
1.USB主機控制器/根集線器
2.USB集線器
3.USB裝置

圖3 USB匯流排的基本架構


USB主機控制器/根集線器(Host Controller/Root 集線器)
所有在USB系統上的溝通都是在軟體控制下由PC主機啟動。而PC主機硬體包括USB主機控制器(USB Host Controller)與USB根集線器(USB Root 集線器)兩種。

而如下圖4所示,在我們Windows 98與ME作業系統下,電腦上的系統內容-裝置管理員中所顯示的“通用序列匯流排控制卡”內,包含了兩組下列所示的項目:
1.Standard Universal PCI to USB Host controller-主機控制器
2.USB Root 集線器-USB根集線器

當然,大部份的電腦僅有一組而已。若是作業系統中,未含蓋類似的裝置訊息畫面的話,則代表此主機並未支援USB界面。而我們可能就必須另外購置USB界面的擴充卡來加以使用。而筆記型電腦則需使用PCMCIA界面的擴充卡。相同的方式,若是讀者需要將原先USB 1.1主機控制器的規格升級為USB 2.0的話,也同樣需購置USB 2.0的擴充卡。

圖4 裝置管理員下的”通用序列匯流排控制卡”所包含的項目 (USB 1.1與2.0)


USB集線器(USB HUB)

若僅靠USB根集線器是不可能同時連接上127個USB周邊,所以除了根集線器外,USB系統還支援額外的集線器。這些集線器的功用主要是提供另外的USB連接埠供我們串接裝置,有點像網路的集線器集線器一樣。而整個USB連接裝置方式,有點像金字塔型的架構。每一個連接器上,呈現了一個USB埠。

對於1.x規格集線器來說,重複地接收在PC主機與裝置兩端的USB資料流,整合處理了電源管理,以及負責對各種狀態與控制訊息的回應。再者,也避免讓全速的資料傳輸至低速的裝置上。但是對於2.0規格集線器來說,作得事情就要比1.x規格的更多,更複雜了。當然,2.0規格集線器支援了高速的特性。此外,不僅只是重複地接收資料外,還必須負責切換低速,全速以及高速的傳輸速率,以及執行其他的功能以確保匯流排的時間是充分有效地被運用分享。如圖5所示,是USB 2.0集線器的示意圖,其中,透過路由邏輯來連結裝置至適當的路徑上。此外,傳輸轉譯器(Transaction Translator,簡稱TT)掌握了低速/全速的資料交易,且用來啟動資料交易分割的程序。其中,包含了兩種的分割資料交易的動作:啟始分割與完成分割。對前者而言,主機會告訴集線器來啟始全速/低速的資料交易。而後者則是主機詢問集線器前面的全速/低速資料交易的結果。

圖5 USB 2.0集線器的架構


USB裝置(USB Devices)
顧名思義,就是指各種類型的USB周邊。也即是具備某種function(功能)的裝置。而依照目前USB產品的規格,可以將USB裝置分為以下三種類型:

全速裝置(full-Speed Devices):如CCD、外接式硬碟等裝置。這些USB裝置的傳輸速率最高為12 Mbps/s。
低速裝置(Low-Speed Devices):如鍵盤、滑鼠等裝置。這些USB裝置的傳輸速率最高為1.5 Mbps/s。除了速度低於全/高速裝置之外,低速裝置在某些USB的支援上也受限制,例如當主機控制器在執行高速處理動作時,低速裝置是沒有反應的,此點可以避免高速的訊號被送到低速的集線器。
高速裝置(High-Speed Devuces):USB2.0所提出的新規格,也應用在如CCD、外接式硬碟等裝置。這些USB裝置的傳輸速率最高為480 Mbps/s。



USB資料流的模式與管線的概念

在USB規格標準中也定義了兩種周邊:(1)單機裝置,如:滑鼠等;(2)複合式裝置,例如:數位照像機和音訊處理器共用一個USB通訊埠等。每個周邊設備都具有“端點”(Endpoint)位址,它是由執照封包內的4-bit欄位(ENDP)所構成的。而主機與端點的通訊,是經由“虛擬管線”(Virtual Pipe)所構成的。而一旦虛擬管線建立好之後,每個端點就會傳回“描述”(Descriptor)此裝置的相關資訊(即是描述元)給主機。這種“描述”資訊內含了:群組特性,傳輸類別,最大封包大小,與頻寬……等,相關於此周邊裝置的重要訊息。而在目前USB的資料傳輸類別有四種類型:控制、中斷(Interrupt)、巨量(Bulk)與等時(Isochronous)。

USB對於PC主機與裝置之間的通訊提供了特殊的協定。雖然USB系統的匯流排拓樸是呈現階梯式星狀的結構(如圖1所示),但實際USB主機與裝置的連接方式卻是如圖6所示的一對一形式,我們稱之為USB裝置的邏輯連接;而資料流的模式則是以這些邏輯連接為基本的架構。

圖6 USB裝置的邏輯連接

而對於USB的通訊,我們可以將其視為一種虛擬管線的概念,如圖7所示。在整個USB的通訊中包含了一個大的虛擬管線(12Mbps)以及高達127個小的虛擬管線,而每一個小的虛擬管線可比擬為USB的裝置。這是由於在USB執照封包中都含有7個用來定址的位元(位於執照封包的位址資料欄,ADDR),因此最多可定址到128個裝置。但是由於位址0是預設位址,且用來指定給所有剛連上的裝置。這也就是為什麼USB匯流排上最多能連接到127個裝置的原因。

而每一個連接到裝置的小虛擬管線又可再細分為許多的微虛擬管線。這些微虛擬管線可比擬為端點(Endpoint)。這也是由於在執照封包中,包含了4個位元的端點位址(位於端點資料欄,ENDP)以及一個位於端點描述元中的輸入 / 輸出方向(IN/OUT)位元。所以在一個單獨的小虛擬管線內最多可再分割成15組的微虛擬管線(端點),也就是可對15個輸出/入的端點定址(共30個),並可將USB的執照封包中定義為IN(裝置至主機)或OUT(主機至裝置)兩類型的執照封包。如果裝置收到了一個IN執照封包,它將會傳送資料給主機,反之如果收到了一個OUT執照封包,則它將會從主機接收到資料。

圖7 虛擬管線的概念




USB傳輸型態

由於USB最初在設計時,即是為了能夠針對具備如傳輸率,響應時間以及錯誤偵錯等特性之許多不同的週邊類型來加以考量的。而其中,四種資料傳輸的每一個能夠掌握不同的需求。在此,因應不同的周邊裝置的類型與應用,訂定了四種的傳輸類型,分別是控制型傳輸(Control Transfer),中斷型傳輸(Interrupt Transfer),巨量型傳輸(Bulk Transfer)以及等時型傳輸(Isochronous Transfer)。其中,需要特別注意的是低速裝置僅支援控制型傳輸與中斷型傳輸而已。

控制傳輸USB傳輸中最重要的傳輸類型,唯有正確的執行完控制傳輸,才能進一步地執行其他的傳輸模式。這種傳輸是用來提供給介於主機與裝置之間的配置,命令或狀態的通訊協定之用的。控制傳輸能夠致能主機去讀取相關於此裝置的訊息,並去設定裝置位址,以及選擇配置與其他的設定等。此外,控制傳輸也能夠送出自訂的要求,以針對任何的目的送出與接收資料。因此需以雙向傳輸來達到這個要求。當然,所有的USB裝置必須支援控制傳輸。

中斷傳輸原本是屬於單向傳輸,並且僅從裝置輸入到PC主機,作IN的傳送模式,(但在規格書1.1版中,已改為雙向傳輸,增加了OUT的傳送模式)。這是由於最早在發展USB週邊裝置時,先以人工界面裝置為設計考量,其資料只需做輸入,IN傳輸,例如滑鼠或是鍵盤等裝置。而由於USB不支援硬體的中斷,所以必須靠PC主機以週期性地方式加以輪詢,以便知悉是否有裝置需要傳送資料給PC。如果因為錯誤而發生傳送失敗的話,可以在下一個輪詢的期間重新再傳送一次。

巨量傳輸是屬於單向或雙向的傳輸。顧名思意,這類型的傳輸是用來傳送大量的資料。由於這些大量的資料必須準確地加以傳輸,但相對的卻無傳輸速度上的限制(即沒有固定傳輸的速率)。例如,送出一個檔案給印表機列印之用,或是從掃瞄機掃瞄一張圖片,並傳送至PC主機的應用上。這是由於巨量型傳輸是針對未使用到的USB頻寬來向主機提出要求的。如此,需根據目前的匯流排的擁擠狀態或是可用的頻寬,以所有可使用到的頻寬為基準,不斷地調整本身的傳輸速率。因此,如果匯流排上充滿了具備保證頻寬的其他傳輸的話,如等時傳輸或是中斷傳輸,那麼巨量傳輸就必須持續地加以等待。反之,如果整個匯流排是處於閒置狀態的話,巨量傳輸就可以傳輸地非常快。因此,並沒有設定輪詢的時間間隔。

等時傳輸可以是單向或雙向的傳輸。此種傳輸需要維持一定的傳輸速度,因此相對的就需犧牲些微錯誤的發生。而它採用了預先與PC主機協定好的固定頻寬,以確保發送端與接收端的速度能相互吻合。換言之,就算發生了傳輸上的錯誤,也不會重新傳送。而應用這類型的傳輸裝置有:USB麥克風、喇叭或是CCD等裝置,如此可以確保播放的頻率或是傳輸的影像不會被扭曲。而僅有全速與快速裝置是支援等時傳輸的。



USB硬體規格

從 Universal Serial Bus的直譯的文字,我們可以瞭解到USB界面的資料傳輸方式是採用串列的方式,其類似於RS-232串列傳輸的方式。當然,採取串列的方式,最主要是可以降低使用的訊號線數目,並可讓訊號傳遞較遠的距離。所以USB的連接線內部僅有四條線,其中二條是+5伏特(VBus)與地線(GND),另外二條則是差動的資料線(D+與D-),長度最長可以達到5公尺(對全速裝置而言)。而電源的供應上,一般為5V,而最小是4.4V。此外,透過USB匯流排,在下游所連接的裝置埠可以根據不同的配置方式,分享到100/500 mA的電流量。

為了達到可以連接各種不同周邊設備的目的,USB最多可以連接高到127個設備。而對一般的使用者來說,這種龐大的數量是備而不用的。而集線器的規格設計上,若要連接那麼多個周邊設備時,就要有USB 集線器的設計與使用,可以方便連接至多個周邊。而這種集線器就和網路的集線器功能類似,皆可稱為集線器,而且集線器與集線器間可以再串接,以方便安裝更多數量的設備。如此,就可以形成或是架構出USB的階梯式星狀拓樸結構出來。

USB的硬體特性
根據圖2所示的階層梯式星狀的拓樸結構,可以看到主機端與集線器或裝置必需依循由上→下或由下→上的連接方向,而為了避免連接錯誤,因此在USB 1.x規格中定義了兩種不同大小形狀的USB連接頭,序列A與B連接頭。其相關的尺寸與接腳編號如圖8所示:

序列A接頭:用來連接下游埠的裝置,且為長方扁平的形狀,所以在PC主機機殼後的根集線器以及在集線器中往下擴充的連接埠就是序列A連接頭。

序列B接頭:用來連接上游埠的裝置或集線器,且為正方形。

圖8. A與B型連接器之圖示


而新的USB 2.0規格中,則增加設定了mini-B接頭,如圖9所示。這個mini-B連接器是原本B型連接器的一半大小。這種mini-B連接器是應用在需要縮小面積的消費性電子產品上,例如數為照相機。不管我們是使用的是一般B型連接器或是mini-B連接器,連接至電腦的另一端都需要A型連接器。A型連接器是往電腦主機端連接上去(往上游,Upstream),而B型連接器則是往裝置端連接出去(往下游,Downstream)。因此,具備擴充USB周邊埠的集線器,就同時具備了A型連接器與B型連接器。

圖 9. Mini-B的連接器(引用自明昫,mainsuper公司)

所有的連接器中包含了四條USB纜線的電線的線規以及顏色,如下表格4所示。但其中,對於mini-B連接器則增加了ID腳位。若是支援USB On-The-Go(OTG)規格的話,則使用這個ID腳位,以用來辨識裝置預設的模式(主機或是裝置)。因為,這新的OTG規格已經修改USB規格延伸至點對點的方式來連接。而這種的新的USB OTG規格將使得USB裝置不再侷限於主機為整個USB匯流排上的唯一”主”裝置。透過這種規格的延伸,所有的USB裝置具備了主/從切換的特性。

一般標準的每個連接頭內擁有4個接腳:其中兩個用來傳遞差動資料的,另兩個則是供給USB裝置電源。其中,一對的電源線採用20∼28AWG(America, Wire Gauge,美國線規)的導線。

表格4 USB纜線/連接器的信號與顏色

但對於傳遞差動資料線的線規,就需多加注意。由於USB的資料傳輸速率,分為全速(12Mbps)與低速(1.5Mbps)兩者規格。雖然這兩種傳輸格式都可以使用28AWG的導線,全速的差動資料訊號線必須採用絞線對的形式,而且還須加上屏蔽的處理才可以。而屏蔽的作用是防止高速傳輸時所產生的EMI電磁干擾。但對於低速的差動資料訊號線就無須使用絞線對,或加上屏蔽處理。這樣設計也是為了減少成本並符合經濟效益。

USB界面的電氣特性
詳細的USB電器特性的相關內容是在USB規格第七章所設定的。而在此,僅列出讀者所需注意的一些特性。 如圖10所示,呈現了在全速裝置與PC主機之間電氣特性的連接。除了Vcc(+5V)與接地線外,需要特別注意的是D+與D-的差動資料信號線。首先,在連接至USB收發器之前必須先串接29∼44W的電阻器。而後根據不同的USB裝置的傳輸速度(全速或是低速),改變在裝置端的提升電阻(1.5K±5%)的位置。這個提升電阻器,也可視為裝置端電阻器。對於全速裝置(12Mbps),就將提升電阻器接至D+信號線與電源之間的位置。如果是低速裝置(1.5Mbps),

圖10. 全速裝置與PC主機之間電氣特性的連接圖

就將提升電阻器接到D-信號線與電源之間的位置。這個電壓源的範圍為3.0V至3.6V之間。但對於USB 2.0的高速傳輸,這個提升電阻是被省略之,改以自動切換的方式。最後,D+與D-兩條訊號線在PC主機的根集線器或集線器端同時接上15KW的下拉電阻並連至接地端。我們也可視這些下拉電阻器為集線器端電阻器。

USB 2.0電子規格的變動
在主機與新型的高速控制器之間的連結被重新加以定義,以支援高達480MHz的傳輸效能表現。圖11顯示了全新的高速的界面連接方式。其中,新的標準下採用90W的差分阻抗(differential characteristic impedance)以搭配差分電流模式訊號(differential current mode signaling),並且採用相同的NZRI編碼機制。但是,對於SYNC訊號、EOP訊號以及閒置狀態等,也略加作了修改(在下一章中將再作詳盡的介紹),只不過也必須同時搭配其他相關規範,以便嚴格控制游離電容(stray capacitance)、點對點抖動(peak to peak jitter)與上升/下降時間等因素。如此,才能使得訊號的傳輸速度能夠更加地快速傳輸。

圖11. USB 2.0規格匯流排連結過程

高速周邊裝置與主機控制器進行連結時,系統會將它視為一組配置有提升電阻器的標準型全速裝置。在匯流排進行重置,周邊裝置會藉由訊號交換協定,將傳輸電流傳回主機的方式來指示主機,這個周邊裝置為USB 2.0界面規格並具備高速傳輸能力。在完成訊號交換協定之後,周邊裝置將會把提升電阻打開(detach),所有的元件會開始進行高速傳輸通訊。當USB 2.0規格的周邊裝置與舊型主機相連結時,這種模式便具備向下相容能力。也就是當訊號交換協定失敗時,周邊元件會自動開始模擬並轉為全速裝置模式運行。而此時,使用者會感覺到運作效能的降低,但實際上仍能順利地進行所指派的工作。由於USB 2.0 是採用了現有的訊號機制,若是在連線環境中未安裝終端電阻器的話,系統就會透過雙倍的電壓偵測出USB裝置的移除。

USB的電源管理
這一部份的規範,在新的USB 2.0規格是沒有作太大的變更。基本上,在中止模式下,500uA,配置模式下,500mA,而未配置模式下,100mA。由於USB的優點之一即是由匯流排供電給裝置,因此裝置可以透過匯流排來取得電源,而無須外部額外的電源插座或是纜線。

不論是集線器或是裝置都可區分為自我供電或是匯流排供電兩種類型。而從匯流排供電又可再區分為低功率與高功率兩種。此外,根據USB規格,所有的集線器或是裝置都必須支援中止(Suspend)模式,且中止模式下的消耗電流不能超過500mA。這是非常重要的特性。

而根據供電方式的不同,USB裝置可分為下列幾個類型:

1.匯流排供電集線器
所有的電源均由上游連接埠來供應,但至多只能從上游埠消耗500mA。而倘若以一個4個連接埠的集線器來說,每個下游埠最多只能消耗100mA(一個單位負載),因此4個連接埠共消耗400mA。而集線器本身的控制器與其周邊電路可再消耗100mA,因此整個集線器共可消耗500mA。

2.自我供電集線器
集線器本身擁有自己的電源供應器,可以提供給本身的控制器以及所有的下游埠來使用。而對於每個下游埠,可以供給至少500mA的電流,而此時集線器最多可從上游埠消耗100mA。

3.低功率匯流排供電裝置
所有的電源均來自USB上游埠,每個下游埠在任一時刻最多能消耗一個單位的負載。在USB規格中,定義一個單位的負載是100mA。低功率匯流排供電裝置必須設計工作在低至4.40V的VBUS電源電壓,以及高達至5.25V的最高電壓。

4.高功率匯流排供電裝置
所有的電源均來自USB匯流排的上游埠,在啟動每個下游埠時,最多消耗一個單位負載(100mA),但在配置後最多可消耗5個單位負載(500mA)。高功率匯流排供電裝置必須能被偵測以及以最小的4.40V來裝置列舉。

5.自我供電裝置
裝置最多可從USB上游埠消耗一個單位負載(100mA),而其餘的電源再從外部的來源來驅動。當外部的電源失去時,其必須以替代方案來透過匯流排提供不超過1單位的負載電流。



USB的編碼方式

當PC主機對裝置發出控制信號時,所有連接的裝置都透過根集線器收到同樣的信號,但是經由比對所配置的裝置位址後,只能有一個裝置會作出相對應的動作,這跟網路的架構有點類似。因此對一個裝置而言,不僅要無誤地接收主機端所送來的資料,又要正確地發出回應的信號。因此在D+與D-的差動資料線上就必須採用一種特別的編號方式再加以傳送出去,以解決在USB纜線所產生訊號延遲,以及誤差等問題。

在此,USB採用了NRZI(Non Return to Zero Invert,不歸零就反向)的編碼方式,就無需同步的時脈信號也能產生同步的資料存取。NRZI的編碼規則是,當資料位元為 “1” 時不轉換,為 “0” 時再作轉換。如圖12所示,顯示了的NRZI編碼的範例。

圖12 NRZI編碼的範例說明


但如此的編碼方式會遇到一個很嚴重的問題,就是若重複相同的 “1” 信號一直進入時,資料就會造成長時間無法轉換,逐漸的累積,而導致“塞車”的狀況,這使得讀取的時序就會發生嚴重的錯誤。
因此,在NRZI編碼之間,還需執行所謂的位元填塞(Bit-stuffing)的工作。如圖13(a)所示,若是原始的串列資料中含有連續6個 “1” 位元的話,就需執行位元填塞的工作。此工作如圖13(b)所示,就在其後填塞一個 “0” 位元。但相對的在NRZI編碼的過程中,對這連續的6個 “1” 執行如圖13(c)轉換過程。
因此在發送端在作資料傳輸之前,需先執行位元填塞以及NRZI編碼的工作。相對的,接收端在作資料接收之前,就必需先執行NRZI解碼,然後再作位元反填塞(unBit-Stuffing)的工作。

圖13 NRZI解碼的過程




USB描述元

前我們曾提及過USB描述元,那麼何謂USB描述元呢?我們可以稍微想像一下,它就好像是USB周邊裝置的“履歷表格”或是“身分證”一般,鉅細靡遺地紀錄著周邊裝置相關的一切訊息。因此,USB描述元掌握了有關於裝置的各種訊息與相關的設定。

而為了描述不同的資料,就需以不同類型的USB描述元來加以描述,如圖14所示。

圖14 各種描述元的架構與類型


在圖14的描述元中,需注意到,裝置描述元(Device Descriptor),配置描述元(Configuration Descriptor),界面描述元(Interface Descriptor)以及端點描述元(Endpoint Descriptor)是一定必須具有的。而其他的描述元,例如,字串描述元(String Descriptor),數種不同的群組描述元(Class Descriptor)以及報告描述元(Report Descriptor)則可以根據不同的裝置來加以添加或刪減的。而HID群組描述元是由界面描述元所延伸出來的。

而各種的描述元可以用下圖15的描述元階層來作敘述。最上層的階層是裝置描述元。在裝置描述元的bNumConfigurations欄位中,設定一個或多個下一層的階層-配置描述元。在配置描述元的bNumInterface欄位中,設定一個或多個下一層的階層-界面描述元。最後在界面描述元的bNumEndpoints欄位,則設定最後一層的端點描述元。

圖15 USB描述元階層圖


因此,從裝置描述元中,可以設定含有多少個配置描述元。而配置描述元,則可設定其包含了多少個界面描述元,當然從界面描述元中,又可以再設定所含端點的數目。因此,其中,可以瞭解到僅有一個裝置描述元而已,其餘的描述元再依次設定。當然如圖15所示的,每一階層至少需設定一個描述元。



USB裝置群組

在USB的文件中,定義了將某種相同屬性的裝置整合在一起的群體,稱之為群組(Class)。而將這些相同屬性的裝置組合在一起的優點是,可以同時發展該群組以PC主機為主的驅動程式。

例如,滑鼠是屬於人工界面裝置的一種,其群組驅動程式已包含在作業系統下。如果滑鼠也遵循了裝置群組規格的話,那麼滑鼠的販售商在販售時,根本就無須另外再附一套驅動程式。也就是可以直接使用Windows 98 SE或是Windows 2000 所內建的人工界面裝置的驅動程式。如此,硬體的製造商只需專心發展其硬體電路即可。相對的,倘若該裝置並不符合人工界面裝置群組的話,就必須使用含有Win32 API呼叫的VB,C++或是Delphi等高階程式,另外再撰寫其驅動程式。

以下列出USB規格中所定義的群組:
Audio:如喇叭等的音頻裝置
Communication:如數據機等的通訊裝置
Display:如顯示器等裝置
Human Interface:包含了滑鼠,鍵盤與搖桿等人工界面裝置
Mass storage:如軟硬碟等的儲存裝置
Image:如掃描機或數位攝影機
Printer:如印表機等的列印裝置
Power:如UPS等的電源裝置
Physical interface:如動力回饋式遊戲搖桿等的物理回應設備。

在所有的群組中,最常使用的就是Human Interface Device,人工界面裝置(簡稱HID)群組。在下表格5中,分別列出了各個群組規格所設定的“裝置群組”碼與“界面群組”碼。這些值分別設定於稍前所敘述的裝置描述元與界面描述元中。

而之所以那麼繁瑣的設定各種“裝置群組”碼與“界面群組”碼的原因,在於USB是一種正如其名的通用串列匯流排。因此,為了與各種舊有的裝置或設備連接在一起,就必須加以分類。

表格5 裝置群組碼與界面群組碼

*指的是IrDA/USB Bridge,而其次群組碼是0x01



USB標準要求

在USB界面的通訊協定中,由於主機是取得絕對的主控權,所以對於裝置而言,只有“聽命行事”,講一動,作一動(軍中術語)。因此,主機與裝置之間就必須遵循某種已溝通的特定命令格式,以達到通訊的目的。而這個命令格式就是USB規格書中所訂定的“裝置要求(Device Request)”。這個裝置要求的設定,清除與取得都需透過控制型傳輸的資料交易來達成。

從下表格6中列出了各種的標準裝置要求。而表格1.7則是其第一個欄位,要求型態(bmRequestType)的格式。

表格6 標準裝置要求


表格7 裝置要求型態bmRequestType的資料格式內容


事實上,在表格1.6的8個位元組也就是放置於跟隨在SETUP執照封包後的資料封包欄位內。為了取得這8個位元組的標準裝置要求,在一般的USB晶片組通常使用一個陣列或是特定的FIFO來儲存這重要的SETUP資料。而在EZ-USB FX晶片組中,是使用定義為SETUP[7]陣列來加以儲存。

例如,Get_Descriptor的裝置要求,在資料封包的資料欄位是 “80 06 00 01 00 00 40”。其中,這個資料格式中的第1個位元組-bmRequestType =80,表示資料是從裝置傳至主機,且為標準的型態,而接收端為裝置。此外,第2個位元組-bRequest,06,則決定了裝置要求的型態,就是取得裝置描述元。

若加以整合表格6與7,就可以如下圖16所示的架構。其中,利用表格7的bmRequestType[6:5]位元區分為四種類型。[00]為標準裝置要求,[01]為群組裝置要求,[10]為販售商特定裝置要求,而最後的[11]則加以保留,應用於停滯(STALL)的用途。我們可以從圖中,根據表格6,瞭解到bRequest的類型,而在圖中以Get_Descriptor為例子,利用wValueH欄位值延伸至DEVICE(裝置),CONFIGURATION(配置)以及STRING(字串)等標準裝置要求。即分別為取得裝置描述元,取得配置描述元,以及取得字串描述元等的標準裝置要求。

圖16 標準裝置要求的架構示意圖


參考資料:
1.USB週邊裝置的設計與應用-使用CY7C63系列,全華科技圖書。
2.微處理機-USB週邊裝置的設計與應用-EZ-USB(FX)系列,長高電腦圖書。
3.USB介面之完全解決方案系列一-8051微處理機程式設計(上),長高圖書。
4.USB介面之完全解決方案系列二-8051微處理機程式設計(下),長高電腦圖書。
5.USB介面之完全解決方案系列三-Visual Basic程式設計,長高電腦圖書。





Copyright 2007 . All Rights Reserved. 建議觀賞解析度為 1024x768.
本網站連結之商標,名稱皆屬其隸屬廠商所有本站無意侵犯智慧財產權,文章內容屬於作者本身或原版權所有人,如有不當引用請告之。