Azure RTOS USBX 概述

Azure RTOS USBX 是一种高性能的 USB 主机、设备和移动 (OTG) 嵌入式堆栈。 Azure RTOS USBX 与 Azure RTOS ThreadX 完全集成,适用于所有支持 Azure RTOS ThreadX 的处理器。 与 ThreadX 一样,Azure RTOS USBX 也采用占用空间小、性能高的设计,特别适用于需要与 USB 设备对接的深度嵌入式应用程序。

主机、设备、OTG 和广泛类支持

Azure RTOS USBX 主机/设备嵌入式 USB 协议堆栈是工业级的嵌入式 USB 解决方案,专门设计用于深度嵌入式应用程序、实时应用程序和 IoT 应用程序。 Azure RTOS USBX 提供主机、设备和 OTG 支持以及广泛类支持。 Azure RTOS USBX 与 ThreadX 实时操作系统、Azure RTOS FileX 嵌入式 FAT 兼容文件系统、Azure RTOS NetX 和 Azure RTOS NetX Duo 嵌入式 TCP/IP 堆栈完全集成。 凭借所有这些以及占用空间极小、执行速度快、易于使用的优势,Azure RTOS USBX 已成为需要建立 USB 连接的、要求最高的嵌入式 IoT 应用程序的理想选择。

USBX 内存占用情况

Azure RTOS USBX 的占用空间极小,它只需占用 10.5 KB 闪存和 5.1 KB RAM 来提供 Azure RTOS USBX 设备 CDC/ACM 支持。 要提供 Azure RTOS USBX 主机 CDC/ACM 支持,它至少需要占用 18 KB 闪存和 25 KB RAM。

TCP 功能需要额外的 10 KB 到 13 KB 的指令区域内存。 Azure RTOS USBX RAM 使用量通常介于 2.6 KB 到 3.6 KB 之间,外加由应用程序定义的数据包池内存。

与 ThreadX 一样,Azure RTOS USBX 的大小会根据应用程序实际使用的服务自动缩放。 这几乎无需复杂的配置和生成参数,使开发人员能够更轻松地工作。

USB 互操作性验证

已使用 USB IF 标准测试工具 USBCV 对 Azure RTOS USBX 设备堆栈进行严格的测试,以确保完全符合 USB 规范以及与不同主机系统的互操作性。 此外,Azure RTOS USBX OTG 堆栈已由位于台湾的独立测试实验室 Allion 进行验证和认证。

USB 主机控制器支持

Azure RTOS USBX 支持主要的 USB 标准,例如 OHCI 和 EHCI。 此外,Azure RTOS USBX 支持 Atmel、Microchip、Philips、Renesas、ST、TI 和其他供应商提供的专有分立 USB 主机控制器。 Azure RTOS USBX 还支持同一应用程序中的多个主机控制器。 USB 设备控制器支持:Azure RTOS USBX 支持 Analog Devices、Atmel、Microchip、NXP、Philips、Renesas、ST、TI 和其他供应商提供的流行 USB 设备控制器。

广泛主机类支持

Azure RTOS USBX 主机支持大多数流行类,包括 ASIX、AUDIO、CDC/ACM、CDC/ECM、GSER、HID(键盘、鼠标和远程控制)、HUB、PIMA (PTP/MTP)、PRINTER、PROLIFIC 和 STORAGE。

广泛 USB 设备类支持

Azure RTOS USBX 设备支持大多数流行类,包括 CDC/ACM、CDC/ECM、DFU、HID、PIMA (PTP/MTP) (w/MTP)、RNDIS 和 STORAGE。 此外还支持自定义类。

Pictbridge 支持

Azure RTOS USBX 在主机和设备上都支持完全 Pictbridge 实现。 Pictbridge 位于两端上的 Azure RTOS USBX PIMA (PTP/MTP) 类的顶层。 PictBridge 标准允许将数码照相机或智能手机直接连接到打印机,而不使用 PC,从而可以直接使用特定的 Pictbridge 感知打印机进行打印。 当相机或手机连接到打印机时,打印机即为 USB 主机,照相机即为 USB 设备。 然而,在使用 Pictbridge 时,相机显示为主机,而且命令是从相机驱动的。 相机是存储服务器,打印机是存储客户端。 相机是打印客户端,打印机当然是打印服务器。 Pictbridge 使用 USB 作为传输层,但依赖于 PTP(图片传输协议)作为通信协议。

自定义类支持

