USB的电气特性

文章目录

  • 一、USB的三种速率及状态切换图
      • 1. **附加(Attached)**
      • 2. **供电(Powered)**
      • 3. **复位(Reset)**
      • 4. **地址设置(Addressed)**
      • 5. **配置(Configured)**
      • 6. **挂起(Suspended)**
      • 状态转换示意:
      • 额外说明:
      • 状态说明:
  • 二、USB如何区分是什么设备连接上来了?
      • 1. **D+ 和 D- 的作用**
      • 2. **上拉电阻的作用**
        • **设备速率区分**
      • 3. **主机如何检测设备速率**
      • 4. **电平解释**
      • 5. **设备检测过程的总结**
      • 图示:
  • 三、低速/全速信号电平,高速信号电平


一、USB的三种速率及状态切换图

USB(通用串行总线)根据传输速率分为三种主要的速率:

  1. 低速(Low-Speed, LS)

    • 速率:1.5 Mbps(每秒1.5兆比特)
    • 应用:主要用于低带宽设备,如键盘、鼠标等简单的外设。对于数据传输要求不高的设备,低速是比较合适的选择。
    • 特点:功耗较低,数据传输速度较慢。
  2. 全速(Full-Speed, FS)

    • 速率:12 Mbps(每秒12兆比特)
    • 应用:常见于中等带宽要求的设备,如打印机、摄像头等设备。全速USB提供了比低速更快的数据传输能力。
    • 特点:适合大多数外设,性能和功耗之间的平衡较好。
  3. 高速(High-Speed, HS)

    • 速率:480 Mbps(每秒480兆比特)
    • 应用:适用于高带宽设备,如外置硬盘、视频设备、音频接口等。高速USB大幅提升了数据传输的能力,能够满足较大数据量的传输需求。
    • 特点:功耗相对较高,但数据传输速度大幅提高,常见于USB 2.0标准。

这三种速率体现了USB在不同场景下的灵活性,适用于从简单设备到复杂、高速传输设备的广泛应用场景。

在这里插入图片描述
USB(通用串行总线)设备在工作过程中,会经历一系列状态转换。这些状态帮助设备与主机(Host)协调通信,确保数据稳定传输。常见的USB状态转换如下:

1. 附加(Attached)

  • 设备通过物理连接插入USB接口。
  • 主机感知到设备插入,USB开始上电(Vbus检测),进入下一步。

2. 供电(Powered)

  • 设备在物理连接的基础上获取电源。
  • 设备可以通过USB的5V电源线获取电力,但尚未进行任何数据传输。
  • 设备仅在此时获得供电,尚未进行任何初始化或通信。

3. 复位(Reset)

  • 主机检测到新设备并发送复位信号(通过拉低数据线信号)。
  • 复位阶段设备会重新初始化所有USB状态和端点配置。
  • 复位后,设备准备与主机开始通信。

4. 地址设置(Addressed)

  • 主机为设备分配一个唯一的USB地址(从复位后的状态进入地址设置)。
  • 设备在此状态下具备通信能力,但未分配具体的功能或任务,不能进行正常的数据传输。
  • 主机通过发送“Set Address”命令为设备分配地址。

5. 配置(Configured)

  • 设备完成地址分配后,主机会请求设备描述符,了解设备的能力(例如端点、类驱动、功能等)。
  • 设备被主机识别后,主机会发送“Set Configuration”命令,配置设备。
  • 设备进入Configured状态后,开始正常工作,并能进行数据传输。

6. 挂起(Suspended)

  • 如果主机长时间没有发起任何通信请求(通常超过3ms),设备会进入低功耗的挂起状态以节省电力。
  • 在挂起状态下,设备仍保持连接但停止大部分功能,等待主机唤醒。
  • 主机可以通过发送信号(如Resume信号)唤醒设备。

状态转换示意:

    Attach↓Powered↓Reset↓Addressed↓
Configured ←→ Suspended

额外说明:

  • Error Recovery(错误恢复):如果设备在数据传输过程中出现错误或主机发送复位信号,设备会返回Reset状态,重新初始化,进行错误恢复。

状态说明:

  • Powered:设备已通电,但尚未初始化通信功能。
  • Addressed:设备被主机识别,并分配了地址,但尚未配置完成。
  • Configured:设备完成配置,可以正常通信。
  • Suspended:设备进入低功耗模式,等待主机唤醒。

这些状态转换是USB设备和主机通信的基本流程,保证了设备的识别、配置、通信以及功耗管理。

二、USB如何区分是什么设备连接上来了?

USB 使用 D+D- 这两根数据线,并通过检测它们的电平和上拉电阻,来区分连接的设备类型和速率。USB协议规定了不同类型的设备和速率如何通过这两根数据线与主机通信。

