你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32Cube™ USB 主机库

[复制链接]
STMCU小助手 发布时间:2022-7-23 21:39
前言
0 {4 a0 `; |5 _9 B7 w3 h本文档描述 STM32Cube™ 的 USB 主机库中间件模块。
( ^; \1 H; }6 A' q众所周知,通用串行总线 (USB)是介于作为主机的个人计算机 (PC)与所连接的 USB 外设之间的事实通信标准。目前嵌入式便携设备数量日益增多,USB 主机已不再局限于 PC,嵌入式消费终端与工业设备作为主机已越来越普遍,而嵌入式主机功能有限,仅支持特定的USB 类 (比如大容量存储类、虚拟通信端口等)或特定的供应商设备。/ h: p: d- f# W+ u# q" P
本文档详细描述了 STM32Cube™ USB 主机库,即在 STM32CubeF2 和 STM32CubeF4 软件包中所提供的 USB 主机协议栈。它使用 STM32 微控制器作为 USB 嵌入式主机,与各种USB 类的 USB 外设进行通信 (MSC、 HID、 CDC、音频和 MTP)。
& x, z$ l4 E  i- q2 ]4 @* u6 ZSTM32Cube™ 软件包是一款免费解决方案,可以从意法半导体网站下载:! I- c% {) r/ J7 ]* x1 \# `

6 N! F; F: `- N" O9 N( ~. e

( ?- w* S1 w" M: E/ i1 |1 STM32Cube™ 概述
) U3 ]/ q  r/ _STMCube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube™ 将涵盖 STM32 全线产品组合。) F( r6 ~1 M7 @* e% p% j
STM32Cube™1.x 版包括:8 E: ^3 U6 W5 w9 l  a, t( ], y5 ]
• 图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。* G3 W5 i5 E$ f9 X
• 针对每个系列提供综合的嵌入式软件平台,(比如用于 STM32F4 系列的 STM32CubeF4)- R1 P$ F' o" Y- J" k
– STM32 抽象层嵌入式软件 STM32Cube HAL,确保用户应用在 STM32 各个产品之间实现最大限度的可移植性。
; S% \' G1 _: n! F– 一套中间件组件,比如 RTOS、 USB、 TCP/IP、图形处理。
+ T% i: R/ n* D1 q5 e; ^+ g6 |– 一整套例程用于演示所有嵌入式软件功能。
* k: p$ }; Y2 @; o! o' X- z- y) q/ M& \( V  V/ ~. v1 U! L1 c. o, \( s- M( k+ D

& @5 c/ @# g" j6 H9 E LQ7RT_8S~I$CJ1T4L~99$)O.png
9 B' P4 L& X) Q% \
; {" a% A6 ~1 t8 i" N

8 I8 b6 s% T; l8 B" M2 简介7 l$ f! E' g' g4 S3 ]
本文档描述 STM32Cube 的 USB 的主机库中间件模块。
  s' e0 e  R! L! R0 a  H( bUSB 主机库处于 STM32Cube USB 主机 HAL 驱动之上。该库提供用于访问各类 USB 设备的 API。- y2 b8 Y8 v" o
USB 主机模块可用于实现主要的 USB 类。
, T# E! C- `$ H  j• 大容量存储类 (MSC) • 人机接口鼠标与键盘类 (HID) • 通信设备类 (CDC) • 音频类 (AUDIO) • 媒体传输协议类 (MTP)2 v# Q5 d  Z& e4 u9 Y* M1 S. G# p
除了以上所列的类以外,用户还能通过库提供的 API 来实现自己的应用类别。/ n  e# A% x2 m& ^9 n& d: i
该库可单独运行也可以运行在 RTOS 模式之下。该库还支持多实例,比如可以在两个或更多的 USB 主机模块上工作。/ _4 [) o- w0 V. |& K. ?

, Z# B' b* G8 t* \  t
0 w! b# Z, h6 r& V7 @  D
@9}SRXPF0LZ_S@QEFDLR2K2.png
- Y- N  W! X8 f# a% T  i; D( T, S9 h/ D! q$ s
3 USB 主机库架构与文件组织. i5 T  q' g( A
3.1 USB 主机库架构

  F: a6 T9 g4 M  S
