USB 连接检测

news2024/10/7 6:46:05

文章目录

  • 连接检测
    • 连接状态的检测
      • 带 Vbus 检测功能的 USB 设备
      • 不带 Vbus 检测功能的 USB 设备
    • 连接前的初始化
      • 设备端
      • 主机端
    • 建立连接过程
    • 手册规定检测时间及电平标准

连接检测

USB 协议支持热插拔的特性决定了 USB 主机必须能够动态地检测 USB 设备的连接和断开,这是 USB 设备和 USB 主机协同工作的前提。

连接状态的检测

对于 USB 设备或者 USB 主机,如果不能检测到对方的连接,USB 的功能也就无从谈起,所以 USB 设备检测是否连接到主机以及 USB 主机检测是否有 USB 设备是 USB 协议能够进行后续工作的前提。
USB 设备和 USB 主机的整个连接过程分为两个阶段:

  • 连接前的初始化过程
  • 建立连接的过程

带 Vbus 检测功能的 USB 设备

在这里插入图片描述

不带 Vbus 检测功能的 USB 设备

在这里插入图片描述

连接前的初始化

设备端

USB2.0 协议规范规定,任何时候 USB 设备都不能向 Vbus 供电,确保在 USB 设备连接到 USB 主机之前其 Vbus 小于 400mV。当 USB 设备连接到 USB 主机时,USB 设备就可以通过检测 Vbus 的变化来确定连接状态。对于不支持 Vbus 检测的 USB 设备,USB2.0 规范并没有定义其连接的检测机制。在实际开发过程中可以使用 USB 主机发出的第一个复位信号(RESET)来进行检测。在这种情况下,USB 设备端上拉电阻必须要预先挂载,同时需要保证:

  • 当 Vbus 被移除或者低于有效值 Vbsvld(4.01V)时,全速设备(上拉电阻在 D+) D- 要保持 SE0 状态,低速设备(上拉电阻在 D-)D+ 要保持 SE0 状态。
  • 当 Vbus 达到有效值 Vbsvld(4.01V)时,D+(全速) 或者 D-(低速) 上的电压要达到主机检测到设备连接的最小电压2.0V。

主机端

在正常工作时,无论 USB 设备是否连接,USB 主机都需要维持 Vbus 有效,并保证 USB 设备接入前 DP 和 DM 保持 SE0 状态(一般而言,主机端的 15K 下拉电阻能够保证这一点)。这样设备端就可以通过 Vbus 来检测到连接事件,进而双方开始建立连接。

建立连接过程

当 USB 设备和 USB 主机初始化并处于正确的初始状态后,USB 设备连接到 USB 主机上的过程如下:

  • 由于主机端始终维持 Vbus 有效,使得 USB 设备端的 Vbus 从 0V 变化到 5V。
  • 对于没有 Vbus 检测功能的 USB 设备,由于其上拉电阻已经预先挂载,当 Vbus 达到有效值 4.01V 后,D+ 或者 D- 线上能够测量到 2.0V 以上的电压。对于有 Vbus 检测功能的 USB 设备,当设备检测到 Vbus 变化后,设备端就能够确定当前已经连接到主机,就会挂载上拉电阻,使得 D+ 或者 D- 线上能够测量到 2.0V 以上的电压。设备就可以通过 Vbus 确定当前已经连接到主机。
  • 由于设备端上拉电阻的作用使得 DP 或者 DM 线上电压从 0V 变化到 3V,USB 主机一旦检测到这样的变化就能确定有设备连接。
  • USB 主机一旦检测到有设备连接,将会发出一个复位(RESET)信号(主机将DP 和 DM 都拉低,持续时间 >10ms)让设备进入初始状态,对于没有 Vbus 检测能力的 USB 设备就可以使用这个复位信号作为设备连接的检测机制。
  • 复位结束之后,主机会将 DP 拉高,DM 保持低,之后开始 J/K 序列进行通信。

高速设备在连接到主机时,初始阶段将会工作在全速模式并和主机建立连接,所以其连接过程和全速设备完全相同。当建立连接后,USB 主机和设备通过高速握手协议切换到高速模式。

手册规定检测时间及电平标准

低速设备的插入检测
在这里插入图片描述

全速/高速设备的插入检测
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux【网络编程】之网络基础

linux【网络编程】之网络基础 一、网络协议与协议分层1.1 为什么要分层1.2 OSI七层模型1.3 TCP/IP五层(或四层)模型 二、网络传输流程2.1 了解局域网2.2 同一网段内的两台主机进行文件传输2.3 跨网段的主机的文件传输 三、数据包封装和分用四、网络中的地址管理4.1 IP地址4.2 M…

【Simulink】0基础入门教程 P1 搭建自己的第一个模型 实现加减乘除四则运算

目录 工作路径的设置: Simulink的两种打开方式 模块的基本操作 建立一个新的空白模型,创建模型 加减乘除模块的名称 模块之间连线的两种方法 显示模块 Display 搭建子系统subsystem 将加法模块Add更改为多输入模块 本文记录Simulink学习&#x…

[零刻]EQ12EQ12Pro调整风扇转速教程

调整 CPU 风扇转速可以有不同的用途,具体取决于您的计算机和使用情况。 降低噪音:如果您的风扇的噪音很大,可以通过降低 CPU 风扇的转速来减少噪音。这可以通过在 BIOS 或中设置 CPU 风扇转速控制来实现。 提高性能:如果您的计算…

