USB2.0和USB3.0识别方式

ops/2025/2/15 10:40:12/

一. USB2.0识别方式

USB2.0向下兼容USB1.0和USB1.1,分为低速、全速高速三种模式。

1. 全速和低速识别

根据规范,全速和低速通过设备端的上拉电阻进行区分。当设备插入HUB或上电时,有上拉电阻的那根数据线就会被拉高,HUB根据D+/D-的电平判断所挂载的是全速设备还是低速设备。

图1 全速/低速USB设备的连接

2. 高速USB的识别

USB全速、低速识别很简单,但USB2.0高速设备无法仅依靠数据线上拉电阻位置就能识别

高速设备初始是以一个全速设备的身份出现,即和全速设备一样,D+线上有一个1.5K的上拉电阻。USB2.0的HUB先把它当做一个全速设备,然后HUB和设备通过一系列握手信号确认双方的身份。当然,对速度的检测是双向的。高速HUB需要检测所挂上来的设备是高速全速还是低速,高速设备也需要检测所连上的HUB是USB2.0还是USB1.X的。如果双方都是高速,就切换到高速模式工作,否则,还以全速模式工作。

图2 高速USB的协商过程

HUB检测到有设备插入或上电时,向主机通报,主机发送Set_Port_Feature请求让HUB复位插入的设备。HUB通过驱动数据线到复位状态SE0,D+/D-均为低电平,并持续至少10ms。

高速设备看到复位信号后,通过内部的电流源向D-线持续灌大小为17.78mA电流。因为此时高速设备的1.5k上拉电阻还未撤销,在HUB端,全速/低速驱动器形成一个阻抗为45Ω的终端电阻,两电阻并联后仍是45Ω左右的阻抗,所以在HUB端看到一个约45Ω*17.78Ma=800mV的电压,这就是Chirp K信号。该信号持续时间1~7ms。

在HUB端,虽然下达了复位信号,并一直驱动着SE0,但USB2.0高速接收器一直在检测Chirp K信号。如果没有Chirp K信号看到,就继续复位操作,直到复位结束,之后在全速模式下操作。如果只是一个全速HUB,不支持高速操作,那么该HUB不理会设备发送的Chirp K信号,之后设备也不会切换到高速模式。

设备发送的Chirp K信号结束后100us内,HUB必须开始回复一连串的KJKJKJ…系列,向设备表明这是一个USB2.0的HUB。这里的KJ序列是连续的,中间不能间断,而且每个K或者J的持续时间在40~60us。KJ序列停止后的100~500us内结束复位操作。HUB发送Chirp KJ序列的方式和设备一样。

设备检测到6个HUB发出的Chirp信号(3对KJ序列)后,必须在500us内切换到高速模式。切换动作包括:

  • 断开1.5K的上拉电阻
  • 连接D+/D-的高速终端电阻,实际上就是全速/低速差分驱动器
  • 进入默认的高速状态

执行动作1)和2)后,USB信号线上看到的现象就发生变化了:HUB发出的Chirp KJ序列幅值降到了原先的一半,400mv。这是因为设备端挂载新的终端电阻后,配上原先HUB端的终端电阻,并联后的阻抗是22.5Ω。以后高速操作的信号幅值就是400mv,而不像全速/低速那样的3V。至此,高速设备与USB2.0 HUB握手完毕,进行后续的高速通信。

图3 测试波形

二. USB3.0识别方式

USB3.0的接口比USB2.0多了5根线,这5根线分别是SSGND、SSRX+/-和SSTX+/-,即屏蔽地、发送差分对和接收差分对。图4是USB3.0的连接示意图,在靠近TX源端串有75~200nF电容。

图4 USB3.0信号连接示意图

USB主机和设备通过电缆连接后,会在USB主机和设备端的接收线上产生一个等效下拉电阻R_Term(其范围在18~30Ω,由SSRX+/-上各一个50Ω的等效下拉电阻并联而成)。

图5 Rx Detect

设备连接前的充放电时间常数T=R_Detect*C_Parasitic

设备连接后的充放电时间常数T=(R_Detect+R_Term)*(C_AC+C_Parasitic)

显然,接入设备后,充放电时间常数会大大增大,根据充放电时间就可以判断有无设备插入。

另外,接入R_term,会对R_Detect产生分压的左右,电压会下降。

USB规定,下行端口需要每隔100ms打一次Rx Detect,来检测Deivce在不在。

三. 参考资料

  1. 全速USB和高速USB的识别过程分析-腾讯云开发者社区-腾讯云
  2. USB 3.0 Rx Detect之超速U盘的识别_usb3.0识别原理过程-CSDN博客
  3. USB3.0 之 RX Detect 的基本原理_usb3.0识别原理过程-CSDN博客
  4. USB2.0USB3.0识别方式

http://www.ppmy.cn/ops/32429.html

相关文章

StarryCoding 算法小白周赛2 题解与代码(含视频题解)

比赛链接(含视频题解):https://www.starrycoding.com/contest/4 A题题解: 题目大意 给你一个由 n n n 个正整数组成的数组 a a a,询问这个数组是否是严格单调递增的。 思路 因为他会按照“拜访时间安排表”的顺…

android_systemServer进程启动流程

一,systemServer进程是被Zygote进程fork出来的,具体代码, 在startBootstrapServices、startCoreServices、startOtherServices、startApexServices中,对各类服务进行了启动,比如我们常见的ActivityManagerService、Pa…

区块链 | IPFS:IPNS(实操版)

🦊原文:Publishing IPNS names Publishing IPNS names with Kubo Step1: 启动你的 IPFS 守护进程(如果尚未运行): $ ipfs daemon说明:以 $ 开头的是命令,以 > 开头的是执行结果…

(一)深度神经网络的安全性和可信度的调查----验证、测试、对抗性攻击和防御,以及可解释性

在过去的几年中,深度神经网络(DNNs)在几个长期任务上实现人类水平的表现方面取得了重大进展。随着dnn在各种应用上的广泛应用,人们对其安全性和可信度的担忧被公开提出,特别是在广泛报道涉及自动驾驶汽车的致命事件之后…

3.SpringSecurity基本原理

SpringSecurity本质是一个过滤器链。十多个过滤器构成一个过滤器链。 这些过滤器在项目启动就会进行加载。每个过滤器执行放行操作才会执行下一个过滤器。 常见过滤器 FilterSecurityInterceptor 是一个方法级的权限过滤器,基本位于过滤器链的最底部。 Excepti…

软考网络工程师 第六章 第二部分 第三节 IP分类与特殊IP地址

IPV4地址分类 A类:1.0.0.0 - 127.255.255.255 B类:128.0.0.0 - 191.255.255.255 ABC类单播地址,应用最广 C类:192.0.0.0 - 223.255.255.255 D类:224.0.0.0 - 239.255.255.255 D类组播地址 E类&#x…

微信小程序 uniapp家庭食谱菜谱食材网上商城系统小程序ko137

随着生活节奏的不断加快,越来越多的人因为工作忙而没有时间自己出去订购喜欢的菜品。随着Internet的飞速发展,网络已经成为我们日常生活中必不可少的部分,越来越多的人也接受了电子商务这种快捷、方便的交易方式。网上订餐其独有的便捷性和直…

MongoDB的分片集群

MongoDB分片技术 介绍 ​ 分片(sharding)是MongoDB用来将大型集合分割到不同服务器上采用的方法。分片这种说法起源于关系型数据库。但是实际上非关系型数据库在分片方面相比于传统的关系型数据库更有优势。 ​ 与MySQL分库方案对比,MongoDB…