天天看點

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驅動。

USB總線-RK3399 USB3.0控制器特性介紹(二)

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
USB總線-RK3399 USB3.0控制器特性介紹(二)

參考資料

  1. https://www.usb.org/
  2. Rockchip RK3399TRM V1.3 Part1
  3. Rockchip RK3399TRM V1.3 Part2
  4. https://www.cnblogs.com/coryxie/p/3956463.html
  5. Universal Serial Bus 3.12 Specification
  6. Universal Serial Bus Specification Revision 2.0