手机USB接口DP&DM协议识别信号解析


手机USB接口DP&DM协议识别信号解析
一、USB介绍
USB 1.0——1996.1发布,第一次用在计算机上是在WIN95上。
USB1.1——1998.9发布,增加了一个新的传输类型(终端 OUT)。
USB2.0——2000.4发布,添加了高速模式(HS)。
USB3.0——2008.11发布,增加了超高速模式,USB从半双工变成了全双工总线,速率高达5Gbit/s。
USB3.1——2013.11发布,Gen2, 通过单lane,采用128b/132b编码,速率最高支持到10Gbit/s。
USB3.2——2017.9发布,Gen2*2 Super speed通过双lane,采用128b/132b编码,可以支持速率高达20Gbit/s。
在这里插入图片描述
以Type C座子为例,如下图3为USB3.0的接口pin脚定义。
在这里插入图片描述
USB3.2传输模式有四种,具体如下图4所示:
在这里插入图片描述
二、USB的DP&DM在连接SDP,CDP,DCP时通信波形分析
2.1.1 USB枚举介绍
进行通信前,Host需要了解设备,并为其分配相应的驱动。枚举就是互相了解的过程,这个过程包括,确定设备速率,给设备分配地址,从设备读取描术字,分配并加载驱动程序以及选择规定了设备功耗要求和接口的配置信息。枚举过程如下:
1、设备插入主机,此时设备可以从主机获得100mA电流。
2、主机集线器开始检测设备,集线器在D+和D-上有一个15K的下拉电阻,集线器会监测D+和D-线上的电压;低速设备在D-上有一个1.5K上拉(到3.3V)电阻,而全速和高速设备的上拉电阻在D+上;集线器监测到任何一根线上的电压,就认为设备已连接到主机。
3、主机获悉新设备,主机的集线器得知设备已经插入,向主机上报事件;主机得知事件,给集线器一个Get Port Status请求,以了解更多信息。
4、集线器监测设备是LS还是FS;如何区分,请看下面章节。之后集线器发送给你主机信息,然后相应下一个Get Port Status请求。
5、集线器复位新设备,主机得知有新设备后,立即发送Get Port Status请求,要求集线器复位端口设备,这时D+和D-都拉低至少10ms。
6、主机了解全速设备是否支持高速状态,检测设备是否支持高速状态使用两个特殊信号状态。Chirp J状态只有D+线被驱动,Chirp K状态只有D-线被驱动。
复位期间,高速设备会发送Chirp K信号。高速集线器检测到该Chirp K信号后,会立即响应一串KJKJKJ….。当设备检测到连续6个KJKJKJ的样式时,设备移除它的上拉电阻,然后以高速状态执行接下来的通信。如果集线器在收到K信号后,没有响应KJKJKJ,设备得知它连接到了一个全速设备,那就以全速模式通信。
7、集线器在设备和总线建建立一条信号路径。主机发送Get Port Status请求证明设备已经摆脱了复位状态。返回数据中的一个数据位将用于标明设备是否处于复位状态。若有必要,主机还会重复此请求直到设备离开复位状态。当集线器的复位信号被移除,设备处于缺省状态(Default state)。设备的USB寄存器都处于复位状态。且设备已经准备好响应断电0处的控制传输。设备会使用缺省地址00h来与主机通信。
8、主机发送Get Port Status请求以了解缺省管道的最大信息尺寸。
9、主机指定新的地址。
10、主机通过新地址了继续解设备能力。类似第8步,但比第8步了解的内容更多。
11、主机制定并加载设备驱动程序。加载INF文件。
12、主机的设备驱动程序会选择配置。主机从设备描数字那里了解完设备信息后,发送Set Configuration请求某一种配置。设备接到请求,进入相应配置,设备接口就算是使能了。

2.2.1 当手机插入电脑SDP口
如下以手机为例讲解USB在手机插入电脑SDP端口后的DP&DM信号波形实测情况,其中阶段(1)是充电器识别过程,阶段(2)是USB枚举和通信过程,如图5。
在这里插入图片描述
其实在阶段(1)之前,还有一个阶段,就是Vbus电压检测,当手机检测到Vbus大于VOTG_SESS_VLD(一般是4V)时,认为Vbus有效,才会进行下面的阶段。
阶段(1)的放大波形如下,细分为(a)和(b)两个阶段,如图6.
在这里插入图片描述
(a)手机开始做数据线连通性检测(Data contact Detect,DCD),手机在D+上施加一个小电流IDP_SRC(一般10uA),因为电脑的SDP端口在D+线上有一个下拉电阻RDP_DOWN(一般20K),因此D+上会有一个电压,图中阶段(1)电压实测为200mV,电压小于VLGC_LWO(0.8V),则认为USB的数据PIN已经连上。
协议规定:DCD阶段不是必须的,如果没有做DCD,阶段(a)将不存在,而是在Vbus有效后900ms,直接开始阶段(b);如果做了DCD,但900ms内检测不到D+电压小于VLGC_LWO(0.8V),也会强制进入阶段(b)。DCD的存在只是为了缩短进入阶段(2)的时间。

