USB 断开检测

news2024/10/7 8:19:27

文章目录

  • USB 断开检测
    • 带 Vbus 检测功能的 USB 设备断开
    • 不带 Vbus 检测功能的 USB 设备断开
    • USB 设备端断开的检测
    • USB 主机端断开的检测
      • 低速/全速设备
      • 高速设备

USB 断开检测

USB 主机和 USB 设备同样需要具有检测断开的能力。

  • USB 主机如果不能检测到 USB 设备的移除将会导致其可用资源越来越少,比如可分配的 USB 设备地址,可分配的电源资源以及可用的总线带宽等。

  • USB 设备(特别是自供电 USB 设备),如果不能检测其与 USB 主机的断开,同样也有可能引发一些问题,如再次连接时可能不能正常工作等。

带 Vbus 检测功能的 USB 设备断开

在这里插入图片描述

不带 Vbus 检测功能的 USB 设备断开

在这里插入图片描述

USB 设备端断开的检测

与 USB 设备连接检测相同,设备端也是通过对 Vbus 的检测来实现断开的检测的。

对于只使用 USB 总线供电的 USB 设备,当该设备从 USB 主机中移除时,设备就会处于端点状态且无法继续工作。在这种情况下,讨论断开检测是毫无意义的。后续的讨论都是建立在当设备从 USB 主机移除后设备还能继续工作的前提下。

对于不支持 Vbus 检测的 USB 设备,与连接检测相同,可以通过断开时 D+ 和 D- 信号变化所产生的中断再辅以实时 D+ 和 D- 信号的状态来进行检测。

对于支持 Vbus 检测的 USB 设备,一旦检测到 Vbus 上电压低于 Vbsvld(4.01V)时即可认为该设备已经从 USB 主机上断开。此时,USB 设备端需要移除 D+ 和 D- 上的上拉电阻来确保下次连接检测的初始状态是正确的。

  • 对于低速设备,移除 D- 上的上拉电阻。
  • 对于全速设备,移除D+ 上的上拉电阻
  • 对于高速设备,由于在高速模式下,其上拉电阻已被移除,所以不需要再移除上拉电阻。

USB 主机端断开的检测

低速/全速设备

USB 设备从 USB 主机移除后,USB 主机端的 D+ 和 D- 由于主机端的下拉 15KΩ电阻的存在将会变为 0V。USB2.0 协议规定,当主机端 D+ 或 D- 的电压小于 0.8V,并持续Tddis(最小值为2us)时间长度,USB 主机就认为 USB 设备已经从 USB 主机的端口上断开。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高速设备

当 USB 设备工作在高速模式时,D+ 和 D- 上的信号输出电压,如高速空闲状态电压(high-speed idle level),高速数字信号高电平电压(high-speed data signaling high)和全速设备是不一样的,所以在检测高速 USB 设备断开时,D+ 和 D- 的检测标准和全速设备是不一样的。

USB2.0 协议规定,对于连接高速设备的高速主机,当 D+ 和 D- 的差分信号电平差不小于 625mV 时,高速主机的断开检测模块就必须认为 USB 设备已经断开

当 D+ 和 D- 的差分信号电平差不大于 525mV 时,高速主机的断开检测模块一定不能认为 USB 设备已经断开。

USB 主机会检测每个高速帧开始(SOF)的包结束信号,当包结束电压大于检测电压,就表示有设备断开。需要说明的是,实际应用中,高速设备的断开检测电压可能在 525-625mV 之间,并且不同的主机断开检测电压可能不同。

由于高速主机是通过检测帧开始的包结束来判断设备是否断开,而帧开始的时间间隔是 125us,所以,当设备被断开后,最多在 125us 之内,主机就可以检测到设备已经断开。

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

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

相关文章

测试虚拟驱动vivi

测试虚拟驱动vivi 文章目录 测试虚拟驱动vivi安装xawtv方法1方法2测试USB摄像头 测试虚拟摄像头vivi1.确定ubuntu的内核版本2. 去www.kernel.org下载同版本的内核修改Makefile测试体验 安装xawtv 方法1 sudo apt-get install xawtv方法2 源码xawtv-3.95.tar.gz: http://www.…

「2023最新」「阿米洛 VARMILO」双模机械键盘使用指南(快捷键组合)

