搜索
bottom↓
回复: 3

好文推荐: 高速USB2.0≠480Mbps的通信速率

[复制链接]
头像被屏蔽

出0入0汤圆

发表于 2007-8-9 21:42:27 | 显示全部楼层 |阅读模式
原文出处: http://www.ednchina.com/blog/avan/13488/message.aspx





  USB技术从1994年开始提出以来,到目前为止共有三个版本:USB 1.0、USB 1.1和USB 2.0。USB 1.0只有低速(low speed,1.5Mbps)一种传输模式,USB 1.1增加了全速(full speed,12Mbps)模式,USB 2.0又增加了高速(high speed,480Mbps)模式。



  















图1  USB端口与高速USB端口的标志



       为了使1.0的设备(鼠标和键盘)在USB 2.0下面仍可以工作,2.0端口的物理形状与1.0保持完全一致(图2)。所以,仅从外观上来看,我们是分别不出USB端口的版本。当我们把U盘或移动硬盘插入到主机的USB接口时,往往并不知道移动设备的工作模式,也不知道数据传输率是究竟1.5Mbps、12Mbps,还是480Mbps,只是在盲目地使用,胸中无数。  那么,2.0端口怎样保持与USB 1.0、USB 1.1设备之间相互兼容呢?2.0控制器又是怎样判断出设备是1.0还是2.0的呢?这就是本文需要解决的问题。









图2   两种USB版本具有相同的连接器(还有一种mini-B型,与B型定义相同,只是尺寸更小一些)        



       ● 主机如何识别USB设备类型?



       当USB设备插上主机时,主机就通过一系列的动作来对设备进行枚举配置,其中包括如下一些状态:



      (1)接入态(Attached):设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入;



      (2)供电态(Powered):就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置);



       (3)缺省态(Default):USB在被配置之前,通过缺省地址0与主机进行通信;



       (4)地址态(Address):经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;



       (5)配置态(Configured):主机发出标准的USB请求命令来获取设备的各种信息,并根据这些信息对控制器进行设置。



       (6)挂起态(Suspended):总线供电设备在3ms内没有总线操作,即USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA。









图3  枚举成功的设备,会在设备管理器中显示出来。



       USB设备的EEPROM芯片中存储有设备描述符、配置描述符、字符描述符、接口描述符和端点描述符,其中的接口描述符会告诉主机该接口的类型。在配置态,主机获取USB设备信息,Windows的设备管理器将描述符内的信息与PC内部INF文档进行比较,从中找出最佳匹配,然后指定一个设备驱动程序,这样应用程序就能够访问该设备了(图3)。



● 保持兼容性的措施



      为了保持向下兼容,需从软硬件两个方面去考虑。软件方面的问题这里不准备讨论,我关心的只是硬件方面。



     (1)带宽分配与速率转换



      虽然USB 2.0定义了1.5Mbps、12Mbps和480Mbps三种传输速率,但任何一个设备的实际传输速率只能达到设备自身所允许的最高值。对于连接到2.0端口的低速设备,主控端需要降低速率,以保证通信的成功。USB2.0控制器中有一个称为“Transaction Translator”的电路,就是负责进行传输速率转换的。



     (2)电平设置与电流分配



         我们知道,USB连接线中有四条导线,其中的两条用于传送数据,另外两条则分别用来传送电力与接地。这些拥有专门用途的导线都有特别的名称:VBUS(电源)、Ground(接地)、D+与D-(信号线)。其中D+与D-是传送USB数据的差分信号线。









图4  一对双绞线组成差模信号传输线路



       在全速与低速传输时,这对信号线的差分电压为+/-3V。  而在高速传输时,这对信号线的差分电压为+/-400mV。高速传输模式采用较低的电位有助于减少信号传送的耗电量以及降低电磁干扰(EMI)。



      当设备刚插入时,仅允许它吸入100mA的电流,只有当确定设备为USB 2.0时,才允许它吸入最高500mA的电流。



● 如何确认USB设备工作在1.0,1.1,还是2.0模式?



       虽然当今的计算机至少提供两个USB端口,但有些只能用于USB1.1和USB 1.0的数据传输,并不能支持USB 2.0的数据传输。另外,从设备管理器中我们还可以看到,USB控制器保留了10%的带宽,所以USB的带宽只能达到理论带宽的90%。当我们把一个U盘插入电脑中,它的实际速率到底是多少,并不能直观地显示在我们面前,而且Windows的设备管理器中并不能显示USB设备的工作模式。这就是说,即便插入的设备可以工作,但是它未必能达到我们所期望数据传输速度。从这个意义上讲,弄清楚它的工作模式是有实际意义的。



       如何得知设备的实际工作模式呢?看来只有借助于第三方测试软件了。下面以Travel star 40GB移动硬盘为例,使用两款软件测试其数据传输率。



       HD Tach是一款专用的硬盘速度测试软件,测出的数据为:最大值23.8MB/s,最小值:13.8MB/s;平均值:20.0MB/s(图5)。











图5  HD Tach 2.70的测量结果(点击图片放大)



       SiSoft Sandra  Pro 2005 是一款系统信息测试软件,该软件的“文件系统测试”项可以测试硬盘(包括移动硬盘)的传输速率,测出的数据传输率为24MB/s(图6)。









图6   SiSoft Sandra  Pro 2005 的测量结果(点击图片放大)



      虽然两款软件测试结果不尽相同,却说明了同一个事实:移动硬盘确实工作在USB 2.0模式下,因为这些数据都远远超过了1.5MB/s(USB 1.1的最大值)。



●  USB 2.0 ≠ 480Mbps的原因



         (1)设备性能的限制



           就目前来说,突发传输率能够达到480Mbps的设备还不多见。硬盘的数据传输率最高,也没有达到这个数值。与硬盘相比,闪存的读写速度更慢。



         (2)传输线路的影响



        由于USB 2.0 High-speed接口的传输速率是USB 1.1的40倍,二者的数据延长线有明显不同。仔细观察USB 2.0 High-speed延长线缆,通常可看到“USB Revision 2.0”或“High-speed USB”的标注。如果使用不符合标准的或者劣质的延长线,可能会导致传输率下降或读写错误。





[知识链接]



1  Steve Kolokowsky/Trevor,深入了解USB电源规范,新电子(台湾)杂志,2006-11-28



2  陈乃塘,USB HUB装置的架构剖析,新电子(台湾),2005-01-16



3  陈忠民,“串行”为什么会走红? EDNChina,2006-10-08



4   杜戈等,USB总线的体系结构,电子产品世界



5  走出USB2.0接口速度规格误区

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2007-8-10 10:20:01 | 显示全部楼层
不错,通俗易懂

出0入0汤圆

发表于 2007-8-10 16:54:32 | 显示全部楼层
谢谢楼主,上几天下在了个USB规范,该好好看看了

出0入0汤圆

发表于 2011-7-17 09:00:07 | 显示全部楼层
marked
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-12 15:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表