USB PD规范 第二章浓缩了USB PD规范的精华,走马观花地讲了USB PD协议的工作原理。
假设你已经接触过USB PD协议,有一些基本的了解和相关知识,请先阅读本章,浅浅地尝一尝,试着找找感觉再决定要不要更加深入地了解和学习。
2.6.2 SNK Operation
- 在连接状态时(没有 PD 的连接)
1. SNK 会通过对端有无输出 vSafe5V 来判断连接。
2. 对 DRP 端口来说会切换使其变成 SNK 以完成和 SRC 的连接。
3. 一旦 SNK 在 VBUS 上检测到 vSafe5V 的存在,它通过等对端是否发出 SRC_CAP 来判断对端为具有 PD 能力的 SRC。
4. 如果 SNK 没有在 tTypeCSinkWaitCap 时间内收到 SRC 发出的SRC_CAP,通过发出 Hard Reset 信号寄望于 SRC(具有 PD 能力)可以发出 SRC_CAP。
5. SNK 不会生成 SOP’或 SOP”的包,也没有必要检测 SOP’或 SOP”的包,同时不会去识别它们。
- 建立 PD 的连接(PD 连接没完成或没有建立明确的契约关系)
1. SNK 收到了 SRC_CAP 的 Message,然后用 GoodCRC 响应。
2. SNK 不会生成 SOP’或 SOP”的包,也没有必要检测 SOP’或 SOP”的包,就算检测到也要将其丢掉。
- 建立显性契约关系(PD 连接但在 PRS 或 FRS 之后的契约关系还没建立)
1. SNK 从 SRC 那边收到 SRC_CAP Message,然后用 Request Message向 SRC 发出供电请求。如果是一个合法,有效的 Request, SNK 收到了对端的 Accept Message,当准备好供电给 SNK 协商好的 Power 之后,同时会收到 SRC 发出的 PS_RDY Message,这个时候显性契约就建立了:
(1)SNK 申请的电压应该是 SRC 发出的电压能力中的一个,即使它是被 USB2.0,USB3.1,USB Type-C 1.2 或 USBBC 1.2 所支持的vSafe5V 输出,为的能够协商更高的电压。如果用了 Request Message 将会导致错误,SNK 就不会向申请任何的供电请求。
(2)假如 SNK 申请的电压能力不在 SRC 所能提供的范围内,那么将以默认的第一个进行申请,SNK 将它改变申请的动作通知最后一个。
(3)SNK 不会生成 SOP’或 SOP”的包,也没有必要检测 SOP’或 SOP”的包,就算检测到也要将其丢掉。
- 在 PD 连接过程中(建立了显性契约关系状态到 PE-SNK-Ready 状态)
1. SNK 会处理和响应(如果需要的话)所有收到的包,无论何时,当它本地策略需要的时候会发送恰当的包。
2. 当 SNK 的申请能力需要改变的时候,会通过发新的 Request Message 来通知 SRC。SNK 申请的电压应该是 SRC 发出的电压能力中的一个,即使它是被 USB2.0,USB3.1,USB Type-C 1.2 或 USBBC 1.2 所支持的 vSafe5V 输出,为的能够协商更高的电压:
(1)在一个错误的状态中,SNK 不会用 Request Message 来申请任何的电压能力。
(2)假如 SNK 申请的电压能力不在 SRC 所能提供的范围内,那么将以默认的第一个进行申请,SNK 将它改变申请的动作通知最后一个。
3. SNK 在 CC 线路上总是 asserted RD。
4. 当端口电力模式为 DRP 时,SNK 可以发起或收到电力模式转变的请求。在 PRS 之后,SNK 将会变成 SRC,在明确的契约关系形成之前,由默认的契约关系暂时代替其工作。
5. 当端口数据模式为 DRD 时,SNK 可以发起或收到数据模式转变的请求。在 DRS 之后,DFP 会变成 UFP.端口的电力模式还是 SNK,同时 VCONN SRC 也不会发生改变。
6. SNK 可以发起或接收转换 VCONN SRC 供应的请求.在 VCONN 交换期间,是可以被两端所运用的(中断之前)。此时端口的电力模式和数据模式没有发生改变。
7. 当 SNK 也是 VCONN SRC 的时候,在没有其它 SOP 通讯时,可以在任何时候用 SOP’或 SOP”与 Cable Plug 进行通讯。
(1)当 SNK 收到 SOP 的包,就算此时进行 SOP’或 SOP”通讯也要立即结束,优先开始 SOP 通讯(Cable Plug 超时,不会重试了)。
(2)如果 SNK 正在进行 SOP’或 SOP”通讯的时候需要发起 SOP 通讯(比如供电能力的改变),SOP’或 SOP”的通讯都将被终止。
(3)当端口 SNK 同时也是个 DFP 时,可以通过对 Cable Plug 发包来控制 Mode 的进入和退出以及可以控制工作的模式。
8. 当端口既是 SRC,同时也为 DFP 时
(1)SNK 可以发起结构化和非结构化的 VDM 的 Message。
(2)SNK 可以在 SRC 端口上控制 Mode 进入与退出和用结构化 VDM 的 Message 来控制其工作的模式。
- 通讯错误或断开
1. 当 SNK 检测到线路上没有 VBUS 输出时,这就意味着 PD 连接的结束,除非是由于 Hard Reset, PRS,FRS 中的一个导致状态回到 vSafe0V。
2. SNK 检测到插头的移除,然后开始进行放电。
3. 当 SNK 在 tReceive 时间,收到了为响应 Message 而发出的 GoodCRC 包的过程中检测到了错误。
(1)由于 CRCReceiveTimer 的期满,在 tSoftReset 时间内,产生了 Soft Reset。
(2)如果 Soft Reset 没有按时完成的话,就会 CRCReceiveTimer timer out 之前,在 tHardReset 时间内产生 Hard Reset。同时在 1-1.5S 内将 VBUS 调到 USB 的默认电压 5V。
(3)SNK 为了进一步尝试通讯但没有收到响应表示出现了错误。
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,同时为了保护SNK,将 Power Supply 降到 vSafe0V 或 vSafe5V 输出。
(2)使端口的数据模式维持在最初状态的 UFP。
(3)当 SNK 为 VCONN SRC 时,Hard Reset 会关闭 VCONN 供电.此时将回到最初 SRC 也是 VCONN SRC 的状态。
(4)将会导致退出所有的模式,比如 SRC 会退出现有的工作模式。
- 在 Hard Reset 产生后,寄望于 SRC 可以在 tTypeCSinkCap 的时间内对Hard Reset 请求做出响应。如果 SRC 未有回应,在 UFP 还维持在 PESNKWaitforCap 状态的时候,再发出两个 Hard Reset 信号。
2.6.3 Cable Plug
- Cable Plug 是由 VCONN 供电的,但不需要清楚此时的状态关系。
- Cable Plug 不会主动发起 Message 的序列,只有为了响应 VCONN SRC 发的包才会发起 Message。
- 断开或通讯错误:
1. 在任何时候,通讯都可以被中断。
2. 在 VCONN SRC(DFP/UFP)与 Cable Plug 的通讯的时候,没有时间超时的说法。
3. Cable Plug 准备响应可能的重复请求。
- 错误地处理
1. Cable Plug 检测到 Hard Reset 信号后来判定 SRC 和 SNK 已经 Reset,之后 Reset 自身(相同的掉电过程)。
(1)Cable Plug 自身不能生成 Hard Reset 信号。
(2)Hard Reset 会使 VBUS 和 VCONN 同时掉电,这一点也就相当于 Reset Cable Plug 自身。
2. Cable Plug 检测到 Cable Reset 的信号来决定是否需要 Reset 它自身(相同的掉电过程)。
(本文为连载系列文章,后期会持续更新)
相关阅读
评论 (0)