通用序列匯流排


通用序列匯流排 (简体)

Free Web Hosting with Website Builder
A型USB連接器
兩個B型USB連接器,mini和全尺寸的,側視圖和正視圖,旁邊是5美分做對照

通用序列匯流排Universal Serial BusUSB)是連接外部裝置的一個串口匯流排標準,在計算機上使用廣泛,但也可以用在機頂盒遊戲機上,補充標準On-The-Go(OTG)使其能夠用於在便攜裝置之間直接交換資料

目錄

概述

USB 最初是由英特爾微軟公司倡導發起,其最大的特點是支持熱插拔(Hot plug)和即插即用(Plug&Play,PnP)。當裝置插入時,主機枚列 (enumerate) 此裝置並載入所需的驅動程序,因此使用遠比 PCIISA 匯流排方便。

USB 速度比並列埠(Parallel Port,例如 EPP、LPT)與串列埠(Serial Port,例如 RS-232)等傳統電腦用標準匯流排快上許多。原標準中 USB 1.1 的最大傳輸頻寬為 12Mbps,USB 2.0 的最大傳輸頻寬為 480Mbps。近期推出的USB 3.0更從480Mbps提升到4.8Gbps以上。

USB 的設計為非對稱式的,它由一個主機(host)控制器和若干通過 hub裝置以樹形連接的裝置組成。一個控制器下最多可以有 5 級 hub,包括 Hub 在內,最多可以連接 127 個裝置,而一台計算機可以同時有多個控制器。 和 SPI-SCSI 等標準不同,USB hub 不需要終端子。

USB hub

USB 可以連接的外設有滑鼠鍵盤、遊戲手柄、遊戲桿、掃描器數位相機印表機硬碟網路部件。對數位相機這樣的多媒體外設 USB 已經是預設介面;由於大大簡化了與計算機的連接,USB 也逐步取代並列埠成為印表機的主流連接方式。2004 年已經有超過 1 億台 USB 裝置;到 2007 年高清晰度數字視頻外設是僅有的 USB 未能染指的外設類別,因為他需要更高的傳輸速率。 現標準中將 USB 統一為 USB 2.0, 分為:

  • 高速: 傳輸速率 25Mbps~400Mbps (最大 480Mbps)
  • 全速: 傳輸速率 500Kbps~10Mbps (最大 12Mbps)
  • 低速: 傳輸速率 10Kbps~100Kbps (最大 1.5Mbps)

標準

USB實裝論壇 (USB Implementers Forum, USBIF) 負責 USB 標準制訂,其成員包括: 蘋果電腦惠普NECMicrosoftIntel

USBIF 于 2001年底公布了 2.0 規範,之前還有 0.9、1.0、和 1.1,他們都是完全向後兼容的。On-The-Go Supplement to the USB 2.0 Specification 的當前版本是 1.0a。

USB 的連接器分為 A、B 兩種,分別用於主機和裝置;其各自的小型化的連接器是 Mini-AMini-B,另外還有 Mini-AB(可同時支援 Mini-A 及 Mini-B)的插口。

技術細節

技術指標

目前USB支持3種 資料信號速率,USB裝置應該在其外殼或者有時是自身上正確標明其使用的速率。USB-IF進行裝置認證併為通過兼容測試並支付許可費用的裝置提供基本速率(低速和全速)和高速的特殊商標許可。

  • 1.5 Mbit/s(183 KByte/s)的低速速率,主要用於人機介面裝置(Human Interface Devices,HID)例如鍵盤、滑鼠、遊戲桿。
  • 12 Mbit/s(1.4 MByte/s)的全速速率, 在USB 2.0之前是曾經是最高速率,後起的更高速率的高速介面應該兼容全速速率。多個全速裝置間可以按照先到先得法則劃分頻寬;使用多個等時裝置時會超過頻寬上限也並不罕見。所有的USB Hub支持全速速率。
  • 480 Mbit/s(57 MByte/s)的高速速率。 並非所有的USB 2.0裝置都是高速的。高速裝置插入全速hub時應該與全速兼容。而高速hub具有所謂Transaction Translator(事務翻譯器)功能,能夠隔離全速、低速裝置與高速之間資料流,但是不會影響供電和串聯深度。

