探索USB介面的世界-從USB Host到USB Device

USB介面從1996年第一版以來,一直是數位資料傳輸介面的主要介面,電腦與外部裝置的連接,就變的容易許多,也因為USB介面的使用,IPC/Note book/ Embedded systems,在體積上,相對的變的輕巧很多,逐漸延伸出許多外接式裝置的商品。直至今日USB4 2.0新規格的誕生,提供更大的頻寬到80Gbps,可傳輸影像資料,應用產品更寬廣。

而在第一版時,就已定義了USB Host,USB Hub與USB Device,這三種主要裝置,分別應用在不同的市場,例如:USB Host產品-USB Host controller、USB HUB相關應用的產品Docking 、Dongle,USB Device可延伸出不同的介面轉換,應用更多元。 (請參考圖一)

 

另外USB Host,USB Hub與USB Device這三種主要裝置,本文將會針對USB Host,USB Hub架構Device介面轉換和USB連接器做深入淺出的介紹。

探索USB介面的世界_圖一 圖一

USB介面的演進介紹

USB制定當時資訊如下:

  • First Release : 1996 May
  • Standard : USB standard
  • Designer : IBM, Intel, Microsoft, NEC, Compaq, DEC, Nortel
  • Designed : January 1996
  • Superseded : Serial Port, parallel port, game port, Apple Desktop Bus, PS/2 port and FireWire(IEEE 1394)

USB全名為Universal Serial Bus,主要由IBM, Intel, Microsoft, NEC, Compaq, DEC, Norte 一同設計,於1996年一月release,當時預計支援Serial Port, parallel port….一直到FireWire (IEEE1394) 等裝置.隨著時間演進,USB的版本與速度依提升,如下列圖所示,目前正在開發80G版本。

其版本與速度(bps)發展順序為:

USB 1.1(12M bps) >> USB 2.0(480M bps) >> USB 3.2 Gen1(5G bps) >> USB 3.2 Gen2x1(10G bps) >> USB 3.2 Gen2x2(20G bps) >> USB 4(40G/80G bps)

USB Host技術探討及市場應用

現今的USB Host包含USB 2.0/3.2/4.0,功能方塊如下,先從USB 4.0看起,Block Diagram參考圖二:

探索USB介面的世界_圖二 圖二

如圖二所示,USB 4 Host中,內部裝置包含了Router與USB/PCIe adaptor,TMU,IO port, 同時高速(SS Bus)與低速(USB 2.0)是分開的Port,且支援PCIe與DP. USB4的支援介面,與傳送模式在Host/Hub/Device中如下表(一):

探索USB介面的世界_表一 表一

由上表可見,USB4重點在擴充了PCIe, DisplayPort Alternate Mode, Thunderbolt Alternate Mode介面,其USB傳輸速度上看40Gbps,同時向下相容.再來是USB3.2,其Block diagram,參考圖三

探索USB介面的世界_圖三 圖三

如上圖所示,USB從3.2版本開始導入Type-C連接器,Type-C連接器包含USB 2.0與3.2傳送介面,以及flip-flop功能,也就是俗稱的”正反插”功能。USB 3.2的Host規範為xHCI (eXtensible Host Controller Interface),中文稱為:「可擴展主機控制器接口」

以下是xHCI架構的主要目標:

  1. 高效運行,閒置耗電與性能優於傳統USB主機控制器架構。
  2. 與現有USB軟體模型完全一致的設備級編程模型。
  3. 將提供給軟體的主機控制器接口與底層USB協議解耦。
  4. 最小化主機內存訪問,完全消除USB設備空閒時的主機內存訪問。
  5. 消除暫存器寫入並最小化正常數據傳輸時的暫存器讀取。
  6. 消除「同伴控制器」模式。
  7. 在系統資源受限情況下啟用硬體「故障轉移」模式,因此設備仍然可以訪問,但可能有不利的功耗/性能。
  8. 提供不同市場不同硬體功能的能力,例如針對特定市場的主機控制器功率、性能和成本折衷。
  9. 定義一個可擴展架構,為新的USB規範和技術提供一條簡單的路徑,例如更高帶寬接口、光傳輸介質等,使其不需要再定義一個USB主機控制器接口。

補充:USB 3.2 Layers 參考圖四

探索USB介面的世界_圖四 圖四

如圖四,各Layer主要功能如下

Protocol Layers :

  • 定義封包種類,格式 (Type, Format)
  • 定義對主機和設備發送的數據包預期響應 (Expected, Responses)
  • 定義四種USB傳送模式(Control,Bulk,Isochornous,Interrupt)
  • 支援Bulk模式的串流資訊

