
字詞轉換是中文維基的一項自動轉換,目的是通過電腦程式自動消除繁簡、地區詞等不同用字模式的差異,以達到閱讀方便。
字詞轉換包括全局轉換和手動轉換,本說明所使用的標題轉換和全文轉換技術,都屬於手動轉換。
通用序列匯流排(Universal Serial Bus,USB)是連接外部裝置的一個串口匯流排標準,在計算機上使用廣泛,但也可以用在機頂盒和遊戲機上,補充標準On-The-Go(OTG)使其能夠用於在便攜裝置之間直接交換資料。
目錄 |
USB 最初是由英特爾與微軟公司倡導發起,其最大的特點是支持熱插拔(Hot plug)和即插即用(Plug&Play,PnP)。當裝置插入時,主機枚列 (enumerate) 此裝置並載入所需的驅動程序,因此使用遠比 PCI 和 ISA 匯流排方便。
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 可以連接的外設有滑鼠、鍵盤、遊戲手柄、遊戲桿、掃描器、數位相機、印表機、硬碟和網路部件。對數位相機這樣的多媒體外設 USB 已經是預設介面;由於大大簡化了與計算機的連接,USB 也逐步取代並列埠成為印表機的主流連接方式。2004 年已經有超過 1 億台 USB 裝置;到 2007 年高清晰度數字視頻外設是僅有的 USB 未能染指的外設類別,因為他需要更高的傳輸速率。 現標準中將 USB 統一為 USB 2.0, 分為:
USB實裝論壇 (USB Implementers Forum, USBIF) 負責 USB 標準制訂,其成員包括: 蘋果電腦、惠普、NEC、Microsoft 和 Intel。
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-A 和 Mini-B,另外還有 Mini-AB(可同時支援 Mini-A 及 Mini-B)的插口。
目前USB支持3種 資料信號速率,USB裝置應該在其外殼或者有時是自身上正確標明其使用的速率。USB-IF進行裝置認證併為通過兼容測試並支付許可費用的裝置提供基本速率(低速和全速)和高速的特殊商標許可。
| 觸點 | 功能(主機) | 功能 (裝置) |
|---|---|---|
| 1 | VBUS (4.75-5.25 V) | VBUS (4.4-5.25 V) |
| 2 | D- | D- |
| 3 | D+ | D+ |
| 4 | 接地 | 接地 |
USB 信號使用分別標記為 D+ 和 D- 的雙絞線傳輸,它們各自使用 半雙工的差動信號 並協同工作,以抵消長導線的電磁干擾,
| 觸點 | 功能 |
|---|---|
| 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主機通過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類:
一旦裝置(功能)通過匯流排的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。
列出為16位地址的為EHCI,32位的為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設計論壇裝置工作組決定,並分配ID。
如果一個裝置類型屬於整個裝置,該裝置的描述府bDeviceClass的域保存類別ID;如果它這是裝置的一個界面,其ID保存在界面描述府的;bInterfaceClass域。他們都佔用一個位元組,所以最多有253種裝置類別。(0x00和0xFF保留)。當bDeviceClass設為0x00,作業系統會檢查每個介面的bInterfaceClass以確定其類別。
每種類別可選支持子類別(SubClass)和協議子定義(Protocol subdefinition)。這樣可以用於主裝置類型的不斷修訂。
常用裝置類別和ID有:
接頭是由USB協會所指定,接頭的設計一方面為了支持眾多USB的基本需求,另一方面也避免以往許多類似串列接頭所出現的問題。
USB電纜最長允許5米,更長的距離需要HUB[1].
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 mass storage device class標準實現Storage裝置的連接.它最初被用於傳統的磁碟和光碟驅動,但是現在已經擴展到支持大量不同的裝置.USB不能用於計算機內部存儲裝置的基本匯流排: 像 ATA (IDE), Serial ATA (SATA), 和 SCSI.
然而, USB有一個非常重要的優點,那就是它能夠在不關閉電腦主機電源的情況下動態的安裝和刪除USB裝置,這使它成為一個有用的外部裝置.今天,大量的生產商提供攜帶型USB移動硬碟或者一個空的,能夠兼容內部驅動的盒子.這些內部驅動通常提供一個轉換驅動介面,用以轉換IDE, ATA, SATA, ATAPI, 或者 SCSI 到USB port。對於用戶來講,就像連接了一個內部的驅動。其他的競爭標準是eSATA 以及 Firewire.
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,兩者均可充電以及連接電腦主機。
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]
PictBridge標準可以使得消費者使用的圖形裝置彼此互通(例如數位相機直接通過印表機輸出)。一般它使用USB做為其底層通信協議。
微軟Xbox 遊戲主機使用標準的USB 1.1信號格式,但使用的是不同於標準的USB的專用介面。同樣IBM UltraPort使用的是標準的USB信號格式,但供電能力更強,使用的也是專用介面。
正在開發中的一種無線資料傳輸標準。[2]設計標準:在3米內達到480Mbp的傳輸速率,在10米內達到110Mbps的傳輸速率。
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History