
2.1 USB PD介绍
2.2 章节概述
此规格包含了下面的部分:

2.3 更新和兼容性
2.3.1 Changes from Revision 2.0
下面是对 PD3.0 与 PD2.0 主要变化的总结:
1、支持版本 2.0 和 3.0 的操作,以确保向后可以兼容现有产品(see Section 6.2.1.1.5)。
2、原来的 Profile 丢弃不用,取而代之的是 PD 的供电模式(see Section 2.7.9)。
- 这种改变也适用于 USBPD2.0。
3、BFSK 支持已弃用的设备,包括传统电缆,传统连接器,传统的电池耗尽的操作和相关的测试模式。
4、Extended Message 数据的有效载荷长度达到了 260bytes(see Section 6.2.1.2)。
- 支持将扩展消息分块为 USB PD 的大小,以实现与传统 PD 硬件的兼容性。
5、只有 VCONN SRC 允许和 Cable Plug 进行通讯(see Section 2.5.4)
6、 SRC 尝试协调尽可能地避免碰撞使 SRC 和 SNK 中的任意一个端口能够发起 AMS 的序列。
- USB Type-C 1.2 中,用 SRC 端上拉的 Rp 电阻值来表明当 SNK(能或不能)向 SRC 或者 Cable Plug 发起 AMS 的序列(see Section 2.7.3)。
- SRC 和 SNK 中的任意一个端口都能发起 Vendor Defined 定义的 Message 序列。
- 当具备可以给 VCONN 供电的能力时,SRC 和 SNK 中的任意一个端口都可以和 Cable Plug 进行通讯。
7、删除了 Attention 命令的时间限制。
- FRS 定义了能够将外接电源的 docks 和 hubs 快速转换到 bus power 模式上,当它们去除外部电源供给的时候(see Section 6.3.17)。
8、附加的状态和发现
- 扩展的供电能力和状态。
- 电池的能力和状态。
- 制造商定义的信息。
9、无源电缆,有源电缆和 AMA VDO 中字段的改变表明了将 Structured VDM 更改到 2.0 的版本。
10、支持与 USB 安全相关的请求与响应。
11、支持 USB PD 固件的更新请求与响应。
12、系统策略在当前的引用。
2.3.2 Compatibility with Revision 2.0
USB PD 标准的 3.0 版本被设计用来完美兼容 USB 2.0 的系统,此系统在 USB Type-C 1.2 连接器上使用 BMC 的信号是和 2.0 版本的硬件是一致的。
这份标准强制要求了所有 3.0 版本必须完全支持 USB PD 2.0 的操作。它们必须发现对端或 Cable Plug 所支持的版本,然后用最低,常见的版本号使回复到与之对应的状态。(see Section 6.2.1.1.5)
这个标准规定了 Extended Message ,其包的长度达到了 260 bytes(see Section 6.2.1.2)。这些 Message 要比目前 PHY HW 中包的长度要长。为了可以支持 2.0 版本的基础系统,分块机制被强制执行以便 Message 被限制到 PD 2.0 版本的尺寸,除非发现两个系统都可以支持最长包的收发。
这个标准包括了 Vendor Defined Objects(VDO) 的变化用来发现识别 passive/active cable 和 Alternate Mode Adapters(AMA)(see Section 6.4.4.2)。
为了能使系统决定用哪个 VDO,结构化的 Vendor Defined Message (SVDM)的版本号递增到 2.0。
如果变得有需要的话,版本号也已经包含了 VDO 本身,来促进接下来的变化。
2.4 USB PD 支持设备
在 Figure 2-1 中可以看到一些具有 USB PD 能力的设备(a Host, a Device, a Hub, a Charge)。这些都是仅供参考,不会限制基于这份标准而建立的产品可能的配置。

每一个具有 PD 能力的设备被认为至少组成了一个端口。Providers 被认为是 SRC, Consumers 被认为是 SNK。每个设备包含了一个甚至更多下面的要素。
UFPs 可以是:
- 受电。
- 可选择地供电(一个 DRP 的设备)。
- 可选择地通过 USB 进行数据通讯。
- 用 SOP Packets 进行通讯。
- 可选择地用 SOP* Packet 进行通讯。
DFPs 可以是:
- 供电。
- 可选择地受电(一个 DRP 的设备)。
- 可选择地与通过 USB 进行数据通讯。
- 用 SOP Packet 进行通讯。
- 可选择地用 SOP* Packet 进行通讯。
A SRC that 可以是:
- 一个外部电源(比如 AC)。
- 蓄电装置(比如电池)。
- 从另一个端口派生的(比如远供的 Hub)。
A Sink 可以是:
- 蓄电装置(比如电池)。
- 用于给内部功能供电的设备。
- 用于给连接到其它设备供电的设备。
A VCONN SRC 可以是:
- 可以是任意一个端口,既可以是 DFP/UFP,也可以是 SRC/SNK。
- 给 Cable Plug 供电。
- 在任何时候,只有是能够提供 VCONN SRC 的端口才可以和 Cable Plug 进行通讯。