(b)手机在D+上施加电压VDP_SRC(一般0.7V),之后手机检测D-上的电压,发现D-电压小于VDAT_REF(0.4V),此时手机认为自己连接到了一个SDP。BC1.2协议中这个过程叫Primary Detection。PD最多从SDP汲取电流500mA。SDP的D+和D-线,没有短接电阻或者开关,所以D+上的电压传不到D-上。
[SDP:Standard Downstream Port标准下行端口,比如电脑的USB口,通常充电能力是0.5A。
CDP:Charging Downstream Port带较强充电能力的电脑USB口,通常充电能力1.5A。
DCP: Dedicate Charging Port专用充电口,比如手机充电器。
PD:Portable Device便携设备,如手机。]

2.2.2 当手机插入电脑CDP口

下图7是手机插入电脑CDP的波形,阶段(1)识别充电器,阶段(2)是USB枚举。如同第2章,本章节只分析阶段(1)。
在这里插入图片描述

阶段(1)有三个小阶段:(a)(b)和(c),前两个阶段与第2章的(a)(b)相同。
(a) 手机开始做数据线连通性检测(Data contact Detect,DCD),手机在D+上施加一个小电流IDP_SRC(一般10uA),因为电脑的SDP端口在D+线上有一个下拉电阻RDP_DOWN(一般20K),因此D+上会有一个电压,图中阶段(1)电压实测为200mV,电压小于VLGC_LWO(0.8V),则认为USB的数据PIN已经连上。
协议规定:DCD阶段不是必须的,如果没有做DCD,阶段(a)将不存在,而是在Vbus有效后900ms,直接开始阶段(b);如果做了DCD,但900ms内检测不到D+电压小于VLGC_LWO(0.8V),也会强制进入阶段(b)。DCD的存在只是为了缩短进入阶段(2)的时间。
(b) 手机在D+上施加电压VDP_SRC(一般0.7V),之后手机检测D-上的电压,发现D-电压大于VDAT_REF(0.4V),此时手机认为自己连接到了一个CDP或者DCP。这个过程叫Primary Detection。
(c) 手机在D-上施加电压VDM_SRC(一般0.7V),之后手机检测D+上的电压,发现D-电压小于VDAT_REF(0.4V),此时手机确定自己连接到了一个CDP。BC1.2协议中这个过程叫Secondary Detection。PD最多从SDP汲取电流1.5A。注意Primary Detection是手机的D+发起,Secondary Detection是手机的D-发起。
特别注意:电脑的CDP端口的D+D-线内部有一个开关,在(b)阶段是闭合的,连通D+和D-,所以能看到D+D-电压几乎同时上升下降。(b)阶段完成后,CDP立即这个开关断开,进入(c)阶段。

2.2.3 当手机插入专业的DCP口。
手机插入充电器口如图8。
在这里插入图片描述
(a)属于BC1.2协议规定的识别过程,由于QC2.0充电器内部在USB插入后,D+和D-通过一个开关短路。我们能看到Primary Detection和Secondary Detection过程,D+和D-都有0.7V脉冲。这时手机认为自己连接到了DCP。
(b)完成DCP检测后,手机开始检测DCP是否还支持QC2.0协议。手机会在D+上施加0.7V电压,并且维持1.25s,之后充电器断开D+和D-间的开关。
(c)充电器断开D+和D-间的开关后,D-电压立马跌落到0V,并维持一段时间。此时手机知道这个充电器是支持QC协议的。
(d)手机按照如下规则,通知充电器,输出对应的电压。这个过程D+=0.7,D-=3.3。是continuous mode
(e) D+=0.7,D-=0,对应输出5V。
(f) D+=3.3,D-=0.7,对应输出9V。
在这里插入图片描述
识别的流程图如下:
在这里插入图片描述
三、总结
本文介绍了USB DP&DM信号在连接不同端口时的识别流程和波形细节分析,主要包含连接电脑端口,以及充电器端口时的信号。待后续补充USB3.0场景下的波形分析。