前言 在说明书找不到的时候却需要使用键盘的某些特性时查一下 以阿米洛 minilo 尤加利为例 主要快捷键组合 开机 2 秒内连续敲击空格键三下,数字 1 或 2 或 3 键灯闪烁,键盘开机重新配对 长按 5 秒 Fn Q / W / E 键 (分别对应数字 1 / 2…

《vector的一些OJ》

本文主利用我们的vector来解决一些OJ题 前三个题目很类似,分别为 一个数字只出现一次,其他数字都出现两次两个数字只出现一次,其他数字都出现两次一个数字只出现一次,其他数字都出现三次 文章目录 1、[一个只出现一次的数字&#…

vue3:自定义指令

一、理解vue指令 1.1、指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平…

Makefile基础教程(伪目标)

文章目录 前言一、伪目标概念二、进一步了解伪目标三、不使用.PHONY来定义伪目标总结 前言 本篇文章将讲解Makefile中的伪目标&#xff0c;Makefile的目标在前面的文章中我们已经讲解了那么这篇文章我们就来讲讲伪目标。 一、伪目标概念 Makefile 伪目标是一类特殊的目标&am…

手机摄影(四)

第8章 人物拍摄 平拍显亲切 如果侧拍好看&#xff0c;可以选择 局部自拍表现神秘&#xff08;比如嘴唇&#xff0c;眼睛&#xff0c;锁骨&#xff0c;要足够惊艳&#xff09; 技巧&#xff1a; 简单背景适合人像和镜子回头&#xff08;幅度不能太大&#xff09;小清新&…

《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》论文精读

Abstract 我们提出了一种方法&#xff0c;通过使用稀疏的输入视图集优化底层连续体场景函数&#xff0c;实现了合成复杂场景新视图的最先进结果。我们的算法使用全连接(非卷积)深度网络表示场景&#xff0c;其输入是单个连续的5D坐标(空间位置(x, y, z)和观看方向(θ&#xff…

C++系列五:输入/输出

C输入输出 1. 输入2. 输出3. 格式化输出4. 总结 1. 输入 输入是指从外部源获得数据的过程&#xff0c; C中可通过键盘或文件等外部源来获取输入数据。 &#xff08;1&#xff09;cin cin是C标准库中的一个输入流对象&#xff0c;用于从标准输入设备&#xff08;通常是键盘&a…

如何评价滤波器的去噪效果?

假如使用两种滤波器&#xff0c;那么滤波效果如何去评价1&#xff1f; 为了能够得到高质量的去噪后信号&#xff0c;需要对滤波器的滤波效果进行评价&#xff0c;选取去噪效果最好的滤波器对原始信号进行去噪处理。 一般使用信噪比和峰值信噪比对滤波器进行量化评价&#xff0c…

Docker 基础实战:环境搭建、容器、仓库、镜像

文章目录 Docker 基础实战环境搭建容器启动容器新建并启动容器终止容器启动已终止容器创建守护态容器 容器日志查看日志日志驱动 进入容器docker attachdocker exec 容器信息docker psdocker inspectdocker topdocker stats 删除容器容器快照导出快照导入快照 仓库Docker Hub本…

软考--快速掌握七层模型与各种协议的划分

目录 协议族 网络层涉及的协议 传输层涉及的协议 应用层涉及的协议 协议族 认识几个协议族&#xff0c;所谓协议族就是说他不是单一的协议。而是很多协议拼在一起的。 TCP/IP协议族是internet的标准协议族&#xff0c;所以使用广&#xff0c;但是tcp/ip协议族传输效率是比较…

面试题:String,StringBuilder和StringBuffer的区别

面试题&#xff1a;String&#xff0c;StringBuilder和StringBuffer的区别 一、String 1、String是一个长度不可变的字符序列&#xff0c;底层是一个被final修饰的char[]数组。 2、任何对String类型进行改变的操作实际上都是重新生产一个新的String对象&#xff0c;然后将指…

micro-app在vue-element-admin中一些使用研究

1、简述 本文承接上一篇micro-app在vue-element-admi中的搭建&#xff0c;对micro-app在vue-element-admin中的一些平时开发中常用的功能做了一些研究。本文代码 2、路由 关于路由&#xff0c;这边从两方面进行研究&#xff0c;一方面是对菜单的配置&#xff0c;另一方面是页…

❤ 个人博客的搭建和设置

❤ 个人博客的搭建和设置 闲暇时候自己试着做了一个自己的个人博客&#xff0c;博客使用的Github进行托管&#xff0c;还在阿里云买了属于自己的域名 具体步骤如下 1、登陆自己的博客账号&#xff0c;新建个人主页的仓库 2、到了我们的名字设置&#xff0c;格外注意&#xf…

Leetcode刷题之两两交换链表中的结点和相交链表

只有把抱怨环境的心情&#xff0c;化为上进的力量&#xff0c;才是成功的保证。 ——罗曼罗兰目录 &#x1f349;一.相交链表 &#x1f490;1.双指针 &#x1f34d;2.计算长度加双指针 &#x1f352;二.两两交换链表中的结点 &#x1f34c;1.迭代 &#x1f349;一…

【Golang】多线程下载器的实现

〇、前言 多线程下载&#xff0c;顾名思义就是对一个文件进行切片访问&#xff0c;等待所有的文件下载完成后在本地进行拼接成一个整体文件的过程。 因此可以利用 golang 的多协程对每个分片同步下载&#xff0c;之后再合并且进行md5校验或者总长度校验。 一、请求资源 下载…

5.7学习周报

文章目录 前言文献阅读摘要简介数据方法论预测结果结论 时间序列预测总结 前言 本周阅读文献《Water quality forecasting based on data decomposition, fuzzy clustering and deep learning neural network》&#xff0c;文献主要结合数据分解、模糊C均值聚类和双向门控循环…

设计模式 - 工厂方法模式

设计模式 - 工厂方法模式 1、关于工厂方法模式2、工厂方法模式小试牛刀2.1、类图2.2、代码清单3、工厂方法模式的扩展3.1、简单工厂模式&#xff08;静态工厂模式&#xff09; 1、关于工厂方法模式 工厂方法模式&#xff0c;就是定义一个用于创建对象的接口&#xff0c;让子类决…

Ubuntu20升级nodejs版本

执行 grunt build的时候提示node版本过低 当前版本为10.19.0&#xff0c;不满足要求 安装 n&#xff0c;用于更新 node 版本的 sudo npm install n -g用n 下载 nodejs 的最新稳定版本 sudo n stable3. 安装完毕&#xff0c;node -r检查当前版本

【算法与数据结构】链表

链表 链表&#xff1a;结构定义 链表是由一串节点串联在一起的&#xff0c;链表的每个节点存储两个信息&#xff1a;数据下一个节点的地址 分清楚两个概念&#xff1a;什么是内存内部&#xff0c;什么是程序内部 内存内部&#xff1a; 信息存储在内存空间里的 程序内部&#…