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 状态。
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 为了进一步尝试通讯但没有收到响应表示出现了错误。
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 它自身(相同的掉电过程)。
2.7 Architectural Overview 架构概述
逻辑架构并没有打算作为一种实现架构。按照定义,实现架构是产品定义的一部分,即它是在这个标准的范围之外的。
在每个具有 USB PD 能力的设备里面,USB PD 架构是由大量主要成分组成的。通讯堆栈在 Figure 2-3 可以看到包括了:
A Device Policy Manager(see Section 8.2)存在于所有的设备当中,通过一个或多个端口的 Local Policy 用来管理 USB PD 内部的资源。
A Policy Engine(see Section 8.3)存在于每个 USB PD 的端口中来执行 Local Policy。
A Protocol Layer(see Chapter 6)使 Source 和 Sink 端口之间的 Message 进行交换。
A Physical Layer(see Chapter 5)操控通讯线路上 bits 的传送与接收,同时也操控数据的传送。
此外,具有 USB PD 能力的设备同样可以作为 USB 设备在 USB 中实现通讯(see Figure 2-4)。一种任意的系统策略管理器(see Chapter 9)存在于 USB Host 与 PD设备之间的通讯中,经过 root 端口,可能地遍布在一棵树上的 USB 集线器上。在每个设备上,设备策略管理器与 USB 接口相互作用为了可以在域中提供和更新 PD 的相关信息。Note:PD 设备不需要有一个像 USB 设备那样的接口。
Figure 2-5 描述了两个连接 PD 端口的逻辑模块。另外,通讯协议 stack 部分上面也有描述包括了:
作为一个 SRC 或者 DRP 的设备:一个或多个的 SRC 向一个或多个的端口供电。
作为一个 SNK 或者 DRP 的设备:一个 SNK 吸收电能。
一个 USB-C 接口的控制模块(see Section4.4)会用 USB Type-C 1.2 中定义的协议来检测线缆的连接或断开。
USB PD 用的是 USB Type-C 1.2 定义的标准线缆。
设备的策略管理器会和通信 stack 进行通讯,SRC/SNK 和 USB-C 的控制模块来管理 Provider 和 Consumer 中的资源。
Figure 2-5 说明了一个 Provider 和 Consumer 内部通讯的框架结构。DRP 的设备结合了 Provider 和 Consumer 的功能要素。Provider 也可以包括多个的 SRC端口,它们每一个都有自己的通讯 stack 和 USB-C 接口的控制。