OpenVINO 2022.3实战一:Window 10 环境下用 OpenVINO 2022.3部署yolov5 7.0

Window 10 环境下用 OpenVINO 2022.3部署yolov5_7.0 1 下载并解压 OpenVINO Runtime OpenVINO™ Runtime 2022.3 以压缩包 (OpenVINO Archives) 的形式提供。 下载地址: storage.openvinotoolkit.org 下载后解压到 C:\Intel\openvino_2022.3.0 配置环境&#xff…

5月5日 8H25min|5月6日 3H10min|时间轴复盘

7:30-8:00 起床洗漱吃饭 8:00-8:30 背书 【30min】 8:30-9:40 对话单词 【1h10min】 9:45-11:30 听力精听 【2h-15min】 11:30-12:10 吃午饭吃水果 12:10-12:50 继续吃饭之前没完成的 【40min】 13:00-14:30 健身 14:35-14:43 语法 【1…

asdfghasdfghjkl

PDL1检测: 肿瘤细胞高表达PD-L1分子,与肿瘤部位浸润T淋巴细胞表面的PD-1分子结合后,抑制T细胞活性,实现肿瘤的免疫逃避。而目前PD-1/PD-L1抑制剂均是检测PD-L1的表达。 目前在NSCLC治疗中,对于每个PD-1/PD-L1抑制剂&a…

【Hive大数据】Hive分区表与分桶表使用详解

目录 一、分区概念产生背景 二、分区表特点 三、分区表类型 3.1 单分区 3.2 多分区 四、动态分区与静态分区 4.1 静态分区【静态加载】 4.1.1 操作演示 4.2 多重分区 4.2.1 操作演示 4.3 分区数据动态加载 4.3.1 分区表数据加载 -- 动态分区 4.3.2 操作演示 五、…

mysql事务及搜索引擎

mysql事务后半部分 加快查询速度索引会自动排序,(升序) select * from t1;全盘扫描 where可以索引查找show create table 索引是一个排序的列表,包含字段值和相应行数据的物理地址 事务是一种机制,一个…

Misc小总结

Misc分类 个人认为Misc中的题目可分为七大类,图片隐写,音视频隐写,其它隐写(PPT、word文档等隐写),压缩包破解,流量分析,取证,编码或密码。这里面涉及的知识点当然是很多的,有很多你…

大学毕业设计使用python制作

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

Python标准数据类型-字符串常用方法(上)【文末送书】

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座又一座的高山…

经验总结:(Redis NoSQL数据库快速入门)

一、Nosql概述 为什么使用Nosql 1、单机Mysql时代 90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题 数据量增加到一定程度,单机数据库就放不下了数据的索引(B Tree),一个机…

【Linux】进程的终止,等待(不包含进程的程序替换)

信号的部分会在后面仔细讲,本文不涉及 目录 1.进程终止以及退出码的理解 2.进程退出 3.进程等待 1.进程终止以及退出码的理解 1.情况分类 (1)正常执行完 a.结果正确 b.结果不正确 反思为什么? (2&#xff…

CesiumForUnreal去掉左下角的Ion Logo

文章目录 1.实现目标2.实现过程3.参考资料1.实现目标 记录一下使用CesiumForUnreal插件过程中如何清除左下角的Cesium Ion Logo,清除前后的对比截图如下所示。 原始样式去除后2.实现过程 记录一下实现的过程(含踩坑记录,可能有一点啰嗦)。 (1)首先看一下是哪个蓝图添加的…

【STM32CubeMX】F103窗口看门狗

前言 本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了窗口看门狗的使用配置。要学习的话,注意流程一说,省略的内容。 基础 窗口看门狗(WWDG)属于APB1上外设。窗口看门狗(WWDG)的时钟源…

【小结】git合并分支总结

首先理清以下几个关系: 1、git有本地库和远程库。 ①本地仓库:也就是电脑上存储的代码,本地代码,一般在某个盘中。 ②远程仓库:是云上的库,比如gitee,github等等。 2、分支:分为本地分支和远…

手机摄影(三)

第七章 构图,用光与色彩 构图的原则: 画面简洁 突出主体 陪体和主体:如果没有枯叶做前景,画面的空间感和深秋氛围会大打折扣。 看到一张你认为很美的照片时,要问自己几个问题: • 这张照片的主体是什么…

jvm之启动参数

写在前面 本文一起看下jvm启动参数相关内容,通过本文希望我自己也希望大家能够真正的应用到实际的工作中。 1:基本内容介绍 一般我们启动java程序有两种方式,一种是直接运行一个有main函数的class,第二种是运行一个在MANIFEST文…

安装mysql

1、环境(虚拟机新安装的Redhat): 链接:https://pan.baidu.com/s/1jjdimuq-TrS8RASqGiU5Xg 提取码:2hef 2、检查系统是否已经安装了 MySQL rpm -aq | grep mysql 如果有旧版本就需要像下面卸载mariadb一样卸载掉。M…

希尔密码,云影密码 及例题

希尔密码 云影密码 题一 [HDCTF2023]–爬过小山去看云 题目描述: 密文:ymyvzjtxswwktetpyvpfmvcdgywktetpyvpfuedfnzdjsiujvpwktetpyvnzdjpfkjssvacdgywktetpyvnzdjqtincduedfpfkjssne 在山的那头,有3个人,4只鸟,19只…