機械和電力標準

標準 USB 介面

USB標準A、 B插頭及其觸點(未按比例繪製)
標準 USB 連接器觸點
觸點 功能(主機) 功能 (裝置)
1 VBUS (4.75-5.25 V) VBUS (4.4-5.25 V)
2 D- D-
3 D+ D+
4 接地 接地

USB 信號使用分別標記為 D+ 和 D- 的雙絞線傳輸,它們各自使用 半雙工差動信號 並協同工作,以抵消長導線的電磁干擾,

Mini USB介面

Mini USB A、 B連接器及其觸點(未按比例繪製)
Mini USB連接器觸點
觸點 功能
1 VBUS (4.4–5.25 V)
2 D−
3 D+
4 ID
5 接地

mini USB除了第4針外,其他介面功能皆與標準USB相同。第4針成為ID,在mini-A上連接到第5針,在mini-B可以懸空亦可連接到第5針。

編碼方式

USB 標準採用 NRZI 方式(翻轉不歸零制)對資料進行編碼。翻轉不歸零制(non-return to zero, inverted),電位保持時傳送邏輯 1,電位翻轉時傳送邏輯 0。

軟體架構

焊接在印刷電路板上的USB插座

一個USB主機通過hub鏈可以連接多個裝置。由於理論上一個物理裝置可以承擔多種功能,例如路由器同時也可以是一個SD卡讀卡器,USB的術語中裝置(device)指的是功能(functions)。集線器(hub)由於作用特殊,按照正式的觀點並不認為是function。 直接連接到主機的hub是根(root)hub。

端點

裝置/功能(和集線器)與管道pipe (邏輯通道)聯繫在一起,管道把主機控制器和被稱為端點endpoint的邏輯實體連接起來。 管道和比特流(例如UNIX的pipeline)有著相同的含義,而在USB詞彙中術語端點經常和管道混用,甚至在正式文檔中。

端點(和各自的管道)在每個方向上按照0-15編號,因此一個裝置/功能最多有32個活動管道,16個進,16個出。(OUT)指離開控制器,而IN)指進入主機控制器。)兩個方向的端點0總是留給匯流排管理,佔用了32個端點中的2個。在管道中,資料使用不同長度的包傳遞,端點可以傳遞的包長度上限一般是2n位元組,所以USB包經常包含的資料量依次有8、16、32、64、128、256、512或者1024位元組。

一個端點只能單向(進/出)傳輸資料,自然管道也是單向的。每個USB裝置至少有兩個端點/管道:它們分別是進出方向的,編號為0,用於控制匯流排上的裝置。按照各自的傳輸類型,管道被分為4類:

  • 控制傳輸(Control)——一般用於短的、簡單的對裝置的命令和狀態反饋,例如用於匯流排控制的0號管道。
  • 同步傳輸(Isochronous)——按照有保障的速度(可能但不必然是儘快地)傳輸,可能有資料丟失,例如實時的音頻、視頻。
  • 中斷傳輸(Interrupt)——用於必須保證儘快反應的裝置(有限延遲),例如滑鼠、鍵盤。
  • 批量傳輸(Bulk)——使用餘下的頻寬大量地(但是沒有對於延遲、連續性、頻寬和速度的保證)傳輸資料,例如普通的文件傳輸。

一旦裝置(功能)通過匯流排的hub附加到主機控制器,主機控制器就給它分配一個主機上唯一的7位地址。主機控制器通過投票分配流量,一般是通過輪詢模式,因此沒有明確向主機控制器請求之前,裝置不能傳輸資料。

為了訪問端點,必須獲得一個分層的配置。連接到主機的裝置有且僅有一個裝置描述符device descriptor),而裝置描述符有若干配置描述符configuration descriptors)。這些配置一般與狀態相對應,例如活躍和節能模式。 。每個配置描述符有若干介面描述符interface setting),用於描述裝置的一定方面,所以可以被用於不同的用途:如一個相機可能擁有視頻和音頻兩個介面。介面描述符有一個預設介面設置default interface setting)和可能多個替代介面設置alternate interface settings),它們都擁有如上所述的端點描述符。一個端點能夠在多個介面和替代介面設置之間復用。