4 l) Y# C3 u$ ]( s CE`9$UX_S@0JCZOTV$I2V(N.png 1 J$ a6 ^* n. ^. I7 N" Y; u
. A* P5 h; [& e# s3 ~
如 图 3 所示, USB 主机库分为两个主要部分:内核部分和类相关的驱动部分。1 w9 x& }4 Q2 r3 `( P
主机内核用于处理库的内核服务,这些服务主要用于:1 m; @( }3 v7 g; ], W. U
• 设备的连接 / 断连管理与标准枚举。# X  H3 g* m. x0 U
• 主机管道控制与 USB 传输管理 (控制、中断、批量、同步)。. r* D* w: j- H7 ?2 `8 N3 m
内核数据块被细分为两个主要子数据块:
4 D0 V5 Q4 T; R$ O$ }. V' y7 ~• 被用户应用或类驱动所调用的内核 API。 • 处理主机状态机的内核过程。类驱动用于实现各种 USB 类。2 E7 H/ @! m) p0 Q3 C9 ^# ^
0 @8 k2 P7 T( c" X' W3 h1 Z
这些类驱动包括:4 L$ o) e8 M+ }) a7 I% n
• 一套类专用的 API (比如 disk_read、 disk_write),可在应用层调用。/ i, s+ g3 X# [" y2 q8 ~
• 一个类处理程序,由内核主机状态机 (内核过程)所调用,用于处理类操作 (类的初始化、解除初始化、类过程)。
- f6 s" `/ h2 U" t主机内核和类驱动在经历某些已定义事件 (比如设备的连接 / 断连,数据接收)后,会调用用户回调函数。
9 ?: \" I1 A) X  QUSB 主机库利用接口层与 STM32Cube HAL 驱动相连接。% z) B8 F+ v6 [8 h* X' R, L& \% T) ~
库中提供了实现底层接口层的模板文件。用户可以定制文件中与板支持包要求有关的内容部分。7 n$ F* A' t8 v1 q8 j
, i6 C2 f8 z. Y
3.2 USB 主机库文件组织
2 M8 _' d& i9 F. R3.2.1 USB 主机内核文件3 L# E) ]& g8 |/ z9 [
USB 主机内核文件位于 Core 文件夹 (STM32_USB_Host_Library\Core)中。 表 1 列出了 ; _2 J- r" X* E7 v6 P
内核文件。
3 j1 D  R6 Z" O9 |
' C5 T6 @: p  t
, L  q' l: M5 v6 D/ H5 E) Z1 R
CTOD)2N)L%V[MC[I2GVRX)F.png , W5 ?/ |  H/ ^

: d# |9 M2 U# J0 ^  K3.2.2 USB 主机类文件
/ f! w5 C% J$ t% j( K2 N表 2 列出了位于 Class 文件夹 (TM32_USB_Host_Library\Core)中的类文件
- P7 o) y& S+ Z$ l1 j7 r. u6 R
4 L# B& A" Y: k: T1 D
& e( r; g7 F, g/ \% \
Z0)ITY4NT]L4)26IH0(W17Y.png - B# P/ m3 o2 w4 ~, k1 J5 I6 D! n

+ e5 _+ R* F: y
  m& o7 }; R+ L8 {, X+ Y4 B3 X完整版请查看:附件
5 s0 p) e- M) C+ {" _3 E
* {+ ~. U! {8 _4 F* p& z

DM00105256_ZHV1.pdf

下载

687.54 KB, 下载次数: 11

赞 收藏 评论0 发布时间:2022-7-23 21:39

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版