Link Layers :

  • 封包訊框(Packet Farming)
  • 定義連結命令與用法(Link command definition and usage)
  • 鏈路初始化與流量控制(Link initialization and flow control)
  • 鏈路電源管理(Link power management)
  • 定義鏈接錯誤規則與錯誤修復(Link error rules/recovery)
  • 重新啟動功能(Resets)
  • 定義LTSSM規範(Link Training and Status State Machine)

Physical Layers :

  • 實體連結初始化與立起溝通橋梁(Link Initialization & Training)
  • 產生時脈(Clock & Jitter)/產生實體訊號(Signaling)
  • 定義傳送訊號與接收訊號電器特性(Transmitter & Receiver Spec.)

最後是USB 2.0,此版本為所有USB Host的基礎, block diagram參考圖五:

如圖五所示,USB 2.0 Layer分為Function Layer, USB device Layer, USB Bus Interface Layer. 彼此有Actual communications flow與Logica communication flow連結USB 2.0 Host Controller有以下三種以及其對應的USB版本: OHCI (Open Host Controller Interface) USB 1.1, UHCI (Universal Host Controller Interface) USB 1.x, EHCI (Enhanced Host Controller Interface) USB 2.0, USB 2.0包含三種Performance模式,Low-Speed, Full-Speed, High-Speed.相關應用與特性資訊如圖六。

探索USB介面的世界_圖五 圖五
探索USB介面的世界_圖六 圖六

USB Host市場應用

USB Host的實際應用為PCIe to USB Host,舉例目前市場上常用的PCIe to USB Host solutions如下,常用的包含2 ports USB down stream 以及4 ports USB down stream,其方塊圖參考圖七、圖八:

探索USB介面的世界_圖七 圖七 - USB ports: 2 ports (SS/HS/FS/LS)
探索USB介面的世界_圖八 圖八 - USB ports: 4 ports (SS/HS/FS/LS)

USB Hub技術探討及市場應用

  • 連接行為(Connectivity behavior)
  • 電源管理(Power management)
  • 設備連接/斷開檢測(Device connect/disconnect detection)
  • 總線故障檢測和恢復(Bus fault detection and recovery)
  • 高速、全速和低速設備支持(High-, full-, and low-speed device support)
探索USB介面的世界_圖九 圖九

如圖九,USB Hub由三個組件組成:中繼器 (Hub Repeater)、控制器 (Hub Controller)和傳送交換器 (Transaction Translator)所組成。中繼器負責連接設置和斷開,它還支持異常處理,例如:總線故障檢測和恢復以及連接或斷開檢測。

 

控制器提供主機到集線器通信的機制集線器特定的狀態和控制命令,允許主機配置集線器,並監視和控制其各個面向下游的端口。

傳送交換器可將高速介面轉換為與全速或低速介面,讓不同速度USB裝置以最低速度介面互相溝通補充USB4 HUB/Device方塊圖,如圖十。

探索USB介面的世界_圖十 圖十

如圖九,USB Hub由三個組件組成:中繼器 (Hub Repeater)、控制器 (Hub Controller)和傳送交換器 (Transaction Translator)所組成。中繼器負責連接設置和斷開,它還支持異常處理,例如:總線故障檢測和恢復以及連接或斷開檢測。

 

控制器提供主機到集線器通信的機制集線器特定的狀態和控制命令,允許主機配置集線器,並監視和控制其各個面向下游的端口。

傳送交換器可將高速介面轉換為與全速或低速介面,讓不同速度USB裝置以最低速度介面互相溝通補充USB4 HUB/Device方塊圖,如圖十。

如圖十所示,基本上與USB 4 Host類似,Hub部分除了USB功能,增加外接PCIe Switch與Enhanced SuperSpeed Hub, USB 2.0Hub等裝置.Device部分可接PCIe,DP,USB 2.0裝置。

USB Hub市場應用

USB Hub市場應用主要為擴充USB port的USB docking,由於USB主機端越來越輕薄,可透過USB docking擴充USB port, 與周邊各種USB裝置連接,以圖十一舉例。

探索USB介面的世界_圖十一 圖十一

USB Device技術探討及市場應用

USB自1996年以來,就針對當時眾多通訊界面,各種裝置建立支援與其Class,主要目的是統一通訊界面,讓PC端只需留下一個USB端口,就可支援當下眾多的人機介面,輸入輸出裝置等眾多裝置中,除了常用的Keyboard/Mouse(HID), Mass Storage(Flash/SD card), WebCAM,亦包含Audio, Printer, HID, Communications & CDC control等等裝置。圖十二為USB Device Class對應表格。

探索USB介面的世界_圖十二 圖十二

