ZHCAEY8 January 2025 AM2612
强大的驱动程序库提供了微控制器与 USB 外设之间的无缝交互,简化了开发过程。USB 有时被视为一种相当复杂的协议,而 TinyUSB 则让 USB 变得简单易用。TinyUSB 栈是一个功能非常丰富的开源 USB 栈,具有线程安全和内存安全特性,并且不进行动态运行时内存分配。借助 TinyUSB 栈,开发人员可以使用 TinyUSB 栈中提供的 USB 类轻松创建应用。TinyUSB 栈的源代码中已经内置了一些器件和主机模式的示例。例如,该栈包含 HID 主机控制器的示例,其可以轻松从栈中移植出来并内置在 MCU_PLUS_SDK 中。为了支持 RNDIS 等采用 TCP/IP 协议的类,TinyUSB 栈也可以配置为与 LwIP 栈一起使用。
低电平 USB 驱动程序可分为两部分:一部分是片上芯片 (SoC) 移植层,其包含 AM261x 上端口的特定信息;另一部分是实际的 USB 器件核心驱动程序,其实现了完整的 USB 功能。应用开发人员可以直接使用驱动程序而无需中间件栈(TinyUSB 栈)的参与,并在其上编写应用;也可以使用中间件栈,这将大量简化开发过程。
图 2-2 AM261x USB 软件方框图TinyUSB 栈支持以下类:音频、视频、Bluetooth、CDC、DFU、HID、MIDI、MSC、网络、USBTMC、供应商等,但并非所有这些类都能在 AM261x 上运行(例如,由于 AM261x 上没有 Bluetooth 硬件,因此无法启用 Bluetooth® 类)。要启用 SDK 开箱即用后不支持的新类,开发人员只需:
通过上述步骤,用户可以快速启用非标准 SDK 产品的不同 USB 类。