首页 > 其他分享 >USB3.0与USB2.0 的区别

USB3.0与USB2.0 的区别

时间:2024-12-14 18:42:10浏览次数:7  
标签:区别 主机 USB3.0 超速 链路 传输 USB2.0 设备

在框架上,USB3.0超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同:

在框架上,USB3.0超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同:

  • USB2.0的transaction(事务处理)有三部分(令牌(token)、数据(data)和握手(handshake)),超速也是这三部分但是用法不同(令牌包集成在头包和DPH中,各种类型的握手包都是TP包形式);对于OUT事务,令牌被合并在数据包中;对于IN事务,令牌被握手包代替。
  • USB2.0不支持突发(bursting),超速支持持续突发;
  • USB2.0是半双工(half-duplex)的广播总线,超速是dual-simplex(全双工)的非广播总线,支持同时进行IN、OUT transaction;
  • USB2.0使用轮询模式,超速使用异步通知方式;
  • USB2.0不支持流能力,超速支持海量(bulk)端点的Stream方式;
  • USB2.0在同步传输(isochronous)间隔中没有进入低耗电状态的机制,超速则允许同步传输服务间隔中自动进入低耗电状态(不服务的时间段进入低功耗);SS主机在服务间隔前发送一个PING包到目标同步设备允许开始同步传输之前转变成电源活动状态。
  • USB2.0设备无法通知主机自己在进入低耗电状态前可容忍的延迟时间(设备通知主机自己进入低功耗状态的最长延迟时间),超速则提供Latency Tolerance消息;
  • USB2.0以固定的1ms/125us间隔发送帧包/小帧包(USB 2.0全速和高速模式)。超速下,设备可以发送Interval Adjustment消息给主机调整间隔125us一直到+/-13.333us;
  • USB2.0电源管理总是主机导向(主机初始化)的,超速链路两端都支持电源管理;因此不管何时需要空闲,需要退出,需要通信,每个链路能独立的进入低电源状态。
  • USB2.0 仅在每个transaction进行end-to-end级别的错误检测、恢复、流控,超速在end-to-end(数据包重试)和链路级别(头包重试)分割这些功能。

比较USB2.0和超速的事务处理(Transaction)

超速全双工总线物理层允许同时进行双向的通信。超速协议允许收到握手包之前发送多个数据包(突发)。对于OUT传输,包含在USB2.0令牌包中的信息(设备地址和端点信息)被合并在数据包头里面,因此不需要额外令牌包。对于输入传输IN,超速主机发送一个握手包(ACK)给设备以请求数据(和指示数据是否正确)。设备可以通过返回数据或者返回STALL握手包来应答,或者返回一个没准备好(NRDY)握手包延迟传输直到设备准备好了。
USB2.0的包是广播方式,每个连接的设备解析每个包的地址、端点、方向信息来决定自己是否应该响应。超速包有路由信息,HUB决定每个包要送达哪个设备,只有一个例外,等时(同步)时间戳包(Isochronous Timestamp Packet, ITP)广播到每一个设备。
USB2.0的查询方式已经被异步通知代替。超速传输通过主机发出一个请求来开始传输,后面跟随着设备的应答。如果设备能接受请求,它就接收数据或者发送数据;如果端点停止了,设备应该以STALL握手包响应;如果设备由于缺少缓存空间或者没有数据而不能接受请求,应该以NRDY应答告诉主机现在还不能处理请求。当等到设备能接受请求时,设备会主动发送一个端点准备好(ERDY)异步通知给主机然后主机会重新安排传输事务。
单路传送和有限制的多点广播的包以及异步通知,都允许没有活跃传输包的链路进入一个降低功耗状态,上游和下游端口共同决定它们的链路进入一个低功耗状态,集线器会传递到上游端口。通过允许链路伙伴独立控制它们的链路电源状态,集线器将任意下游端口可见的最高链路电源状态传递到上游端口,使总线快速进入最低允许电源状态。

标签:区别,主机,USB3.0,超速,链路,传输,USB2.0,设备
From: https://www.cnblogs.com/linhaostudy/p/18607055

