概述

DRD 指双角色设备(Dual-Role Device),即支持在主机和设备两个角色之间进行动态切换的 USB 设备。

DRD 提升了设备灵活性,适应多样化的应用场景,例如:

  • 存储设备:作为主机连接 U 盘、打印机,作为设备连接电脑、手机

  • 车载设备:作为 Carplay 设备,与车机系统互联

  • 工业物联网:灵活适配传感器(设备)与控制器(主机)角色

协议栈提供了基于标准 MSC 主机和 MSC 设备类驱动的 DRD 设备应用示例,特征如下:

  • 支持 MSC 设备:

    • 基于 BOT(Bulk-Only Transport)传输协议

    • 支持 SD 卡作为存储媒介

    • 端点配置如下:

      • 一个控制端点用于处理 USB 主机发送的控制请求

      • 一个批量 IN 端点用于向 USB 主机发送数据

      • 一个批量 OUT 端点用于从 USB 主机接收数据

    • 支持描述符全定制

  • 支持 MSC 主机:

    • 支持 FAT32 格式的 MSC 设备

    • 通道配置如下:

      • 两个通道用于控制 IN/OUT 传输

      • 一个通道用于批量 IN 传输

      • 一个通道用于批量 OUT 传输

  • 不支持 SD 卡热插拔

  • 不支持 USB 热插拔

类驱动

关于 MSC 主机类驱动,参考 存储主机方案

关于 MSC 设备类驱动,参考 存储设备方案

应用示例

示例路径: {SDK}/component/example/usb/usb_drd

该示例定义了一个具备大容量存储主机和大容量存储设备的双角色设备,在运行时进行角色切换。

更多信息,请参考示例路径下的 README.md 文件。

该示例可作为 DRD 方案的设计参考。