原创 USB1.0和USB2.0的兼容

2007-8-18 10:25 6226 2 2 分类: 通信

 当我们把USB1.0的鼠标、键盘插入USB 2.0的端口时,系统宽容地接纳了它们。那么,USB控制电路是通过什么样的措施来实现两种不同版本相互兼容的呢?


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


         USB1994年开始提出以来,到目前为止共有三个版本:USB 1.0USB 1.1USB 2.0USB 1.0只有低速(low speed1.5Mbps)一种传输模式,USB 1.1增加了全速(full speed12Mbps)模式,USB 2.0又增加了高速(high speed480Mbps)模式。 


aa5d9bc6-8362-444e-aaf1-0c6650c239be.GIF


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


 

       为了使USB1.0的设备(鼠标和键盘)在USB 2.0下面仍可以工作,首先要做的工作,就是让2.0端口的物理形状与1.0保持完全一致(图2)。所以,仅从外观上来看,我们是分别不出USB端口的版本。当我们把U盘或移动硬盘插入到主机的USB接口时,往往并不知道移动设备的工作模式,也不知道数据传输率是究竟1.5Mbps12Mbps,还是480Mbps


fe7aaac5-97bb-4546-a5fe-543f57c5f173.gif


 


2   两种USB版本具有相同的连接器


(还有一种mini-B型,比B型的尺寸更小一些)


 

    那么,USB 2.0端口怎样保持与USB 1.0USB 1.1设备之间相互兼容呢?2.0控制器又是怎样判断出设备是1.0还是2.0的呢?这就是本文将要解决的问题。


 


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


 

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


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


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


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


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


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


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


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


d35a7b1f-6699-479b-a650-8e63c0818f17.GIF


 


Windows的“设备管理器”中可以看到枚举成功的设备


 


 


二、保持兼容性的措施


 


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


     1)带宽分配与速率转换


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


     2)电平设置与电流分配


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


 


1e012006-563a-46bf-974f-d9c158d80025.jpg


 


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


 


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


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


 

三、 如何确认USB设备工作在1.01.1还是2.0模式?


 


       虽然今天的电脑提供两个以上的USB端口,但有些只能用于USB1.0USB 1.1的数据传输,并不能支持USB 2.0的数据传输。另外,从设备管理器中我们还可以看到,USB控制器保留了10%的带宽,所以USB的带宽只能达到理论带宽的90%。当我们把一个移动硬盘插入电脑时,系统并没有告诉我们它的实际速率,Windows的设备管理器中也没有显示它的工作模式。这就是说,即便插入的设备可以工作,但是它是否达到了我们所期望数据传输速度,尚无法确认。从这个意义上讲,弄清楚它的工作模式是有实际意义的。


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


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



e463f06f-1a04-442f-8887-aa1996efd308.jpg


 


5  HD Tach 2.70的测量结果


 


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



e0bf49a8-58dd-454c-a646-cd3d7f2b118e.jpg


 


6   SiSoft Sandra  Pro 2005 的测量结果


 


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


 

四、USB 2.0 为何≠ 480Mbps


 


       由上面这些测试数据,我们已经看到,USB2.0的设备,也未必就意味着它们就是以480Mbps的数据传输率进行数据交换。这是因为:


        1)传输线路的影响


        由于USB 2.0 High-speed接口的传输速率是USB 1.140倍,二者的数据延长线有明显不同。仔细观察USB 2.0 High-speed延长线缆,通常可看到“USB Revision <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2.0”“High-speed USB”的标注。如果使用不符合标准的或者劣质的延长线,可能会导致传输率下降或读写错误。


        2)设备性能的限制


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

文章评论0条评论)

登录后参与讨论
相关推荐阅读
lpczcy_117794431 2008-10-08 10:31
在搞51跑TCP/IP的东西……
    换了工作,也换了城市。    在这个公司,开始着手整51跑TCP/IP的东西,感觉好费劲!但必须整,这对自己也是个提高啊!     以后在ARM中也会用到TCP这一块,不如提前整整,先给后面最...
lpczcy_117794431 2008-08-28 15:28
ASN.1学习笔记
ASN.1即抽象语法符号,用来定义应用程序数据和表示协议数据单元的抽象语言。优点是独立于机器、语言及应用程序的内部表示。适用于描述现代通信中复杂的、变化的、可扩展的数据结构。比如3G和VoIP均采用了...
lpczcy_117794431 2008-07-16 16:26
辞职了!哈哈……
 辞职了!这是最后一次以这家公司员工的身份这里发帖。心里轻松许多……虽然辞职了,但心里是非常喜悦的!离开了这个让自己心里非常不爽的公司。但有一点不可否认,就是我在这里学到了很多。我不是忘恩负义,只是这...
lpczcy_117794431 2008-04-11 15:00
这个项目终于接近尾声了!
    又是很久沒有發日誌了!    主要是由於這段時間忙著趕一個項目。終於算是接近尾聲了,因為現在正在測試,肯定後面還有一些工作要做。    這個項目其實也沒有什麽,通過雙串口實現上下行的通訊連接,...
lpczcy_117794431 2008-02-29 15:54
好久没有写东西了!
    好久没有在这里写东西了,想写点什么。那就汇总一下近来的工作吧!    年前一段时间一直在整SD卡的相关工作,其实很早一段时间就开始整了,只是没有东西才没有及时动手,但一直在研究相关资料。所以,...
lpczcy_117794431 2008-01-02 10:59
崭新的2008已经开始!
    崭新的2008已经开始!    在2008,世界瞩目中国。2008是属于中国的!北京奥运会,将会把中国带向世界,也会把世界带回中国。    让我们在2008,让中国在2008,展现自我,展现辉...
广告
EE直播间
更多
我要评论
0
2
广告
关闭 热点推荐上一条 /7 下一条