当前位置: 首页 > news >正文

STM32外设学习之USB

目录

1. 文档概述

1.1 目的

1.2 适用范围

2. USB技术简介

2.1 基本概念

2.2 发展历史

3. 硬件规范

3.1 接口类型

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

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

4.1 Host(主机)

4.2 Device(设备)

4.3 关键区别

5. 常见问题

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

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

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

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.019961.5 Mbps低速设备支持
USB 2.02000480 Mbps高速模式(Hi-Speed)
USB 3.2201720 Gbps双通道超高速
USB4201940 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为例)

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

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)引脚检测方向并切换信号通路。
     

http://www.xdnf.cn/news/1025785.html

相关文章:

  • 手搓一个记录复制记录的软件,方便快速找到之前复制内容
  • grubby命令详解
  • Spring Boot的Security安全控制——认识SpringSecurity!
  • LangChain--(2)
  • 【测试开发】函数进阶-纯函数、内置函数、匿名函数、偏函数
  • 梨泛转录组-文献精读145
  • 基于sample_aiisp再创建一路 h264编码流,和jpg的编码流
  • BugKu Web渗透之秋名山车神
  • 高效解决Java内存泄漏问题:方法论与实践指南
  • 解决Avantage 6.0版本以上峰拟合 峰显示不全的问题
  • 2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)
  • windows 电脑如何寻找 自己电脑上的 mac 地址
  • Linux cgroup 技术
  • 语法疫苗:SynCode如何为LLM生成装上“防崩溃引擎”
  • 学习笔记:Redis入门
  • 数学中 “熵“ 的奇妙世界
  • 【深入剖析】攻克 Java 并发的基石:Java 内存模型 (JMM) 原理与实践指南
  • R2S2:通过现实世界现成的技能空间释放人形机器人的潜力
  • 【考研数学:高数8】一元函数积分学的概念与性质
  • 基于Java+Swing实现餐厅点餐系统(含课程报告)
  • 【大模型推理】CTA与SM关系
  • 玩转计算机视觉——按照配置部署paddleOCR(英伟达环境与昇腾300IDUO环境)
  • Python 训练营打卡 Day 50
  • 网盘直链解析网页版
  • Java多线程:为什么wait()必须用循环而非if?
  • Python 学习路线图:从入门到精通的完整指南
  • 泰国电商系统简单纪要
  • atcoder [ABC271D] Flip and Adjust
  • 前端面经整理【2】
  • 【无标题】二维拓扑色动力学模型:数学物理基础与可行性论证