USB应用指南

简介

USB 位于HPSYS。芯片集成了一路全速(FS)USB2.0Host/Device接口,符合USB2.0的协议规范,具有如下功能:

  • 软件可配置的端点设置,支持挂起/恢复

  • 支持动态FIFO大小

  • 支持会话请求协议和主机协商协议

  • 支持全速以及慢速模式

  • 片内集成USB2.0FSPHY

  • 拥有ep0~ep7 8 个通道

USB-SLAVE 定义与应用场景

USB-SLAVE(从设备)是指在 USB 通信中,设备作为被动端响应主机(Host)的请求,完成数据的收发和控制。常见的 USB-SLAVE 应用场景包括:

  • 外部存储设备(如 U 盘、移动硬盘)

  • USB 键盘、鼠标等人机交互设备

  • 摄像头、打印机等外设

  • 工业控制、数据采集终端

  • 音频、视频传输设备

在这些场景中,USB-SLAVE 设备通过标准的 USB 协议与主机进行通信,实现即插即用、跨平台的数据交换和控制功能。

目前在平台中已经调试完成的应用场景如下:

  • MSTORAGE

  • CDC-VCOM

  • printer

USB-HOST 定义与应用场景

USB-HOST(主机)是指在 USB 通信中,设备作为主动端发起对从设备(Device)的控制和数据传输。主机负责总线管理、设备枚举、供电和数据交换等任务。

常见的 USB-HOST 应用场景包括:

  • 连接 U 盘、移动硬盘等存储设备,实现数据读写

  • 连接 USB 键盘、鼠标等外设,实现人机交互

  • 连接打印机、摄像头等设备,扩展系统功能

  • 工业控制系统中作为主控端,管理多个 USB 设备

  • 车载、医疗等嵌入式系统的外设扩展

在这些场景中,USB-HOST 通过标准 USB 协议管理和访问各种 USB 从设备,实现灵活的外设扩展和数据交互。

从机配置

  1. 使能USBD slave设备 “BSP_USING_USBD”

../../_images/usb_slave_1.png
  1. 使能对应的USB 的应用设备

../../_images/usb_slave_2.png
  1. 修改usbd的硬件ID

../../_images/usb_slave_3.png

主机配置

  1. 使能USBD host设备 “BSP_USING_USBH”

../../_images/usb_host_1.png
  1. 使能对应的USB 的应用设备

../../_images/usb_host_2.png

目前在平台中已经调试完成的应用场景如下:

  • udisk

  • RNDIS

主要特性

  • 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)

USB使用注意事项

  1. 由于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();
  1. 由于目前USB slave模式下在拔出的时候没有拔出中断,因此需要外部VBUS分压到芯片一个IO口来作为USB的插拔检测。