USB电缆的4根线在USB中有固定不变的数字编号以及不同的颜色。这为电缆线的识别和使用提供了方便。下表列出了这些数字和颜色规定。这些数字与PCB尺寸中标注的编号也是一致的。
USB设备和Hub采用2种供电模式,即自供电(Self Powered)和总线供电(BusPowered)。所谓自供电,是指该USB设备或Hub能够自己提供电源,而无需从VBus上提取电流,这样做的好处是该设备在工作时功率不必受USB协议的限制,可以根据自身电源的能力任意提取电流;但局限性也是显而易见的,该设备必须带有额外的电源设备,增加了体积和成本。而总线供电模式则为耗电量小的设备提供了一种方便的连接方式,能够完全从USB总线的VBus获得所需的电流,但是这样的设备运行时所耗的功率受到USB协议的限制,不能无限制地从总线上取得电流。USB硬件电路的电源线路时需要十分小心,无论是总线供电还是自供电的USB设备或Hub,都只能从VBus获得电流,而不能向VBus提供电流。
USB供电的工作状态也被分为2种,即正常工作(Normal)状态和挂起(Suspend)状态。如果总线供电设备在3ms内没有总线操作,即USB总线处于空闲状态的话,该设备就需要自动进入挂起状态。这时从总线上提取的电流必须小于500μA。在设备进入挂起状态后,可以通过唤醒(Resume)操作来恢复到正常工作状态。唤醒操作既可以由主机发送唤醒或复位信号来触发,也可以由设备自行通过远程唤醒来实现。处于挂起状态的设备通过发送信号给主机,使得主机恢复处理其USB事务。这种远程唤醒方式是所有USB事务中,惟一能够由设备发起的事务。
即插即用:
即插即用技术包含2个技术层面,即热插拔和自动识别配置。热插拔的关键技术在于电路接插件插、拔期间强电流的处理。即插即用另一个关键技术层面就是系统设备的自动识别。也就是说,主机系统在没有人工干预的情况下,能够自动检测到设备的接入并能自动配置该设备,也能够自动检测到设备的拔出,从而释放系统资源。USB主要是通过在信号线上的一些特殊处理来实现这一技术。在USB的4线电缆中传输信号的是D+和D-这一对差模信号线,该线上使用的是+3.3V的电平,而VBus是+5V。
由上图可以看到,USB主机或Hub的下行端口的差模信号线D+和D-上均连接有一个下拉电阻,即图中所示的R1,其阻值为15kΩ。R1一端连接到D+或D-,另一端接地。这样,当该端口没有连接任何USB设备时,D+和D-信号线上的电平都恒为0。另一方面,看到设备端的D+和D-信号线的其中一根线上连接有上拉电阻,即R2,其阻值为1.5kΩ。这里,需要特别注意的是,对于全速设备,这个上拉电阻R2是连接在D+信号线上的;而对于低速设备,R2则是连接在D-信号线上的。这也是USB主机识别设备速度的一个重要指标。这个上拉电阻一端连接在信号线上,另一端连接+3.3V。
前面已经分析,USB主机和Hub的下行端口处于断开状态时,其D+和D-信号线电平将恒定为0。当USB设备连接到USB主机或Hub下行端口的一瞬间,USB设备端信号线上的上拉电阻将通过USB电缆线与USB主机或Hub端的下拉电阻组成分压器,这样会造成USB主机或Hub端信号线电平的上冲,这一过程如下所示。
由于全速设备的上拉电阻是连接在D+信号线上的,因此,当该设备接入时,USB主机或Hub的D+线将有一个从0电平到+3.3V的上冲过程。与此同时,D-信号线仍将维持电平0不变。这样当USB主机或Hub不断检测其信号线状态时,就能检测到这个上冲过程,当这个上冲过程的有效段(如图所示)持续2.5μs以上的时间,USB主机可认定有一全速USB设备接入。同理,低速设备也有这样一个原理相同的接入过程,不同的是,发生电平上冲的是D-信号线,而D+信号线则基本维持0电平不变,这一点,与全速设备刚好相反。此外,USB协议2.0中定义了高速设备,其设备端的信号线机制与全速设备一样,也是将D+信号线用1.5kΩ的电阻上拉至+3.3V。然后,USB设备将通过一套更加复杂的方式来通知主机自己的速度模式。
需要强调的是,在各种速度模式下,上拉电平+3.3V,一般需要通过VBus转换而来,或者是受VBus的控制。这样做的目的是,一方面使USB设备在没有接入到USB主机或Hub之前,其信号线没有电平上拉。另一方面,更重要的是,当设备连接到主机或Hub,并处于被枚举的过程中时,有一个主机复位(Reset)设备的步骤。所谓复位,对于主机来说,包括两个行为,一是设备断开连接(与设备拔出相似,主机或Hub信号线上出现电平回落),二是重新检测到设备接入。这两个过程都是要在设备实际没有拔出的情况下完成,那么,当然能够实现的方法就是由主机来控制这个+3.3V的上拉电平。功能比较强的USB设备接口芯片,一般都提供这个+3.3V的上拉电平,当其接收到主机的复位命令后,就会自动切断这个电平,从而顺利实现复位。另外一种实现的方法,就是直接将VBus用电压转换芯片转为+3.3V。这样,当主机发送复位命令后,+3.3V也会随着VBus一起被切断。
|