前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >USB Type-C PD spec (1)

USB Type-C PD spec (1)

作者头像
Jasonangel
发布2023-08-22 14:09:44
3940
发布2023-08-22 14:09:44
举报
代码语言:javascript
复制

1、PD Overview

1.1、Introduction

USB PD(Power Delivery) 主要功能:

  • 端口间协商电压、电流以及功率方向 (通过 Type-C CC 通道)
    • 电压可比其他标准规范更高或更低
    • 电流可比其他标准规范更高
  • 支持与电缆组件通讯,发现支持的标准或供应商模式,允许多种 mode 同时运行
    • 只有 VCONN Source 才能与线缆组件通讯
    • 可发生在显性契约之前或之后
  • 供电模式的两种契约
    • 显性契约:Source 发送 Capabilities,Sink 请求特定 Capability,Source 接受该请求并提供指定的功率
    • 隐性契约:在发生 PR_Swap 或 FR_Swap 后允许的暂时的指定功率水平,而后必须建立显性契约
    • 支持 Source/Sink,DFP/UFP,VCONN Source 通过指令互换
1.2、USB PD 发展历程
1.3、USB Power Delivery Capable Devices
代码语言:javascript
复制
UFP

1. Sink power
2. 可选择地提供电源 (DRP)
3. 可选择地通过 USB 进行数据通讯 (USB Device)
4. 用 SOP 进行通讯
5. 可选择地用 SOP* 进行通讯

DFP

1. Source power
2. 可选择地汲取电源 (DRP)
3. 可选择地通过 USB 进行数据通讯 (USB Host)
4. 用 SOP 进行通讯
5. 可选择地用 SOP* 通讯

Source

1. 可以是外部电源 (AC)、可以是蓄电装置 (电池)
2. 可以源自另一个端口(例如总线供电的 Hub)

Sink

1. 可以是蓄电装置(电池)
2. 用于给内部功能供电的设备
3. 用于给其它设备供电的设备 (Hub)

VCONN Source

1. 可以是任一端口,既可以是 DFP/UFP,也可以是 Source/Sink
2. 为电缆插头供电
3. 唯一允许与电缆插头通讯的端口

High Level Architecture View

USB Power Delivery Communications Stack

设备策略管理器 (DPM):根据设备本地策略管理一个或多个端口

策略引擎:为端口实施本地策略

协议层:使消息在端口间交换

物理层:处理线路上比特数据的传输和接收

1.4、SOP* Communication

SOP:Start of Packet

  • SOP* :用于区分通讯对象,通过单线 CC 通讯
    • SOP' 和 SOP'' 分配是固定的,不会动态更改
    • 通讯过程均是 VCONN SRC 发起和控制
    • 无契约或隐性契约阶段,仅允许 SRC 端口 (VCONN SRC) 与电缆插头通讯。SNK 丢弃收到的 SOP'/SOP''
    • 显性契约阶段,只要是 VCONN SRC 的端口,即可与电缆插头通讯。非 VCONN SRC 不识别 SOP'/SOP''
    • 只有是 DFP 又是 VCONN SRC,允许发送 SOP* 来控制进入/退出 Alt Mode 和管理相应的操作模式
    • 不能被任何电缆插头识别
    • 优先级高于 SOP'/SOP'',可打断 SOP'/SOP'' 通讯,不会导致复位
    • SOP : 用于 Source 与 Sink 端口之间通讯
    • SOP'/SOP'':用于端口与电缆插头间通讯

1.5、Operational Overview