Note: Cable Plug 既可以和 DFP 连接,也可以和 UFP 连接。
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 的连接)
- 在 PD 连接之前(没有 PD 的连接或者 PD 协商还没建立)
- 在 PD 连接的阶段(PD 连接还没完成或没有建立明确的契约关系)
- 建立契约关系(PD 连接但在 PRS 或 FRS 之后的契约关系还没建立)
- 在 PD 连接过程中 (建立了显性契约关系状态到 PE_SRC_Ready 状态)
- 断开或通讯错误
- 错误的处理
2.6.2 SNK Operation
- 在连接状态时(没有 PD 的连接)
- 建立 PD 的连接(PD 连接没完成或没有建立明确的契约关系)
- 建立显性契约关系(PD 连接但在 PRS 或 FRS 之后的契约关系还没建立)
- 在 PD 连接过程中(建立了显性契约关系状态到 PE-SNK-Ready 状态)
- 通讯错误或断开
- 错误的处理
- 在 Hard Reset 产生后,寄望于 SRC 可以在 tTypeCSinkCap 的时间内对Hard Reset 请求做出响应。如果 SRC 未有回应,在 UFP 还维持在 PESNKWaitforCap 状态的时候,再发出两个 Hard Reset 信号。
- Cable Plug 是由 VCONN 供电的,但不需要清楚此时的状态关系。
- Cable Plug 不会主动发起 Message 的序列,只有为了响应 VCONN SRC 发的包才会发起 Message。
- 断开或通讯错误:
- 错误地处理
2.7 Architectural Overview 架构概述
逻辑架构并没有打算作为一种实现架构。按照定义,实现架构是产品定义的一部分,即它是在这个标准的范围之外的。
在每个具有 USB PD 能力的设备里面,USB PD 架构是由大量主要成分组成的。通讯堆栈在 Figure 2-3 可以看到包括了:
此外,具有 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 部分上面也有描述包括了:
2.7.1 Policy
存在两种可能等级的策略:
1) 系统策略应用在系统范围内来管理多个的 Providers 和 Consumers。
2) 本地策略通过 DPM 作用在一个 Provider 或一个 Consumer 中。
策略包括了一些逻辑模块:
- 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 的传送与接收,同时也操控数据的传送。


- 作为一个 SRC 或者 DRP 的设备:一个或多个的 SRC 向一个或多个的端口供电。
- 作为一个 SNK 或者 DRP 的设备:一个 SNK 吸收电能。
- 一个 USB-C 接口的控制模块(see Section4.4)会用 USB Type-C 1.2 中定义的协议来检测线缆的连接或断开。
- USB PD 用的是 USB Type-C 1.2 定义的标准线缆。

