USB基础知识概论
来源:互联网 发布:小米mix2淘宝优惠卷 编辑:程序博客网 时间:2024/05/29 08:12
USB基础知识概论
版本:v0.9.2
摘要
本文主要介绍了USB协议的基础知识,包括USB协议的来龙去脉,OHCI/UHCI/EHCI/xHCI之间的区别和联系,USB的firmware,以及USB 2.0协议的概览,USB的枚举的详细过程,OHCI的一些特点
HTML版本的在线地址为:
http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html
有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:
http://www.crifan.com/bbs/categories/usb_basic/
2015-05-26
- USB基础知识概论
- 通过Docbook发布
- 添加了USB协议细节部分的内容
- 添加了USB OHCI学习笔记
- 更新了所有的xml:id
版权 © 2015 Crifan, http://crifan.com
本文章遵从:署名-非商业性使用 2.5 中国大陆(CC BY-NC 2.5)
目录
- 缩略词
- 正文之前
- 1. 此文目的
- 2. 关于一些USB方面的文档
- 2.1. 大而全的USB英文资料
- 2.2. 简明扼要的USB英文资料
- 2.3. 全系列的介绍Linux下的USB中文资料
- 3. 声明
- 1. USB的来龙去脉
- 1.1. USB是什么
- 1.2. 为何要有USB
- 2. USB相关的基础知识
- 2.1. USB相关的硬件
- 2.1.1. USB控制器类型:OHCI,UHCI,EHCI,xHCI
- 2.1.1.1. OHCI和UHCI
- 2.1.1.1.1. 为何Intel设计的UHCI把更多的任务都留给软件实现?
- 2.1.1.1.2. 为何嵌入式系统中的USB主控多用OHCI,而非UHCI?
- 2.1.1.1.3. OHCI和UHCI技术细节上的区别
- 2.1.1.2. EHCI
- 2.1.1.3. xHCI
- 2.1.1.4. OHCI,UHCI,EHCI,xHCI的区别和联系
- 2.1.2. USB接口的引脚定义
- 2.1.3. USB的接口(connector)类型
- 2.2. USB相关的软件
- 2.2.1. USB设备端的固件(Firmware)
- 2.2.2. USB主机(Host)端的USB驱动和软件
- 2.2.3. 其他一些USB测试和协议分析等软件
- 3. USB协议概览
- 3.1. USB 2.0协议内容概览
- 3.2. USB协议的版本和支持的速度
- 3.2.1. 为何USB的速度,最开始没有设计的更快些?
- 3.3. USB系统的核心是Host
- 3.4. USB中用NRZI来编码数据
- 3.4.1. USB中用Bit-Stuffing来同步时钟信号
- 4. USB协议细节
- 4.1. USB Class
- 4.1.1. 为何要搞这么多USB的Class
- 4.2. USB的框架
- 4.3. USB Transfer and Transaction
- 4.4. USB枚举(Emulation)
- 4.4.1. 什么是USB枚举
- 4.4.2. USB枚举的过程
- 4.4.3. 举例详解USB的枚举过程
- 4.4.3.1. USB枚举示例数据
- 4.4.3.2. 详细分析USB枚举数据的每个字段的具体含义
- 4.5. USB OHCI学习笔记
- 参考书目
插图清单
- 1.1. USB与其他总线的异同
- 1.2. PC机箱后面的众多接口
- 1.3. 有了USB接口之后的PC机箱背后的接口
- 2.1. USB协议分析工具:Ellisys的USB Explorer 260
- 3.1. I2C数据编码格式
- 3.2. 归零编码
- 3.3. 非归零编码
- 3.4. NRZ和NRZI
- 4.1. USB Implementation Areas
- 4.2. USB Physical Bus Topology
- 4.3. USB Logical Bus Topology
- 4.4. USB Communication Flow
- 4.5. USB Layers in Linux
- 4.6. USB Transfer and Transaction
- 4.7. Configuration Descriptor: 0902420002010480E1
- 4.8. Interface Descriptor: 0904000002FF000000
- 4.9. Endpoint (Interrupt Out) Descriptor: 07050103400001
- 4.10. Endpoint (Interrupt In) Descriptor: 07058103400001
- 4.11. Interface Descriptor: 090401000103000000
- 4.12. Endpoint (Interrupt In 2) Descriptor: 0705820340000A
- 4.13. USB主机中软件和硬件之间的关系
- 4.14. USB Communication Channel
- 4.15. USB Typical List Structure
表格清单
- 2.1. 不同USB控制器类型OHCI,UHCI,EHCI,xHCI的区别和联系
- 2.2. USB 1.x/2.0的引脚定义
- 2.3. USB 3.0的引脚定义
- 2.4. USB接口分类
- 3.1. USB 2.0协议的内容组成
- 3.2. USB协议的版本的演化
- 4.1. USB Class表
- 4.2. USB Descriptor Type
- 4.3. USB Configuration Descriptors
- 4.4. USB Interface Descriptors
- 4.5. USB Endpoint Descriptors
- 4.6. USB HID Descriptors
- 4.7. USB HID Descriptor: 090401000103000000
缩略词
- EHCI (EHCI)
Enhanced Host Controller Interface
- NRZ (NRZ)
Non-Return-to-Zero
- NRZI (NRZI)
Non-Return-to-Zero Inverted
- OHCI (OHCI)
Open Host Controller Interface
- RZ (RZ)
Return-to-Zero
- SYNC (SYNC)
Synchronize
- UHCI (UHCI)
Universal Host Controller Interface
- USB (USB)
Universal Serial Bus
通用串行总线
- xHCI (xHCI)
eXtensible Host Controller Interface
正文之前
目录
- 1. 此文目的
- 2. 关于一些USB方面的文档
- 2.1. 大而全的USB英文资料
- 2.2. 简明扼要的USB英文资料
- 2.3. 全系列的介绍Linux下的USB中文资料
- 3. 声明
1. 此文目的
由于USB所涉及的知识太多,如果想要在一篇文章里,把USB的方方面面的内容,都解释的很清楚,那几乎是不可能的。
因此,此文目的,不是为了把USB的所有的事情都写出来,而是让对USB不懂的人,通过此文档,能对USB有个基本的认识,并且搞懂USB世界中的基本的术语的含义。
即,此文目的,是为了给不熟悉USB的人,一个总体的概述,以及解释一些必要的USB方面的基本知识。
这样,如果想要更细节的去了解USB的知识,也知道从哪里入手,以及如何去找相关资料区学习了。
2. 关于一些USB方面的文档
USB很复杂,所以,如果能把复杂的东西解释的清楚的,不是很容易。
而且由于USB涉及知识面也很广,所以也很难简短地描述清楚。
2.1. 大而全的USB英文资料
对于众多的现存的USB的文章或书籍,我所见过的,能把USB讲的透彻的,算是
英文资料:《USB Complete》,中文翻译为《USB大全》,目前最新版本是第四版。
其主页是:
http://www.lvr.com/usbc.htm
网上也可以找到盗版的电子版的,第三版的有中文翻译,第四版的只有英文原版。
2.2. 简明扼要的USB英文资料
另外,简明扼要地,把USB讲解的很清楚的,我觉得算是《USB in a Nutshell》了,网上随便都可以搜到此文的pdf版本,比如:
USB in a Nutshell - Making sense of the USB standard
而此文,也是主要根据此贴而来,基本可以算是《USB in a Nutshell》的中文版吧,然后另外又添加了一些必要的知识,以求把USB讲解的更加清楚。
2.3. 全系列的介绍Linux下的USB中文资料
另外,关于中文方面的资料,觉得写的比较全,解释的比较清楚的,算是fudan_abc写的《Linux那些事儿系列》,是一个系列的,好多个文档的。详细资料,已整理放到这里了:
【很好的学习Linux驱动的教材】Linux那些事儿系列[全][pdf]
3. 声明
由于本人知识水平有限,错误在所难免,欢迎指正。
此文欢迎拷贝传播,但是所有权本人独有,未经许可,严谨用于其他商业等用途。
更多建议,意见,吐槽,都可以联系偶:admin (at) crifan.com
第 1 章 USB的来龙去脉
目录
- 1.1. USB是什么
- 1.2. 为何要有USB
摘要
1.1. USB是什么
USB是Universal Serial Bus的缩写,中文译为通用串行总线。
所以,从字面意思上,善于思考的人,就问有疑问:
那么与此USB相比,其他还有哪些非串行的总线,以及和此通用的串行总线来说,其他还有哪些相对“不通用”的串行总线呢?
对此,借用《USB Complete》里面所总结的,关于USB和其他接口的区别,来解释一下:
图 1.1. USB与其他总线的异同
从上述表格中,表面上看,好像也没看出USB相对其他接口,有多么特别明显的优点,而只是看到在某些参数上,比其他某些接口参数更高,而在别的某些参数上,比其他接口低。
关于细节的区别,不是此讨论的重点,此处,我们至少可以看出,除了USB接口外,目前已存在的接口,还是很多的,而且各种接口实际上从硬件上也是形状各异,互相也都有自己的应用领域,而且无法兼容。基于此背景,才有下面的解释,以说明,为何会出现这么个USB接口。
此处,简单的说,USB就是一种接口,一种总线。
1.2. 为何要有USB
上面已经提到了,在USB出现之前,其实计算机领域中,已经存在众多的接口,而且不同的应用领域,已有一些相对来说是广泛使用的各种接口了。
但是,对于计算机等使用的普通用户来说,由于接口太多,而容易被搞得晕头转向。再加上各个接口从硬件形状和软件配置也都不一样,导致不兼容,为了不同的应用,而要配置多种不同的硬件接口,设置对于有些硬件接口来说,还需要手动去配置一些更细节的参数。
关于USB出现之前,计算机领域中的接口太多太繁杂,可以用下面这张,关于PC机箱背后的接口的图片来说明:
图 1.2. PC机箱后面的众多接口
所以,总的来说,在USB出现之前,各种接口太多,而且都不太容易使用,互相之间的兼容性也较差,因此,才出现了USB。
而万能的USB接口出现的话,整个PC机箱背后的接口,就不那么繁杂,显得清静多了:
图 1.3. 有了USB接口之后的PC机箱背后的接口
USB出现的最初的目的,根据USB规范中的解释,是为了:
- 将PC和电话能连起来
由于大家都认识到,下一代的应用,肯定是实现计算机设备和通讯设备的完美融合。而且,为了实现移动领域内的人机数据的交互,也需要方便且不贵的连接方案。
但是,计算机领域和通讯领域却是各自为政的发展,没有考虑互联性。由此,USB的出现,就是为了解决这一类互联问题的
- 方便用户使用
以前的一些设备,多数不支持即插即用,而且很多设备还需要懂行的用户去手动配置,然后才可以正常工作
而USB的出现,使得用户不用关心设备的细节,不需要去另外再配置什么参数,直接插上就可以用了,而且还支持即插即用,很是方便
- 接口扩展性要好
之前的众多接口,导致不同的应用,需要使用不同的接口,很是繁琐。
USB的出现,支持众多的应用,都使用统一的USB的接口,方便了用户,不需要再搞懂各种接口的用途和差异。
总的来说,USB的出现,是希望通过此单个的USB接口,同时支持多种不同的应用,而且用户用起来也很方便,直接插上就能用了,也方便不同的设备的之间的互联。
说白了,就相当于在之前众多的接口之上,设计出一个USB这么个万能的接口,以后各种外设,都可以用这一种接口即可。
这估计也是USB的名称中的Universal通用的这一个词的来历吧。
第 2 章 USB相关的基础知识
目录
- 2.1. USB相关的硬件
- 2.1.1. USB控制器类型:OHCI,UHCI,EHCI,xHCI
- 2.1.1.1. OHCI和UHCI
- 2.1.1.1.1. 为何Intel设计的UHCI把更多的任务都留给软件实现?
- 2.1.1.1.2. 为何嵌入式系统中的USB主控多用OHCI,而非UHCI?
- 2.1.1.1.3. OHCI和UHCI技术细节上的区别
- 2.1.1.2. EHCI
- 2.1.1.3. xHCI
- 2.1.1.4. OHCI,UHCI,EHCI,xHCI的区别和联系
- 2.1.2. USB接口的引脚定义
- 2.1.3. USB的接口(connector)类型
- 2.2. USB相关的软件
- 2.2.1. USB设备端的固件(Firmware)
- 2.2.2. USB主机(Host)端的USB驱动和软件
- 2.2.3. 其他一些USB测试和协议分析等软件
摘要
在介绍USB协议的细节知识之前,有很多相关的软硬件的基础知识,需要了解一下。
TODO:
http://www.silabs.com/Support%20Documents/Software/USB_Overview.pdf去学习USB的基础知识后整理过来。
2.1. USB相关的硬件
USB设备,从物理上的逻辑结构来说,包含了主机Host端和设备Device端。
其中,主机Host端,有对应的硬件的USB的主机控制器Host Controller,而设备端,连接的是对应的USB设备。
2.1.1. USB控制器类型:OHCI,UHCI,EHCI,xHCI
由于历史原因,导致USB的主机控制器,出现了多种不同的类型,即OHCI和UHCI,EHCI,和xHCI。
不论是那种USB主机控制器,简称主控,都是符合对应的USB的规范的,都是实现了对应的USB规范中所规定的USB主控所要的那些事情的。只不过是不同的USB主控的类型,有着不同的特点。
下面对这些不同类型的USB主控制器,进行简要的解释。
2.1.1.1. OHCI和UHCI
OHCI,Open Host Controller Interface,创立者是Compaq,Microsoft和National Semiconductor。
UHCI,Universal Host Controller Interface,创立者是Intel。
两者之间的相同点是:
不论是OHCI还是UHCI都是对应于USB 1.1的标准的,都是完全符合USB协议标准的。
区别在于:
只是各自的实现方式有些略微不同而已。当然对应的具体的性能,也略有差别,具体的差异,,和实际的应用有关系。
但是本身OHCI和UHCI的区别在于:
虽然都是实现了USB1.1协议规范,但是在功能划分上,OHCI更多地把要做的事情,用硬件来实现,因此,实现OHCI的USB控制器的软件驱动的开发工作,相对要容易些,软件要做的事情,相对较少。
对应地,OHCI更多地应用在扩展卡,尤其是嵌入式领域中,常见的很多开发板中的USB的控制器,很多都是OHCI的。
而UHCI把更多的功能,留给了软件,相对来说,软件做的事情,即负担要重些。但是实现对应的UHCI的硬件的USB控制器,价格上,就相对便宜些。
对应地,UHCI更多地应用在PC机中的主板上的USB控制器。
2.1.1.1.1. 为何Intel设计的UHCI把更多的任务都留给软件实现?
对于两者的区别和实际的应用,自己分析,不难发现,其是有着内在的逻辑关系的。
因此,作为UHCI的创立者Intel,创立了UHCI,把更多的USB需要做的事情,留给了软件,这样就可以实现出相对教便宜的USB的主控制器了,可以用于PC端的CPU所对应的主板上,便宜的USB主控,当然相对市场来说,更容易多卖出去一点,有利于市场推广。
PC主板卖出的多了, 自然对应的Intel的CPU,也会多卖点,Intel自然可以赚更多的钱了。
2.1.1.1.2. 为何嵌入式系统中的USB主控多用OHCI,而非UHCI?
而对应的Compaq,Microsoft和National Semiconductor所创立的OHCI,由于把更多的USB要做的事情,都用硬件实现了,这样对应的软件驱动所要做的事情,就少了,这样就有利于实现对应的OHCI的USB主控的驱动了,这点对于嵌入式系统来说,尤其重要,因为本身嵌入式系统就是资源有限,所以要尽量少的利用其他资源,比如CPU资源,去实现特点的功能,所以,倾向于采用对软件资源要求少的OHCI,而不是UHCI,否则用了UHCI的USB主控的话,需要实现对应的驱动,软件要做的事情太多,不利于在嵌入式系统这有限的资源环境下实现。
2.1.1.1.3. OHCI和UHCI技术细节上的区别
关于OHCI和UCHI在技术细节方面,更加详细的区别主要有这些:
- 单帧内的stage的个数
对于控制传输来说:
- OHCI:在单个帧内,可以调度多个stage;
- UHCI:在单个帧内,只调度一个stage。
- 单帧内的transaction的个数
对于最大数据包大小小于64字节的Bulk端点来说:
- OHCI:单个帧内,可能会有多个transaction。
- UHCI:单个帧内,不超过一个transaction;
- 轮询的频率
- OHCI:,即使端点描述符中,已经指定了最大延迟是255ms,但是OHCI主控还是会,至少每32ms就去轮询一次中断端点
- UHCI:UHCI主控可以支持,但是不是必须要支持,更低频率地轮询
2.1.1.2. EHCI
EHCI,Enhanced Host Controller Interface。
简单说就是,EHCI定义了USB 2.0的主机控制器的规范,定义了USB 2.0的主控,需要包括哪些硬件实现,需要实现哪些功能,其也对应着对应的系统软件,所面对的是哪些接口。
EHCI对USB主控的定义,详细到了寄存器的级别了,即定义了你USB主控,都要实现哪些对应的功能和对应的寄存器有哪些,分别是何种功能等。然后对应的软件驱动人员,去写USB主控的驱动的时候,也就清楚有哪些可以利用的系统资源,如何去使用这些资源,读取,设置对应的寄存器,实现对应的功能了。
对应的EHCI规范,可以去Intel的官网找到:
EHCI Specification
2.1.1.3. xHCI
xHCI,Extensible Host Controller Interface
同EHCI是针对USB 2.0类似,xHCI是针对的USB 3.0规范。也是定义了USB 3.0主控需要如何实现,需要包含哪些功能,也是提供了寄存器级别的定义。
对应的xHCI规范,可以去Intel的官网找到:
Extensible Host Controller Interface (xHCI) Specification for USB 3.0
2.1.1.4. OHCI,UHCI,EHCI,xHCI的区别和联系
针对上述的解释,对USB的不同类型的主机控制器,简要概括如下:
表 2.1. 不同USB控制器类型OHCI,UHCI,EHCI,xHCI的区别和联系
2.1.2. USB接口的引脚定义
USB接口的物理上的对应的引脚和对应含义等,可用下表概括:
表 2.2. USB 1.x/2.0的引脚定义
表 2.3. USB 3.0的引脚定义
2.1.3. USB的接口(connector)类型
由于USB的产生就是为了支持众多种应用的,而由于各种应用中,对于硬件接口的大小也有一些限制,比如有些小型设备或者移动式设备中,接口不能太大等,所以而设计出多种类型的接口,用于不同的应用。
在介绍插头和插座之前,先多解释一下,基本的叫法。
插头,plug,对应的也叫公口,即插别人的;
插座,receptacle,对应也叫做母口,即被插的;
对上述解释,想多了的,面壁去;没想多的,继续看技术介绍。
下面就来简单的介绍一下不同的USB接口类型,即各种不同的插头插座:
USB的接口类型,根据接口形状不同,主要可以分为三大类:
- 普通的硬件直接叫做Type
- 然后有小型版本的叫Mini迷你的
- 和更加小的,叫做Micro微小的
其中每一种大类中,又都可以分为两类
- A类(Type A)
- B类(Type B)
下面就用表格的形式,详细对比USB的各种接口,包括对应的插头和插座:
表 2.4. USB接口分类
目前多数手机厂商已宣布统一使用Micro USB接口作为手机充电器标准接口。
2.2. USB相关的软件
如果某个USB设备正常工作,除了对应的硬件之外,还需要对应的软件支持。
2.2.1. USB设备端的固件(Firmware)
而对于USB设备端来说,内部是需要有对应的设备端的驱动,常常称其为固件Firmware,其实现了对应的设备端的USB所要做的事情,主要是相应一些标准的请求,完成对应的数据读取和写入等。
2.2.2. USB主机(Host)端的USB驱动和软件
对应的,主机Host端,也需要对应的驱动,此部分驱动,不论是Linux下,还是Windows下,都已经实现了常见的驱动了,所以一般来说,很少需要驱动开发者再去写相关的驱动。
2.2.3. 其他一些USB测试和协议分析等软件
在设备驱动开发阶段或者USB出现问题,需要调试的时候,往往就需要一些调试工具了。
一般来说,都包含了对应的USB硬件测试工具,加上对应的软件工具,去捕获对应USB总线上的数据,即所谓的USB抓包,然后再去分析抓取出来的数据,是否是期望的,是否符合USB协议的规范定义。
我所见过的一些USB抓包工具有:
- USB Explorer 260 + Ellisys USB Analysis Software
Ellisys的USB Explorer 260硬件,加上对应的USB软件Ellisys USB Analysis Software,实现USB数据抓包和分析
Ellisys USB Explorer 260的外观是这样的:
图 2.1. USB协议分析工具:Ellisys的USB Explorer 260
TODO:
Ellisys USB Explorer 260的对应功能特点,可以参考:
http://www.ellisys.com/products/usbex260/features.php#usbex260g
从:
http://www.ellisys.com/support/download.php
可以看到截图:
->
http://www.ellisys.com/products/usbex260/download.php
可以看到各种下载。
- Catalyst Enterprises公司的硬件,加上对应的软件SBAE USB,实现USB数据捕获和分析
另外,当然也有一些USB开发相关的工具,比如:
- usbview
用于查看USB设备的详细信息
- USB20CV
用来做USB兼容性测试的工具,具体工具下载和详细解释可以去USB官网找到。
- bus hound
好像是个纯软件的USB抓包工具,据说不支持USB枚举过程的抓包。具体没用过,只是听说过
第 3 章 USB协议概览
目录
- 3.1. USB 2.0协议内容概览
- 3.2. USB协议的版本和支持的速度
- 3.2.1. 为何USB的速度,最开始没有设计的更快些?
- 3.3. USB系统的核心是Host
- 3.4. USB中用NRZI来编码数据
- 3.4.1. USB中用Bit-Stuffing来同步时钟信号
摘要
3.1. USB 2.0协议内容概览
USB协议,由于涉及内容太多,所以在此一个文档中解释清楚,是不现实的。
此处能做的和要做的,就是对于USB协议简明地介绍一下关于USB本身协议部分的内容。
当前最新的USB协议,已经发展到USB 3.0了。但是主流的USB设备和技术,还是以USB 2.0居多。所以此文,主要是以USB 2.0为基础来解释USB协议的基础知识,当然,会在相关内容涉及到USB 3.0的时候,也把USB 3.0的相关内容添加进来。
关于USB 2.0和USB 3.0等USB的协议规范,可以去官网下载:
http://www.usb.org/developers/docs/
其实,说实话,不论是谁,如果开始看USB协议的时候,发现单独对于USB 2.0规范本身这一个文档来说,竟然都有650页,而如果再加上,新的USB 3.0规范的482页,和其他一些辅助的USB相关的规范定义等文档,即使你是英语为母语的人,如果要看完这么多页的协议规范,估计也会吐的,更别说我们中国人了。
所以,此处,就来简单以USB 2.0规范为例,分析一下,具体其都主要包含哪些内容,然后你会发现,其实和USB协议本身相关的内容,相对则不会那么多,大概只有97页左右的内容,是我们所要关心的。
下面就来分析看看,USB 2.0的规范中,具体都包含了哪些内容:
表 3.1. USB 2.0协议的内容组成
关于第九章=chapter 9=ch9,多说明一下,由于其特殊性,特殊在于大部分和USB协议相关的内容,都在此章节内
所以,你会在其他地方看到有关此ch9的说法。比如Linux源码中关于USB协议实现的部分的代码,会看到有对应的头文件是
include\linux\usb\ch9.h
此文件,就是指的是USB规范中的chapter 9,第九章。
这也意味着,以后其他人如果谈及USB的话,说到第九章,指的就是此USB规范中的chapter 9,因为其包含了USB协议的软件实现所有关的多数的内容。
所以,由上述总结,我们可以看出:
对于只是为USB外设开发驱动的开发者的话,那么有关的章节只有:
- 4 系统架构综述
- 5 USB数据流模型
- 9 USB设备框架工作
- 10 USB主机的硬件和软件
如果是对于USB外设的电子设计研发人员,有关系的章节有:
- 4 系统架构综述
- 5 USB数据流模型
- 6 机械的
- 7 电子的
这么一来,如果是打算做USB设备驱动开发的话,其实我们要看的,只是USB 2.0规范中的一部分,大概有10+60+36+23=129页,所以,相对来说,还算能够接受,至少比要看那600页,要少了很多。
当然,这其中的内容,也还是不少。
而下面这些内容,就是将其中最基本的内容,精简出来,以方便想要快速了解USB基础知识的人,尽快地,更加清晰地,了解到USB的基础知识。
3.2. USB协议的版本和支持的速度
USB协议,也像其他协议一样,经历过很多个版本,但是正式发布出来的,主要有4个。
其中,从开始的USB 1.1,发展到后来的USB 2.0,以及最新的协议版本是USB 3.0.
不过这三个版本都是针对的是有线的(corded)设备来说的,在USB 2.0和USB 3.0之间,发布过一个是针对无线设备的USB协议,叫做USB Wireless,也被称为USB 2.5。
其中,USB 1.1中所支持的速度是低速(Low Speed)的1.5Mbits/s,全速(Full Speed)的12Mbits/s,而USB 2.0提高了速度至高速(High Speed)的480Mbits/s,而最新的USB 3.0,支持超高速(Super Speed)的5Gbits/s。
下面简要总结一下,各个USB协议版本的演化历史:
表 3.2. USB协议的版本的演化
- USB基础知识概论
- USB基础知识概论
- DirectShow API 基础知识概论
- DirectShow API 基础知识概论
- 计算机概论的基础知识
- 操作系统基础知识概论
- 软件测试基础知识概论
- usb基础知识
- USB基础知识
- USB基础知识
- USB基础知识
- usb基础知识
- USB基础知识
- USB基础知识
- USB基础知识(上)
- USB基础知识(下)
- 转载:USB基础知识
- USB基础知识(转)
- 为什么现在深度学习才流行起来?
- Java 设计模式情景分析——工厂模式
- struts框架集成spring框架的简单实例
- 关于c#Dev 里的TreeListLookUpEdit控件使用
- 配置Linux或Centos的阿里yum
- USB基础知识概论
- 华为面试题——压缩字符串
- 每天一个 linux 命令(20):文件查找命令 find命令之exec---学习笔记
- freebasic 教程 笔记
- HDU 4849 Wow! Such City!
- request.getParameter()与request.setAttribute()的区别
- 研发团队使用的管理平台对比
- extern "C"
- C#生成验证码(纯数字)