0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F1 USB外设在USB系统的位置

冬至子 来源:一个早起的程序员 作者:一个早起的程序员 2023-07-17 15:43 次阅读

1

STM32F1 USB外设在USB系统的位置

STM32F1 USB外设实现了USB2.0全速总线和APB1总线间的接口。看不懂的话看下图。

图片

2

STM32F1 USB外设功能描述

USB外设为PC主机和微控制器所实现的功能之间提供了符合USB规范的通信连接。PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问。这块专用数据缓冲区的有效大小由所使用的端点数目和每个端点最大的数据包大小所决定(总共有16端点,PMA大小为512字节,可以用多少拿多少,也可以全用),所有端点共享用512字节缓冲区,最多可用于16个单向或8个双向端点。USB模块同PC主机通信,根据USB规范实现令牌包的检测,数据发送/接收的处理,和握手包的处理。整个传输的格式由硬件完成,其中包括CRC的生成和校验。

也就是说16个端点共享一个512字节的缓冲区,我们可以理解为USB HOST就是通过对这些缓冲区的读写来实现和设备的数据交互,其实原理大概就是如此。 如果主机发送数据给设备 ,设备会把USB外设接收的数据放入缓冲区,完毕之后通知CPU读取数据了, 如果主机读取USB设备的数据 ,CPU会把数据放到缓冲区,然后告诉USB外设可以发送数据了,USB外设会把缓冲区的数据通过总线发送给主机。

2

STM32F1 USB外设主要特征

1.符合USB2.0全速设备的技术规范。

2.可配置1到8个USB双向端点,我们可以理解为8个IN端点和8个OUT端点,也就是每一个双向端点可以被配置为一个IN端点和一个OUT端点,但是这两个端点共用一个端点寄存器,两个端点的类型必须是一致的(控制端点、中断端点、批量端点、同步端点)。

3.外设硬件自动为每一个PID和Packet字段生成CRC效验,并和其他字段组成一个完整的USB Packet。

4.支持控制传输、中断传输、同步传输、批量传输。

5.支持同步传输和批量传输双缓冲机制,比如说我们采集ADC或者接收外部传感器的数据时必须保持数据的完整性,就可以使用双缓冲机制防止丢数。

6.支持对自己的挂起和恢复操作。

7.帧锁定时钟脉冲生成。当收到一个SOF帧开始包,可以生成一个脉冲信号给其他模块使用,如果SOF中断使能,会进入SOF中断处理函数。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7482

    浏览量

    151014
  • USB接口
    +关注

    关注

    9

    文章

    699

    浏览量

    55569
  • 中断处理
    +关注

    关注

    0

    文章

    94

    浏览量

    10956
  • stm32f1
    +关注

    关注

    1

    文章

    56

    浏览量

    12182
  • CRC效验
    +关注

    关注

    0

    文章

    30

    浏览量

    1093
