USB学习(一)
USB规范从1996年开始,正式发布USB1.0,从USB1.0的低速模式(Low Speed Mode),到USB 1.1的全速模式(Full Speed),再到USB 2.0的高速模式(High Speed),至今还有USB 3.0\3.1\3.2等超告诉模式。
学嵌入式为什么要学习USB?在嵌入式的领域中,正在往物联网的方向走去,从智能电气、家用电子、汽车电子等产品中,无一没有USB的身影,USB凭借高速的传输速度,为数据传输带来了超高的实时性。由于应用场景和成本的关系,对于USB3.0\3.1\3.2等接口基本不会被使用到,但也不能保证往后的发展可以让成本变得更低,或超大的数据量的原因而被利用起来,学习起来当以USB2.0的规范进行即可。
USB的电气特性
USB接口介绍
典型的USB Mini接口:
引脚编号 | 引脚名称 | 功能描述 |
---|---|---|
1 | Vbus | +5V |
2 | D+ | Data+ |
3 | D- | Data- |
4 | ID | OTG/HOST/Slave… |
5 | GND | GND/0V |
很神奇,在USB连接器中,其实经典的是没有ID这一项的。虽然说,这是USB Mini,还有USB micor,USB linght,USB type-c等等,多种多样,但是USB协议秉持着向下兼容,所以,以上的这些,都一定会有的,而且一定是公共部分。
实际在电脑上的接线,应该是:
Vbus------------------------Vbus
D+ -------------------------D+
D- --------------------------D-
GND-------------------------GND
USB的信号走线以及可靠性
绘制过PCB的朋友,如果在绘制USB的走线的时候,肯定都知道USB的走线是需要走差分线的,只因为看到USB的标识上有D+\D-,所以就是差分线。我个人觉得这个理解还太表面,到底为啥D+/D-要走差分线呢?USB之所以好用,有一个原因就是因为USB的数据很可靠,那支撑USB数据可靠的背后,是什么呢?
-
差分线就是其中之一,USB采用的是差分信号进行传输,差分信号可以有效地抑制在低电平时的干扰。当信号在较低电平传输时,其实是很容易受到干扰的,而差分线采用大小相等、极性相反的信号,所以能使信号的电平加倍,减少干扰信号对USB信号的影响。更重要的是,如果两根信号线都存在噪声干扰,差分信号的相减可以抵消噪声,因此差分信号对信号干扰有着天然的免疫力。
-
第二个原因,细心的朋友应该会发现,USB接口的Vbus和GND,会比别的引脚更长,这是因为在USB接入的时候,首先接入的是电源,这样可以避免在动态插入时电流对数据线的影响。
-
第三,驱动器的输出支持三态,而信号线在连接时默认为高阻态。
USB的电流和电压
USB上,Vbus提供的电源是USB充电的基础,在USB2.0规范里,Vbus的电压在4.4V-5.25V,最大承受的电流是500mA。从供电的角度来看,USB设备可以被分为自供电和总线供电两种类型。
-
自供电设备:不需要使用USB上的Vbus进行供电,自身有电源进行供电。
-
总线供电:设备的电源来自主机的USB Vbus进行供电。
每个设备,需要在自己的配置描述符中声明对其Vbus上电流的要求,由USB主机来进行统一管理。虽然是这样,但是其实每个主机的USB上,都有一个额定的电流,当主机的设备过多的时候,无法为设备提供足够的电流时,设备将无法正常运行。因此在实际中,会有一项USB认证,这个认证就是来看USB主机是否给出了明确的信息,关于USB认证可以后面描述。
电压下降预算
因为USB的设备供电类型和总线拓扑结构比较复杂,但要保证USB正常工作,则有了一写协议定义:
- USB定义的连接线阻抗为30mΩ,经过它们的压降为100mV。
- 由主机或者自供电集线器端口供电的电压范围为:4.75-5.25V。可以支持如USB打印机等高功耗设备供电。
- 由总线供电集线器端口供电的电压范围为4.4V-5.25V
- 总线供电集线器最大允许350mV的电压降。
- Vbus上的A型插头和B型插头之间的最大压降为125mV。
- 所有电缆GND上的上行和下行之间的最大电压降为125mV。
- 在上行电缆末端的连接器上的电压低至4.40V时,所有集线器和设备必须能提供配置信息,而低功耗设备在这个电压时,必须能正常工作。
- USB设备如果汲取超过一个单位负载的电流,则它的最低工作电压必须为4.75V。
浪涌电流限制
原则:一个集线器或者设备的插入和拔出行为,不能影响到总线上其他设备的正常工作。
驱动特性
USB各模式的性能比较:
模式 | 速度 | 驱动方式 | 1.5K上拉 |
---|---|---|---|
低俗 | 1.5Mb/s | 电压 | D- |
全速 | 12Mb/s | 电压 | D+ |
高速 | 480Mb/s | 电流 | D+ |
USB信号特性
USB是使用差分信号传输的,在传输过程中,呈现的状态:
- 静止态
- 差分态(0/1)
- 单端态(0/1)
- Chirp J (高速模式下)
- Chirp K(高速模式下)
典型符合信号
描述:复合信号就是由一个或者多个简单信号加上一个特定得到时序来构成的。
不同模式下产生起始和停止的方式:
模式 | 包开始(SOP) | 包结束(EOP) |
---|---|---|
低速 | D-从高电平变低电平,D+从低电平变高电平 | 持续2bit时间的SE0信号 |
全速 | D-从低电平变低电平,D+从高电平变高电平 | 持续2bit时间的SE0信号 |
高速 | 从SE状态切换到K/J状态的过程 | 产生错误填充位 |