HCD

包含主機控制器和根HUB的硬體為程式設計師提供了由硬體實現定義的介面主機控制器裝置 (HCD)。而實際上它在計算機是就是和內存映射。

1.0和1.1的標準有兩個競爭的HCD實現。康柏開放主機控制器介面 (OHCI)和Intel的通用主機控制器介面 (UHCI) 。VIA威盛採納了UHCI;其他主要的晶片組多使用OHCI。它們的主要區別是UHCI更加依賴軟體驅動,因此對CPU要求更高,但是自身的硬體會更廉價。它們的並存導致作業系統開發和硬體廠商都必須在兩個方案上開發和測試,從而導致費用上升。因此 USB-IF在USB 2.0的設計階段堅持只能有一個實現規範,這就是擴展主機控制器介面 (EHCI)。因為EHCI只支持全速傳輸,所以EHCI控制器包括四個虛擬的全速或者慢速控制器。這裡同樣是 Intel和Via使用虛擬UHCI,其他一般使用OHCI控制器。

某些版本的Windows上,打開裝置管理器,如果裝置說明中是否有「增強」("Enhanced"),就能夠確認它是2.0版的。而在Linux系統中,命令lspci能夠列出所有的PCI裝置,而USB會分別命名為OHCI、UHCI或者EHCI。

列出為16位地址的為EHCI,32位的為OHCI

命令lsusb能夠顯示所有USB裝置的信息。命令dmesg能夠顯示OS啟動時關於USB裝置的信息。

USB 封包格式

USB 的封包格式和早期的網際網路封包格式非常相似,要了解USB連接原理就一定要先了解封包格式。

USB包格式
偏移量 類型 大小
0 HeaderChksum 1 利用添加包頭進行效驗,不包括包頭本身的校驗。
1 HeaderSize 1 包頭的大小,包括可用的字串。
2 Signature 2 資料值為 0x1234
4 VendorID 2 USB提供商的ID
6 ProductID 2 USB產品ID
8 ProductVersion 1 產品版本號
9 FirmwareVersion 1 韌體版本號
10 USB 屬性 1 USB Attribute:

Bit 0: 如果設為1,包頭包括以下三個字串:語言、製造商、產品字串;如果設為0,包頭不包括任何字串。
Bit 2: 如果設為1,裝置自帶電源;如果設為0,無自帶電源。
Bit 3: 如果設為1,裝置可以通過匯流排供電;如果設為0,無法通過匯流排供電。
Bits 1 and 4 — 7: 保留。

11 最大電力 1 裝置需要的最大電力,以2mA(毫安)為單位。
12 裝置屬性 1 Device Attributes:

Bit 0: 如果設為1,CPU運行在24 MHz;如果設為0,CPU運行在12 MHz。
Bit 3: 如果設為1,裝置的EEPROM可以支持400 MHz;如果設為0,不支持400 MHz。
Bits 1, 2 and 4 ... 7: 保留。

13 WPageSize 1 I2C的最大寫入頁面大小
14 資料類型 1 該數值定義裝置是軟體EEPROM還是硬體EEPROM。

0x02: 硬體EEPROM
其它數值無效。

15 RpageSize 1 I2C最大讀取頁面大小。如果值為0,整個負載大小由一個I2C讀取裝置讀取。
16 PayLoadSize 2 如果將EEPROM作為軟體EEPROM使用,表示軟體的大小;除此之外該值都是0。
0xxx Language string 4 如果有,語言字串是標準的USB字串格式。
0xxx Manufacture string ... 如果有,製造商字串是標準的USB字串格式。
0xxx Product string ... 如果有,產品字串是標準的USB字串格式。
0xxx Application Code ... 如果有,表示應用代碼。

裝置分類

依附在匯流排上的裝置可以是需要特定的驅動程序的完全定製的裝置,也可能屬於某個裝置類別。這些類別定義了某種裝置的行為和介面描述符,這樣一個驅動程序可能用於所有此種類別的裝置。一般作業系統都為支持這些裝置類別,為其提供通用驅動程序。

