USB2.0学习笔记连载(二):USB基础知识简介

  USB接口分为USB A型、USB B型、USBmini型、USBmicro型、USB3.0其中每种都有相应的插座和插头。

图1

图2

上图是USBA型接口,图1为插座,图2为插头。插座指向下行方向,插头指向上行方向。

USB中一般常用有4根线,两边两根线一般为VBUS(5V的接入或接出线,对应上图中的1引脚)和GND(对应上图中的4引脚)。中间两根为D+(对应上图中的3引脚),D-(对应上图中的2引脚),还有外加一个屏蔽层。

图3

图4

USB B型所对应的各信号和USB A型一致。在各种开发板上比较喜欢用USB B型接口,占PCB面积较小。

图5

图6

  图5是插座,图6是插头。和USB A和USB B不同的是,USB mini型接口多了一个引脚,那么这个引脚对应图中的4,此引脚作为ID,只有在OTG情况下才有用。关于OTG笔者搜索了一下资料,现整理如下:

USB OTG是USB On-The-Go的缩写,是近年发展起来的技术,2001年12月18日由USB Implementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PAD、移动电话、消费类设备。

  由上面的介绍可以得到一个结论,此技术就是实现不同设备之间的连接,并进行数据交换,由于USB设备分为主(Host)和从(Slave),只有当一个主设备和从设备连接时才能实现数据传输。而OTG技术也是遵从主从关系,只不过主可能不是PC机,可以是任意其他的设备,然后对于ID引脚,作为主设备,可以将其接地,作为从设备一端的4引脚悬空,这样就可以区分开谁是主和从的关系。

图7

图8

   上图是USB micro的插座和插头,最常见的例子就是我们的手机数据线,插入手机一端就是USB micro接口。上图中micro-AB是可以插入USB micro A型插头或USB micro B型插头。

图9

图10

  USB3.0 A型接口。 上图是USB3.0的靓照,感觉看一个数据线是不是USB3.0的接口,估计最明显的标注就是在插头上会有SS标志。USB2.0最大速度也就是高速情况下可以达到480Mbps(60MB/s)半双工,而USB3.0高速情况下可以达到5.0Gbps(500MB/s)全双工,注意这里不是5Gb/s除以8得到的640MB/s,而是除以10bit,采用与SATA相同的10bit传输模式,编码规则采用8/10的方法,存在2bit的控制信号,所以USB3.0的理论数据传输速率是5Gbps/10bitt=500MB/s。

图11

  USB3.0接口和USB2.0接口有很大的不同。USB3.0接口有9根线,前4根线和普通的USB线一样,后5根线是为超高速做准备。其中超高速输入引脚5脚为SSRX-,6脚SSRX+,超高速输出引脚8脚SSTX-,9脚SSTX+,7脚为GND引脚,还包括屏蔽层。

USB3.0在高速情况下之所以比USB2.0快,是因为额外增加两对传输线,如图11所示。

USB3.0能够实现较好的电源管理,USB3.0接口供电能力为1A,USB2.0为0.5A。实现USB充电电池,LED照明和mini风扇提供更多的功率。这意味着通过USB3.0来充电可以更快完成充电。能够使主机更快地识别器件,处理数据效率更高。

转换到USB 3.0,功耗也是要考虑的很重要的一个问题,因此有效的电源管理就很必要,可以保证设备的空闲的时候减少电力消耗。

   大量的数据流传输需要更快的性能支持,同时传输的时候,空闲时设备可以转入到低功耗状态。甚至可以空下来去接收其他的指令,完成其他动作。其实,在USB 3.0中也并不是所有的东西都更新换代了,比如线缆的长度。当在某些应用中需要尽可能高的吞吐量的时候,往往线缆依旧会成为瓶颈。虽然在USB 3.0规范中,没有明确指定USB线缆有多长,但是电缆材质和信号质量还是影响了传输的效果。因此在传输数百兆大数据流的时候,线缆长度最好不要超过3米。

  虽然USB 2.0 Hi-Speed的数据传输速率是480Mpbs,也就是理想状况下应该为60MB/s,但是在Windows based操作系统下,由于default driver的限制,实际的效能大约为30MB/s~35MB/s,与60MB/s有一大段距离。

图12

  图12是USB2.0和USB3.0的主要区别。

图13

  上图是USB3.0 B型接口,可以兼容USB2.0和USB3.0接口,买过移动硬盘的朋友应该见过这种接口。

时间: 2024-09-30 06:55:22

USB2.0学习笔记连载(二):USB基础知识简介的相关文章

USB2.0学习笔记连载(三):通用USB驱动程序解析

