usb disconnect

news/2024/7/5 1:49:38

相对于USB设备的连接检测,USB设备断开的检测也很重要,也更加的隐晦。USB设备断开的检测不仅包含USB主机检测到其与设备的断开,也包含USB设备检测到其与主机的连接断开。

  • 对于USB主机来说,如果不能正确的识别设备的断开,从而无法回收已经断开的设备使用的资源,将会导致资源的浪费,这种资源的浪费不仅表现在系统上如USB设备的地址,系统内存等,也表现在USB总线带宽上。
  • 对于USB设备端来说,如果USB设备无法检测到其与主机端已经断开,同样也会引发一些如再次与主机端连接设备不能正确工作的问题。

由于USB主机如USB控制器,USB根集线器和USB设备的驱动程序在主机端运行,并且USB主机端是经过千锤百炼的,所以对于USB设备断开引起的异常,大部分的问题都是由USB设备端引起的,并且大部分发生在自供电的USB设备。


低速 ,全速的disconnect

Table 7-2

 

主机端的D+或D-的电压小于0.8V时,并且持续TDDIS(最小值为2us)的时间长度时,USB主机端就可以认定设备已经断开。对于USB低速或全设备,可以通过此种方式进行设备断开的检测

———————————————————————————————————————————

对于工作在高速模式下的USB设备,其D+/D-上的电平和低全速的设备不一样,所以检测方式不一样。

USB2.0协议规定,对于连接到高速设备的高速主机,D+和D-上的差分信号电平大于625mV时,就可认定USB设备已经断开。

当D+和D-的差分电平差不大于625mV时,高速主机的断开检测模块不能认为USB设备已经断开。USB主机会检测到每个高速帧开始的包结速信号,当包结束(SOF EOP)电压大于检测电压,表示设备断开。在实际应用中,高速设备的断开电压可能在525mV到625mV之间,并且不同的主机的断开检测电路电压不同。

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

高速disconnect

协议描述:

A downstream facing transceiver operating in high-speed mode detects disconnection of a high-speed device by sensing the doubling in differential signal amplitude across the D+ and D- lines that can occur when the device terminations are removed. The Disconnection Envelope Detector output goes high when the downstream facing transceiver transmits and positive reflections from the open line return with a phase which is additive with the transceiver driver signal.

Signals with differential amplitudes ≥ 625 mV must reliably activate the Disconnection Envelope Detector.

Signals with differential amplitudes ≤ 525 mV must never activate the Disconnection Envelope Detector.

在高速模式下工作的面向下游的收发器通过感知D+线和D-线上差分信号幅度的倍增来检测高速设备的断开,当设备终端被移除时可能发生。当下游面向收发机发射时,断开包络检测器输出高,并且从开线返回的正反射与收发机驱动信号的相位相加。差幅≥625 mV的信号必须可靠地激活断开包络检测器。振幅差≤525mv的信号绝不能激活断路包络检测器。


http://lihuaxi.xjx100.cn/news/74316.html

相关文章

【FPGA教程案例98】数据处理1——基于FPGA的数据线性插值verilog实现,MATAB辅助验证

FPGA教程目录 MATLAB教程目录 ---------------------------------------- 目录 1.软件版本 2.数据线性插值原理 3.数据线性插值的matlab仿真

更易理解的C++入门上(命名空间、C++输入输出、缺省参数、函数重载)

目录 1.命名空间 1.命名空间的定义和概念 2.命名空间的使用 命名空间样例: 1.加命名空间名称及作用域限定符 2.使用using将命名空间中某个成员引入 3.使用using namespace 命名空间名称引入 3.命名空间中的结构体当定义结构体时如何使用 ​编辑4.头文件与源…

PixelRNN--学习笔记

背景: 生成图像建模是无监督学习中的核心问题。生成建模的一大优势是可以从中学习无穷无尽的图像数据。生成模型: 大多数工作关注随机隐变量模型,如VAE旨在提取有意义的表示,但往往会出现一个难以推断的推理步骤,这会阻…

为什么PPO不可以像DQN一样使用Replay Buffer?——强化学习

1 PPO回顾 PPO算法如下: 其中,Pθ′P_{\theta}Pθ′​和Aθ′A^{\theta}Aθ′都是使用由target policyθ′\thetaθ′采集的数据来计算,在更新了behaviour policy多次后,清空前面保存的数据;使用behaviour policy更…

C · 初阶 | 光速初识C语言

啊我摔倒了..有没有人扶我起来学习.... 目录前言零、什么是C语言?一、第一个C语言程序二、数据类型三、变量、常量3.1 定义变量的方法3.2 变量的命名3.3 变量的分类3.4 变量的作用域和生命周期3.5 常量四、字符串转义字符注释4.1 字符串4.2 转义字符五、注释六、选择…

【学习记录】入坑SLAM一年后的理解

一、前言 入坑SLAM也有一年了,也看了不少视觉SLAM的方法,最近也开始涉猎一些激光SLAM的方法,在看的这些方法中,大多数的重点都放在了前端的部分,因为师兄说过大多数的SLAM方法后端都没什么变化,都是画因子…

Mac安装docker(轻松解决安装)

Mac安装docker(轻松解决安装) 1、docker是什么? Docker的三个基本概念: Image(镜像) Container(容器) Repository(仓库) Docker的思想来自于集装箱,集装箱解决了什么问题? 在一艘大船上,可以把货物规整的…

第06章 所有的晕厥都不可掉以轻心

【晕倒后第一时间要做的快速检查】这是一段真实的故事,大家听完不许笑。 大家都知道我是一名医生,大家都知道在中国看病很困难,所以大家都知道在中国认识一名医生是一件很重要的事,所以我从来没有被小学同学、初中同学、高中同学&…