2011年9月9日 星期五

USB 筆記: 基本概念

USB 架構

Universal Serial Bus (USB) 是一個廣泛使用的高速 Serial 通訊介面,原因是它簡單、方便與彈性。

image
▲ USB Topology example,圖片來源: Microsoft Technet

USB Bus 是 tiered star 拓撲架構,在一個 USB Bus 上,可以容納一個 host 以及最多 127 個 devices (這是因為封包中的 address field 長度是 7 bits,而 address 0 不使用,因為它有特殊的用途)。Device 可以插到 hub 上,而 hub 也可以插到另一個 hub 上,諸如此類,不過最多只允許串接到 6 層。

資料傳輸速度 (Data Speeds)

USB 規格規範了三種資料傳輸速度:

  • Low Speed: 1.5 Mb/s
  • Full Speed: 12 Mb/s
  • High Speed (USB 2.0): 480 Mb/s

USB 2.0 向後相容,因此涵蓋早期版本的資料傳輸速度。

以 host 為中心的通訊系統

USB 是以 host 為中心的通訊系統 (host-centric connectivity system), bus 上的所有通訊都是由 host 發起,device 不能自行發起,必須等待 host 的命令。USB bus 上的每個 device 都會被分配一個 address,當一個新的 USB device 插到 bus 上時,host 會先用 address 0 向 device 詢問如 manufacturer, device capabilities, product ID, vendor ID 等基本資訊,做完身家調查之後,才會分配一個唯一的 USB address 給 device,之後 device 便可以開始跟 host 進行通訊。

USB On-The-Go

USB OTG 是 USB 規格的一個延伸,OTG 允許 device 具備雙重身份,既可以當 device 又可以當 host,這讓兩個 devices 得以不用透過 host computer 而相互連結。

Cables and Connectors

USB 使用 4 線 shielded cable。Type A 和 Type B 是比較常見的連接器 (Connectors),如下圖:

image
▲ USB Connectors

USB Connectors 的 pin-out 如下:

image
▲ Standard, Mini 和 Micro USB Connectors

下表說明 USB Connector 的 pin assignments:

image
▲ 表格來源:Wikipedia: USB

速度辨識 (Speed Identification)

在一條 USB Bus 上,device 端會在 D+ 或 D- 訊號線上接一顆 1.5K 的提升電阻 (pull up resistor) 到 3.3V。

Full Speed 接在 D+:

image
▲ Full Speed Device with pull up resistor connected to D+

而 Low Speed 則接在 D-:

image
▲ Low Speed Device with pull up resistor connected to D-

當 device 接到 USB bus 上時,藉著觀察哪一條訊號線被 pulled high,host 便可以知道 device 的速度為何。

參考資料

0 意見: