USB(Universal Serial Bus,即通用串行总线)的电气特性主要是对信号的发送及电压分布情况的描述。下面我们将分别对其进行详细介绍,首先来看看其信号的发送。 一、信号的发送 USB通常使用一种差分的输出驱动器来控制数据信号在USB电缆上的发送,在了解具体的信号发送之前,我们先来谈谈有关USB设备的特性。 (一)USB驱动器的特性及其使用 一个USB设备端的连接器是由D+、D-及Vbus,GND和其它数据线构成的简短连续电路,并要求连接器上有电缆屏蔽,以免设备在使用过程中被损坏。它有两种工作7状态,即低态和高态。在低态时,驱动器的静态输出端的工作电压Vol变动范围为0~0.3V,且接有一个15kΩ的接地负载。处于差分的高态和低态之间的输出电压变动应尽量保持平衡,以能很好地减小信号的扭曲变形。 在任何驱动状态下,USB设备必须能接收如图1所示的波形。这些波形从一个输出阻抗为3PΩ的电压源直接进入每一个USB数据口。
图1 USB信号发送的最大输出波形
高速驱动器特性 一个高速USB设备的连接是通过阻抗为90Ω±15%,最大单路时延为26ns的屏蔽双绞线电缆进行的,其到达的最大速率为12Mb/s,并且每个驱动器的阻抗必须在28Ω~44Ω之间。图2描述了高速驱动器的信号波形。 低速驱动器特性 一个低速USB设备在插口端必须要有一个带有串行A口连接器的可控制电缆,其速率为1.5Mb/s。当电缆与设备相连时,在D+/D-线上必须要有一个200~450PF的单终端电容器。低速电缆的传播时延必须小于18ns,从而保证信号响在其上升沿或下降沿的第一个中点处产生,以允许电缆与一块电容器相连。图3列出了低速驱器的信号波形。 图4和图5分别列出了高速和低速USB设备在集线器的终端位置及其所连的功能设备。从图我们可以看出在电缆的下形端的电阻Rpu在两图中的连接位置是不同的:
图2 高速信号波形
图3 低速驱动器信号波形 图4高速设备中的Rpu电阻是接在D+线上的。
图4 高速设备电缆和电阻连接
图5 低速设备电缆和电阻连接
下行端口处的Rpu电阻是与地相连的,其电阻为15KΩ±5%。 这个Rpu电阻的选取要满足一定的条件,为了在一个复位操作结束后方便地确定可被执行的总线状态,那么选取Rpu时要能使D+/D-线上的电压在2.5us的最大复位松驰时间内可在0~Vih内自由变动。为了满足这一条件,带有可分电缆的设备必须使用加载电压在3.0~3.6U间阻抗为1.5KΩ±5%的电阻;而具有可控电缆的设备可以使用两种方法中的任一种。注意:终端电阻不包括主机/HUB上的15KΩ±5%的电阻。 所有集线器和高速的功能设备上形端口(朝主机方向的)必须使用高速的驱动器,上形集线器端口既可以高速又可以低速来传送数据,但是在信号发送时总是使用高速和边缘速率。低速数据的传输不改变驱动器的特性,低速设备的上形端口必须使用低速驱动器。 所有集线器(包括主机的)外部下形端口必须能适用于两种特性的驱动器,也就是说,任何类型的设备都能被插入这些端口中。当收发器工作在高速模式时,它使用高速和边缘速率来进行信号的发送;工作在低速时,它使用低速和边缘速率来发送数据。 (二)接收器特性 一个差分输入接收器用来接收USB数据信号,当两个差分数据输入处在共同的0.8~2.5V的差分模式范围时,如图6所示,接收器必须具有至少200mv的输入灵敏度。 图6 差分输入感抗范围
除了差分接收器外,还必须有为两个数据线中任一个所用的单终端接收器,此时该接收器的合并磁滞现象可以减小它们对噪声的灵敏度。 在差分信号传送期间,D+和D-线上的电压可以小于Vih。对于高速传送而言,这个阶段可以延续到14ns;对于低速传送,可延续到I/V ns之久。接收器的逻辑设备用于保证这种情况不会被当作SE0态来处理。 (三)输入特性 没有终端的D+或D-的输入阻抗必须大于300KΩ,一个端口的输入电容量在连结器的端口处量得。上形和下形端口可以有不同值的电容,一个集线器或主机的下形端口所允许的D+或D-上的最大电容量(差分的或单终端的)为150pF;带有可分电缆的高速设备的上形端口所允许的D+或D-上的最大电容量为100pF。 对于有可控电缆的高速设备,它本身在D+和D-可以有最大电容量为75pF的接地电容器,其中电缆为其余的输入电容使用。在该种设备中,单终端输入电容必须与终端所使用的一致,该终端必须能在2.5us内控制D+或D-线上的电压在0~Vih范围内变动。D+/D-上的电容包括设备单终端输入电容和主机/HUB的150pF的输入电容。 上面我们介绍了USB驱动器和接收器以及输入特性,下面我们将介绍有关USB的信号发送情况。首先介绍信号的发送标准。 (一)信号的发送标准 表7-1总的概括了USB信号的发送标准。(表7-1)在该表中,J和K这两个数据态是两个逻辑电平,在系统中,通常被用来进行交换差分数据。差分数据信号的发送并不关心信号经过处的电平情况,它只要求桥电压在1.3~2.0之间。另外,在接收端,空闲态和工作态在逻辑上分别与J态和K态等价。 一般而言,数据,空闲及唤醒信号的发送标准均由端口的设备类型所决定。如果连结的是高速设备,则USB使用所规定的高速率来发送信号1并且有很快的上升沿和下降沿时间1,甚至还可用低速率来发送数据,而对于表7-1中所示的低速信号发送标准仅用在低速设备与其所连接的端口之间(上升沿和下降沿时间较长)。 (二)连结与中断信号的发送 USB设备是一个智能型的设备,当它发现主机或集线器的下形端口上没有设备连接时,存在的Rpu电阻将使D+和D-上的电压低于主机或集线器端口的单终端电压,此时该端口不是由集线器控制的,这将在下形端口产生一个SE0态。如果主机或集线器不在控制数据线并且下形端口的SEO态的持续时间超过2.5ns,则此时USB设备将中断信号的发送。 如果集线器发现其中一根数据线上的电压大于它的临界值的持续时间超过2.5us,则便开始信号的发送。 在介绍了有关信号发送的相关情况后,我们将分别对各种信号的发送进行讨论。 (一)数据信号的发送 通过差分信号来实现数据包的传送。 通过控制D+和D-线从空闲态到相反的逻辑电平(K态),就可以实现源端口的包发送(SOP)。同步字中的第一位代表了这种在电平上的转换。当它的重新发送时间低于±5ns时,集线器必须对SOP中第一位的宽度变化有所限制。可以通过使用具有延迟输出使能的集线器来实现数据的匹配,这样可以使数据失真减小到最小。 SE0态通常用来表示包的发送结束(EOP),可以通过控制D+和D-两位时到达SEO态,然后控制D+和D-线一位时后到达J态,就可实现EOP信号的发送。从SEO态到J态的变化表示接收端包发送的结束。J态持续一个位时,然后D+和D-上的输出驱动器均处于高阻抗状态,总线尾端的电阻此时控制总线处于空闲态。图7列出了包开始和结束的信号发送波形。
图7 包电压电平 (二)复位信号的发送 复位就是将一个信号从挂起态唤醒。 集线器信号通过控制端口上的持久的SE0态来实现对下形端口的复位。复位信号清除后,设备都将处于缺省状态。 表7-1信号电平
注释1:以位时定义的EOP宽度与传送的速度有关。(标准的EOP宽度都在表7-5和表7-6中列出) 根据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(None Return Zero Invert,即无回零反向码)编码方案。在该编码方案中,“1”表示电平不变,“0”表示电平改变。图8列出了一个数据流及其
图8 NRZI数据编码
为了确集信号发送的准确性,当在USB上发送一个包时,传送设备就要进行位插入操作。所谓位插入操作是指在数据被编码前,在数据流中每六个连续的‘1’后插入一个‘0’,从而强迫NRII码发生变化,如图9所示。 数据编码序列
图9 位插入
位插入操作从同步格式(如图10所示)开始,贯穿于整个传送过程,在同步格式端的数据‘1’作为真正数据流的第一位。位插入操作是由传送端强制执行的,是没有例外的。如果严格遵守位插入规则,甚至在EOP信号结束前也要插入一位‘0’位。
图10 同步格式
接收端必须能对NRZI数据进行解码,识别插入位并去掉它们。如果接收端发现包中任一处有七个连续的“1”,则将会产生一个位插入错误,该数据包将被忽略。 关于位的插入有一个特例,那就是刚好在EOP前的时间间隔,EOP前的最后一个数据位可能被集线器的转换偏移而拉长,这种情况如图11所示。
图11 对EOP前的特别位的说明
(二)数据信号的发送速率 高速数据发送率通常为12.000Mb/s,主机,集线器和高速设备的数据率误差为±0.25%(2.500ppm)。集线器控制器的数据率应该准确地知道,其误差最好控制在±0.05%(500ppm)内。 低速数据发送率为1.50Mb/s,低速功能设备所允许的误差为±1.5%(15000ppm)。
(三)数据源的抖动 在数据发送的边缘时间内,数据源可能发生一些变化(即抖动)。处在任何数据变化集间的时间为N*Tperiod±抖动时间,其中N为发生变化的位数,Tperiod为具有一定范围的数据率的实际时间段。数据抖动的测量与计算最大上升沿和下降沿时所用的负载相同,并且它们在数据线的交叉点处进行测量,如图12。
这些抖动的现象包括时间的变化,主要归咎于差分缓冲器的延迟和上升沿及下降沿时间的不匹配,内部时钟抖动,噪声及其他随机因素的影响。
图12 数据抖动分类
(四)接收端数据的抖动 当抖动存在时,任何设备类型的数据接收必须能正确地对差分数据进行解码。这种情况的抖动可能是由上面所说的时延不匹配所引起,也可能是由源端和目标端数据速率的不匹配所引起。在特定的应用中,只要抖动条件满足,输出驱动器的抖动可能对设备时钟的精确性产生影响。 (五)电缆的延迟 USB中传送信号的电缆所允许的时延为26ns,对于一个标准的USB可分电缆,其时延由从串行A口连接器端到串行B口连结端计算而得,并且其值小于26ns;而对于其它电缆,其时延由从串行A口连结器端到该电缆所连设备端计算而得。 (六)电缆的信号衰减 对于进行高速信号发送的每根电缆而言,信号对(D+,D-)所允许的最大衰减量如下表7-2所示。 表7-2信号时延
|