USB PD规范 第二章浓缩了USB PD规范的精华,走马观花地讲了USB PD协议的工作原理。
假设你已经接触过USB PD协议,有一些基本的了解和相关知识,请先阅读本章,浅浅地尝一尝,试着找找感觉再决定要不要更加深入地了解和学习。
2.6 操作概述
USB PD 端口中供电的一方是 SRC,受电的一方为 SNK。在端口间,每个 PD连接中只有一个是 SRC,一个是 SNK。默认连接上的 SRC 端(提供上拉电阻)也是 DFP,也是 VCONN SRC。同时连接上的 SNK 端(提供下拉电阻)也是UFP,不是 VCONN SRC。
SRC/SNK,DFP/UFP,VCONN SRC 的模式都可以通过 PD Message 进行转换。同时支持 SRC 和 SNK 的端口叫做 DRP,同时支持 DFP 和 UFP 的端口叫做 DRD。
下面的部分描述的是高等级的工作来承担 DFP,UFP,SRC,SNK 的角色。这些部分不会描述不被允许的工作状态;但如果一种特定的行为没有描述到,那就很可能没有被这个标准所支持。
PD 如何在一个 PD USB 设备上绘制自己状态的详情请看 9.1.1 章。
2.6.1 SRC Operation
SRC 工作状态的不同取决于连接状态:
- 在连接状态时(没有 PD 的连接)
1. 对一个 SRC_Only 的端口来说,SRC 会检测 SNK 有无连接上。
2. 对 DRP 端口来说会切换使其变成 SRC 以完成和 SNK 的连接。
3. 在 SRC 端设置 VBUS 到 vSafe5V。
- 在 PD 连接之前(没有 PD 的连接或者 PD 协商还没建立)
1. 在发 SRC_CAP 之前,SRC 可以检测连接上的 Cable 的类型,然后根据检测到的 Cable 的类型来改变它的通告能力。
(1)SRC 会尝试用 SOP’的 Message 与 Cable Plug 进行通讯。如果Cable Plug 响应,则开始与其通讯。
(2)默认的 USB Type-C 的线缆支持的电流是 3A,但我们可以通过发SOP’的 Message 来获得这根线缆的能力。
2. SRC 会定期的在每个 tTypeCSendSourceCap 时间内通过向对端发送SRC_CAP 来通告自己的供电能力。
- 在 PD 连接的阶段(PD 连接还没完成或没有建立明确的契约关系)
1. 有下面两种中的一种说明检测到存在的对面端口具有 PD 功能。
(1)SRC 收到了对端响应 SRC_CAP 而发出的 GoodCRC。
(2)SRC 收到了 Hard Reset 信号(此时对端没能收到 SRC 发出的 SRC-CAP)。
- 建立契约关系(PD 连接但在 PRS 或 FRS 之后的契约关系还没建立)
1. SRC 从 SNK 那边收到 Request Message,然后用 Accept 来响应 SRC发出的 Request。如果是一个合法,有效的 Request,当准备好供电给SNK 协商好的 Power 之后,SRC 会发出 PS_RDY Message,这个时候显性契约就建立了。
2. DFP 不会生成 SOP’或 SOP ”的包,也不需要检测 SOP’/SOP”包,就算检测到也会将其丢掉。
- 在 PD 连接过程中 (建立了显性契约关系状态到 PE_SRC_Ready 状态)
1. SRC 会处理和响应(如果需要的话)所有收到的包,无论何时,当它本地策略需要的时候会发送恰当的包。
(1)无论何时供电的能力改变了,SRC 会通过发 SRC_CAP 来通知 SNK。
(2)SRC 在 CC 线路上总是 asserted RP。
(3)当端口电力模式为 DRP 时,SRC 可以发起或收到电力模式转变的请求。在 PRS 之后,SRC 将会变成 SNK,在明确的契约关系形成之前,由默认的契约关系暂时代替其工作。
(4)当端口数据模式为 DRD 时,SRC 可以发起或收到数据模式转变的请求。在 DRS 之后,DFP 会变成 UFP。此时端口的电力模式还是SRC,同时 VCONN SRC 也不会发生改变。
(5)可以发起或接收转变 VCONN SRC 供应的请求。当 VCS 通过两端被申请的时候,此时端口的电力模式和数据模式没有发生改变。
2. 当 SRC 也是 VCONN SRC 的时候,在没有其它 SOP 通讯时,可以在任何时候用 SOP’或 SOP”与 Cable Plug 进行通讯。
(1)当 SRC 收到 SOP 的包,就算此时进行 SOP’或 SOP”通讯也要立即结束,优先开始 SOP 通讯(Cable Plug 超时,不会重试了)。
(2)如果 SRC 正在进行 SOP’或 SOP”通讯的时候需要发起 SOP 通讯(比如供电能力的改变),SOP’或 SOP”通讯都将被终止。
3. 当端口既是 SRC,同时也为 DFP 时
(1)SRC 可以通过对 Cable Plug 发包来控制 Mode 的进入和退出以及可以管理工作的模式。
(2)SRC 可以发起结构体和非结构体的 VDM 的 Message。
(3)SRC 可以在 SNK 控制进入和存在的模式和用结构体 VDM 的 Message 来控制其工作的模式。
4. 如果 SRC 端口是一个多口的系统
(1)当需要输出备用功率时,将产生 Gotomin 的 Request。
- 断开或通讯错误
1. 当 SRC 检测到线路断开后,会在 tSafe5V 的时间内将电压降到 Vsafe5V, 在 tSafe0V 的时间内降到 Vsafe0V(SRC 通过检测 ADC 的值来看线路有无断开)。
2. 当 SRC 在 tReceive 时间内,收到为响应 Message 而发出的 GoodCRC包,在此过程中检测到了错误。
(1)由于 CRCReceiveTimer 的期满,在 tSoftReset 时间内,产生了 Soft Reset。
(2)如果 Soft Reset 没有按时完成的话,就会在 CRCReceiveTimer timer out 之前,在 tHardReset 时间内产生 Hard Reset。同时在 1-1.5S 内将 VBUS 调到 USB 的默认电压 5V。
(3)当端口 SRC 同时也是 VCONN SRC 时,在发生 Hard Reset的过程中 VCONN 也是会掉电的。
3. SRC 为了进一步尝试通讯但没有收到响应表示出现了错误。
4. 在 Power 协商过程中出现的错误会自动地产生 Hard Reset 为了将Power 维持在默认的等级(5V)。
- 错误的处理
1. 当协议层出现错误时,会引起端口中的任意一个发出 Soft Reset.从而复位 counters, timers 和 states,但这个动作不会改变协商好的电压,电流或端口的模式(比如 SRC,DFP/UFP,VCONN SRC)也不会导致退出现有的工作模式。
2. 当线路中出现严重错误的时候,两个端口中的任意一个都可能会发出Hard Reset 的信号。
(1)和 Soft Reset 一样,Hard Reset 会 reset protocol,同时为了保护 S NK,将 Power Supply 降到 vSafe0V 或 vSafe5V 输出。
(2)使端口的数据模式维持在最初状态的 DFP。
(3)当 SNK 为 VCONN SRC 时,此过程会关闭 VCONN 供电。同时将SRC 维持在 VCONN SRC 的状态。
3. 在 Hard Reset 产生后,寄望于对端可以在 tNoResponse 的时间内对 Hard Reset 请求做出响应。如果未有响应,进行 Hard Reset 累加(最大为 2)直到 SRC 进入 Error Recovery 状态。
评论 (0)