裝置分類由USB設計論壇裝置工作組決定,並分配ID。

如果一個裝置類型屬於整個裝置,該裝置的描述府bDeviceClass的域保存類別ID;如果它這是裝置的一個界面,其ID保存在界面描述府的;bInterfaceClass域。他們都佔用一個位元組,所以最多有253種裝置類別。(0x00和0xFF保留)。當bDeviceClass設為0x00,作業系統會檢查每個介面的bInterfaceClass以確定其類別。

每種類別可選支持子類別(SubClass)和協議子定義(Protocol subdefinition)。這樣可以用於主裝置類型的不斷修訂。

常用裝置類別和ID有:

0x00 
保留值
0x01 
USB音頻裝置, 像音效卡這樣的裝置。
0x02 
USB通信控制裝置,像網卡數據機串口這樣的裝置。
0x03 
人機介面裝置, 鍵盤,滑鼠等。
0x05 
物理介面裝置,像搖桿等。
0x06 
靜止圖像捕捉裝置,用在USB上的Picture Transfer Protocol
0x07 
USB列印裝置, 像印表機
0x08 
USB大容量存儲裝置, 快閃記憶體盤 移動硬碟, MMC卡SD卡CF卡讀卡器, 數位相機, 數字音頻播放器等。 這一類裝置顯示成一個文件系統
0x09 
USB集線器。
0x0A 
USB通信裝置 ("CDC"),用於數據機(包括軟體數據機), 網卡 (雙絞線), ISDN, 傳真
0x0B 
智慧卡裝置,像讀卡器
0x0E 
USB視頻裝置, 類似攝像頭,電視卡的動態圖像捕捉裝置。
0xE0 
無線控制器,如藍芽
0xFE 
特殊的應用,如紅外資料橋接器。
0xFF 
定製裝置。

USB接頭

接頭是由USB協會所指定,接頭的設計一方面為了支持眾多USB的基本需求,另一方面也避免以往許多類似串列接頭所出現的問題。

  • 接頭設計的相當耐用。許多以往使用的接頭較脆弱,即使受力不大,有時針腳或零件也會折彎甚至斷裂。而USB接頭的金屬導電部份周圍有塑料作為保護,而且整個連接部份被金屬的保護套圍住,因此USB接頭不論插拔,都不容易受損。由於金屬保護套和外圍塑料護套的保護,需要較大的力量才能造成USB接頭明顯的損壞。
  • 不可能把USB介面插錯。這是防呆設計,方向相反的插頭不可能插到插座里,方向正反很容易感覺出來。
  • 接頭能相對便宜地大量生產。
  • 在USB網路中,接頭被強制使用定向拓撲。USB不支持環形網路,因此不兼容的USB裝置之間介面也不兼容。不像其他通訊系統(如RJ-45電纜)不能使用轉換插頭,防止環形USB網路產生。
  • 適度的插拔力。USB電纜和小型USB裝置能被插口卡住(不需要夾子、螺絲或者其他介面那樣的鎖扣)。允許通過適當力量插拔,連接器要方便困難環境和殘障人士使用。
  • 由於接頭的構造,在將USB插頭插入USB座時,插頭外面的金屬保護套會先接觸到USB座內對應的金屬部份,之後插頭內部的四個觸點才會接觸到USB座。金屬保護套會連接到系統的地點,提供路徑使靜電可以放電,避免因靜電通過電子零件而造成損壞。

USB電纜最長允許5米,更長的距離需要HUB[1].

常用的USB延長線

電源

USB 接頭提供一組5伏特的電壓,可作為相連接USB設備的電源。實際上,設備接收到的電源可能會低於5V,只略高於4V。USB規範要求在任何情形下,電壓均不能超過5.25V;在最壞情形下(經由USB供電HUB所連接的LOW POWER設備)電壓均不能低於4.375V,一般情形電壓會接近5V。

