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

    文章

    6811

    浏览量

    147646
  • USB接口
    +关注

    关注

    9

    文章

    672

    浏览量

    54987
  • 中断处理
    +关注

    关注

    0

    文章

    92

    浏览量

    10891
  • stm32f1
    +关注

    关注

    1

    文章

    53

    浏览量

    12039
  • CRC效验
    +关注

    关注

    0

    文章

    30

    浏览量

    1072
收藏 人收藏

    评论

    相关推荐

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

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

    请问使用STM32F1能实现USB和fatfs同时访问SD卡吗?

    使用STM32F1能实现USB和fatfs同时访问SD卡吗,想实现1S写一次数据到SD卡,同时实现随时插USB线连接电脑查看数据,分开都已实现,一起的话就是实现不了。请各位大神指点指点
    发表于 04-23 07:48

    STM32f1的时钟系统简介

    STM32f1时钟系统一、祭出STM32F1的官方时钟框图二、寄存器说明1、时钟控制寄存器RCC_CR第0位:HSION(0,关闭;1,开启
    发表于 08-02 09:04

    STM32F1的CPU型号

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

    Stm32F1系统时钟的结构

    Stm32F1系统时钟的结构
    发表于 08-12 08:02

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

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

    STM32f1时钟系统是由哪些部分组成的

    STM32f1时钟系统是由哪些部分组成的?STM32f1时钟系统有哪些寄存器?
    发表于 09-24 09:50

    如何对STM32F1 PWM外设的寄存器进行配置呢

    PWM波是什么意思?如何对STM32F1 PWM外设的寄存器进行配置呢?
    发表于 11-15 07:18

    STM32F1USB串口该怎样去使用呢

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

    怎样去识别STM32F1系列产品及编程呢

    STM32F1系列产品识别以及编程时容量识别STM32F1系列产品识别编程时容量识别STM32F1系列产品识别例如:STM32F103VET6STM32代表ARM Cortex-M内核
    发表于 12-06 07:40

    STM32F1外部中断简介

    开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、 STM32F1 外部中断简介我们首先讲解 STM32F1 IO 口中断的一些基础概念。STM32F1 的每个 IO的每个
    发表于 12-09 07:26

    STM32F1系统架构是由哪些部分组成的

    STM32F1系统架构是由哪些部分组成的?STM32F1的GPIO端口时钟使能是什么意思?
    发表于 12-10 06:31

    STM32F1常用的外设都有哪些呢

    怎样去编写STM32F1的RCC程序代码呢与STM32F1的GPIO相关参数有哪些呢?
    发表于 01-25 06:39

    STM32F1来实现Virtual_COM_Port虚拟串口

    一、前言原来STM32USB开发很复杂,在标准库上移植USB库需要修改不少地方,但是现在用HAL库,配合CubeMX就能快速生成USB工程了,这里用STM32F1来实现
    发表于 02-22 06:11

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

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