USB2.0和USB3.0识别方式

news2025/1/12 1:48:29

一. 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.0和USB3.0识别方式

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

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

相关文章

StampedLock(戳记锁)源码解读与使用

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java源码解读-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 1. 前言 我们在上一篇写ReentrantReadWriteLock读写锁的末尾留了一个小坑&#…

【Anaconda 3 】Jupyter Notebook 的安装配置及使用

Jupyter Notebook 的安装配置及使用 一、引言 Jupyter Notebook 是一种交互式笔记本,它允许用户将代码、注释、方程式、可视化内容等整合到一个文档中,并支持多种编程语言,如 Python、R、Julia 等。它在数据科学、机器学习和教育领域中得到…

ResponseHttp

文章目录 HTTP响应详解使用抓包查看响应报文协议内容 Response对象Response继承体系Response设置响应数据功能介绍Response请求重定向概述实现方式重定向特点 请求重定向和请求转发比较路径问题Response响应字符数据步骤实现 Response响应字节数据步骤实现 HTTP响应详解 使用抓…

Pytorch分布式train——pytorch.distributed.launch V.S. torchrun

1. 较早的pytorch.distributed.launch python -m torch.distributed.launch --nproc_per_node4 --nnodes1 --node_rank0 train.py --args XXX 参数解析: nnodes:节点(主机)的数量,通常一个节点对应一个主机 node_rank…

K8S哲学 - 资源调度 HPA (horizontal pod autoScaler-sync-period)

kubectl exec: kubectl exec -it pod-name -c container-name -- /bin/sh kubectl run 最小2个node 最大5个

Qt QImageWriter类介绍

1.简介 QImageWriter 用于写入图像文件的类。它提供了将 QImage 对象保存到不同图像格式文件的功能,包括但不限于 PNG、JPEG、BMP 等。QImageWriter 可以将图像写入文件,也可以写入任何 QIODevice,如 QByteArray,这使得它非常灵活…

恶补《操作系统》5_1——王道学习笔记

5设备管理 5.1_1 I-O设备的概念和分类 1、什么是I-O设备 输入/输出:I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部件。 2、按使用特性分类 人机交互的外部设备存储设备网络通信设备 3、…

io流,字节流概述

io流概述 io流:输入输出流读写数据的 i 指Input,称为输入流:负责把数据读到内存中去 o指Output,称为输出流:负责写数据出去 io流的分类 按流的方向分为: 输入流和输出流。 按流中数据的最小单位, 分为:字节流(适合操作…

LWIP+TCP客户端

一、TCP API函数 其中tcp_poll()函数的第三个参数表示隔几秒调用一次这个周期性函数 二、修改服务器的IP 三、TCP客户端编程思路 申请套接字绑定服务器IP和端口号等待客户端连接 进入连接回调函数在连接回调函数中 配置一些回调函数,如接收回调函数,周期…

C++必修:类与对象(三)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 隐式类型转换 在学习C语言时我们就明白,当我们进行赋值时&#xf…

智慧旅游引领旅游行业创新发展:借助智能科技的力量,实现旅游资源的优化配置和高效利用,推动旅游行业的转型升级和可持续发展

目录 一、引言 二、智慧旅游的定义与特点 1、信息化程度高 2、智能化服务丰富 3、互动性强 4、个性化服务突出 5、可持续性发展 三、智慧旅游在旅游行业创新发展中的作用 (一)优化旅游资源配置 (二)提升旅游服务质量 &…

vue3 jspdf,element table 导出excel、pdf,横板竖版分页

多个表格需要,pdf需要的格式与原本展示的表格样式不同 1.创建一个新的表格,设置pdf需要的样式,用vue的h函数放入dom中 2.excel用xlxs插件直接传入新建el-table的dom,直接导出 3.pdf导出类似excel黑色边框白底黑字的文件,把el-t…

开源版本管理系统的搭建一:SVN服务端安装

作者:私语茶馆 1.Windows搭建SVN版本管理系统 点评:SVN本身非常简洁易用,VisualSVN文档支撑非常好,客户端TortoiseSVN非常专业。5星好评。 1.1.SVN概要和组成 背景介绍 Svn是一个开源版本管理系统,由CollabNet公司…

ffmpeg 推流

参考 【windows&&linux环境下实现ffmpeg&&vlc rtsp本地视频、摄像头推流,VLC推拉流】 本地视频 推流 localhost 下载 mediamtx 服务器 https://github.com/bluenviron/mediamtx/releases 下载 ffmpeg https://github.com/BtbN/FFmpeg-Builds/rel…

基于vmware虚拟机中yum源的配置

1.首先需确保虚拟机中已经连接了光盘映像(如图在虚拟机右下方从左往右第二个) 2.在虚拟机中找到光盘映像文件(默认在/dev的sr0) 3.将光盘文件挂载(挂载后才可读取) 为方便每一次开机之后自动挂载&#xff…

jQuery 笔记13 JavaScript的好帮手

相关内容:下载jQuery网址、jQuery的使用、表格排序软件(tablesorter)、行事历软件(FullCalendar)、…… jQuery是一套开放性源代码的JavaScript函数库(Library),jQuery是JavaScript函数库,简化了…

《21天学通C++》(第十二章)运算符类型与运算符重载

1.为什么要重载运算符&#xff1f; 通过重载运算符&#xff0c;可以将复杂的操作封装成简单的运算符形式&#xff0c;简化代码&#xff0c;提高可读性下面举一个简单的例子 计算两个点的坐标之和。 1.不重载运算符 #include <iostream> using namespace std; class P…

JavaScript基础(四)

逻辑运算符 && 与 : 多个条件同时满足 ΙΙ 或 : 多个条件满足一个 &#xff01; 非 : 否定某个条件 例: <script> //&多个条件同时满足&#xff0c;才返回true //任意一个为false&#xff0c;就返回false var a 10; var b 20; …

【linux】重定向

重定向 什么是重定向如何实现一个简单的重定向关于重定向的系统调用接口 注意&#xff1a;在看这篇博客之前&#xff0c;最好是要对文件在系统中是如何被打开的以及操作系统是如何管理文件有一个初步了解&#xff0c;如果不了解的话&#xff0c;可以看看这篇博客《初步认识文件…

stm32之hal库spi驱动封装(实现阻塞,中断,dma三种方式)

前言 配置功能参考rt-thread驱动代码将中断配置和dma配置单独分开管理 代码 中断管理 头文件 /** Copyright (c) 2024-2024,shchl** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date Author Notes* 2024-5-3 shchl first version*/#ifnd…