本文介绍下USB2.0相关知识,硬件工程师需要关注的点。
文章内容主要来源于USB官方(https://www.usb.org/)协议,协议本身内容太多,本文主要讲硬件工程师需要了解的重点做了一个汇总并分享出来。
USB线缆
颜色说明
电源VBUS:红色
D-:白色
D+:绿色
地GND:黑色
线材长度:最长5m(没看到协议里有规定长度,现实中使用最长也只看到5m)。
屏蔽与双绞说明
如果是用在高速/全速设备,线缆需要做屏蔽,数据线需要双绞。并且,协议规定,数据线的线号为28AWG,电源和地线的线号为20AWG-28AWG。线材差分特性阻抗为90Ω±15%。
可能许多同仁知道在PCB设计中USB差分线要做90Ω阻抗,而忽略在用USB线材也是需要做阻抗的。其实这也很容易想明白,无论是在PCB板,还是线材传输USB信号,都需要尽量保证阻抗不变,减少信号反射,保证信号完整性。
双绞线的特征阻抗与线芯的粗细,间距,屏蔽层等等都是有关系的。USB2.0协议具体定了双绞线的线号固定为AWG28号,而不像电源和地线的线径那样是一个范围。之所以这样笔者认为是这样的线材做出来线材的特征阻抗做出来正好是90Ω。
所以,在实际应用中,特别是USB线比较长的时候,要注意选择一些好的线材,要去看线径粗细,是否屏蔽等等。某宝上面卖的线材各式各样,一些便宜的线就是USB里面4根导线接通了而已。
线缆屏蔽如何接GND
屏蔽层接到两端插头上,设计者自己根据EMI/ESD/EFI的情况来选择接GND方案。----即线材上面没有把屏蔽层直接与GND接到一起的,具体选择线材两端都接GND还是单端接GND,由设计者自己来定。
电特性
信号速率
低速:1.5Mb/s
全速:12Mb/s
高速:480Mb/s
这个速率一般人都知道,请继续看下面编码。
编码方式-NRZI
USB的编码方式NRZI(非归零反向编码),提到这个是为了说明信号的时钟周期(等效时钟,并没有专门的时钟线)到底是多少,因为这个才是我们硬件工程师关注的。
NRZI编码,如下图,实际的波形如下图的NRZI,红色的方框可以看作是信号的一个完整周期。一个完整的周期传输了2个bit,上升沿,下降沿各传输一个bit。
所以,USB2.0高速模式数据bit率是480Mb/s,USB等效时钟是240Mhz,并不是480Mhz。
信号电压
高低电平:
发送端
---全速FS和低速LS输出的低电平电压0~0.3V;输出高电平电压2.8V~3.6V;
---HS输出的差分低电平电压-10~+10mV;输出差分高电平电压360~440mV.
接收端:D+ - D- ≥ 300mV
高速模式USB信号接收端眼图如下:
电源电压-电流:
高电源口---4.75-5.25V,供流能力大于500mA
低电源口---4.4V-5.25V,供流能力大于100mA
详细介绍在官方协议的Page178-Page190页
关于USB口的5V电源。对于比较复杂的产品,USB口只是其中的一个功能,建议在USB口加上限流电路。原因是产品的5V电源很有可能不仅仅是用在USB接口,产品内部其它芯片也可能会用,如果没有加限流,在异常情况下,如果接入的USB设备本身是有问题,比如电源和GND短路,这样就导致整个5V电源短路,造成整机用到5V的地方都不正常。
下面为一个常见的USB限流芯片的限流电路SGM2551A。
模式识别
在USB设备连接时,USB系统能自动检测到这个连接,并识别出其采用的数据传输速率。USB采用在D+或D-线上增加上拉电阻的方法来识别低速和全速设备。
如下图,D-通过1.5K电阻上拉为低速设备,D+通过1.5K电阻上拉为全速设备。
那么USB是如何识别为高速设备的呢?
高速设备是以一个全速设备的身份出现的,即和全速设备一样,高速设备也在D+端有一个1.5K的上拉电阻。USB2.0的HUB把设备当成一个全速设备,然后进行一系列的握手信号来确认双方的身份。详细见下面分享的附件。
USB防护
一般来说,usb是要加tvs管做防护的,关于USB防护器件的选择,笔者认为数据线上面的TVS管有两点需要注意。
---数据线上TVS管的引入电容要尽量小,1pF以下为宜。
---数据线上TVS管要选用在5V的(Vbr>5V)。曾经一直没明白为什么是5V,不是3.3V,看信号电压没超过5V了。
这里有一个原因:协议(page124)里面明确规定了,在数据线与5V电源短路的时候,是不能烧坏的,所以说明数据线上面5V电压是可以抗住的。如果我们选用Vbr大于3.3V而小于5V的TVS管子,那么在5V短路的时候,TVS管子是会烧掉的。
以上就是笔者认为关于USB2.0,硬件需要特别关注的点,如有错误,欢迎留言指正,谢谢。USB2.0协议官方文件及其它资料分享如下:
见附件即可获得下载链接。