- System Policy Manager(整个系统范围内)
- Device Policy Manager(每一个 Provider 或 Consumer)
- Policy Engine(每一个 SRC 和 SNK 端口)
2.7.2 Message Formation and Transmission
2.7.2.1 Protocol Layer
The Protocol Layer 会组织好端口间用来通讯的 Message。比如 Capabilities Messages,request Message 和 acknowledgements。此外,它也会组织用来进行转换角色的 Message 和保持存在的状态。它从 Policy Engine 收到输入的Message,然后表明具体发送哪个 Message,同时向 Policy Engine 表明响应的Message。
The basic protocol 使用推送模式即 Provider 向 Consumer 通告自己的能力,相应地会用 Request 来响应。但是,the Consumer 可以异步申请 the Provider 能够提供的能力,即选择另一种电压/电流。
2.7.2.2 PHY Layer
PHY Layer 是负责通过 USB Type-C CC 来进行收发和管理数据的。它尽可能的在线路上避免冲突,而且当发生冲突时,矫正它。它也会用 CRC 来检测 Message 是否错误。
2.7.3 Collision Avoidance
2.7.3.1 Policy Engine
在 SRC 端的 PE 状态机表明了 Protocol Layer 上由 SRC 发起的每个 AMS 序列初始和结束的状态。在 SNK 端的 PE 状态机表明了 Protocol Layer 上由 SNK 发起的每个 AMS 序列的初始状态。这一点能够协调由两端发起的 AMS 的序列。
2.7.3.2 Protocol Layer
在 SRC 端的 Protocol Layer 会请求 PHY 将 Rp 的值设置成 SinkTxOk 表明 SNK可以通过发送序列中第一个 Message 来发起 AMS。既然 SRC 打算发起 AMS,那么在 SRC 端的 Protocol Layer 会请求 PHY 将 Rp 的值设置成 SinkTxNG,表明 SNK 此时不能发起 AMS。
在 SNK 端的 Protocol,当 Policy Engine 表明 AMS 是可以发起的时候,在发送序列中第一个 Message 来发起 AMS 序列之前将会等 Rp 的值被设置到 SinkTxOk。
2.7.3.3 PHY Layer
在 SRC 端的 PHY Layer 会依照 Protocol Layer 的请求把 Rp 的值设置成 SinkTxOk 或 SinkTxNG。而 SNK 端 PHY Layer 将会检测当前的 Rp 的值然后通知 Protocol Layer。
2.7.4 Power supply
2.7.4.1 Source
每一个 Provider 包含一个或多个 SRC 端口及相应的一个或多个 Power 源。这些 SRC 由本地策略所控制。SRC 开始 USB 的默认工作状态,端口在 VBUS 上
提供 vSafe0V 或 vSafe5V,在一个 Hard Reset 之后也会回到这个状态。如果 SRC将 vSafe0V 作为默认状态,检测到连接的时候,将它的输出调整到 vSafe5V。
2.7.4.2 SNK
Consumers 被认为有一个和端口连接的 SNK。这个 SNK 也由自己的本地策略所控制。当端口工作在 vSafe5V 和 USB 定义的默认电流等级,此时 Sink 开始工作在 USB 的默认状态。且在连接断开或发生 Hard Reset 之后会回到这个状态。
2.7.4.3 Dual-Role-Power Ports
DRP 既可以作为 SRC 也可以作为 SNK 来工作而且可以通过用 PRS 或 FRS 来改变端口间的工作模式。
2.7.4.4 Dead Battery or Lost Power Detection
USB Type-C 1.2 中定义了一套机制打算用 Dead Battery 来给 SNK 或 DRP 充电。
2.7.5 DFP/UFP
2.7.5.1 Downstream Facing Port (DFP)
在 USB 拓扑结构中,下行端口或 DFP 和 USB-A 起到的作用是相当的。DFP 就相当于 USB 中的 Host 而且只有当它是一个 DFP 的时候才支持 USB 的通信。
一个类似于墙插的产品可以是 DFP,然而却没有进行 USB 通信的能力。DFP 也可以作为主总线来控制交替模式。
2.7.5.2 Upstream Facing Port (UFP)
在 USB 拓扑结构中,上行端口或 UFP 和 USB-B 起到的作用是相当的。UFP 就相当于 USB 中的 Device 而且只有当它是一个 UFP 的时候才支持 USB 的通信。
Products which charge 可以是一个 UFP 然而却没有进行 USB 通信的能力。
2.7.5.3 Dual-Role Data Ports
DRP 既可以作为 SRC 也可以作为 SNK 来工作而且可以通过 DRS 来转换数据模式。Note:产品的数据模式是 DRD,但不是 DRP。例如从逻辑上讲,它们可以在 DFP 和 UFP 之间转变自己的数据模式,即使它们是 SRC-Only 或是 SNK-Only。
2.7.6 VCONN Source
一个端口,最初为 SRC,同时也是 VCONN SRC。Cable Plug 的线缆根据 VCONN供电来判断 SOP’。在 SRC 和 SNK 端口之间谁来给 VCONN 供电是可以转换的,以此来确保可以持续给 Cable Plug 供电。为了确保和 Cable Plug 之间进行可靠的通讯,只有 VCONN SRC 允许和 Cable Plug 进行通讯。在 PRS,DRS 或 FRS 之前,如果它们需要在转换角色之后可以和 Cable Plug 进行通讯,端口需要确保自己是 VCONN SRC。
2.7.7 Cable and Connectors
2.7.7.1 USB-C Port Control
USB-C 端口的控制模块提供了机制来通知 Device Policy Manager 关于线缆的连接与断开。USB PD 的标准认为经过论证的 USB 线缆和相关的检测机制都定义在 USB Type-C 1.2 的标准中。
2.7.8 Interactions between Non-PD/BC/PD devices
USB PD 只有在两个具备 PD 能力设备直连的时候才会正常工作的。当一个设备发现它处于混合环境当中时,即另一个设备不具备 PD 的能力,那么现有提供 vSafe5V 的规则就是根据 USB2.0, USB3.1, USBBC1.2 or USB Type-C 1.2 等标准制定的。
将会有两种情况需要考虑到:
(1)The Host(DFP/Source)是 Non-PD,自己不会向 SNK 发送任何的通告能力。与其连接上并且具备 PD 能力的设备不会看到任何的通告能力,将会采用基于 USB2.0,USB3.1,USBBC1.2 或 USB Type-C1.2 标准的模式来工作。
(2)The Device(UFP/Sink)是 Non-PD,自己不会看到任何对端发来的通告能力,也就不会响应对端的通讯。The Host 将会按照 USB2.0,USB3.1,USBBC1.2 或 USB Type-C1.2 中定义的持续输出 vSafe5V 给 VBUS。
2.7.9 Power Rules
Power Rules 定义了由 USB PD 中的 SRC 提供和 USB PD 的 SNK 所使用电压,电流的范围。详细的介绍请看第十章。
(本章完)
译者:李熙民
评论