收藏 人收藏

    评论

    相关推荐

    STM32F1系列单片机的时钟系统

      这是stm32的时钟系统,时钟与单片机的关系就好比心脏与人的关系一样,它为单片机的运行提供时间基准。STM32F1系列单片机的时钟树请看图1
    发表于 03-23 17:44 2820次阅读
    <b class='flag-5'>STM32F1</b>系列单片机的时钟<b class='flag-5'>系统</b>

    stm32f1做的usb键盘,连电脑无法识别怎么解决?

    stm32f1做的usb键盘,连电脑无法识别
    发表于 04-11 08:19

    STM32F1的CPU型号

    在讲解本节前,笔者先声明下,笔者在写这套教程前,参看了很多开发板,目前手头上的STM32F1不下十余种,每一块板子最大的区别就是CPU型号不同,外设不同,其最小系统都是一样的。外设这个
    发表于 08-06 06:41

    STM32F1时钟系统简介与相关配置

    :芯片系统内部的时钟,程序运行的速度由他决定。系统时钟可来源于HSI,HSE,PLL时钟▶5个蓝色方形为STM32F1系列芯片的时钟源(时钟源即时钟的来源, 芯片中所有的时钟,包括系统
    发表于 08-18 07:05

    STM32F1USB串口该怎样去使用呢

    STM32F1USB串口该怎样去使用呢?与STM32F1USB串口基本配置相关的寄存器有哪些呢?
    发表于 12-06 07:09

    STM32F0和STM32F1差异

    带来的额外工作。如果您的产品需要USB外设,现在就可以订购一款STM32F070超值系列MCU。 STM32F0x1系列MCU实现了高度的功能集成,提供多种存储容量和封装的选择,为成本
    发表于 08-02 21:46 1.6w次阅读

    STM32F1系列芯片中文参考手册

    STM32F1系列芯片中文参考手册(嵌入式开发培训教程)-STM32F1系列芯片的中文用户手册
    发表于 07-30 09:32 215次下载
    <b class='flag-5'>STM32F1</b>系列芯片中文参考手册

    STM32F1官方手册资料(中英文)

    STM32F1官方手册资料(中英文)
    发表于 11-05 16:28 69次下载

    STM32F1系列产品识别以及编程时容量识别

    STM32F1系列产品识别以及编程时容量识别STM32F1系列产品识别编程时容量识别STM32F1系列产品识别例如:STM32F103VET6STM32代表ARM Cortex-M内核
    发表于 11-23 18:21 12次下载
    <b class='flag-5'>STM32F1</b>系列产品识别以及编程时容量识别

    STM32F1F4的区别

    STM32F1F4的区别
    发表于 12-04 13:51 24次下载
    <b class='flag-5'>STM32F1</b>和<b class='flag-5'>F</b>4的区别

    STM32f1时钟系统整理

    STM32f1时钟系统一、祭出STM32F1的官方时钟框图二、寄存器说明1、时钟控制寄存器RCC_CR第0位:HSION(0,关闭;1,开启
    发表于 12-14 19:05 3次下载
    <b class='flag-5'>STM32f1</b>时钟<b class='flag-5'>系统</b>整理

    【解决方案】STM32F107VC单片机下运行STM32CubeMX生成的USB_OTG Mass Storage工程,无法识别USB设备的解决办法

    这是因为:CubeMX生成的代码里面,没有响应OTG_FS_IRQn中断。USB设备模式的电路如下。该电路适合所有的STM32型号。红框部分为上拉电阻,STM32F1(如STM32F
    发表于 12-28 19:52 4次下载
    【解决方案】<b class='flag-5'>STM32F</b>107VC单片机下运行<b class='flag-5'>STM32</b>CubeMX生成的<b class='flag-5'>USB</b>_OTG Mass Storage工程,无法识别<b class='flag-5'>USB</b>设备的解决办法

    AN3427_从STM32F1移植到STM32F2的应用手册

    AN3427_从STM32F1移植到STM32F2的应用手册
    发表于 11-21 17:06 10次下载
    AN3427_从<b class='flag-5'>STM32F1</b>移植到<b class='flag-5'>STM32F</b>2的应用手册

    AN4904_从STM32F1STM32F4的软件移植

    AN4904_从STM32F1STM32F4的软件移植
    发表于 11-21 17:06 3次下载
    AN4904_从<b class='flag-5'>STM32F1</b>到<b class='flag-5'>STM32F</b>4的软件移植

    STM32F1系列MCU硬件电路USB/CAN接口设计

    STM32F1系列MCU支持USB2.0接口,查阅芯片规格书知道,当使用全速USB时,需要在信号线DP上上拉1.5kΩ至3.3V,详细如下图圈出的note所示。
    发表于 09-27 14:43 5247次阅读
    <b class='flag-5'>STM32F1</b>系列MCU硬件电路<b class='flag-5'>USB</b>/CAN接口设计