USB --- PD协商
发布时间:2026/7/30 6:54:39
USB PD 从机(Sink)的状态机流程(SNK_STARTUP→DISCOVERY→...→SNK_READY)是从机(Sink)主动发起并主导,配合主机(Source)响应完成的协商过程,每个状态的切换由特定消息交互或超时机制触发。以下是各步骤的详细说明:
1. SNK_STARTUP(从机启动)
- 角色:从机(Sink)主动初始化。
- 触发条件:从机物理连接到主机(如插入 USB-C 线缆),硬件检测到 VBUS 电压(或 CC 线信号)后进入该状态。
- 行为:从机初始化 PD 控制器(如 TCPM 模块),配置底层硬件(如 CC 线检测电路),准备进入协议协商。
- 状态切换触发:初始化完成后,自动进入 SNK_DISCOVERY 状态。
2. SNK_DISCOVERY(从机发现)
- 角色:从机主动发起,探测主机是否支持 PD 协议。
- 触发条件:从 SNK_STARTUP 完成后进入。
- 行为:
- 从机通过 CC 线发送 PD_CTRL_GET_SOURCE_CAP 消息(请求主机发送供电能力)。
- 若主机支持 PD,会响应 PD_DATA_SOURCE_CAP 消息(包含主机的电压、电流等供电能力)。
- 若超时未收到响应,可能回退到非 PD 模式(如 USB 2.0/3.0 标准供电)。
- 状态切换触发:收到主机的 SOURCE_CAP 消息后,进入 SNK_WAIT_CAPABILITIES 状态。
3. SNK_WAIT_CAPABILITIES(等待主机能力)
- 角色:从机等待并解析主机的完整能力集。
- 触发条件:从 SNK_DISCOVERY 收到主机首条 SOURCE_CAP 消息后进入。
- 行为:
- 主机可能分多条消息发送完整供电能力(若能力较多,需分片传输),从机在此状态等待所有分片并整合。
- 若主机只发送一条 SOURCE_CAP 消息,此状态会快速完成。
- 状态切换触发:从机成功解析主机完整的供电能力集后,进入 SNK_NEGOTIATE_CAPABILITIES 状态。
4. SNK_NEGOTIATE_CAPABILITIES(协商供电能力)
- 角色:从机主动选择供电方案,发起协商。
- 触发条件:从机解析完主机能力集后进入。
- 行为:
- 从机根据自身需求(如所需电压、电流),从主机能力集中选择一个方案,发送 PD_CTRL_REQUEST 消息(包含选中的方案索引)。
- 主机收到请求后,若同意,会返回 PD_CTRL_ACCEPT 消息;若拒绝,返回 REJECT 或不响应(超时)。
- 状态切换触发:收到主机的 ACCEPT 消息后,进入 SNK_TRANSITION_SINK 状态;若收到 REJECT 或超时,可能重新协商或退出 PD 模式。
5. SNK_TRANSITION_SINK(切换供电状态)
- 角色:主机执行供电切换,从机等待确认。
- 触发条件:从机收到主机的 ACCEPT 消息后进入。
- 行为:
- 主机收到 ACCEPT 后,开始调整输出电压 / 电流(切换到协商的供电方案)。
- 从机在此状态等待主机完成供电切换,并准备接收新电压。
- 主机完成切换后,发送 PD_CTRL_PS_RDY 消息(Power Supply Ready,供电就绪)。
- 状态切换触发:收到主机的 PS_RDY 消息后,进入 SNK_READY 状态;若超时未收到,可能触发重试或报错。
6. SNK_READY(从机就绪)
- 角色:双方完成协商,进入稳定供电状态。
- 触发条件:从机收到主机的 PS_RDY 消息后进入。
- 行为:
- 从机确认主机供电稳定,开始正常工作(如设备充电、数据传输)。
- 双方可能周期性发送 PD_CTRL_PING 消息确认连接(可选,取决于协议配置)。
- 状态切换触发:若检测到断开(如 VBUS 掉电、CC 线信号丢失),回退到 SNK_UNATTACHED 状态;若需要重新协商(如从机需求变化),可能触发重新进入 DISCOVERY 流程。
总结:核心交互逻辑
- 主导方:从机(Sink)全程主动发起请求(GET_SOURCE_CAP、REQUEST),驱动状态机推进。
- 主机(Source) 仅被动响应从机的请求(返回 CAP、ACCEPT、PS_RDY),不主动触发状态切换。
- 关键消息:
GET_SOURCE_CAP(从机→主机)、SOURCE_CAP(主机→从机)、REQUEST(从机→主机)、ACCEPT(主机→从机)、PS_RDY(主机→从机),这五条消息是状态切换的直接触发信号。
相关新闻
2026/7/27 9:30:55
1-5-1-设计模式与OOP
2026/7/23 14:23:08
1-6-2-网络协议基础
2026/7/28 21:57:38
Debug日志
2026/7/30 6:51:38
内江市防水补漏_2026四川东南部成渝之心漏水维修避坑指南与五大正规团队推荐 - 雨婺虹房屋维修
2026/7/30 6:51:38
2024年GitHub C语言开源项目Top 50精选与深度学习指南
2026/7/30 6:51:45
企业可观测性平台如何选型?五大厂商全面对比
2026/7/30 6:51:38
嵌入式Linux系统root密码重置实战:从单用户模式到uboot操作
2026/7/30 6:49:45
2026高效过滤器采购避坑指南:效率等级、风量、阻力三个核心参数怎么看?
2026/7/30 6:48:56
文氏桥振荡电路仿真:从OP07运放选型到LTspice实战调试
2026/7/29 13:12:28
技术焦虑下的业务聚焦:构建可持续的技术竞争力
2026/7/28 22:03:29
仅限本周开放|GMAT AI备考效能评估工具(含ETS官方题库行为轨迹比对模块),免费生成专属「提分热力图」与瓶颈突破路线图
2026/7/29 9:00:22
AI时代SEO新标配:Schema结构化数据与llms.txt实战指南
2026/7/30 0:01:54
2026指南:武侯区今博办公设备经营部——佳能复印机租赁服务公司的专业实力与行业适配解析 - 优企名品
2026/7/30 0:01:54
2026年竞价投放运营服务商TOP5榜单与选型指南 - 品牌前沿专家
2026/7/30 0:01:54
【单片机课设毕设项目】基于 STM32 的按键可调阈值噪声预警装置实现 基于嵌入式单片机的环境噪声实时监控系统设计(010901)
2026/7/29 13:55:50
[C++]内存管理:串顺序存储的内存回收
2026/7/29 13:55:50
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建
2026/7/29 13:55:49