唤醒状态
数据K状态
数据K状态
包开始(SOP)
数据线从空闲态转到K态
包结束(EOP)4
SE0近似地为2位时1
其后仅接着1位时的J3
SE0≥1位时2其后仅接着一位时的J态
SE0≥1位时2其后仅接着J态
段开连接(在下行端口处)
N.A.
SE0持续时间大于等于2.5微秒
连接(在上行端口处)
N.A.
空闲态持续时间大于等于2毫秒
空闲态持续时间大于等于2.5微秒
复位
D+和D-小于Vol(max)的持续时间大于等于10毫秒
D+和D-小于Vil(max)的持续时间大于等于10毫秒
D+和D-小于Vil(max)的持续时间大于等于2.5微秒
注释1:
以位时定义的EOP宽度与传送的速度有关。
(标准的EOP宽度都在表7-5和表7-6中列出)
注释2:
以位时定义的EOP宽度与接收EOP的设备类型有关.位时是近似的.
注释3:
仅跟在EOP后的J态的宽度以位时来衡量,它与缓冲器的边缘速率有关.来自低速缓冲器的J态必须要有低速的位时宽,来自高速的,则必须要有高速的位时宽.
注释4:
始终处于活动态的是低速的EOP
根据USB系统软件的需求,复位信号可在任一个集线器或主机的控制端口产生,该复位信号的最小持续时间为10ms。
复位后,集线器端口将处于能动状态。
USB系统软件和主机控制器必须确保发送到根端口的复位信号持续时间足够长以便通知当前正试图进行唤醒操作的各下形设备。
根端口产生的复位信号的持续时间应为50ms,但并不要求它一直是延续的。
然而,如果复位信号不是连续的,则各间断的复位信号间的时间间隔应小于3ms。
一个设备如果见其上形端口的SE0态持续时间超过2.5us,则它就把该信号作为复位信号处理。
在复位信号发送结束前,它必须已产生作用。
当端口处于使能状态后,集线器将传播一个活动信号到新的复位端口。
连在该端口的设备必须能识别总线的活动性,并要能防止被挂起。
在复位信号清除后的10ms的复位恢复时间后,集线器必须能接收所有集线器请求,设备也必须能接收一个SetAddress()请求。
如果接收这些请求失败,则设备将不能被USB系统软件所识别。
(三)挂起
所有的设备都必须能支持挂起状态,并可从任一电平状态进入挂起态。
当设备发现它们的上形总线上的空闲态持续时间超3.0ms时,它们便进入挂起态。
当设备的所有端口上的总线不活动时间不超过10ms后,设备必须被真正的挂起,此时它仅从总线上获得挂起电流。
如果任一其它总线交通缺乏时,SOF令牌将在每帧中出现一次,以防止高速设备被挂起。
当任一低速设备交通缺乏时,在SOF令牌出现的每一帧中至少有一个低速设备处于活动态,以避免它们不被挂起。
当处在挂起状态时,设备必须继续为它的D+(高速)或D-(低速)上的Rpu电阻提供电压从而维持一个空闲态,这样上形集线器才能为设备维持正确的连结状态。
挂起又可分为全局挂起和局部挂起。
·全局挂起
当在总线的任何地方没有通信需要时,就要用到全局挂起,此时所有总线都处在挂起状态。
主机通过中止它所有的传送(包括SOF令牌)来发送开始全局挂起信号。
当总上的每个设备识别总线的空闲态持续适当时间时,它将进入挂起状态。
·局部挂起
可以通过向集线器端口发送SetPortFeature(PORT-SUSPEND)来使与其相连的总线部分被挂起,此时处于那部分的设备经过上面所说的适当时延后进入挂起状态。
(四)唤醒
处在挂起状态的设备,当它的上形端口接收到任一非空闲信号时,它的操作将被唤醒。
特别地,如果设备的远程唤醒功能被USB系统软件开启时,它将自动发信号给系统来唤醒操作。
唤醒信号由主机或设备使用,以使一个挂起的总线段回到活动态。
集线器在唤醒信号的生成和传播中起了十分重要的作用。
设备唤醒时总有一个先后次序,我们将在后面详细介绍。
USB系统软件必须提供10ms的唤醒恢复时间,在这段时间内,它将不对与被唤醒的部分总线相连的任一设备进行操作。
端口的中断与连接也可以使集线器发送一个复位信号,从而唤醒系统,但仅当集线器具有远程唤醒使能时,这些事件才能引起集线器发送唤醒信号。
上面介绍了有关几种信号的发送情况,下面将对数据信号的发送做一个详细的讨论。
(一)数据的编码与解码
在包传送时,USB使用一种NRII(NoneReturnZeroInvert,即无回零反向码)编码方案。
在该编码方案中,“1”表示电平不变,“0”表示电平改变。
图8列出了一个数据流及其
它的NRII编码,在该图的第二个波形图中,一开始的高电平表示数据线上的J态,后面就是NRII编码。
为了确集信号发送的准确性,当在USB上发送一个包时,传送设备就要进行位插入操作。
所谓位插入操作是指在数据被编码前,在数据流中每六个连续的‘1’后插入一个‘0’,从而强迫NRII码发生变化,如图9所示。
位插入操作从同步格式(如图10所示)开始,贯穿于整个传送过程,在同步格式端的数据‘1’作为真正数据流的第一位。
位插入操作是由传送端强制执行的,是没有例外的。
如果严格遵守位插入规则,甚至在EOP信号结束前也要插入一位‘0’位。
接收端必须能对NRZI数据进行解码,识别插入位并去掉它们。
如果接收端发现包中任一处有七个连续的“1”,则将会产生一个位插入错误,该数据包将被忽略。
关于位的插入有一个特例,那就是刚好在EOP前的时间间隔,EOP前的最后一个数据位可能被集线器的转换偏移而拉长,这种情况如图11所示。
(二)数据信号的发送速率
高速数据发送率通常为12.000Mb/s,主机,集线器和高速设备的数据率误差为±0.25%(2.500ppm)。
集线器控制器的数据率应该准确地知道,其误差最好控制在±0.05%(500ppm)内。
低速数据发送率为1.50Mb/s,低速功能设备所允许的误差为±1.5%(15000ppm)。
以上所述的误差,主要由下面的几种情况所引起:
·负载电容量的影响
·振荡器上电压供应的稳定性影响
·温度的影响
·器件的老化
(三)数据源的抖动
在数据发送的边缘时间内,数据源可能发生一些变化(即抖动)。
处在任何数据变化集间的时间为N*Tperiod±抖动时间,其中N为发生变化的位数,Tperiod为具有一定范围的数据率的实际时间段。
数据抖动的测量与计算最大上升沿和下降沿时所用的负载相同,并且它们在数据线的交叉点处进行测量,如图12。
·对于高速传送,任何连续的差分数据变化的抖动时间为必须在±20ns内,对于任何一个成对出现的差分数据变化(Jk到下一个Jk的变化或kJ到下一个kJ的变化)的抖动时间必须在1.0ns内。
·对于低速传送,任何连续的差分数据变化的抖动时间必须在25ns内,而任一成对出现搓分数据变化的抖动时间必须在±10ns内。
这些抖动的现象包括时间的变化,主要归咎于差分缓冲器的延迟和上升沿及下降沿时间的不匹配,内部时钟抖动,噪声及其他随机因素的影响。
(四)接收端数据的抖动
当抖动存在时,任何设备类型的数据接收必须能正确地对差分数据进行解码。
这种情况的抖动可能是由上面所说的时延不匹配所引起,也可能是由源端和目标端数据速率的不匹配所引起。
在特定的应用中,只要抖动条件满足,输出驱动器的抖动可能对设备时钟的精确性产生影响。
(五)电缆的延迟
USB中传送信号的电缆所允许的时延为26ns,对于一个标准的USB可分电缆,其时延由从串行A口连接器端到串行B口连结端计算而得,并且其值小于26ns;而对于其它电缆,其时延由从串行A口连结器端到该电缆所连设备端计算而得。
(六)电缆的信号衰减
对于进行高速信号发送的每根电缆而言,信号对(D+,D-)所允许的最大衰减量如下表
7-2所示。
表7-2信号时延
频率( MHZ)
衰减量(最大)dB/每根电缆
0.064
0.08
0.256
0.11
0.512
0.13
0.772
0.15
1.000
0.20
4.000
0.39
8.000
0.57
12.000
0.67
24.000
0.95
48.000
1.35
96.000
1.9
二、电压分布
所有USB设备的缺省电压为低电压,当设备要从低电压变化到高电压时,则是由软件来控制的。
在允许设备达到高电压之前,软件必须保证有足够的电压可供使用。
USB支持一定范围的电压来源和电压消耗供应者,包括如下的部分。
·根端口集线器:
它是直接与USB主机控制器相连的,并与其相同的电源来源。
从外部获得操作电压(AC或DC)的系统,在每个端口至少支持五个单位负载,这些端口称为高电压端口。
由电池组提供电压的系统可以支持一个或五个单位负载。
哪些只能支持一个单位负载的端口称为低电压端口。
·从总线获得电压的集线器:
它的所有内部功能设备和下形端口都从它的上形端口的
Vbus上获得电压。
在电压升高时,它可以接一个单位负载,经过初始设置后,它可以接
五个单位负载。
初始设置电压被分配给了集线器,任一固定功能设备和外部端口。
它的外部端口只能接一个单位负载,当集线器处于活动或挂起态时,它必须为这个端口提供电流。
该种集线器如图13所示。
·自给电压集线器:
如图14所示,它的任一内部功能设备和下形端口不再从Vbus上获得电压,但当它的其余部分电压下降时,它的USB接口可接一个单位负载并从Vbus处获得电压,以允许该接口能工作。
从外部(从USB)获得操作电压的集线器,可在每个端
口接五个单位负载。
由电池组提供电压的集线器,每端口可接一个或五个单位负载。
·从总线获得电压的低电压功能设备,如图15,该种设备上的所有电压均来自Vbus,在任一时刻,它们最多只能接一个单位负载。
·从总线获得电压的高电压设备:
如图16所示,该种设备上的所需电压均来自Vbus。
在电压升高时,它们至多只能接一个单位负载,但当初始设置后,可接五个单位负载。
·自给电压功能设备,如图17,当它的其余设备电压下降时,它可以接一个单位负载,并从Vbus上获取所需电压,以使USB接口处于活动状态。
在前面,我们已经讲过HUB的挂起与唤醒,下面我们来谈谈在这两种情况下的电压分布情况。
低电压设备或高电压设备工作低电压下时,它们所允许的挂起电流限制为500uA,如果一个设备被初始设置为高电压并且具有远程唤醒功能,则在挂起期间,它的电流可达到2.5mA.
当一个集线器处在挂起状态时,它必须仍能为每个端口提供最大电流值。
对于具有远程唤功能的设备,当它的电压在升高而系统的其余部分仍处于挂起态时,上面的要求是十分必要的。
当设备被唤醒时(远程唤醒或由唤醒信号唤醒),它们此时必须能限制Vbus上的流入电压,集线器Vbus所允许的最大电压落差为330mV。
设备必须有足够的分流电容器或要有一个可控制的电压打开顺序,以便当设备正在被唤醒的任一时间内,从集线器来的电流不能超过端口的最大电流允许值。
最后,我们来谈谈设备的动态加载与卸载。
插入或拨掉一个集线器或其它功能设备时,不应影响网络中其余设备的正常工作为前提。
卸载掉一个功能设备将中止设备与主机间的通信,此时集线器向主机警告该端口已被中断。
设备从网络中卸去时,电缆的电感系统将在设备电缆的开口端产生一个很大的回流电压,它是没有破坏性的。
但在电缆设备的末端必须有一些小容量的电容器,以保证产生的回流电压不会引起设备端电压极性的改变。
但回流电压会产生噪音,通常利用分流电容器进行适当分流以减少噪音,分流电容器对回流电压及其产生的噪声进行缓和。
动态加载某设备可能会产生强电流,因而会使HUB上的Vbus低于它的最小工作电压,因此必须引用一些限流装置。
在动态加载期间,通过使连结器上的信号端口处于空闲,以使其免受强电流的破坏,这样为了使电压端口首先进行联系。
这就保证,在信号端口连接前,分布在下形设备上的电压是可利用的。
另外,在连接期间,信号线均处于高阻抗状态,为了使标准信号线上此时没有电流流动。