1. D+ 和 D- 的作用

  • D+D- 是USB数据传输的两根差分信号线,它们用于传递数据信号。
  • USB设备通过在这两根线上的电平变化来表示数据。
  • 主机通过检测设备在 D+D- 线上的初始状态,判断设备的类型和速率。

2. 上拉电阻的作用

每种USB速率的设备会在 D+D- 上使用上拉电阻(一般为1.5 kΩ)来区分设备的类型。通过这个上拉电阻的连接,主机可以在设备插入后自动识别设备的速率。

设备速率区分
  • 低速设备(Low-Speed, LS)

    • D- 数据线上接入一个 1.5kΩ 的上拉电阻。
    • 当主机检测到 D- 的电压被拉高到 Vbus 电平时,它就知道连接的设备是一个低速设备(1.5 Mbps)。
  • 全速设备(Full-Speed, FS)

    • D+ 数据线上接入一个 1.5kΩ 的上拉电阻。
    • 当主机检测到 D+ 的电压被拉高到 Vbus 电平时,它就知道连接的设备是一个全速设备(12 Mbps)。
  • 高速设备(High-Speed, HS)

    • 高速设备最初也是通过全速模式进行连接的,也就是说,初始时 D+ 线上有上拉电阻,表现为全速设备。
    • 然后,主机会通过专门的握手信号(称为“高速握手”)来请求设备进入高速模式(480 Mbps)。
    • 如果设备支持高速模式,它会响应主机的握手信号,并切换到高速模式。如果不支持高速模式,则继续以全速模式通信。

3. 主机如何检测设备速率

当设备插入USB接口时,主机通过以下几个步骤来检测设备的类型:

  1. 设备插入检测:主机监测到 D+D- 线上有电压变化,表明有设备连接。
  2. 识别上拉电阻
    • 主机通过监测哪一根线上有上拉电阻拉高来判断设备的速率:
      • D+ 上拉电阻 → 全速设备。
      • D- 上拉电阻 → 低速设备。
  3. 高速握手(仅适用于高速设备):如果是全速设备,主机会尝试发起高速握手信号,设备响应则进入高速模式。

4. 电平解释

USB协议使用以下两种电平:

  • 差分信号:传输数据时,USB设备通过 D+D- 上的差分信号来发送数据,差分信号传输抗干扰能力强。
  • 静态电平:主机根据D+和D-的数据线静态电平(即没有差分信号传输时的状态)来判断设备类型。例如,设备插入时上拉电阻造成的电压变化是静态电平的表现。

5. 设备检测过程的总结

  • 当USB设备插入主机时,主机会检测 D+D- 线上是否有电压被拉高。
  • 根据上拉电阻的连接位置,主机会确定设备是低速(D- 上拉)还是全速(D+ 上拉)设备。
  • 如果是全速设备,主机会尝试与设备握手,询问其是否支持高速模式,进而决定是否切换到高速传输模式。

图示:

               | D+  | D-
----------------+-----+-----
低速 (LS)      |  0  | 1.5kΩ 上拉
全速 (FS)      | 1.5kΩ 上拉 | 0
高速 (HS)      | 1.5kΩ 上拉 | 0 (初始),后续握手切换

通过这种方式,USB能够自动识别连接设备的速率,并进行相应的配置。这种机制确保了设备和主机之间的正确通信,并最大化了USB的兼容性。

USB收发器电路:

在这里插入图片描述

三、低速/全速信号电平,高速信号电平

USB协议中的各种状态和信号电平定义了数据传输的机制和设备的行为。差分信号(D+ 和 D-)在线上的电平变化用于表示不同的状态,如逻辑0、1以及控制信号。

根据下图中的表格我们就可以知道USB在这几种状态的时候D+和D-分别表现的电平状态是什么了。

低速/全速信号电平:
在这里插入图片描述

高速信号电平

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424856.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

llama网络结构及源码

目录 模型初始化 config lm_head transformer wte h rms_1/rms_2 attn c_attn c_proj 线性层mlp ln_f rope_cache mask_cache kv_caches tokenizer tokenizer初始化 tokennizer.encoder 位置编码和mask 确定最大文本长度 建立rope_cache 建立mask_cache …

C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿&…

ICM20948 DMP代码详解(23)

接前一篇文章:ICM20948 DMP代码详解(22) 上一回解析完了inv_icm20948_wakeup_mems函数,本回回到inv_icm20948_initialize_lower_driver函数中,继续往下解析。为了便于理解和回顾,再次贴出inv_icm20948_init…

闯关leetcode——26. Remove Duplicates from Sorted Array

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/ 内容 Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appear…

Framebuffer应用编程

目录 前言 LCD操作原理 涉及的 API 函数 open函数 ioctl 函数 mmap 函数 Framebuffer程序分析 源码 1.打开设备 2.获取LCD参数 3.映射Framebuffer 4.描点函数 5.随便画几个点 上机实验 前言 本文介绍LCD的操作原理和涉及到的API函数,分析Framebuffer…

