USB总线-RK3399 USB3.0控制器特性介绍(二)

2022-12-09 15:27:32 浏览数 (2)

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

0 人点赞