透传主机方案

概述

CDC ACM 类为通信设备类(Communication Device Class​,CDC)的抽象控制模型(Abstract Control Model,ACM)子类,可用于数据透传。

USB 协议栈提供了:

  • 标准的 CDC ACM 主机类驱动,通道配置如下:

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

    • 一个通道用于中断 IN 传输

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

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

  • 数据透传应用示例,特征如下:

    • 支持 透传设备方案 定义的 CDC ACM 设备

    • 支持数据完整性校验测试、寿命测试、性能测试

    • 支持热插拔

类驱动

CDC ACM 主机类驱动

应用示例

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

该示例定义了一个 CDC ACM 主机,更多信息,请参考示例路径下的 README.md 文件。

该示例可作为基于 USB 批量传输的透传方案主机端的设计参考。

网络通信主机方案

概述

CDC ECM 类为通信设备类(Communication Device Class,CDC)的以太网控制模型(Ethernet Control Model,ACM)子类,用于通过 USB 实现与网络设备的互联。

USB 协议栈提供了:

  • 标准的 CDC ECM 主机类驱动,通道配置如下:

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

    • 一个通道用于中断 IN 传输

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

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

  • CDC ECM 主机应用示例,可识别 CDC ECM 设备并进行基本的通信测试

  • CDC ECM 桥接器应用示例,可支持 CDC ECM 设备与路由器之间进行网络通信

类驱动

CDC ECM 主机类驱动

应用示例

SDK 提供了两个 CDC ECM 主机类应用实例:

CDC ECM 主机示例

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

该示例定义了一个 CDC ECM 主机,可识别 CDC ECM 设备并进行基本的通信测试。

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

该示例可作为 CDC ECM 主机方案的设计参考。

CDC ECM 桥接器示例

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

该示例定义了一个 CDC ECM 桥接器,可支持 CDC ECM 设备与路由器之间进行网络通信。

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

该示例可作为 CDC ECM 桥接器方案的设计参考。

存储主机方案

概述

MSC 主机类提供了对大容量存储设备(Mass Storage Class)的支持,使用 SCSI(Small Computer System Interface)命令集与 MSC 设备通信,实现数据读写。

USB 协议栈提供了:

  • 标准的 MSC 主机类驱动,特征如下:

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

    • 通道配置:

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

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

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

  • MSC 主机应用示例

    • 支持 FAT32 格式的标准 MSC 设备

    • 支持基于 FATFS 的数据读写测试

类驱动

MSC 主机类驱动

应用示例

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

该示例定义了一个 MSC 主机,可识别 MSC 设备并基于 FATFS 进行简单的文件读写测试。

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

该示例可作为 MSC 主机方案的设计参考。

视频主机方案

概述

USB 视频类(USB Video Class, UVC)主机可识别、配置并管理连接的 UVC 设备(如摄像头、网络摄像头、视频采集卡),获取图像或视频流信息,应用于图像采集、视频监控、工业巡检、医疗诊断、视频推流等场景。

USB 协议栈提供了:

  • 标准的 UVC 主机类驱动,特征如下:

    • 支持高速或全速的 UVC 1.5 设备

    • 支持 MJPEG/YUV/H264 视频流格式

    • 支持分辨率、帧率设置

    • 最大支持 6MB/s 码率

    • 通道配置:

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

      • 一个通道用于等时 IN 传输

  • UVC 主机应用示例,可与标准 UVC 设备进行通信,支持三种应用场景,可通过 CONFIG_USBH_UVC_APP 来切换:

    • USBH_UVC_APP_SIMPLE:截取数据帧后只做简单拷贝,用于性能测试

    • USBH_UVC_APP_VFS:截取 MJPEG/H264 数据帧后,通过 VFS 以图像文件的形式写入 SD 卡

    • USBH_UVC_APP_HTTPC:截取 MJPEG/H264 数据帧后,通过 HTTP 以图像文件的形式上传至 HTTP 服务器

类驱动

UVC 主机类驱动

应用示例

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

该示例定义了一个 UVC 主机,可与标准 UVC 设备进行通信,更多信息,请参考示例路径下的 README.md 文件。

该示例可作为基于 UVC 的视频方案主机的设计参考。

自定义主机方案

概述

Vendor 类可作为开发者自定义 USB 主机的设计参考。

SDK 提供了:

  • Vendor 主机类驱动,通道配置如下:

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

    • 两个通道用于批量 IN/OUT 传输

    • 两个通道用于中断 IN/OUT 传输

    • 两个通道用于等时 IN/OUT 传输

  • Vendor 主机应用示例,特征如下:

类驱动

Vendor 主机类驱动

应用示例

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

该示例定义了一个厂商自定义主机,更多信息,请参考示例路径下的 README.md 文件。

该示例可作为基于 USB 自定义方案主机端的设计参考。