Loading AI tools
连接计算机系统与外部设备的一种串口总线标准 来自维基百科,自由的百科全书
通用序列匯流排(英語:Universal Serial Bus,縮寫:USB)是連接電腦與裝置的一種序列匯流排標準,也是一種輸入輸出(I/O) 連接埠的技術規範,廣泛應用於個人電腦和流動裝置等資訊通訊產品,並擴展至攝影器材、數碼電視(機上盒)、遊戲機等其它相關領域。
![]() |
![]() | |||
類別 | 匯流排 | ||
---|---|---|---|
產品歷史 | |||
設計者 | |||
設計時間 | 1994年11月 | ||
製造商 | 康柏、DEC、IBM、英特爾、微軟、NEC、北電網絡 | ||
前身 | 串行介面, 並列埠, 遊戲埠, Apple Desktop Bus, PS/2介面 | ||
一般規格 | |||
長度 | 5米(最大) | ||
寬度 | 11.5毫米(A型連接器),8.45毫米(B型連接器) | ||
高度 | 4.5毫米(A型連接器),7.78毫米(B型連接器,pre-v3.0) | ||
熱插拔 | 支援 | ||
外接 | 支援 | ||
纜線 | 4條纜線,而USB 3.0擁有9條纜線 | ||
引腳 | 4個(1個供電,2個數據,1個接地);USB 3.0擁有9個(另外4個提供給SuperSpeed技術);USB 3.1 Type-C擁有24個 | ||
連接器 | 唯一 | ||
電力 | |||
訊號 | 5伏特直流電 | ||
接地 | 專用引線和外殼 | ||
最大電壓 | 20 V(±5%)(根據不同版本) | ||
最大電流 | 500mA–5A @ 5V(根據不同版本) | ||
數據 | |||
數據訊號 | 由規範定義的封包 | ||
寬度 | 1 bit | ||
位元速率 | 1.5/12/480/5,000/10,000/20,000/40,000 Mbit/s(根據不同版本) | ||
最多裝置數 | 127 | ||
協定 | 串列 | ||
引腳輸出 | |||
![]() | |||
標準USB A型連接器(左)及B型連接器(右) | |||
引腳1 | VCC(+5V) | ||
引腳2 | Data- | ||
引腳3 | Data+ | ||
引腳4 | 接地 |
多媒體電腦剛問世時,外接式裝置的傳輸介面各不相同,如印表機只能接並列埠、數據機只能接RS232、滑鼠鍵盤只能接PS/2等。繁雜的介面系統,加上必須安裝驅動程式並重新開機才能使用的限制,都會造成用戶的困擾。因此,創造出一個統一且支援易插拔的外接式傳輸介面,便成為無可避免的趨勢,USB應運而生。
最新一代的USB是USB4,傳輸速度為40Gbit/s。物理接頭USB Type-A、Type-B接頭分正反面,新型USB Type-C接頭不分正反面。[1][2]
USB最初是由英特爾與微軟倡導發起,最大的特點是儘可能地實現熱插拔和隨插即用。當裝置插入時,主機列舉到此裝置並載入所需的驅動程式,因此其在使用上遠比PCI和ISA等匯流排方便。
USB在速度上遠比並列埠(例如EPP)與串行介面(例如RS-232)等傳統電腦用標準匯流排快上許多。USB 1.1(Full Speed)的最大傳輸速率為12Mbps,USB 2.0(High Speed)為480Mbps,USB 3.0(USB 3.2 Gen 1×1) 為 5Gbps,USB 3.1 Gen2(USB 3.2 Gen 2x1) 為 10Gbps,而USB 3.2(USB 3.2 Gen 2x2)更達20Gbps,以及近期發表的USB 4.0,其速度可達40Gbps。
USB的設計為非對稱式的,它由一個主機控制器和若干通過USB集線器裝置以樹形連接的裝置組成。一個控制器下最多可以有5級Hub,包括Hub在內,最多可以連接128個裝置,因為在設計時是使用7位元實體位址,二的七次方就等於128,一般人說USB連接127個是指連接(某一裝置)時需扣除一個連接主機的USB接頭,而一台電腦可以同時有多個控制器。和SPI-SCSI等標準不同,USB集線器不需要終端子。
USB可以連接的外設有滑鼠、鍵盤、遊戲手柄、遊戲杆、掃描器、數碼相機、印表機、硬碟和網卡等部件。對數碼相機這樣的多媒體外設USB已經是預設介面;由於大大簡化與電腦的連接,USB也逐步取代並列埠成為印表機的主流連接方式之一。2004年已經有超過1億台USB裝置;到2007年時,高清晰度數字影片外設是僅有的USB未能染指的外設類別,因為他需要更高的傳輸速率,不過USB3.1和2019年USB4的問世,高清晰度數碼影片外設和外接式顯示卡也能在USB播放。
現USB標準中,按照速度等級和連接方式分為以下七種版本。注意USB-IF目前正式的主版本號只有USB 2.0和USB 3.2兩個。
USB開發者論壇負責USB標準制訂,其成員包括:蘋果公司、惠普、NEC、微軟和英特爾。
2001年底,USB-IF公佈USB 2.0規範,與之前的USB 0.9、USB 1.0和USB 1.1一樣,該規範完全向下相容。隨後,USB-IF公佈USB On-The-Go(USB OTG,目前版本:1.0a)作為USB 2.0規範的補充標準,使其能夠用於在可攜式裝置之間直接交換數據。
USB的連接器分為A、B兩種,分別用於主機和裝置;其各自的小型化的連接器是Mini-A, Mini-B 和 Micro-A, Micro-B,另外還有Mini-AB(可同時支援Mini-A及Mini-B)的插口。USB 3.1版本中匯入支援正反面不區分插入的C型。
目前USB支援5種數據訊號速率,USB裝置應該在其外殼或者有時是自身上正確標明其使用的速率。USB-IF進行裝置認證並為通過相容測試並支付許可費用的裝置提供基本速率(低速和全速)和高速的特殊商標許可。
USB 4 最高40Gbps理論速度,是USB 3.1 Gen2的四倍
Mini USB除了第4針外,其他介面功能皆與標準USB相同。第4針成為ID,地線在mini-A上連接到第5針,在mini-B可以懸空亦可連接到第5針。
接點 | 功能 | 顏色 |
---|---|---|
1 | VBUS(4.4–5.25 V) | 紅 |
2 | D− | 白 |
3 | D+ | 綠 |
4 | ID | |
5 | 接地 | 黑 |
2007年1月4日,USB實裝討論區頒佈Micro-USB的插頭標準[3]。該標準將在許多新型智能電話和PDA上替代Mini-USB。Micro-USB插頭的插拔壽命為10,000次,比Mini-USB插頭高度減半,寬度相差無幾。OMTP組織最近宣佈,Micro-USB將成為流動裝置數據和電源的標準介面[4]。
2009年2月17日,全球流動通訊聯盟協會宣佈在2012年前將使用Micro-USB作為全球統一的標準充電器規格。首批簽署協定的廠商包括:諾基亞、樂金、摩托羅拉、三星、索尼移動、美國電話電報公司、法國電信、西班牙電信、T-Mobile與沃達豐。
USB使用NRZI編碼方式:當數據為0時,電位翻轉;數據為1時,電位不翻轉。為了防止出現過長時間電位不變化現象,在傳送數據時採用位填充處理。具體過程如下:當遇見連續6個高電位時,就強制插入一個0。經過位填充後的數據由串行介面引擎(SIE)將數據串行化和NRZI編碼後,傳送到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個。在管道中,數據使用不同長度的包傳遞,端點可以傳遞的包長度上限一般是位元組,所以USB包經常包含的數據量依次有8、16、32、64、128、256、512或者1024位元組。
一個端點只能單向(進/出)傳輸數據,自然管道也是單向的。每個USB裝置至少有兩個端點/管道:他們分別是進出方向的,編號為0,用於控制匯流排上的裝置。按照各自的傳輸類型,管道被分為4類:
一旦裝置(功能)通過匯流排的Hub附加到主機控制器,主機控制器就給它分配一個主機上唯一的7位地址。主機控制器通過投票分配流量,一般是通過輪詢模式,因此沒有明確向主機控制器請求之前,裝置不能傳輸數據。
為了訪問端點,必須獲得一個分層的組態。連接到主機的裝置有且僅有一個裝置描述符(Device Descriptor),而裝置描述符有若干組態描述符(Configuration Descriptors)。這些組態一般與狀態相對應,例如活躍和節能模式。每個組態描述符有若干介面描述符(Interface Setting),用於描述裝置的一定方面,所以可以被用於不同的用途:如一個相機可能擁有影片和音頻兩個介面。介面描述符有一個預設介面設置(Default Interface Setting)和可能多個替代介面設置(Alternate Interface Settings),它們都擁有如上所述的端點描述符。一個端點能夠在多個介面和替代介面設置之間複用。
包含主機控制器和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,列出為32位元地址的為EHCI,16位元的為OHCI。命令lsusb能夠顯示所有USB裝置的訊息。命令dmesg能夠顯示OS啟動時關於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,包頭不包括任何字串。 |
11 | 最大電力 | 1 | 裝置需要的最大電力,以2mA(毫安培)為單位。 |
12 | 裝置屬性 | 1 | Device Attributes: Bit 0:如果設為1,CPU運行在24 MHz;如果設為0,CPU運行在12 MHz。 |
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字串格式表示。(非必要欄位) |
依附在匯流排上的裝置可以是需要特定的驅動程式的完全客製化的裝置,也可能屬於某個裝置類別。這些類別定義裝置的行為和介面描述符,這樣一個驅動程式可能用於所有此種類別的裝置。一般作業系統都為支援這些裝置類別,為其提供通用驅動程式。
裝置分類由USB設計討論區裝置工作群組決定,並分配ID。
如果一個裝置類型屬於整個裝置,該裝置的描述符的bDeviceClass域儲存類別ID;如果它這是裝置的一個介面,其ID儲存在介面描述符的bInterfaceClass域。他們都佔用一個位元組,所以最多有253種裝置類別。(0x00和0xFF保留)。當bDeviceClass設為0x00,作業系統會檢查每個介面的bInterfaceClass以確定其類別。
每種類別可選支援子類別(SubClass)和協定子定義(Protocol subdefinition)。這樣可以用於主裝置類型的不斷修訂。
常用裝置類別和ID有:
ID | 裝置 | 例子 |
---|---|---|
0x00 [7] | 保留值 | 無 |
0x01 [7] | 音效裝置 | 音效卡 |
0x02 | USB通訊控制裝置 | 網卡、數據機、串列埠 |
0x03 [7] | 人機介面裝置(HID) | 鍵盤、滑鼠、控制杆 |
0x05 | 物理介面裝置 | 有力量反饋的控制杆 |
0x06 [7] | 靜止圖像捕捉裝置 | 影像掃描器、Picture Transfer Protocol |
0x07 [7] | 列印裝置 | 印表機 |
0x08 [7] | 大容量存取裝置 | USB手指、移動硬碟、記憶卡讀卡器、數碼相機 |
0x09 [7] | 集線器 | 集線器 |
0x0A [7] | 通訊裝置 | 數據機、網絡卡、ISDN、傳真 |
0x0B | 智能卡裝置 | 讀卡器 |
0x0E [7] | 影像裝置 | 網絡攝影機 |
0xE0 [7] | 無線傳輸裝置 | 藍牙 |
0xFE | 特殊的應用 | 紅外線資料橋接器 |
0xFF [7] | 定製裝置 |
接頭是由USB協會所指定,接頭的設計一方面為了支援眾多USB的基本需求,另一方面也避免以往許多類似串行接頭所出現的問題。
USB接頭預設提供一組5伏特的電壓,可作為相連接USB裝置的電源。實際上,裝置接收到的電源可能會低於5V,只略高於4V。通過USB PD3.0、QC4等快速充電協定,現有USB介面的最大的可以達到20V,最低3V。
USB-IF規範1.1版定義USB埠最高供電可達到1.5A/1500mA,而最新的1.2版規範更是修正為最大5A/5000mA的供電,但是總和也不得超過5A。
一個USB的HUB最多只能提供500 mA的電流。如此的電流已足以驅動許多電子裝置,不過連接在總線供電HUB的所有裝置,需要共用500mA的電流額度。一個由總線供電的裝置可以使用到它所連接埠上允許輸出的所有電源。
總線供電的HUB可以將電源供給連接在HUB上的所有裝置,不過USB的規範只允許總線供電的HUB下游串接一層總線供電的裝置,因此,總線供電的HUB下游不允許再串接另一個由總線供電的HUB。許多HUB有外加電源,因此可以提供電源給下游的裝置,不會消耗總線上的電源。若裝置需要的電壓超過5V,都需要使用外加電源。
相對於之前其他溝通介面僅能傳遞訊息資料,USB插槽本身還能提供5V(伏特)的主動電壓,及0.5A(安培)的電流,因此對於一些小型裝置而言,可以不必再外接電源供應裝置,就能直接利用來自USB插槽的電力順利運作。利用這特點,也有廠商開發出適當的排線,將USB拿來當作供電插座般使用,例如作為流動電話的充電器,或是提供小型桌燈及電風扇等的電力需要,反而與原本用來連接電腦用的主要用途無關。
USB使用USB大容量儲存裝置標準實現Storage裝置的連接。它最初被用於傳統的磁碟和光碟驅動,但是現在已經擴充到支援大量不同的裝置。
USB有一個非常重要的優點,那就是它能夠在不關閉電腦主機電源的情況下動態的安裝和刪除USB裝置,這使它成為一種有用的外部裝置。
在市面也可以找到USB 3.0 Dongle[9]此類小型可插拔式的流動裝置,尺寸如同USB手指一樣迷你,有廠商推出USB介面的Wi-Fi/藍牙無線Dongle,只要將此Dongle插入液晶電視上,即可透過無線連接方式,將用戶手機、平板、手提電腦中的影片、相片分享到液晶電視上觀看,市面上已有廠商將Android作業系統直接寫入Dongle,成為多功能電視棒的產品。
USB沒有完全取代PS/2鍵盤滑鼠介面,但目前許多主機板都取消了PS/2介面。
使用專用鍵盤滑鼠介面的蘋果電腦1999年1月也開始使用USB介面。最初iPod只有IEEE 1394介面;後來在第三代的iPod,蘋果電腦開始支援USB2.0連接,但是還不能用作充電;現在的iPod,已經全面相容USB,拋棄IEEE 1394介面,只用USB介面充電以及連接電腦主機。
1996年1月發佈,數據傳輸速率為1.5Mbit/s(Low-Speed)和12Mbit/s(Full-Speed)。無預測及通過檢測功能,Full-Speed也難以達成,僅極少數出現在市場上。
1998年9月發佈,修正1.0版已發現的問題,主要是關於USB Hubs及Full-Speed,最早被採用的修訂版。
USB 3.0於2008年11月發佈,速度由480Mbps大幅提升到5Gbps。USB 3.0插座通常是藍色的,並向下相容USB 2.0和USB 1.x。USB 3.0引入了全雙工傳輸,USB 1.x和USB 2.0則是半雙工傳輸。
USB3.0推廣小組於2013年7月31日宣佈USB 3.1規格[10],傳輸速度提升為10Gb/s,比USB3.0的5Gb/s快上一倍,並向下相容USB 2.0/1.0,如果要得到10Gb/s的傳輸速度仍需在主機、目標端同時具備對應的晶片才能達成,電力供應可高達100瓦。[11]
注意:在USB 3.1公佈一段時間後,USB 3.0就更名為USB 3.1 Gen 1。[12]
USB 3.2的主要技術要點:
速度方面,使用USB 3.2主機連接USB 3.2儲存裝置,可以實現兩條通道10Gbps的傳輸速度,理論上也就是相當接近於20Gbps。
USB 3.2向下相容USB 2.0和USB 1.x。另外,從USB 3.2開始,Type-C是唯一推薦的介面方案。
USB 3.0的雙連結模式,速度可達10Gbps(每條通道5Gbps)。必須使用USB Type-C介面才能達到10Gbps的速度。
USB 3.1 Gen 2的雙通道模式,速度可達20Gbps(每條通道10Gbps)。必須使用USB Type-C介面才能達到20Gbps的速度。
USB4於2019年9月3日發佈。[13]
USB4計劃整合Thunderbolt 3協定,現有USB 3.2及USB 2.0也向下相容。[14]
USB4支援40Gbps的傳輸速度,但達到40Gbps的速度要求USB資料線、產品支援USB4[15]。Type-C是唯一推薦的介面方案。
USB On-The-Go是USB2.0規格的補充標準。它可使USB裝置,例如播放器或手機,從USB周邊裝置變為USB主機,與其他USB裝置連線通訊。
PictBridge標準可以使得消費者使用的圖形裝置彼此互通(例如數碼相機直接通過印表機輸出)。一般它使用USB做為其底層通訊協定。
微軟的Xbox遊戲主機和IBM的UltraPort均使用自身獨有的專用介面,有別於標準的USB;不同的是,前者(Xbox)使用的是標準的USB 1.1訊號格式,後者則使用標準的USB訊號格式,而供電能力也更強。
開源專案USB/IP (頁面存檔備份,存於互聯網檔案館)實現了USB封包的網絡傳送,邏輯上將USB數據線無限延長。同時配合無線路由器等手段,可以實現無線USB傳輸。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.