1. USB应用指南¶
该文档围绕 USB 应用展开,主要从简介、从机与主机的定义及应用场景、配置方法、主要特性和使用注意事项等方面进行了介绍,梳理如下:
1.1 简介¶
USB 位于 HPSYS,芯片集成一路全速(FS)USB2.0Host/Device 接口,符合 USB2.0 协议规范。
功能包括:
软件可配置端点设置,支持挂起 / 恢复;
支持动态 FIFO 大小;
支持会话请求协议和主机协商协议;
支持全速及慢速模式;
片内集成 USB2.0FSPHY;
拥有 ep0~ep7 8 个通道。
1.2 USB-SLAVE 定义与应用场景¶
USB-SLAVE(从设备)是指在 USB 通信中,设备作为被动端响应主机(Host)的请求,完成数据的收发和控制。
常见的 USB-SLAVE 应用场景包括:
外部存储设备(如 U 盘、移动硬盘)
USB 键盘、鼠标等人机交互设备
摄像头、打印机等外设
工业控制、数据采集终端
音频、视频传输设备
在这些场景中,USB-SLAVE 设备通过标准的 USB 协议与主机进行通信,实现即插即用、跨平台的数据交换和控制功能。
目前在平台中已经调试完成的应用场景如下:
MSTORAGE
CDC-VCOM
printer
1.3 USB-HOST 定义与应用场景¶
USB-HOST(主机)是指在 USB 通信中,设备作为主动端发起对从设备(Device)的控制和数据传输。主机负责总线管理、设备枚举、供电和数据交换等任务。
常见的 USB-HOST 应用场景包括:
连接 U 盘、移动硬盘等存储设备,实现数据读写
连接 USB 键盘、鼠标等外设,实现人机交互
连接打印机、摄像头等设备,扩展系统功能
工业控制系统中作为主控端,管理多个 USB 设备
车载、医疗等嵌入式系统的外设扩展
在这些场景中,USB-HOST 通过标准 USB 协议管理和访问各种 USB 从设备,实现灵活的外设扩展和数据交互。
1.4 从机配置¶
使能USBD slave设备 “BSP_USING_USBD”
使能对应的USB 的应用设备
修改usbd的硬件ID
1.5 主机配置¶
使能USBD host设备 “BSP_USING_USBH”
使能对应的USB 的应用设备
目前在平台中已经调试完成的应用场景如下:
udisk
RNDIS
1.6 主要特性¶
56x/52x 芯片拥有 ep0~ep7 8 个通道,其中 ep2~ep4 只支持 rx (即 host 只支持 IN,device 只支持 OUT),ep5~ep7 只支持 tx (即 host 只支持 OUT,device 只支持 IN);
55x 芯片不支持 DMA 模式;只支持 device 模式
58x 芯片 ep0~ep7 8 个通道都支持 IN 与 OUT; 支持高速(HS)、全速模式(FS)
1.7 USB 使用注意事项¶
由于 USB 使用时候 usb 的频率必须在 60MHz 下,因此 usb 在使用的时候不能降频不能睡眠。
//禁止睡眠
rt_pm_request(PM_SLEEP_MODE_IDLE);
//退出禁止睡眠
rt_pm_release(PM_SLEEP_MODE_IDLE);
//禁止降频
rt_pm_hw_device_start();
//退出禁止降频
rt_pm_hw_device_stop();
由于目前 USB slave 模式下在拔出的时候没有拔出中断,因此需要外部 VBUS 分压到芯片一个 IO 口来作为 USB 的插拔检测。