Source Operation

  • 在 Attach 时 (无 PD Connection 和 PD 契约)
    • 检测 SNK 的 attach 状态,之后拉高 VBUS 到 5V
  • 在 PD Connection 前(无 PD Connection 和 PD 契约)
    • 每隔 tTypeCSendSourceCap(150ms) 发送 SRC_CAP 来通告供电能力
    • 发送 SRC_CAP 之前,可先检测电缆类型,根据类型更改其通告的供电能力
    • TypeC 电缆支持的电流默认是 3A,通过 SOP’ 通讯可获得电缆支持传输的最大电流
  • 建立 PD Connection 时(无 PD Connection 和 PD 契约)
    • 收到响应 SRC_CAP 的 GoodCRC
  • 建立显性契约时 (PD Connection 但无显性契约或 PR_Swap/FR_Swap 之后的隐性契约)
    • 接收到 SNK 的有效请求,然后回应 Accept 消息,准备好商定的供电功率,并发送 PS_RDY 消息,建立起显性契约
    • 不生成 SOP'/SOP'' 包的 DFP,无需检测 SOP'/SOP'' 包,检测到也须丢弃
  • 在 PD Connection 期间 (显性契约-PE_SRC_Ready 状态)
    • 可控制电缆插头中模式的进入和退出并控制 mode 操作
    • 可发起非结构化或结构化 VDM
    • 可控制 SNK 进入和退出模式,并使用结构化 VDM 控制模态操作
    • 发起或收到 SOP 时,都会打断 SOP'/SOP'' 通信
    • 当供电能力发生变化时,发送 SRC_CAP 通知 Sink
    • 在 CC 上断言 Rp
    • 端口是 DRP 时,可发起或接受 PR_Swap 请求进行电源角色交换(隐性契约->显性契约)
    • 端口是 DRD 时,可发起或接受 DR_Swap 请求进行数据角色交换
    • 可发起或接受 VCONN_Swap 请求,交换期间遵循先通后断原则
    • 根据本地策略发送消息,并处理和响应所有收到的消息
    • 是 VCONN SRC 时,可使用 SOP'/SOP'' 与电缆插头通信
    • 是 DFP 时
    • 是多端口系统中的一部分时,在需要保留功率时发出 GotoMin 请求
  • 断开或通信失败
    • 在 CRCReceiveTimer 超时后的 tSoftReset 内,发起 Soft Reset
    • 如果 Soft Reset 无法完成,则会在 CRCReceiveTimer 超时后的 tHardReset 内发起 Hard Reset
    • 是 VCONN SRC 时,VCONN 也将在 Hard Reset 期间重新上电
    • 用 CC 检测到断开时,VBUS 将在 tSafe5V 内降至 Safe5V,在 tSafe0V 内降至 vSafe0V
    • 在 tReceive 内检测不到响应消息的 GoodCRC 时
    • 在 SPR PPS 模式下运行时未能在 tPPSTimeout 内收到 SNK 的周期性通讯时将发起 Hard Reset
    • 在 EPR AVS 模式下运行时未能在 tSourceEPRKeepAlive 内收到 SNK 的周期性通讯时将发起 Hard Reset

