STM32外设学习之USB

目录

[1. 文档概述](#1. 文档概述)

[1.1 目的](#1.1 目的)

[1.2 适用范围](#1.2 适用范围)

[2. USB技术简介](#2. USB技术简介)

[2.1 基本概念](#2.1 基本概念)

[2.2 发展历史](#2.2 发展历史)

[3. 硬件规范](#3. 硬件规范)

[3.1 接口类型](#3.1 接口类型)

[3.2 引脚定义(以USB 2.0 Type-A为例)](#3.2 引脚定义(以USB 2.0 Type-A为例))

[4. Device(设备)与Host(主机)的角色](#4. Device(设备)与Host(主机)的角色)

[4.1 Host(主机)](#4.1 Host(主机))

[4.2 Device(设备)](#4.2 Device(设备))

[4.3 关键区别](#4.3 关键区别)

[5. 常见问题](#5. 常见问题)

Q1:一个USB系统中可以有多个Host吗?

Q2:全速设备能插在高速Host上吗?

Q3:如何识别设备是全速还是高速?

[Q4:USB 3.0接口为何向下兼容2.0?](#Q4:USB 3.0接口为何向下兼容2.0?)

Q5:Type-C接口如何识别正反插?

1. 文档概述

1.1 目的

本文档提供**USB(通用串行总线)**技术的全面说明,包括协议标准、硬件接口、数据传输规范及开发指南。

1.2 适用范围

  • USB 2.0/3.0/3.1/4.0等版本

  • Type-A/B/C等接口类型


2. USB技术简介

2.1 基本概念

  • 定义:USB(Universal Serial Bus)是一种标准化连接接口,用于设备间的数据传输与电力供应。

  • 特点:热插拔、即插即用、多设备级联、支持多种传输模式。

2.2 发展历史

版本 发布时间 速率 关键改进
USB 1.0 1996 1.5 Mbps 低速设备支持
USB 2.0 2000 480 Mbps 高速模式(Hi-Speed)
USB 3.2 2017 20 Gbps 双通道超高速
USB4 2019 40 Gbps 基于雷电3协议

USB 定义了三种速度模式,用于适应不同设备的性能需求:

模式 速率 典型应用场景
低速(Low Speed) 1.5 Mbps 键盘、鼠标等低数据量设备
全速(Full Speed) 12 Mbps 音频设备、老式U盘、打印机
高速(High Speed) 480 Mbps 大容量存储、高速摄像头
  • **全速模式(Full Speed)**是USB 的中间档速率,兼顾功耗和性能,适合中等数据吞吐量的设备。

3. 硬件规范

3.1 接口类型

类型 示意图(可插入图片) 特点
USB Type-A !Type-A 标准主机接口,广泛兼容
USB Type-C !Type-C 正反插、支持USB PD快充

3.2 引脚定义(以USB 2.0 Type-A为例)

引脚 信号 颜色 功能
1 VCC 红 电源(+5V)
2 D- 白 数据负线
3 D+ 绿 数据正线
4 GND 黑 地线

4. Device(设备)与Host(主机)的角色

USB通信基于主从架构,设备与主机有明确的角色分工:

4.1 Host(主机)

  • 功能:

    • 控制总线上的所有通信(发起数据传输请求)。

    • 为连接的设备提供电源(默认5V/500mA)。

    • 枚举和管理设备(如分配地址、加载驱动)。

  • 典型例子:

    • 电脑、智能手机(作为Host时)、USB集线器(Hub)。

4.2 Device(设备)

  • 功能:

    • 响应主机的指令,被动传输数据。

    • 通过描述符(Descriptor)向主机报告自身功能(如设备类型、支持的协议)。

  • 典型例子:

    • U盘、鼠标、键盘、打印机等外设。

4.3 关键区别

特性 Host(主机) Device(设备)
通信控制权 主动发起请求 被动响应请求
电源供应 提供电源(VBUS) 消耗电源
典型接口芯片 EHCI(USB 2.0主机控制器) 如FT232(USB转串口芯片)

5. 常见问题

Q1:一个USB系统中可以有多个Host吗?

  • 否 。标准USB协议下,一条总线只能有一个Host(通过Root Hub管理多个Device)。但可通过**OTG(On-The-Go)**协议实现设备临时切换为主机(如手机连接U盘)。

Q2:全速设备能插在高速Host上吗?

  • 可以。USB 2.0高速Host会自动降速匹配全速/低速设备(通过检测D+/D-线上的上拉电阻位置)。

Q3:如何识别设备是全速还是高速?

  • 硬件上:全速设备的D+线上拉电阻(1.5kΩ),高速设备初始为全速,后续通过主机协商切换。

  • 软件上:通过描述符中的bcdUSB字段判断(如0x0200表示USB 2.0)。

Q4:USB 3.0接口为何向下兼容2.0?

  • 通过独立的数据通道(蓝色引脚保留2.0信号线)。

Q5:Type-C接口如何识别正反插?

  • CC(Configuration Channel)引脚检测方向并切换信号通路。
相关推荐
一隅论数智2 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20162 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本3 天前
离散数学第六课
学习·离散数学
优信电子3 天前
AIT1001 非接触式红外测温模块 STM32 驱动开发实战:从引脚到代码全解析
stm32·嵌入式·温度传感器·红外测温·非接触式测温·ait1001
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
深圳老胡3 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网