1. 程式人生 > 其它 >USB匯流排-RK3399 USB3.0控制器特性介紹(二)

USB匯流排-RK3399 USB3.0控制器特性介紹(二)

1.RK3399 USB

下圖是RK3399 SOC的框圖。RK3399包含了2個USB2.0 Host控制器;兩個USB3.0 OTG控制器,同時相容USB2.0。USB3.0使用的是Synopsys公司的IP,驅動也使用Synopsys的dwc3 USB驅動。

2.USB3.0 OTG Controller簡介

USB3.0 OTG控制器可以作為主機(Host)、裝置(Device),或者根據從USB2.0 PHY和DFP/UFP/Data Role Swap輸入的ID狀態確定是USB2.0/3.0 OTG A裝置和B裝置。可以以Super-Speed/High-Speed/Full-Speed/Low-Speed的速度在主機與裝置之間進行資料傳輸。USB3.0 OTG控制器支援如下的特性:

1)通用特性

  • 相容規範

    • Universal Serial Bus 3.0 Specification, Revision 1.0

    • Universal Serial Bus Specification, Revision 2.0

    • eXtensible Host Controller Interface for Universal Serial Bus (xHCI), Revision 1.1

  • 支援控制、批量(包括流)、中斷、等時傳輸

  • USB3.0模式時可以同時輸入輸出,最大可達8Gbps的頻寬

  • 在高延遲的系統中使用描述符快取和資料預取改善系統性能

  • USB2.0支援連結電源管理協議(LPM);USB3.0支援U0、U1、U2、U3四種狀態

  • 端點的動態FIFO記憶體分配

  • 低速(LS)模式下支援Keep-Alive特性,高速和全速(HS/FS)模式下支援(micro-)SOFs特性

  • 低MIPS(Million Instructions Per Second)支援

    • 驅動程式只需要在傳輸建立時和高等級錯誤恢復時參與其中
    • 硬體自動將資料打包並路由到明確的管道(pipe)中

(2)應用程式介面特性

  • AHB 從機(Slave)介面
  • AXI 主機(Master)介面
  • 可程式設計的burst lengths,最大可設定到16
  • 可處理固定burst address對齊
  • 可程式設計數量的未完成讀/寫請求(outstanding read/write requests)最多16個
  • 併發讀/寫以獲得最佳USB3.0雙工操作效能

(3)USB3.0裝置特性

  • 7個輸入(IN)端點,包括端點0
  • 6個輸出(OUT)端點,包括端點0
  • 13個端點傳輸資源,每個端點對應一個
  • 靈活的端點配置,適用於多種應用/USB配置模式
  • 硬體自動處理ERDY和burst
  • 基於流(Stream-based)的批量端點可以自動控制啟動資料移動
  • 在資料緩衝區中使用等時資料的等時端點
  • 靈活的描述符,具有豐富的功能集,以支援緩衝區中斷調節,多次傳輸,同步,控制和分散的緩衝支援

(4)USB特定類裝置特性

  • UASP(USB Attached SCSI Protocol)應用程式的流支援
  • 分散資料包聚合以支援虛擬USB乙太網
  • 非中斷排程多乙太網資料包
  • 每端點的FIFO緩衝區分配可變
  • 對於等時傳輸的應用,每個微幀的變長度有效載荷可以排程
  • 高精度的同步傳輸微幀排程
  • 可配置的端點型別選擇和動態 FIFO 分配,以促進多功能/複合裝置實現在set-config或alternate-setting過程中,裝置資源被重新配置以滿足配置或alternate設定的要求

(4)USB3.0 xHCI控制器特性

  • 最多支援64個裝置
  • 擁有一個interrupter
  • 擁有1個USB2.0 port和1個Super-Speed port
  • 擁有xHCI除錯能力
  • USB3.0/USB2.0併發傳輸,最大達8.48Gbps的頻寬
  • 支援標準或開源的xHCI和類驅動程式

(5)USB 3.0 Dual-Role Device (DRD) 特性

  • 靜態裝置操作
  • 靜態主機操作
  • 基於ID的USB3.0/USB2.0 OTG A裝置和B裝置

3.USB3.0 OTG Controller硬體框圖

從下面的硬體框圖中可以看出,USB3.0 OTG控制器內部的USB2.0和USB3.0的PHY和MAC是獨立的,各自使用自己的硬體。因此USB2.0和USB3.0的頻寬也是獨立計算的,USB2.0的頻寬並不會佔用USB3.0的頻寬。USB3.0 OTG控制器由以下幾部分組成:

  • Bus Interface/List Management: Register Interface/Data and Descriptors DMA management
  • HS/FS/LS MAC : USB2.0 part logic
  • SS MAC : SS part logic(USB3.0)
  • USB2.0 PHY: UTMI+ interface USB2.0 PHY
  • TypeC PHY: Pipe Interface Super-Speed PHY