Azure RTOS USBX 主机和设备支持自定义类。 Azure RTOS USBX 分发包中提供了一个示例自定义类。 此简单数据抽取类名为 DPUMP,可用作自定义应用程序类的模型。 技术先进的 Azure RTOS USBX 主机和设备支持自定义类。 Azure RTOS USBX 分发包中提供了一个示例自定义类。 Azure RTOS USBX 属于先进技术,其中包括:

  • 主机、设备和 OTG 支持
  • USB 低速、全速和高速支持
  • 自动缩放
  • 与 ThreadX、Azure RTOS FileX 和 Azure RTOS NetX 完全集成
  • 可选性能指标
  • Azure RTOS TraceX 系统分析支持

Azure RTOS USBX API

Azure RTOS USBX 主机 API

Azure RTOS USBX 主机 API 是直观且一致的 API,遵循名词-动词命名约定。 所有 API 带有前导 ux_host_*,可以轻松识别出它们是 USBX API。 所有阻塞 API 具有可选的线程超时。

  • ASIX
    • 占用空间极小,只需 0.3 KB 闪存,4 KB RAM
    • 自动缩放;通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_asix_*
  • 音频
    • 占用空间极小,只需 1.2 KB 闪存,4 KB RAM
    • 自动缩放
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_audio_*
  • CDC/ACM
    • 占用空间极小,只需 1.4 KB 闪存,4 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_cdc_acm_*
  • HID
    • 占用空间极小,只需 0.3 KB 闪存,4 KB RAM
    • 键盘、鼠标和远程支持
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_hid_*
  • HUB
    • 占用空间极小,只需 1.7 KB 闪存,2 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_hub_*
  • PIMA (PTP/MTP)
    • 占用空间极小,只需 0.9 KB 闪存,8 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_pima_*
  • PRINTER
    • 占用空间极小,只需 0.8 KB 闪存,8 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_printer_*
  • PROLIFIC
    • 占用空间极小,只需 1.5 KB 闪存,4 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_prolific_*
  • STORAG
    • 占用空间极小,只需 5.6 KB 闪存,4 KB RAM
    • 自动缩放
      与 Azure RTOS FileX 集成
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_class_storage_*
  • USB 主机堆栈
    • 支持许多主机控制器
    • 占用空间极小,只需 18 KB 闪存,25 KB RAM
    • 自动缩放
    • 支持同一平台上的多个主机控制器
    • USB 低速、全速和高速支持
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 主机 API:ux_host_stack_ *
  • OHCI、EHCI、专有主机控制器

Azure RTOS USBX 设备 API

Azure RTOS USBX 设备 API 是直观且一致的 API,遵循名词-动词命名约定。 所有 API 带有前导 ux_device_*,可以轻松识别出它们是 USBX API。 阻塞 API 具有可选的线程超时。 有关更多详细信息,请参阅 Azure RTOS USBX 主机用户指南

  • CDC/ACM
    • 占用空间极小,只需 0.8 KB 闪存,2 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:*ux_device_class_cdc_acm_**。
  • CDC/ECM
    • 占用空间极小,只需 1.5 KB 闪存,4 KB 到 8 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
      以下形式的直观 Azure RTOS USBX 设备 API:*ux_device_class_cdc_ecm_**。
  • DFU
    • 占用空间极小,只需 1.1 KB 闪存,2 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_dfu_*
  • GSER
    • 占用空间极小,只需 0.6 KB 闪存,4 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_gser_*
  • HID
    • 占用空间极小,只需 0.9 KB 闪存,2 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_hid_* PIMA (PTP/MTP)
    • 占用空间极小,只需 5.2 KB 闪存,8 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_pima_*
  • STORAGE
    • 占用空间极小,只需 2.3 KB 闪存,4 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_storage_*
  • RNDIS
    • 占用空间极小,只需 2.3 KB 闪存,4 KB 到 8 KB RAM
    • 自动缩放
    • 与 Azure RTOS NetX 和 Azure RTOS NetX DUO 集成
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_rndls_*
  • Azure RTOS USBX 设备堆栈
    • 占用空间极小,只需 2.3 KB 闪存,4 KB RAM
    • 自动缩放
    • 通过 Azure RTOS TraceX 进行系统级跟踪
    • 以下形式的直观 Azure RTOS USBX 设备 API:ux_device_class_storage_*
  • 专有主机控制器

后续步骤

遵循我们的主机堆栈用户指南设备堆栈用户指南开始使用 Azure RTOS USBX 主机和设备堆栈。