
i
STM32F4-USB-Host-CDC 与广和通 4G 模块 USB 通信过程说明
Application
Note
产品应用笔记
AN01010101 V0.1 Date: 2024/03/09
类别
内容
关键词
USB、Host、CDC、4G
摘要
USB 主机驱动移植、USB 通信

i
修订历史
版本
日期
原因
v0.1
2024/03/09
创建文档
v1.1
2024/03/18
添加 USB 传输速度提升相关内容

1
目 录
1. USB 基本概念与相关说明 .......................................................................................2
1.1 STM32F407-USB 接口资源...............................................................................................2
1.2 USB 通信相关概念 ............................................................................................................2
1.2.1 USB 通信拓扑 .........................................................................................................2
1.2.2 USB 设备类 .............................................................................................................2
1.2.3 USB 建立通信基本流程 .........................................................................................2
1.2.4 USB 协议相关软件概念 .........................................................................................3
2. USB 驱动源码、参考资料来源与相关说明 ...........................................................7
2.1 USB-CDC 类主机库驱动来源...........................................................................................7
2.2 参考资料 ..........................................................................................................................10
2.2.1 CSDN 博客 ............................................................................................................10
2.2.2 正点原子 USB 参考资料 .....................................................................................10
2.2.3 其他参考资料 .......................................................................................................11
3. ST 官方 USB-HOST-CDC 主机库驱动移植 .........................................................12
3.1 keil 工程配置 ....................................................................................................................12
3.2 ST 官方驱动源码修改 .....................................................................................................13
3.3 其他说明 ..........................................................................................................................23
4. USB-CDC 主机传输速度提升相关说明................................................................24
4.1 优化点 1 ...........................................................................................................................24
4.1.1 当前情况 ...............................................................................................................24
4.1.2 优化内容 ...............................................................................................................25
4.1.3 测试结果 ...............................................................................................................25
4.1.4 相关验证结论 .......................................................................................................25
4.2 优化点 2 ...........................................................................................................................25
4.2.1 基本原理 ...............................................................................................................25
4.2.2 解决思路 ...............................................................................................................25
4.2.3 优化内容 ...............................................................................................................26
4.2.4 测试结果 ...............................................................................................................27
4.2.5 相关验证结论 .......................................................................................................27
4.2.6 其他与传输速度无关信息点 ...............................................................................27
5. 其他测试验证内容说明 .........................................................................................29
5.1 USB 接收完成判断问题 ..................................................................................................29
5.2 USB 设置接收模式问题 ..................................................................................................30

2
1. USB 基本概念与相关说明
1.1 STM32F407-USB 接口资源
STM32F407 有两个 USB 接口,一个全速接口(FS,12Mbps),一个高速接口(HS,
480Mbps)。其中全速接口可以直接直连 USB 设备通信,高速接口需要外接 PHY 芯片才能
与 USB 设备通信。
全速接口如下:两根通信线即可。
DM D- Data Minus 数据负信号
DP D+ Data Positive 数据正信号
另外一般需要一个 GPIO 给 USB 设备供电。
STM32F407 的 USB 接口支持 OTG 功能,可同时作为 USB 主机和从机。
无论是全速 FS 还是高速 HS,都属于 USB2.0 协议规范。
1.2 USB 通信相关概念
1.2.1 USB 通信拓扑
USB 通信是一种主从通信模式,必须是在主机和从机之间通信,由主机主动发起通信。
一个 USB 主机最多可以带 127 个 USB 从机。
USB Device 即 USB 从机,USB Host 即 USB 主机。
1.2.2 USB 设备类
在进行 USB 通信之前,需要明确 USB 主机与 USB 从机之间是以什么 USB 设备类进行
通信。不同的 USB 类之间通信,使用不同的 USB 类驱动。
常见的 USB 设备类有 MSC(大容量存储类,如 U 盘),HID 类(自定义人机接口类,
如鼠标键盘),CDC 类(通信设备类,如虚拟串口)。不同的设备类编号不同。
极大多数非标准的产商自定义 USB 设备类,都可以是通过 CDC 类驱动进行通信,设备
类编号固定为 0xFF。
当前 STM32F407 与广和通 4G 模块进行 USB 通信,STM32F407 作为 CDC 类 USB 主
机,4G 模块作为 CDC 类 USB 类从机。
1.2.3 USB 建立通信基本流程
(1)USB 从机枚举
USB 插入检测机制,未接入 USB 设备时,主机 D+、D-默认都为低电平
假如接入全速/高速设备,D+为高电平,D-为低电平(从机 D+进行上拉)
假如接入低速设备,D+为低电平,D-为高电平(从机 D-进行上拉)
因此,当 USB 从机设备插入时,USB 主机触发中断,开始获取 USB 从机设备基本信
息,如 PID、VID、设备名、厂商等。

3
(2)USB 设备类识别
根据当前主机库已注册的 USB 设备类编号(如 CDC 类为 0x02,实际为产商自定义为
0xFF),对比获取到的从机的 USB 设备类编号,是否相同,相同,则 USB 设备类识别成功。
(3)USB 接口描述符与端点描述符初始化
在 USB 设备类识别成功之后,就会开始对 USB 接口描述符和端点描述符进行初始化,
开始进行通信。
1.2.4 USB 协议相关软件概念
(1)设备描述符
1 个 USB 设备,只有 1 个设备描述符。
用 USBH_DeviceTypeDef device 结构体下的 USBH_DevDescTypeDef DevDesc 结构
体表示。其中 bNumConfigurations 成员表示拥有多少个配置描述符,当前为 1 个。
idVendor:即 VID,设备产商编号
idProduct:即 PID,设备产品编号