一個 USB 的HUB最多只能提供 500 mA 的電流。如此的電流已足以驅動許多電子設備,不過連接在總線供電HUB的所有設備,需要共享 500mA 的電流額度。一個由總線供電的設備可以使用到它所連接埠上允許輸出的所有電源。

總線供電的HUB可以將電源供給連接在 HUB 上的所有設備,不過 USB 的規範只允許總線供電的 HUB 下游串接一層總線供電的設備,因此,總線供電的 HUB 下游不允許再串接另一個由總線供電的 HUB。許多 HUB 有外加電源,因此可以提供電源給下游的設備,不會消耗總線上的電源。若設備需要的電壓超過5V,或是需要電流超過500mA,都需要使用外加電源。

相對於之前其他溝通介面僅能傳遞訊息資料,高電壓USB插槽本身還能提供5V(伏特)的主動電壓,及0.5A(安培)的電流,因此對於一些小型設備而言,可以不必再外接電源供應裝置,就能利用來自USB插槽的電力順利運作。利用這特點,也有廠商開發出適當的排線,將USB拿來當作供電插座般使用,例如作為行動電話的充電器,或是提供小型桌燈的電力需要,反而與原本用來連接電腦用的主要用途無關。

同類標準比較

USB大容量存儲

快閃記憶體盤,典型的USB海量存儲裝置

USB 使用 USB mass storage device class標準實現Storage裝置的連接.它最初被用於傳統的磁碟和光碟驅動,但是現在已經擴展到支持大量不同的裝置.USB不能用於計算機內部存儲裝置的基本匯流排: 像 ATA (IDE), Serial ATA (SATA), 和 SCSI.

然而, USB有一個非常重要的優點,那就是它能夠在不關閉電腦主機電源的情況下動態的安裝和刪除USB裝置,這使它成為一個有用的外部裝置.今天,大量的生產商提供攜帶型USB移動硬碟或者一個空的,能夠兼容內部驅動的盒子.這些內部驅動通常提供一個轉換驅動介面,用以轉換IDE, ATA, SATA, ATAPI, 或者 SCSI 到USB port。對於用戶來講,就像連接了一個內部的驅動。其他的競爭標準是eSATA 以及 Firewire.

人機介面裝置(HID)

USB沒有完全取代AT鍵盤介面和PS/2鍵盤滑鼠介面,但是事實上現在所有主板製造商都提供至少多於一個USB介面。到2004年,大多數新主板都配有多個高速USB 2.0介面,儘管有些是內置在主板上的,需要使用電纜連接到位於主機前面板或者側面的介面。同樣的對遊戲操縱桿,手柄,寫字板和其他人機介面裝置的支持逐漸從原音效卡上的「MIDI/遊戲」介面和PS/2介面上轉移到USB上。現在帶著USB轉PS/2介面轉換插頭的USB鍵盤滑鼠相當普遍,他們可以使用任意2種介面之一。

使用專用鍵盤滑鼠的蘋果電腦1999年1月也開始使用USB介面。最初的IPOD只有IEEE1394介面,後來在3G的IPOD,蘋果電腦開始支持USB2.0,但是還不能用作充電,現在的IPOD,已經全面兼容USB與IEEE1394,兩者均可充電以及連接電腦主機。

歷史

Image:Certified Hi-Speed USB.svg
Hi-Speed USB Logo
USB OTG Logo

Pre-Releases

  • USB 0.7 :1994年11月釋出。
  • USB 0.8 :1994年12月釋出。
  • USB 0.9 :1995年4月釋出。
  • USB 0.99 :1995年8月釋出。
  • USB 1.0 RC:1995年11月釋出。

USB 1.0

  • USB 1.0: 1996年1月釋出。
    指定的數據傳輸速率為 1.5 Mbit/s (Low-Speed) 與 12 Mbit/s (Full-Speed)。無預測及通過檢測功能。只有極少數的此類裝置出現在市場上。
  • USB 1.1: 1998年9月釋出。
    修正1.0版已發現的問題,大部分是關於USB Hubs。最早被採用的修訂版。