Python青少年简明教程:tkinter库入门

Python青少年简明教程:tkinter库入门 tkinter是Python的标准GUI(图形用户界面)库。它提供了一种快速而简单的方法来创建GUI应用程序。tkinter是Python自带的,无需额外安装,随 Python 安装包一起提供。 在Python 3.x中…

rtems 5.3 qemu realview_pbx_a9 环境搭建:生成 rtems arm 工具链

前言 rtems 是一款比较优秀的 RTOS,官方网址 https://www.rtems.org/ 当前 rtems 最新发布的版本:rtems-5.3 版本, 下载地址 https://ftp.rtems.org/pub/rtems/releases/5/5.3/ rtems 支持的 平台也是比较多的,当前支持 STM32F4…

调制是什么,为什么

一、什么是调制、解调? 调制:将信息承载到满足信道要求的高频信号上的过程就是调制。 解调:解调是调制的逆过程,将有用的信息从高频信号中恢复出来的过程就是解调。 二、为什么需要调制? 通信是为了实现“信息”的传…

【自然语言处理】实验三:新冠病毒的FAQ问答系统

目录 前言 1.新建data_process.py 1.1导入包并定义功能模块1用来读取问题和答案FAQ的文件 1.2功能模块2:进行问题/问题列表处理(正则化,分词) 1.3功能模块3:处理输入的问题 1.4功能模块4:计算输入问题与问题…

基于双向RRT算法的三维空间最优路线规划matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 单向RRT算法 4.2 双向RRT算法 5.完整程序 1.程序功能描述 基于双向RRT(Randomly Exploring Random Trees, 随机探索随机树)算法的三维空间最优路径规划是一种解…

Java | Leetcode Java题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, new Comparator<int[]>() {public int compare(int[] person1, int[] person2) {if (person1[0] ! person2[0]) {return person2[0] - perso…

【目标检测数据集】锯子数据集1107张VOC+YOLO格式

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1107 标注数量(xml文件个数)&#xff1a;1107 标注数量(txt文件个数)&#xff1a;1107 标注…

什么是java的spi?

Java SPI&#xff08;Service Provider Interface&#xff09;是一种提供服务发现机制的设计模式&#xff0c;允许在运行时动态地发现、加载和替换服务的实现。SPI机制的核心思想是&#xff1a;通过接口定义服务&#xff0c;并且使用外部的实现类来提供该服务的具体功能。 目录…

Github 2024-09-16 开源项目周报 Top14

根据Github Trendings的统计,本周(2024-09-16统计)共有14个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目2Go项目2JavaScript项目2Shell项目2Rust项目2C++项目2Jupyter Notebook项目1C#项目1React: 用于构建用户界面的JavaS…

[数据集][目标检测]智慧交通铁轨裂缝检测数据集VOC+YOLO格式4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2709 标注数量(xml文件个数)&#xff1a;2709 标注数量(txt文件个数)&#xff1a;2709 标注…

Java开发与实现教学管理系统动态网站

博主介绍&#xff1a;专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的可以…

量化交易backtrader实践(一)_数据获取篇(3)_爬取数据

这一节实践其实是在上一节之前进行的&#xff0c;背景原因是因为tushare.pro的积分不够高&#xff0c;当时还没有接触到使用akshare等其他接口&#xff0c;因此对于全股票列表用的是去网页上爬的方式获得的&#xff0c;也就借此机会&#xff0c;再复习了一遍爬虫的相关知识。 …

Mybatis中Like模糊查询三种处理方式

目录 Mybatis中Like模糊查询三种处理方式 1.通过单引号拼接${} 1&#xff09;mapper接口 2&#xff09;Mapper.xml 3&#xff09;测试代码 4) 测试结果 2.通过concat()函数拼接(个人推荐使用这种) 1&#xff09;mapper接口 2&#xff09;Mapper.xml 3&#xff09;测试代码 4) 测…

寄存器的位数据调测方法(摩尔信使MThings)

图中是一种典型MODBUS寄存器位数据定义方式&#xff0c;这种数据定义主要基于数据紧凑设计原则&#xff08;精确位宽分配&#xff09;&#xff0c;将明确含义&#xff08;取值范围&#xff09;的字段分配最小必要的数据长度&#xff0c;进而减少寄存器总数&#xff0c;提升数据…

基于AgentUniverse在金融场景中的多智能体应用探索

基于AgentUniverse在金融场景中的多智能体应用探索 1.基于大模型智能体超级状态机 智能体、多智能体都是当下的技术热点,但作为一个技术人应该理解,所有的技术都有自己所针对的问题、及其能力边界,并不存在普适的、放诸业务场景皆 work 的技术方案。在这里尝试区分,从大模…