STM32—— USB

1 USB 介绍

Universal Serial Bus,通用串行总线web

1.1 USB 系统组成

  • 主机:提供USB接口和接口管理功能的硬件、软件、固件的复合体。PC机或者 OTG 设备。一个 USB 系统只能有一个主机。
  • 设备:(1)集线器 HUB:扩展主机接口,设备能够经过其接入主机;(2)功能设备
  • 物理链接:USB使用差分信号传输数据,全速或者高速模式的电缆必须外层屏蔽和铜漏线,且差分数据线双绞。D+ 和 D- 是差分输入线,使用的是 3.3v 电压。

1.2 拓扑结构

在这里插入图片描述

2 STM32 的 USB 操做步骤

  1. 根据应用选择合适的USB 类实现;
  2. 根据所选择的的USB类协议,完成各个描述符,包括设备描述符、配置描述符、接口描述符,断点描述符和字符描述符;
  3. 根据描述符,初始化端点数目,分配各端点所需使用的 Packet Buffer;
  4. 初始化所使用的端点,配置端点的传输类型、方向、Packet Buffer 地址,和初始状态;
  5. 在须要发送或者接受数据的时候,使能端点;
  6. 在该端点的中断回调函数中,处理数据,若是须要则使能下一次传输;

3 STM32 的USB类

在这里插入图片描述

4 USB的设备端

在这里插入图片描述

  • 接口:用于描述特定功能,每一个接口都有一个端点集,用于实现接口功能

5 STM32 的USB库函数

  • stm32f10x_it.c: 包含 USB 中断服务程序,因为USB中断有不少状况。这里的中断服务程序只是调用 usb_istr.c 文件中的 USB_Istr函数,由 这个函数作轮询处理
  • usb_istr.c :该文件中只有一个函数,即USB中断的 USB_Istr,该函数对各种引发USB中断的事件做轮询处理;
  • usb_prop.c :实现相关设备的USB 协议,例如 初始化、SETUP 包、IN包、OUT包等等。
  • usb_pwr.c 包含上电、掉电、挂起和恢复事件的函数
  • hw_config: 系统配置函数