相关文章

  • iconv、recode、enca(Extensible Notation Character Set Analyzer)和 uconv 这四个字符
    iconv、recode、enca(ExtensibleNotationCharacterSetAnalyzer)和uconv这四个字符编码转换工具的对比总结,以便于您了解它们的特点和区别:特性/工具iconvrecodeencauconv功能字符编码转换工具,支持广泛的字符集字符编码转换工具,支持多种字符集字符编码检测与转换......
  • Java中的 `CountDownLatch` 与 `CyclicBarrier`:区别、使用场景解析
    博主默语带您GotoNewWorld.✍个人主页——默语的博客......
  • golang:方法接收者带星号和不带星号的区别
    一,说明:不带星号的方法‌:这些方法定义在值接收者(valuereceiver)上。当你调用这些方法时,会操作该值的副本。如果方法内部修改了接收者,这些修改不会反映到原始值上。‌带星号的方法‌:这些方法定义在指针接收者(pointerreceiver)上。当你调用这些方法时,会操作原始值的指针。如果......
  • Scss和Sass有什么区别?
    在前端开发中,Scss和Sass都是CSS(层叠样式表)的预处理器,它们用于以编程方式利用强大的CSS功能,从而简化开发过程。以下是Scss和Sass之间的主要区别:一、文件扩展名Sass使用“.sass”作为文件扩展名。Scss(SassyCSS的简写)则使用“.scss”作为文件扩展名。二、语法规则Sass采用严......
  • Sass的注释和css注释之间有什么区别?
    在前端开发中,Sass(SyntacticallyAwesomeStylesheets)是一种CSS预处理器,它扩展了CSS的功能,提供了更多的特性和灵活性。关于Sass的注释和CSS注释之间的区别,可以从以下几个方面进行阐述:一、Sass注释Sass支持两种类型的注释:单行或多行静默注释:这些注释在Sass编译成CSS时不会被包含......
  • 鸿蒙开发中console.log和hilog的区别
    在日常开发中打印日志是调试程序非常常用的操作,在鸿蒙的官方文档中介绍了hilog这种方式,有些前端转过来的友友发现console.log也可以进行日志打印。有一段时候幽蓝君也非常喜欢使用console.log,因为它看起来好像更加简单方便。那么今天幽蓝君就来和大家说一说console.log和hilog有......
  • css3的属性transfrom的值preserve-3d和perspective有什么区别?
    transform:preserve-3d和transform:perspective在CSS3中都与3D变换有关,但它们的作用不同:transform:preserve-3d:这个属性告诉浏览器在应用3D变换时,要保留元素的3D空间信息。这意味着元素的子元素会按照其在3D空间中的位置进行渲染,而不是被扁平化到一个2D......
  • Scala中常量val和变量var的区别
    一val和var的区别Scala的变量分为两种val是常量,一旦定义值后就不能修改var是变量,可以被重新赋值常量:如图所示,先给常量val赋值为100,再去修改val的值会导致报错这里定义常量时,没有写类型,scala会自动推导类型完整的常量写法 变量:(值可变)下方,先将name变量值设置为张三......
  • 思维与感觉知觉的区别与联系
    在人类认识世界的过程中,思维与感觉知觉是两个不可或缺的心理过程。它们不仅是人类认知活动的基本组成部分,还在个体的日常生活中扮演着至关重要的角色。尽管思维与感觉知觉有着显著的区别,但它们之间的联系也是密切且复杂的。理解这两者的区别与联系,不仅有助于我们更好地认识人类......
  • LDO和DC-DC的区别、DCDC和LDO主要指标
    LDO和DC-DC的区别LDO外围器件少,电路简单,成本低;DC-DC外围器件多,电路复杂,成本高;LDO负载响应快,输出纹波小;DC-DC负载响应比LDO慢,输出纹波大;LDO效率低,输入输出压差不能太大;DC-DC效率高,输入电压范围宽泛;LDO只能降压;DC-DC支持降压和升压;LDO和DC-DC的静态电流都小,根据具体的芯......