本文只介紹USB to serial介面轉換,圖十三為USB to Serial block diagram範例

探索USB介面的世界_圖十三 圖十三

說明如下:

USB Transceiver : USB Transceiver提供 USB 1.1 / USB 2.0 full-speed實體port。,而差分輸入接收器 (differential input receiver) 和兩個單端輸入接收器 (single ended input receivers) 分別提供 USB data input、single-end 0 (SE0) 和 USB reset條件。此功能還包括 USB 的內部串聯終端電阻和 USBDP 上的 1.5kΩ 上拉電阻。

 

USB DPLL : USB DPLL 單元會鎖定Host傳來的 NRZI USB 數據,並為串行接口引擎 (SIE) 模塊產生重製過的clock和數據信號。

 

Serial Interface Engine (SIE) : 串行接口引擎 (SIE) 塊執行 USB data的並行 (parallel) 到串行 (serial) 和串行 (serial) 到並行 (parallel) 的轉換。 根據 USB 2.0 規範,它執行位填充/反填充和 CRC5/CRC16 生成。它還檢查 USB data stream上的 CRC封包。

 

USB Protocol Engine : USB protocol Engine管理來自設備 USB 控制端點 (end point) 的數據流 (data stream)。它根據 USB 2.0 規範第 9 章管理 USB Host Controller生成的低層 USB 協議請求,以及控制 UART 功能參數的命令。

 

UART FIFO Controller : UART FIFO 控制器管理 FIFO RX 和 TX 緩衝區與 UART 發送和接收寄存器之間的數據傳輸。

 

UART Controller with Programmable Signal Inversion and High Drive :

UART 控制器與 UART FIFO 控制器一起管理 FIFO RX 和 FIFO TX 緩衝區以及 UART 發送和接收寄存器之間的數據傳輸。它對 RS232(或 RS422 或 RS485)接口上的數據執行非同步 7 位或 8 位並行到串行和串行到並行的轉換。

 

透過以上的功能,再配合USB Host端安裝的driver與串列傳輸軟體,便可將USB封包轉換為串列資訊.USB device不只有USB to Serial port, 還有USB to I2C/SPI/FIFO等介面轉換,圖十四為說明範例:

探索USB介面的世界_圖十四 圖十四

方塊功能說明如下:

UTMI PHY :

The Universal Transceiver Macrocell Interfac (UTMI) 唯一實體接口單元。 該塊處理 USB TX/RX 數據的全速/高速 SERDES(序列化 - 反序列化)功能。 它還為晶片的其餘部分提供時鐘。 12 MHz Crystal連接到 OSCI 和 OSCO ,或者 12 MHz OSC連接到 OSCI,OSCO 不接。 PCB 上的 REF 和 GND 之間應連接一個 12K 歐姆的電阻。

 

USB Protocol Engine and FIFO control : 引擎控制和管理 UTMI PHY 和晶片的 FIFO 之間的接口。它還處理電源管理和 USB 協議規範。

Multi-Purpose UART/FIFO Controllers : 此為一個獨立的 UART/FIFO 控制器。此控制器可以控制UART data、245 FIFO data、快速串行(光電隔離)或 Bit-Bang 模式,可通過 SETUP(FT_SetBitMode)指令選擇。每個多用途 UART/FIFO 控制器還包含一個多協議同步串行引擎(MPSSE)。 使用此引擎,可以在軟件命令下配置多用途 UART/FIFO 控制器, 

結論

透過USB Host, USB hub通訊架構,建立了USB的擴充性,可以將個人電腦、工業電腦的實體周邊大量的擴充、增加便利性。USB device中的各種人機介面、輸入輸出裝置則提供了輕易且彈性的應用,因為都共用一個USB port使用者依據需求使用不同裝置。

 

在USB to Serial應用上可將轉出來的RS-232可以再透過適當的轉換器 (transceiver) 轉換為RS-422/RS-485等介面大大增加了在工業上的應用層面。

 

USB to Serial/I2C/SPI bridge在工業、AI、醫療、通訊領域應用非常廣泛,解決了主機端串列介面不夠的問題,也提供了強大的設計彈性,同一主機配合USB to Serial / I2C / SPI bridge docking 即可與各種串列介面裝置溝通。

 

參考文獻

1. USB, 維基百科, https://reurl.cc/klvgQn

2. USB Type-C® Cable and Connector Specification Release 2.2, USB, https://reurl.cc/2W3VvO

3. USB 4® Specification v2.0, USB, https://reurl.cc/qkX64N

4. USB 2.0 Specification, USB, https://reurl.cc/9VyaLx

5. FTDI, https://ftdichip.com/

You may also want to know