USB ================== 概述 ------ USB(Universal Serial Bus)是连接电脑与设备的一种序列总线标准,也是一种输入输出(I/O)连接端口的技术规范,广泛应用于个人电脑和移动设备等信息通信产品, 并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。 目前USB支持7种数据信号速率,USB1.0(Low Speed)的最大传输速率为 1.5Mbps,USB1.1(Full Speed)为 12Mbps,USB2.0(High Speed)为 480Mbps, USB3.0(USB3.2 Gen 1×1)为 5Gbps,USB3.1 Gen2(USB3.2 Gen 2x1)为 10Gbps,USB3.2(USB3.2 Gen 2x2)为 20Gbps,最新支持的 USB4.0 速度可达到 40Gbps, 比常规的并行接口、串行接口快得多。 USB 根据设备功能及类型,可以分为 USB 主机端、USB 设备端。USB 主机端包括两大部分,分别为与系统总线进行数据交互的 USB 控制器和 USB 总线的根集线器。USB 设备端可以是 集线器,为USB提供扩展的连接点。也可以是为系统提供具体功能的接口,如 U 盘,USB 摄像头,键盘鼠标等。 WQSDK 使用 TinyUSB 开源库实现 USB 协议栈,当前 WQ7036A,WQ7036AX 支持 USB,仅支持做设备功能,不支持做主机功能。支持 USB2.0(High Speed)规范,并向下兼容 USB1.1(Full Speed)。 功能特性 ------------------- - 支持常用设备类型,如通信控制设备(cdc),大容量存储设备(msc),人机界面设备(hid),音效设备(uac) - 支持复合设备 - 支持最多 5 个 IN/OUT 端点(包含控制端点 0) 配置选项 ------------------- - CONFIG_USB_LIB_ENABLE 使能 USB 组件 - CONFIG_TUD_CDC_COUNT 配置支持的 cdc 接口数量 - CONFIG_TUD_MSC_ENABLE 使能 msc 接口 - CONFIG_TUD_HID_COUNT 配置支持的 hid 接口数量 - CONFIG_TUD_AUDIO_COUNT 配置支持的 uac 接口数量 用法流程--以 cdc 为例 ------------------------------------ - 选择配置项:CONFIG_USB_LIB_ENABLE 配置为 y,CONFIG_TUD_CDC_COUNT 配置为 1 - 初始化 usb lib: .. code-block:: c tusb_cfg_t config = {0}; // 用户可自定义描述符,不定义则用默认值(仅支持 cdc, msc) wq_usb_lib_init(&config); - 操作 cdc 设备: .. code-block:: c wq_usb_lib_cdc_connected(); // 判断 cdc 设备是否连接 wq_usb_lib_cdc_read(); // 读 cdc 设备 wq_usb_lib_cdc_write(); // 写 cdc 设备 - 注销 usb lib: .. code-block:: c wq_usb_lib_deinit(); 参考示例 ----------- :: examples/usb_demo/cdc, examples/usb_demo/msc, examples/usb_demo/uac_speaker API 介绍 ------------ .. doxygenfile:: usb_lib.h