首页 > 其他分享 >STM32单片机芯片与内部74 USB 简介 控制器 通用寄存器 端点寄存器 缓冲区描述表

STM32单片机芯片与内部74 USB 简介 控制器 通用寄存器 端点寄存器 缓冲区描述表

时间:2025-01-14 10:57:08浏览次数:3  
标签:通用寄存器 USB 中断 STM32 单片机 分组 端点 寄存器 缓冲区

目录

一、USB 简介

二、STM32 USB控制器

三、通用寄存器

1、USB控制寄存器(USB_CNTR)

2、USB中断状态寄存器(USB_ISTR)

3、USB帧编号寄存器(USB_FNR)

5、USB设备地址寄存器(USB_DADDR)

6、USB分组缓冲区描述表地址寄存器(USB_BTABLE)

四、端点寄存器

1、USB 端点n寄存器(USB_EPnR), n=[0..7]

2、接收状态编码

3、端点类型编码

4、端点特殊类型定义

5、发送状态编码

五、缓冲区描述表

1、发送缓冲区地址寄存器 n(USB_ADDRn_TX)

2、发送数据字节数寄存器 n(USB_COUNTn_TX)

3、接收缓冲区地址寄存器 n(USB_ADDRn_RX)

4、接收数据字节数寄存器 n(USB_COUNTn_RX)

5、分组缓冲区大小的定义


一、USB 简介

        USB ,是英文 Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。 USB 是在 1994 年底由英特尔、康柏、 IBM、Microsoft 等多家公司联合提出的。

        USB 发展到现在已经有 USB1.0/1.1/2.0/3.0 等多个版本。目前用的最多的就是 USB1.1 和USB2.0, USB3.0 目前已经开始普及。 STM32F103 自带的 USB 符合 USB2.0 规范。

        标准 USB 共四根线组成,除 VCC/GND 外,另外为 D+,D-; 这两根数据线采用的是差分电压的方式进行数据传输的。在 USB 主机上, D-和 D+都是接了 15K 的电阻到低的,所以在没有设备接入的时候, D+、 D-均是低电平。而在 USB 设备中,如果是高速设备,则会在 D+上接一个 1.5K 的电阻到 VCC,而如果是低速设备,则会在 D-上接一个 1.5K 的电阻到 VCC。这样当设备接入主机的时候,主机就可以判断是否有设备接入,并能判断设备是高速设备还是低速设备。接下来,我们简单介绍一下 STM32 的 USB 控制器。

二、STM32 USB控制器

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

        每个端点都有一个缓冲区描述块,描述该端点使用的缓冲区地址、大小和需要传输的字节数。当 USB 模块识别出一个有效的功能/端点的令牌分组时, (如果需要传输数据并且端点已配置)随之发生相关的数据传输。 USB 模块通过一个内部的 16 位寄存器实现端口与专用缓冲区的数据交换。在所有的数据传输完成后,如果需要,则根据传输的方向,发送或接收适当的握手分组。在数据传输结束时, USB 模块将触发与端点相关的中断,通过读状态寄存器和/或者利用不同的中断来处理。

USB 的中断映射单元:将可能产生中断的 USB 事件映射到三个不同的 NVIC 请求线上:

        1、 USB 低优先级中断(通道 20):可由所有 USB 事件触发(正确传输, USB 复位等)。固件在处理中断前应当首先确定中断源。

        2、 USB 高优先级中断(通道 19):仅能由同步和双缓冲批量传输的正确传输事件触发,目的是保证最大的传输速率。

        3、 USB 唤醒中断(通道 42):由 USB 挂起模式的唤醒事件触发。

三、通用寄存器

1、USB控制寄存器(USB_CNTR)

2、USB中断状态寄存器(USB_ISTR)

3、USB帧编号寄存器(USB_FNR)

5、USB设备地址寄存器(USB_DADDR)

6、USB分组缓冲区描述表地址寄存器(USB_BTABLE)

四、端点寄存器

1、USB 端点n寄存器(USB_EPnR), n=[0..7]

2、接收状态编码

3、端点类型编码

4、端点特殊类型定义

5、发送状态编码

五、缓冲区描述表

1、发送缓冲区地址寄存器 n(USB_ADDRn_TX)

2、发送数据字节数寄存器 n(USB_COUNTn_TX)

3、接收缓冲区地址寄存器 n(USB_ADDRn_RX)

4、接收数据字节数寄存器 n(USB_COUNTn_RX)

5、分组缓冲区大小的定义