Sink Operation

  • 在 Attach 时 (无 PD Connection 和 PD 契约)
    • 通过检测 vSafe5V 来确定 SRC 的连接
    • 连接后等待 Source_capabilities 消息来检测 SRC 支持 PD
    • 在 tTypeCSinkWaitCap 内未收到 SRC_CAP,则发起硬复位,以使 SRC 重新发 SRC_CAP
    • 不生成 SOP'/SOP'',且无需检测并丢弃 SOP'/SOP''
  • 建立 PD Connection 时 (无 PD Connection 和 PD 契约)
    • 收到 SRC_CAP 并以 GoodCRC 响应
    • 不生成 SOP'/SOP'',且无需检测并丢弃 SOP'/SOP''
  • 建立显性契约时 (PD Connection 但无显性契约或 PR_Swap/FR_Swap 之后的隐性契约)
    • 以 Request 消息响应 SRC 的 Source_Capabilities 消息。当 SRC 准备好商定的功率时,SNK 收到 Accept 消息和 PS_RDY 消息,建立起显性契约
  • 在 PD Connection 期间 (显性契约 - PE_SNK_Ready 状态)
    • 可控制 SRC 进入和退出模式,并使用结构化 VDM 控制模态操作
    • SOP 的接受和发起都会中断 SOP'/SOP'' 的通信
    • 也是 DFP 时,可控制电缆插头进入和退出模式并控制模态操作
    • 根据本地策略发送消息,并处理和响应所有收到的消息
    • 工作在 SPR PPS 模式时会周期性地每隔 tPPSRequest 发送 Request 消息
    • 工作在 EPR AVS 模式时会周期性地每隔 tSinkEPRKeepAlive 与 SRC 通信
    • 始终在其 CC 线上断言 Rd
    • 端口是 DRP 时,可发起或接受 PR_Swap 请求进行电源角色交换(隐性契约->显性契约)
    • 端口是 DRD 时,可发起或接受 DR_Swap 请求进行数据角色交换
    • 可发起或接受 VCONN_Swap 请求,交换期间遵循先通后断原则
    • 是 VCONN SRC 时,可使用 SOP'/SOP'' 与电缆插头通信
    • 是 DFP 时,可发起非结构化或结构化 VDM
  • 断开或通信失败
    • 在 CRCReceiveTimer 超时后的 tSoftReset 内,发起 Soft Reset
    • 如果 Soft Reset 无法完成,则会在 CRCReceiveTimer 超时后的 tHardReset 内发起 Hard Reset
    • 除硬复位、DR_Swap、FR_Swap 造成的情况
    • 检测到 VBUS 移除则认为 PD Connection 结束
    • 检测到插头移除并释放 VBUS
    • 在 tReceive 内检测不到响应消息的 GoodCRC 时
    • 在 SPR PPS 模式下运行时未能周期性地在 tPPSTimeout 内发起通讯,SRC 将发起 Hard Reset
    • 在 EPR 模式下运行时未能周期性地在 tSourceEPRKeepAlive 内发起通讯,SRC将发起 Hard Reset
    • 功率转换期间出错将自动导致 Hard Reset

SRC/SNK 出错处理

  • 协议错误由任一端口发起 Soft_Reset 消息,以重置计数器、计时器和状态,不改变商定好的电压、电流、端口角色以及工作模式
  • 严重错误由任一端口发起 Hard Reset 处理
    • 重置协议,电源会恢复为 USB 默认状态 (vSafe0V 或 vSafe5V) 以保护 SNK
    • 将端口数据角色恢复为 DFP (对于 SRC)或 UFP(对于 SNK)
    • sink 为 VCONN SRC 时,SNK 断开 VCONN,由 SRC 提供 VCONN
    • 退出所有活动模式,不再处于 mode 操作中
  • 硬复位后
    • SRC 在 tNoResponse 内等待 SNK 响应。如果无响应,则会进一步发起 nHardResetCount 次硬复位,仍无响应会进入 ErrorRecovery 状态
    • SNK 在 tTypeCSinkWaitCap 内等待 SRC 响应。如果无响应,会有进一步发起 nHardResetCount 次硬复位。

Cable Plugs Operation

  • 电缆插头不主动发起通讯,只响应消息
  • 断开或通信失败
    • 通信可能随时被中断
    • DFP/UFP 和电缆插头之间没有通信超时方案
    • 会响应重复的请求
  • 出错处理
    • 电缆插头本身不产生硬复位信号
    • 因硬复位过程会重启 VCONN,电缆插头会自行复位
    • 检测 Hard Reset 来确定 SRC 和 SNK 已被复位,并自行复位
    • 检测 Cable Reset 来确定是否自行复位
1.6、Charging Models

Fixed Voltage Charging Models

Programmable Power Supply (PPS) Charging Models

Adjustable Voltage Supply (AVS) Charging Models

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式Linux系统开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、PD Overview
    • 1.1、Introduction
      • 1.2、USB PD 发展历程
        • 1.3、USB Power Delivery Capable Devices
          • 1.4、SOP* Communication
          • 1.5、Operational Overview
            • 1.6、Charging Models
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档