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

STM32Cube™ USB 主机库

[复制链接]
STMCU小助手 发布时间:2022-7-23 21:39
前言
" F6 f6 e# @7 Q* c; X* ]本文档描述 STM32Cube™ 的 USB 主机库中间件模块。
) W: t! i1 k; D7 @* u: ?5 R9 ]众所周知,通用串行总线 (USB)是介于作为主机的个人计算机 (PC)与所连接的 USB 外设之间的事实通信标准。目前嵌入式便携设备数量日益增多,USB 主机已不再局限于 PC,嵌入式消费终端与工业设备作为主机已越来越普遍,而嵌入式主机功能有限,仅支持特定的USB 类 (比如大容量存储类、虚拟通信端口等)或特定的供应商设备。
( ]+ ?) R; I1 c# F( Z8 s本文档详细描述了 STM32Cube™ USB 主机库,即在 STM32CubeF2 和 STM32CubeF4 软件包中所提供的 USB 主机协议栈。它使用 STM32 微控制器作为 USB 嵌入式主机,与各种USB 类的 USB 外设进行通信 (MSC、 HID、 CDC、音频和 MTP)。
) i, V1 E* ^1 J0 }% z7 P4 v, k3 mSTM32Cube™ 软件包是一款免费解决方案,可以从意法半导体网站下载:
( g9 ~7 m0 v" Q) y1 K8 b
6 B* s1 F% y3 S! q

, d( p! P+ A* [; L1 STM32Cube™ 概述
0 c( B/ G3 F7 V7 F# P. E& j( KSTMCube™ 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube™ 将涵盖 STM32 全线产品组合。! y. x! H/ ~1 c
STM32Cube™1.x 版包括:
/ l' I+ ]" M, m. U* I  a• 图形软件配置工具 STM32CubeMX,可通过图形向导生成初始化 C 代码。# n  f2 x3 e( [, |. X: g- U, }8 ]
• 针对每个系列提供综合的嵌入式软件平台,(比如用于 STM32F4 系列的 STM32CubeF4)5 o! K0 ~2 I, L$ l# Z
– STM32 抽象层嵌入式软件 STM32Cube HAL,确保用户应用在 STM32 各个产品之间实现最大限度的可移植性。
6 e' q, e& f) l: s% _5 g& [– 一套中间件组件,比如 RTOS、 USB、 TCP/IP、图形处理。
$ h+ W$ H* u' n– 一整套例程用于演示所有嵌入式软件功能。, l, b! q- @' Y" e% J/ [1 p6 `5 Z
2 j4 x1 ^) z' y& [2 I7 U

: ]0 y+ b5 Q% D  }, Y; P, c LQ7RT_8S~I$CJ1T4L~99$)O.png % x  r7 ~; T+ Z1 H0 G* {* r& {
* j3 z( k9 _3 H8 U* B9 ?  ~; g0 Y
: X9 l$ {7 {6 x; o' p5 f1 [9 A. [
2 简介+ }/ ~/ U9 ]  C- l" w) J
本文档描述 STM32Cube 的 USB 的主机库中间件模块。
. j7 j! Y! p% ?1 S0 A0 FUSB 主机库处于 STM32Cube USB 主机 HAL 驱动之上。该库提供用于访问各类 USB 设备的 API。
, h% `6 L0 s! BUSB 主机模块可用于实现主要的 USB 类。
' g6 i/ K0 i6 ^- Z3 b+ G5 q% f7 M( E* J• 大容量存储类 (MSC) • 人机接口鼠标与键盘类 (HID) • 通信设备类 (CDC) • 音频类 (AUDIO) • 媒体传输协议类 (MTP)
# @4 a+ }: ?# H& M1 [' W0 V除了以上所列的类以外,用户还能通过库提供的 API 来实现自己的应用类别。0 Q& z/ @  D! J% [& K) P; K3 c) p( R
该库可单独运行也可以运行在 RTOS 模式之下。该库还支持多实例,比如可以在两个或更多的 USB 主机模块上工作。% j8 t# b, ^, ^$ a' M

4 K, f+ M: o6 ?6 F( k$ F# u* A

8 b! M. \# A# w7 X+ l. K8 ~& c @9}SRXPF0LZ_S@QEFDLR2K2.png
( |0 c; q$ {% }) L1 ^2 U  r/ c/ y$ ~% C
3 USB 主机库架构与文件组织
/ i3 Y4 S% j6 k6 m1 x3.1 USB 主机库架构

6 ?% w- ~! T& ?# r" z& V0 j9 H9 b" ^; |8 g
CE`9$UX_S@0JCZOTV$I2V(N.png : m6 K, S+ g  F
6 ^; d  k! S) N" N
如 图 3 所示, USB 主机库分为两个主要部分:内核部分和类相关的驱动部分。
' ^: x! q8 z3 l" R5 _' U2 n主机内核用于处理库的内核服务,这些服务主要用于:" V4 o. t+ p$ S* w
• 设备的连接 / 断连管理与标准枚举。
& c! s! A" W7 [( I* b• 主机管道控制与 USB 传输管理 (控制、中断、批量、同步)。& j3 Y! O3 U+ I3 q4 ]
内核数据块被细分为两个主要子数据块:+ L7 U) k) \1 s
• 被用户应用或类驱动所调用的内核 API。 • 处理主机状态机的内核过程。类驱动用于实现各种 USB 类。: O7 U* k, v9 {  f

! J+ ^8 B1 e: g# h$ B% N7 t这些类驱动包括:
8 b4 e% r& g& c( }• 一套类专用的 API (比如 disk_read、 disk_write),可在应用层调用。6 g7 a% n! j( P+ h% r
• 一个类处理程序,由内核主机状态机 (内核过程)所调用,用于处理类操作 (类的初始化、解除初始化、类过程)。: t6 k4 L& F% @, n
主机内核和类驱动在经历某些已定义事件 (比如设备的连接 / 断连,数据接收)后,会调用用户回调函数。% u( ?2 U$ b( v0 I
USB 主机库利用接口层与 STM32Cube HAL 驱动相连接。
% Y, Z2 O3 A2 @) T' D0 n库中提供了实现底层接口层的模板文件。用户可以定制文件中与板支持包要求有关的内容部分。# J! L6 n* }# o* F& z! j- e
' F  k7 t; p# C
3.2 USB 主机库文件组织
' {. J% n. A+ q7 L2 @# G7 A3.2.1 USB 主机内核文件
, `' P- X, u1 N. O: C1 `USB 主机内核文件位于 Core 文件夹 (STM32_USB_Host_Library\Core)中。 表 1 列出了 2 z) F6 E" J3 `, n; }
内核文件。
* Q1 k5 ^' J6 t4 O, P0 P4 }5 ]6 _- F' a5 h

. e$ x3 ?: s7 g9 \" B: e, w  h CTOD)2N)L%V[MC[I2GVRX)F.png
2 G* G3 E# a, C: [6 p+ O

4 P( J; I; f. R0 l0 C3.2.2 USB 主机类文件
" G2 u/ _# k* h) @表 2 列出了位于 Class 文件夹 (TM32_USB_Host_Library\Core)中的类文件: b% w/ ]# J0 \

) K" F0 D8 }/ |4 G7 Y
9 z2 A( K4 Q: b2 c0 E2 d0 v
Z0)ITY4NT]L4)26IH0(W17Y.png
8 ~- x( K  U1 u5 Y# u3 [
% ^1 q: |# ^! y& F7 h% J
$ @6 m7 x6 w; h6 c4 |完整版请查看:附件! H+ a' R1 d  E* a5 u5 c- x

5 O1 R) Q% G' n* g- a' z4 I

DM00105256_ZHV1.pdf

下载

687.54 KB, 下载次数: 7

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

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版