stm32f107 usbh主模式库解析 联系客服

发布时间 : 星期六 文章stm32f107 usbh主模式库解析更新完毕开始阅读32e7995fc281e53a5802fffc

简介

STM32F105/7 USB主模式库的目的是为USB主模式应用程序开发提供一个框架。 库代表了在STM32F105/7之上的 USB OTG周边底层驱动。它实现必要的软件块,目的是便于USB的主模式应用程序开发。

STM32F105/7USB主模式协议栈的库支持以下两个USB标准应用类: ■大批量存储类(MSC)用于访问USB闪存pendrives ■人机接口设备类(HID)用于键盘和鼠标设备 目录

1 USB的主模式包文件夹结构。..................6 2 USB主模式的库结构................................8 2.1库的结构框图............................8 2.2库内核的描述。................................9 2.2.1内核状态机。........................................9 2.2.2设备枚举。......................................10 2.2.3控制传输状态机。..............................11 2.2.4 USB的I / O请求模块。..................................11 2.2.5主模式通道控制模块。..............................12 2.3类驱动程序。..............................................13

2.3.1 USB大批量存储类(MSC)驱动程序。........................13

2.3.2 USB人机接口设备类(HID)鼠标键盘设备驱动。.......................................17 3库用户API和回调函数。..............................................................................20 3.1库用户API。..............................................................................................20 3.2用户的回调函数。..............................................................................................20 3.2.1类的回调函数。..............................................................................................20 3.2.2独立类的回调函数。.......................................................................................22

4演示固件。。。。。。……. . 25

4.1大容量存储类演示。…。。。。。。。。。。。。。。。。。。。。。。。。。。。25 4.1.1软件初始化。。。。。。。。。。。。。。。。。。。。。。。。。25 4.1.2大容量存储设备枚举。。。。。。。。。。。。。。。。。。25 4.1.3访问大容量存储器内容。。。。。。。。。。。。。。。。。26

4.1.4 Flash pendrive测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。26 4.2HID鼠标和键盘演示。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。27 4.2.1初始化准备。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。27 4.2.2鼠标或键盘设备枚举。。。。。。。。。。。。。。。。。。。。。。。。27

4.2.3 .鼠标演示。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28 4.2.4键盘演示。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28 4.3演示脚本。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。28

5已知的限制。........................................29 6修订历史。..........................................30 list of表

表1 内核文件…………………………………………………………………………………7 表2 class文件…………………………7 表3 枚举请求……………………………………11

表4 USB的I / O请求模块………………………………………………………12

表5 主模式通道控制模块……………………………………………………………………12 表6 大容量存储类模块…………………………………………………………..13 表7 MSC的内核模块……………………………………………………………………15 表8 MSC BOT模块……………………………………………………………15 表9 MSC SCSI命令……………………………………………………………16 表10 MSC文件系统接口功能………………………………………………………16 表11 efsl 主API…………………………………………………………………17 表12 HID类模块……………………………………………………………………17 表13 MSC内核模块的功能…………………………………………………………18 表14 鼠标和键盘初始化和HID Report解码功能……………………………19 表15 测试U盘……………………………………………………27

表16 演示的足迹…………………………………………………………………28 表17文件修订历史………………………………………………………………30 数字表

图1。文件夹结构。......................................................6 图2。USB主模式库框图结构。..................................8 图3。内核状态机。......................................................9 图4。设备枚举。....................................................10 图5。的MSC驱动器框图结构。................................14 图6。MS设备枚举。..................................................25 图7。MS设备内容的访问。............................................…26 图8。鼠标演示。..........................................................28 图9。键盘演示。........................................................28 1 USB主模式包文件夹结构

STM32的USB主模式封装库具有以下文件结构: 图1。文件夹结构

封装库文件夹具有如下组织结构 ■库

– CMSIS:微微控制器软件接口标准文件

– STM32_USB_HOST_Library: USB主模式库文件

– STM32_USB_HOST_Driver: STM32 USB2.0 OTG 外设低电平驱动 – STM32F10x_StdPeriph_Driver:STM32标准外设驱动程序 ■项目

–_USB_HOST_EXAMPLES/HID_KBrd_Mouse: 鼠标和HID键盘演示文件 –USB_HOST_EXAMPLES/MSC: 大容量存储类的演示文件 ■公用事业

–STM32_EVAL/STM3210C_EVAL: STM3210C_EVAL evalboard功能函数 ( GPIO,液晶显示,时钟配置,……)

–Third_Party/efsl: EFSL FAT文件系统,用于大容量存储例程 USB主模式库文件结构

USB主模式库文件夹”stm32_usb_host_library”是由两个主要子文件夹构成:

■内核:该文件夹包含USB主模式库内核文件。这些文件实现必要的功能,状态机和数据结构所需的:

–设备的识别和枚举, –USB控制传输管理,

–为解决控制,大批量或中断USB事务而设立的低级功能, –USB主模式通道配置。

■类:这个文件夹包含USB类管理所必需的文件。USB主模式库支持两种USB类:

–MSC:大批量存储类

–HID:为启动鼠标和键盘设备的人机接口设备类 下表详体说明了内核文件和类文件: 表1。内核文件 File Description

usbh_core.c / .h 使内核,设备枚举和控制权转移的状态机生效 usbh_stdreq.c / .h USB标准请求需要在设备枚举(USB 9章)

usbh_ioreq.c /.h USB的I / O请求:USB事务包括控制,大批量和中断通道请求 usbh_hcs.c /.h USB主模式控制信道(信道配置,分配,释放……) usbh_def.h 在USB主模式库中广泛使用的宏定义 表2。类文件

Class File Description

usbh_hid_core.c /.h HID类管理

HID usbh_hid_mouse.c ./h HID鼠标的具体例程

usbh_hid_keyboard.c /.h HID键盘的具体例程 usbh_msc_core.c /.h 大批量存储类管理

MSC usbh_msc_bot.c ./.h BOT”Bulk-Only传输协议的实现

usbh_msc_scsi.c /.h SCSI标准命令的执行

usbh_msc_fs_interface.c ./h 一个带有文件操作系统用于文件访问的接口

2 USB主模式的库结构 2.1库框图结构

USB主模式库具有以下框图结构: 图2. USB主模式库框图结构

如上图所示, USB主模式库由两个主要部分组成:内核 和类驱动程序。

库的核心主要由五块构成: