USB识别及阻抗匹配.docx
《USB识别及阻抗匹配.docx》由会员分享,可在线阅读,更多相关《USB识别及阻抗匹配.docx(14页珍藏版)》请在冰豆网上搜索。
USB识别及阻抗匹配
USB识别及阻抗匹配
2016/11/22
修改记录:
修订号
作者
日期
简要说明
1.概述
USB是英文universalserialbus通用串行总线的缩写,是一个外部总线标准,用于规范电脑和外部设备的链接和通信。
1.1.USB传送数率
USB版本
理论最大传输速率
速率称号
最大输出电流
USB1.0
1.5Mbps(192KB/s)
低速(Low-Speed)
5V/500mA
USB1.1
12Mbps(1.5MB/s)
全速(Full-Speed)
5V/500mA
USB2.0
480Mbps(60MB/s)
高速(High-Speed)
5V/500mA
USB3.0
5Gbps(500MB/s)
超高速(Super-Speed)
5V/900mA
1.2.USB接口定义
USB信号使用分别标记为D+和D-的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。
触点
功能(主机)
功能(设备)
1
VBUS(4.75-5.25V)
VBUS(4.4-5.25V)
2
D-
D-
3
D+
D+
4
接地
接地
2.USB识别
我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(HighSpeedDevice)。
因此,如果高速设备挂到USB1.x的hub上,那该设备只能工作在全速模式下。
不管是hub还是设备(device),对于速度的区分是非常重要的,否则,后续的通信根本无法进行。
2.1.全速和低速识别
根据规范,全速(FullSpeed)和低速(LowSpeed)很好区分,因为在设备端有一个1.5k的上拉电阻,当设备插入hub或上电(固定线缆的USB设备)时,有上拉电阻的那根数据线就会被拉高,hub根据D+/D-上的电平判断所挂载的是全速设备还是低速设备。
如下两图:
USB全速设备上电连接
(Full-speedDeviceCableandResistorConnections)
USB低速设备上电连接
(Low-speedDeviceCableandResistorConnections)
2.2.高速识别
USB全速/低速识别相当简单,但USB2.0,USB1.x就一对数据线,不能像全速/低速那样仅依靠数据线上拉电阻位置就能识别USB第三种速度:
高速。
因此对于高速设备的识别就显得稍微复杂些。
高速设备初始是以一个全速设备的身份出现的,即和全速设备一样,D+线上有一个1.5k的上拉电阻。
USB2.0的hub把它当作一个全速设备之后,hub和设备通过一系列握手信号确认双方的身份。
在这里对速度的检测是双向的,比如高速的hub需要检测所挂上来的设备是高速、全速还是低速,高速的设备需要检测所连上的hub是USB2.0的还是1.x的,如果是前者,就进行一系列动作切到高速模式工作,如果是后者,就以全速模式工作。
下图展示了一个高速设备连到USB2.0hub上的情形:
hub检测到有设备插入/上电时,向主机通报,主机发送Set_Port_Feature请求让hub复位新插入的设备。
设备复位操作是hub通过驱动数据线到复位状态SE0(Single-ended0,即D+和D-全为低电平),并持续至少10ms。
高速设备看到复位信号后,通过内部的电流源向D-线持续灌大小为17.78mA电流。
此时高速设备的1.5k上拉电阻还未撤销,在hub端,全速驱动器形成一个阻抗为45欧姆(Ohm)的终端电阻,所以在hub端看到一个约800mV的电压(45欧姆*17.78mA),这就是ChirpK信号。
ChirpK信号的持续时间是1ms~7ms。
在hub端,虽然下达了复位信号,并一直驱动着SE0,但USB2.0的高速接收器一直在检测ChirpK信号,如果没有ChirpK信号看到,就继续复位操作,直到复位结束,之后就在全速模式下操作。
如果只是一个全速的hub,不支持高速操作,那么该hub不理会设备发送的ChirpK信号,之后设备也不会切换到高速模式。
设备发送的ChirpK信号结束后100us内,hub必须开始回复一连串的KJKJKJ....序列,向设备表明这是一个USB2.0的hub。
这里的KJ序列是连续的,中间不能间断,而且每个K或J的持续时间在40us~60us之间。
KJ序列停止后的100~500us内结束复位操作。
hub发送ChirpKJ序列的方式和设备一样,通过电流源向差分数据线交替灌17.78mA的电流实现。
再回到设备端来。
设备检测到6个hub发出的Chirp信号后(3对KJ序列),它必须在500us内切换到高速模式。
切换动作有:
1.断开1.5k的上拉电阻。
2.连接D+/D-上的高速终端电阻(high-speedtermination),实际上就是全速/低速差分驱动器。
3.进入默认的高速状态。
执行1,2两步后,USB信号线上看到的现象就发生变化了:
hub发送出来的ChirpKJ序列幅值降到了原先的一半,400mV。
这是因为设备端挂载新的终端电阻后,配上原先hub端的终端电阻,并联后的阻抗是22.5欧姆。
400mV就是由17.78mA*22.5Ohm得来。
以后高速操作的信号幅值就是400mV而不像全速/低速那样的3V。
至此,高速设备与USB2.0hub握手完毕,进行后续的480Mbps高速信号通信。
最后附上几幅实际USB高速识别的示波器抓图,图中蓝色信号是D+,黄色信号是D-。
1.数据线D+在T点之前挂上1.5K电阻,在T点被host拉成EP0状态。
在近2ms后,设备发送第一个ChirpK,向host通知说:
我是一个高速设备,如果可能,请用高速方式与我通信。
其幅度是800mV(17.78mA*(45Ohm||1.5kOhm)=800mV,见上文解释)。
在这里,ChirpK的持续时间是2.13ms(a,b两点之间)。
2.这幅图显示了host发出的chirpKJ信号的幅度,头几个KJ是800mv(a,b之间),随后的是400mV。
图中可以看到设备在收到第三个chirpJ(蓝色短条)后马上把1.5k电阻取消,导致chirpJ的幅值下降到400mV。
(17.78mA*(45Ohm||45Ohm)=17.78mA*22.5Ohm=400mV)
3.量测了一个chirpJ的宽度:
43.5us。
3.USB匹配
USB控制器的内部结构如下图所示:
由上图可知,USB的高速模式和低速/全速使用不同的驱动器,USB使用差分特性阻抗为90ohm的线,USB全速模式下驱动器的输出阻抗和输入阻抗不为45ohm,信号会发生反射造成信号质量下降,需要对电路进行匹配来减小信号的反射;常用的匹配方式有:
串联匹配、并联匹配、戴维南匹配等。
USB全速驱动器的输出阻抗一般比较小,
1.若输出阻抗<特性阻抗,则可以通过串联电阻来实现匹配,要实现驱动器和USB线的阻抗匹配必须在USBD+和D-上串联电阻,串联电阻的要求为Rs+R串=USB线特性阻抗;
以下分别为串联0ohm、3ohm、22ohm、33ohm、51ohm和68ohm眼图,RTmean和FTmean为上升和下降时间的平均值。
1)R串=3ohm,RTmean=3.30ns;FTmean=2.80ns;
2)R串=22ohm,RTmean=3.71ns;FTmean=3.12ns;
3)R串=33ohm,RTmean=4.36ns;FTmean=3.61ns;
4)R串=51ohm,RTmean=4.88ns;FTmean=4.50ns;
5)R串=68ohm,RTmean=6.85ns;FTmean=7.16ns;
2.当阻抗>特性阻抗时,则要通过并联电阻来实现匹配,而在高速模式下,信号是通过电流源驱动的,以上匹配电阻的存在都将降低信号质量,下面分别举串联10ohm、22ohm和33ohm为例;
1)没有串联电阻时的眼图如下:
2)R串=10ohm
Udevice=17.78*45//(10+45)=440.1mV,Uhost=45/(45+10)*440.1=360.1mV;
3)R串=22ohm
Udevice=17.78*45//(22+45)=478.6mV,Uhost=45/(45+22)*478.6=321.5mV;
4)R串=33ohm
Udevice=17.78*45//(33+45)=507.4mV,Uhost=45/(45+33)*507.4=292.7mV;
1、1.5K上拉到?
2、800mv时候的等效电路?