标签:通用寄存器,USB,中断,STM32,单片机,分组,端点,寄存器,缓冲区
From: https://blog.csdn.net/qq_39376872/article/details/144497625

相关文章

  • 【江协STM32】11-2/3 W25Q64简介、软件SPI读写W25Q64
    1.W25Q64简介W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景存储介质:NorFlash(闪存)时钟频率:80MHz/160MHz(DualSPI)/320MHz(QuadSPI)存储容量(24位地址):   W25Q40:    4Mbit/512KByte   W2......
  • 基于STM32C6T6的智能小车设计:自动寻迹、避障与无线控制全解析(含有源码资料)
    一、设计要求:1.1功能要求:设计并制作一个基于STM32C6T6核心板的智能小车,具备自动寻迹、避障和无线控制功能。小车应能够沿着不规则的黑色轨迹行驶,遇到障碍物时能够自动绕行,并可通过蓝牙模块进行无线控制。自动寻迹:小车应能够沿着不规则的黑色轨迹行驶,根据五路灰度循迹模块的......
  • 《STM32开发:深入解析 TIM2->CCR2 与 TIM2.CCR2 的区别与应用》
    前言在最初学习STM32的过程中,由于知识不进脑子,经常边学边忘,并且C语言学习的也比较浅,涉及到指针地址等方面的知识,内心就有点排斥。第一次遇到->和.这两种操作符时,我只是知道按照示例“照着用”,但并不清楚它们之间的具体区别,也没有深入理解它们的内在逻辑。这样的学习方......
  • STM32之LWIP网络通讯设计-下(十五)
    STM32F407系列文章-ETH-LWIP(十五)目录前言一、软件设计二、CubeMX实现1.配置前准备2.CubeMX配置1.ETH模块配置2.时钟模块配置3.中断模块配置4.RCC及SYS配置5.LWIP模块配置3.生成代码1.main文件2.用户层源文件3.用户层头文件4.效果演示三、移植实现总结......
  • 基于STM32F103标准库实现FFT,并实现音乐频谱绘制
    整个工程文件是在江科大的OLED显示屏OLED-V2.0版本IIC四针脚接口UTF-8的工程上编写的,在屏幕显示过程中,只用到了OLED显示屏的绘制直线和绘制像素点两个函数(注意,显示屏的绘制函数坐标可以任意指定,而不是按页写入。任一屏幕只要有上述两个函数均可使用。工程接线:STM32F103C8T6......
  • 【江协STM32】11-1 SPI通信协议
    SPI(SerialPeripheralInterface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(SerialClock)、MOSI(MasterOutputSlaveInput)、MISO(MasterInputSlaveOutput)、SS(SlaveSelect)同步,全双工支持总线挂载多设备(一主多从)         1. 硬件电路所有SPI设......
  • STM32 HAL库函数入门指南:从原理到实践
    1STM32HAL库概述STM32HAL(HardwareAbstractionLayer)库是ST公司专门为STM32系列微控制器开发的一套硬件抽象层函数库。它的核心设计理念是在应用层与硬件层之间建立一个抽象层,这个抽象层屏蔽了底层硬件的具体实现细节,为开发者提供了一套统一的、标准化的应用程序接口(API)......
  • 基于51单片机的热水器控制系统
       随着社会发展迅速,人们的生活水平都有所提高,目前家用电热水器与人们的生活息息相关。因此,我设计了一款基于51单片机的智能电热水器。设计主要是以STC89C51单片机为核心。在设计中包含了温度传感器、水位传感器、液晶显示,阈值设置,声光报警,自动恒温加水控制。本设计是以单......
  • 基于ESP32-S3单片机的OTA升级
    文章目录前言1.ESP32的OTA升级是什么?2.OTA升级的主要步骤3.优点4.ESP32进行OTA升级的机制5.OTA升级整体过程总结系列文章基于ESP32-S3单片机的OTA升级之移植官方代码(一)基于ESP32-S3单片机的OTA升级之巴法云平台(二)基于ESP32-S3单片机的OTA升级之整理官方工......
  • 51单片机学习日记:LED灯点亮
    今天对单片机的led灯点亮做讲解;在我们购买单片机后可以向商家要一份开发板的原理图,这个是必须的,没有的话没办法做项目。我们学习过LED灯的点亮需要高低电平,通过上面的原理图我们就可以知道,LED灯的正极有一个电源,如果我们想点亮D1,就需要让P2内的寄存数为:11111110;知道这个后......