对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔者这样喜欢做硬件的研发对软件不是很感冒的孩纸,怎么快速上手开发出USB驱动.其实很多USB芯片公司已经给很多用户提供了开发包,譬如笔者使用的Cypress公司提供的开发包可以满足广大用户的要求,这一点还是值的称道的,关于后续怎么使用这些开发包进行USB2.0驱动的开发,笔者会在后续的博客中一一写出.

USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项

笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的.不单单只是USB的设计,其中有些思想可以应用到其他的场合中. 对于USB2.0而言,全速状态下可以达到480Mbps,带宽相比USB1.0提高了不少.USB2.0的供电大功率供电可以达到500mA,实际上加上USB自身消耗,也就是在450~480mA左右. 1.USB供电 对于外部器件的供电选择,可以使用USB进行供电,也可以自供电.关于USB集线器的介绍参看另外一篇关于USB集线器的介绍. USB进行供

USB2.0学习笔记连载(九):USB设备驱动的安装

在第一次插入USB设备时(笔者用的是自己做的USB最小系统来测试),插入电脑后,在设备管理器中会显示 未知设备,如下图所示: 点击右键,选择属性,在详细信息中可以看到硬件ID以及PID等,如下图所示. 根据手册中的内容,和上述的描述是一致的,如下图所示: 那么先默认安装cypress官网上面的驱动,如下图所示: 打开cyusb3.inf文件,如下图所示: 文件中的各个内容的含义,请参考之前的博客<通用USB驱动程序解析>.保持文中的值,即是安装官方提供默认的驱动文件.   由于CY7C6801

USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题

笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的,以保证windows系统安全.如下图所示: 出现这个问题是由于cypress的芯片未经过签名,显示安装不成功.那么解决上述的办法,需要关闭win8及以上系统的禁用强制驱动签名.如下图所示: 链接:http://zhidao.baidu.com/question/1366740923411875539

汇编入门学习笔记 (一)—— 基础知识、寄存器

疯狂的暑假学习之  汇编入门学习笔记 (一) 参考:<汇编语言> 王爽  第一,二章 一.基础知识 1. 用汇编语言编写程序的工作过程 汇编本质就是为了方便程序员,把二进制代码用汇编指令来表示 汇编指令---------------->  编译器  ---------------->机器码----------------> 计算机执行 mov ax, bx                                                          100

加壳学习笔记(一)-基础知识

1.预备知识 1.关于栈,在windows里面的堆栈其实很简单,当学了才知道哈,呵呵,第一要记住的是windows里面的栈是向低地址生长的(extended,延伸,呵呵,顺便丰富下英语的单词量,确实是少的可怜),你可以这样认为,栈就像是一个倒立的箱子,箱子的口子是向下的,底是向上的,这里就表明了系统栈的分布也是延伸方向是由高地址向低地址extended,在最初的空栈阶段,栈顶(extended stack pointer,简称是esp)在栈底的低一个位置,呵呵,其实很好理解,就是说最初的箱子是空

《solidity学习笔记》chapter 2-solidity基础知识

映射 映射本质上是存储和查找数据所用的键-值对. mapping (uint => string) intToStr; 地址 以太坊区块链由 account (账户)组成,你可以把它想象成银行账户.一个帐户的余额是 以太 (在以太坊区块链上使用的币种),你可以和其他帐户之间支付和接受以太币,就像你的银行帐户可以电汇资金到其他银行帐户一样.每个帐户都有一个"地址",你可以把它想象成银行账号.这是账户唯一的标识符. mapping (address => uint )publi

Python学习系列(二)(基础知识)

Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比,避免陷入语法的苦海.我认为初学者学习语法的目标是学会使用即可,关于对概念的深入理解,剖析,没有一定的知识积累是很难做到的. 学习Python,基本语法不是特别难,有了C的基本知识,理解比较容易.本文的主要内容是Python基础语法,学完后,能熟练使用就好.(开发环境依然是Python2.7,简单使用

VBS学习日记(二) 基础知识

VBScript 基础知识 一.变量 1.全部单引號后面的内容都被解释为凝视.(在vbsedit中ctrl+m凝视,反凝视ctrl+shift+m) 2.在 VBScript 中,变量的命名规则遵循标准的命名规则,须要注意的是:在 VBScript 中对变量.方法.函数和对象的引用是不区分大写和小写的.在申明变量时,要显式地申明一个变量,须要使用keyword DIm 来告诉 VBScript 你要创建一个变量,并将变量名称跟在其后.申明多个同类型变量,能够用逗号分隔.注意:VBScript 中