USB信号

来源:互联网 发布:淘宝卖家怎么改名 编辑:程序博客网 时间:2024/06/04 19:13
许多的高速总线状态与低速/高速类似,但有些高速总线的状态的特性也是不同的。当然,这也是为了向下兼容之故。因此,低速与全速的总线状态无法兼容高速的总线。以下,分别叙述相关的重要特性。

  1.高速差动1与差动0

  当主机与设各传输高速的数据是位于高速差动1与差动0时,则存在这两种总线状态。这如同低速与全速的总线状态一样,高速差动1是当D+是逻辑高电位,以及D-是逻辑低电位。反之,高速差动0是当D+是逻辑低电位,以及D-是逻辑高电位。

  2.高速数据J与k状态

  高速数据J与K状态的定义,与全速的定义一样。

  3.Chirp J与Chirp K状态

  这两种状态是USB2.0规范中所新增加的。因此,Chirp J与Chirp K状态是仅存于在高速时,用来检测握手情况。Chirp J与Chirp K状态都被定义为DC差动电压。在Chirp J中,D+是正电压的,相对的,在Chirp J中,D-则是负电压的。

  当高速设备第一次接上USB总线时,其必须以全速设各来加以激活或进行设备列举的工作。所以说,高速检测的握手信号将可使能高速设各去告诉2.0集线器,其需支持高速的协议。这样,即可在稍后进行高速的通信工作。

  当2.0集线器被置于下端的总线部分,若发生重置状态时,就会产生Chirp J与Chirp K状态。当具有高速能力的设各检测到重置时,它即会送出1~7 ms的Chirp K状态给集线器。紧接着,以高速方式与上端通信的2.0集线器也就做出反应,检测到Chirp K状态。此时2.0集线器就会切换地送出Chirp K与Chirp J状态序列。一直到重置状态结束之前,这个序列会简短地持续着。在这个重置结束时,集线器就会将外

  围接口置于高速使能的状态中。

  但用户需注意的是,当设各检测到Chirp K与Chirp J状态序列时,就会脱离连接至D+的全速提升电阻,以使能其高速传输,以及进人高速预设的状态中。当然,对于1.x的集线器会忽略设备的Chirp K状态(只对2.0集线器有效)。所以若高速设备送出Chirp K状态给1.x集线器,当它没有看到任何的响应序列时,就知道了必须仍然维持全速的总线速度

  以下,将设备重置与Chirp序列整合一起说明。当软件检测到全速设各被连接上去时,它即会通过重置接口(ResetPort)的命令来送出重置给集线器。这样,即会导致集线器去驱动单端0的状态达10 ms以上。如果街上一个高速兼容的外围设备时,Chirp的序列就开始产生,如图1所示。

  图1 用来监测与高速兼容设备的Chirp序列信号

  以下,将按照步骤依序地列出Chirp序列所产生的方式:

  (1)集线器针对Chirp状态,在T0时驱动一个重置状态。

  (2)高速设各检测到重置状态时,会发出Chirp K信号。这个Chirp K信号能够通过高速电流驱动器所产生的电流以送至D-引线的方式来加以实现。而这个Chirp K信号必须被发出达1 ms以上,且在T0之后维持不超过7 ms的时间。

  (3)当驱动全速的重置状态后,集线器的高速接收器将被激活,并且等待Chirp K的检测。而这高速的集线器必须在Chirp K发生后的2.5 μS后,检测到一个有效的Chirp K。注意到,如果集线器没有检测到Chirp K,它就必须实现全速的重置,并且停留在全速信号模式下。

  (4)在从设备终止Chirp K后的100 μS内,集线器会回传Chirp K与Chirp J交互切换的序列。这个序列具有下列的特性:

  ·在这个序列间隔中,没有任何的总线闲置状态是被允许的。

  ·必须在500 μS内终止,且不可慢于在重置状态结束之前的100 μS。

  ·每一个Chirp K与J是大于40 μS与小于60 μS之间的间隔。

  ·在Chirp序列结束后,重置状态会持续着。

  (5)一旦重置时间结束后,集线器会通过其全速驱动器来连续地驱动单端0的状态。

  (6)在设各检测到6个Chirp(3组KJ)后,它即需在500 μS内转换为高速的操作。这个转换需要以下的条件:

  ·将连接至D+的提升电阻器脱离。

  ·使能高速的终端器。

  ·进入高速的预设状态。

  用户需注意到,高速设各必须在其自己的Chirp结束后的1~2.5 ms之间,检测到有效的Chirp序列。反之,如果没有检测到Chirp序列,这个高速设各也就需持续地在全速下操作。

  4.高速闲置状态

  在高速闲置状态时,没有任何高速驱动器被激活,且低速与全速的驱动器确认单端0状态。此时,D+与D-信号是介于-10~+10 mV之间。

  5.高速封包的起始

  高速封包的起始(Start-of-High-Speed Package,HSSOP)总线状态存在于总线要从高速闲置状态改变至高速的数据K或J状态时。顾名思义,每一个高速封包都以HSSOP来加以开始。

  时钟在每一个封包的起始处开始传输,使得输人的接收器能够同步紧接而来的封包。其中,这个同步化的序列包含了一系列的K转换至J状态的信号变化。当由主机或所响应的设各所起始时,此序列的间隔是32位(KJKJ…KJKK)时间,如图2所示。

  图2 高速同步列以及HSSOP

  但是当最后由设各或主机收到(连接至最后的阶梯层的集线器)时,这个序列也可能少于32位。

  6.局速Squelch

  高速Squelch状态是用来表示一个无效的信号,此时差动总线上的电压低于100 mV。因此,高速总线的接收器中,必须涵盖用来检测这个状态的电路。

  但是这种通过传输包(transmlsslON envelope)检测器与被使能的接收器所要作的封包起始检测,将会产生延迟。如图3所示,高速Squelch检测将导致集线器从同步列中,遗漏4位的宽度。

  图3 高速Squelch检测将导致集线器从同步列中遗漏4位

  此外,当重复的封包信号一直传输进来时,将会导致集线器从同步列模型中遗漏4位的宽度。而USB的拓朴结构限制了介于主机与下端设各之间的线上连接集线器的数目。因此,通过最多5层(阶)的集线器的处理后,将会使得同步列的模型仅包含了12位。

  7.高速封包的结束

  高速封包的结束(End-of- High-Speed-Package,HSEOP)总线状态存在于总线从高

  速的数据K或J状态改变至高速闲置状态时。顾名思义,每一个高速封包都以HSEOP来加以结束。

  每一个封包的结尾处,都包含了一个如图4所示的HSEOP状态。这种HSEOP状态除了是在SOF封包之后外,其余的都是8位宽度。也仅有在这个特例情形下,HSEOP会延伸至40位宽度。在这8位宽度的HSEOP状态中,包含了没有位填塞(bit-stuffing)的NRZI译码位的模型。而接收器会通过内部位填塞发生错误来检测封包的结束。因此,当位填塞发生错误时,或即使当位填塞错误并不是在一般HSEOP状态的时候,高速的接收器总会检测HSEOP状态。

  图4 IISEOP总线状态的检测

  8.高速脱离

  将高速设各从总线中脱离时,也同样移开了在设备上的高速引线。此时,总线上会形成高于625 mV的电压,以表示高速脱离状态。同上述几个状态,符合2.0规范的USB集线器也必须包含检测这个电压的电路。

  基本的观念是,若检查到高于在差动对上的信号电压时,则检测到高速设备脱离了。这较高的电压是因为设备终端被移走时,通常会跳跃400~800 mV。这样,就会导致较高的电压产生了,如图5所示。

  图5 设备脱离状态的检测

  这个检查会在SOF微帧的EOP最后的8位之间来加以执行。而此SOF微帧的EOP会延伸至40位,以使得这个检查机制是可信赖的,如图6所示。

  图6 在S0F微帧-封包的尾部,HSEOP状态中,检查到设备的脱离

  综合上述的总线状态,闲置状态是在高速总线时,D+与D-都为低电位;在全速总线是D+为高电位与D-为低电位;在低速总线则是D+为低电位与D-为高电位。此外,闲置状态称之为J状态,而启动状态则称之K状态。在3种标准的速度下,将可允许其中一个组合被加以应用。而在这种结构下,其时间间隔则是依每一组的USB数据线的基本速度来加以决定的。针对这3种总线速度,即高速、全速与低速来说,位时间(bit-time)分别是2.083 ns、83.3 ns与666.6 ns。