USB 2.0

  • USB 2.0: 2000年4月釋出。
    增加更高的數據傳輸速率 480 Mbit/s (now called Hi-Speed)。根據工程變更通知(Engineering Change Notices|ECN)進一步改進的USB規範。USB 2.0中最重要規範的ECN可以在USB.org查到:
    • Mini-B Connector ECN: 2000年10月釋出。
      規範了Mini-B的插頭及插座標準。注意不要與Micro-B插頭及插座混淆。
    • Errata as of December 2000: 2000年12月釋出。
    • Pull-up/Pull-down Resistors ECN: 2002年5月釋出。
    • Errata as of May 2002: 2002年5月釋出。
    • Interface Associations ECN: 2003年5月釋出。
      添加新的描述符以便將多重介面關聯在在單一裝置功能中。
    • Rounded Chamfer ECN: 2003年10月釋出。
      一項針對Mini-B介面堅固性的建議性、兼容性改進。
    • Unicode ECN: 2005年2月釋出。
      這項ECN指定了字串可以使用UTF-16LE編碼。USB 2.0曾指定可以使用Unicode,但沒有指定編碼。
    • Inter-Chip USB Supplement: 2006年3月釋出。
    • On-The-Go Supplement 1.3: 2006年12月釋出。
      USB直連(USB On-The-Go)允許兩個USb裝置不經獨立USB主機端直接相互通訊。實際使用中,是其中一個USB裝置作為其它裝置的主機端。
    • Battery Charging Specification 1.0: 2007年3月釋出。
      添加了對充電器(有USB介面的電源適配器)的支持,當供電端(作為充電器的USB主埠)和電池連接時,它允許瞬間通過100 mA的電流。如果一個USB裝置連接到專用充電器或主埠時,最大瞬間電流可達1.5 A。(該文檔並未包含在USB 2.0規範中。)
    • Micro-USB Cables and Connectors Specification 1.01: 2007年4月釋出。
    • Link Power Management Addendum ECN: 2007年7月釋出。
      在啟用與待機間增加了新的電源模式。當裝置處於這個模式時不向其發送指令以減少電源消耗。所以,在啟用及睡眠模式間切換要比在啟用及待機模式間切換來的快得多。
    • High-Speed Inter-Chip USB Electrical Specification Revision 1.0: 2007年9月釋出。

USB 3.0

2007年9月18日,Pat Gelsinger在英特爾信息技術峰會上演示了USB 3.0。USB 3.0的目標是提供當前十倍的頻寬,利用新增的兩對高速線路開啟的「Superspeed」模式,可以達到約4.8 Gbit/s (600MB/s),並且可能使用光纖連接。[1][2]USB 3.0的技術規範于2008年8月13日發行,(http://news.cnet.com/8301-13924_3-10016929-64.html) 其商業產品預計于2009年或2010發行。[3] USB 3.0的設計兼容USB 2.0與USB 1.1版本,並且使用了更有效的協議來節約能源。[1]

USB On-The-Go補充標準

  • USB On-The-Go Supplement 1.02001年12月發布。
  • USB On-The-Go Supplement 1.0a2003年6月發布,即當前版本。

擴展

PictBridge標準可以使得消費者使用的圖形裝置彼此互通(例如數位相機直接通過印表機輸出)。一般它使用USB做為其底層通信協議。

微軟Xbox 遊戲主機使用標準的USB 1.1信號格式,但使用的是不同於標準的USB的專用介面。同樣IBM UltraPort使用的是標準的USB信號格式,但供電能力更強,使用的也是專用介面。

無線通用序列匯流排

正在開發中的一種無線資料傳輸標準。[2]設計標準:在3米內達到480Mbp的傳輸速率,在10米內達到110Mbps的傳輸速率。

參見

參考資料

  1. ^ 1.0 1.1 Faster USB 3.0 Is Coming.PC World(2007年9月24日).於2008年7月4日查閱.
  2. ^ Revealed: USB 3.0 jacks and sockets.RegHardware.co.uk(2008年1月9日).於2008年1月22日查閱.
  3. ^ Shankland, Stephen(2007年9月18日).USB 3.0 brings optical connection in 2008.cnet.com.於2008年7月4日查閱.

外部連結







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History