当消息头中的数据对象数量字段设置为0时,消息被定义为控制消息。控制消息仅由消息头和CRC组成。控制消息类型在消息头的消息类型字段(位4⋯0)中指定该消息是什么消息,如果消息头的数据对象数量字段设置为0时,那么就可以通过查找下面的表来说明该消息是哪一个消息。

Sent by那一栏指示可以发送给定消息的实体(source、sink或电缆插头),未列出的实体不得发出相应的消息。“Vlid Start of Packet”栏表示只能在SOP数据包中发布的消息和可能在 SOP*  数据包中发布的消息,接下来我来逐个介绍一下每个控制消息的作用以及用法。

1.GoodCRC Message

GoodCRC消息应由接收方发送以确认前一个消息已正确接收(即具有良好的CRC)。  GoodCRC消息应返回消息的MessageID ,以便发送者可以确定正确的消息正在被确认。  GoodCRC消息的第一个比特应在收到前一个消息的最后一个比特后的tTransmit(195us)内返回。

内置自检时也就是BIST时在连续BIST时不发送GoodCRC消息。

2. GotoMin Message 

GotoMin消息仅适用于通过在Sink请求数据对象中设置的GiveBack标志请求电源的那些Sink。这是source对sink发出的指令,目的时将source的工作功率短期降低到sink请求的最小功率,将空出的功率可以干一些其他事情,比如说给另一个sink供电,在source发出消息后,sink应该在15ms内将其功率降低到小于或等于最小功率,一般都是通过降低电流来降低功率。

Source发送GotoMin消息作为功率协商过程中的快捷方式,因为Source和Sink已经就要返回的功率签订了合同。本质上,Source不必宣传其 Capabilities,Sink也不必根据它们发出请求。source只是发送GotoMin代替通常在电源协商过程中发送的接受消息的消息。然后电源协商过程从此时以正常方式完成,一旦电源转换完成, source就会发送PS_RDY消息。

3. Accept Message

在以下情况下,接受消息是有效响应:

‧  它应由Source发送以向Sink发出Source愿意满足请求消息的信号。

‧  它应由PR_Swap消息的接收者发送,以表明它愿意进行权力角色交换,并且已开始权力角色交换序列。

‧  它应由DR_Swap消息的接收者发送,以表明它愿意进行数据角色交换并已开始数据角色交换序列。

‧  它应由VCONN_Swap消息的接收者发送,以表明它愿意进行VCONN交换,并且已开始VCONN交换序列。

‧  它应由FR_Swap消息的接收者发送以表明它已开始快速角色交换顺序。

‧  它应该由Soft_Reset消息的接收者发送,以表明它已经完成了它的软复位。

接受消息应在收到消息最后一位的tReceiverResponse(15ms)内发送。

4. Reject Message 

在以下情况下,拒绝消息是有效响应:

‧  它应该被发送给Sink源不能满足请求消息的信号。这可能是由于请求无效或因为来源无法再提供它之前宣传的内容。

‧  它应由PR_Swap消息的接收者发送,以表明它无法进行权力角色交换。

‧  它应由DR_Swap消息的接收者发送,以表明它无法进行数据角色交换。

‧  它应由当前不是VCONN源的VCONN_Swap消息的接收者发送,以表明它是无法进行VCONN交换。

拒绝消息应在收到消息最后一位的tReceiverResponse(15ms)内发送。

注意:当消息不受支持时,拒绝消息不是有效响应。在这种情况下,Not_Supported 返回消息。

5. Ping Message 

我理解的的是用来确定sink的存在,但是现在有硬件上来检查sink的存在,所以这个消息是可有可无的,但是source发出这个消息不应视为错误。

6. PS_RDY Message 

PS_RDY消息应由Source发送(或在Power Role Swap序列或Fast Role Swap序列期间由新Sink和新Source发送)以指示其电源已达到所需的操作条件。

7. Get_Source_Cap Message 

Get_Source_Cap(获取source能力)消息可以由端口发送以请求其端口伙伴的source cap和Dual-Role Power capability(例如双角色功率能力)。端口应通过返回Source_Capabilities消息来响应。

8. Get_Sink_Cap Message 

Get_Sink_Cap(获取sink能力)消息可以由端口发送以请求其端口伙伴的sink cap和Dual Role Power capability(例如具有双角色功率能力)。端口应通过返回 Sink_Capabilities消息来响应。

9. DR_Swap Message

DR_Swap消息的主要作用就是在端口之间交换数据角色,但是保持电源角色不变。在数据角色交换过程中,VBUS源和VCONN源以及CC线上的Rp/Rd电阻应保持不变。DR_Swap消息可以由任一端口伙伴发送。DR_Swap消息的接收者应通过发送接受消息、拒绝消息或等待消息来响应。在数据角色交换之前,初始DFP应将其端口数据角色位设置为DFP,并且初始UFP应将其端口数据角色位设置为UFP。数据角色交换成功后,DFP/主机应成为UFP/设备,反之亦然;新的DFP应将其端口数据角色位设置为DFP,并且新的UFP应将其端口数据角色位设置为UFP。

10. PR_Swap Message

PR_Swap消息可由任一端口伙伴发送以请求交换电源角色。消息的接收者应通过发送接受消息、拒绝消息或等待消息来响应。电源角色交换成功后,端口合作伙伴应重置其各自的协议层(相当于软重置):重置其MessageIDCounter(消息id计数器)、RetryCounter(重试计时器)和协议层状态机。此时,Source还应重置其CapsCounter(能力计时器) 。

如[USB Type-C 2.0]中所定义,Source应在CC线上声明Rp,Sink应在CC线上声明Rd。当执行从Source到Sink的电源角色交换时,端口应将其CC Wire电阻器从Rp更改为Rd。当执行从Sink到Source的电源角色交换时,端口应更改其CC Wire从Rd到Rp的电阻。在电源角色交换过程中,DFP(主机)、UFP(设备)角色和VCONN源应保持不变。

注意:在电源角色交换过程中,即使VBUS降至vSafe5V  以下,初始接收器也不会断开连接。

11. VCONN_Swap Message 

VCONN_Swap消息应由任何可作为VCONN源操作的端口支持。他的主要目的就是在接Emaker线是由谁来给芯片供电,注意先通后断。VCONN_Swap消息可以由任一端口伙伴发送以请求交换VCONN源。消息的接收者应通过发送接受消息、拒绝消息、等待消息或Not_Supported来响应消息。

12. Wait Message 

等待消息是对Request、PR_Swap 、DR_Swap或VCONN_Swap消息的有效响应,表明此时无法执行sink或者source的请求。

等待消息应在收到消息最后一位的15ms内发送

当具有保留功率的sink请求它时,Source使用等待消息。等待消息允许Source有时间通过GotoMin进程恢复满足请求所需的功率。允许Sink使用SinkRequestTimer(sink请求计时器)重复请求消息,并应确保在收到等待消息后有100ms后再发送另一个请求消息。

在响应PR_Swap、DR_Swap、VCONN_Swap消息时使用等待消息,以指示将来可能进行电源角色交换、数据角色交换、vconn源交换。这可能发生在接收到消息的设备需要进一步评估请求的任何情况下,一旦完成此评估,端口之一应通过发送PR_Swap、DR_Swap、VCONN_Swap消息再次启动电源角色交换、数据角色交换、vconn源交换过程信息。

接收等待消息以响应PR_Swap、DR_Swap、VCONN_Swap消息的端口应在收到等待消息后等100ms后再发送另一个PR_Swap、DR_Swap、VCONN_Swap消息。

13. Soft Reset Message(软复位消息)

Soft_Reset消息可以由Source或Sink向其端口伙伴发起请求软复位。Soft_Reset消息将导致连接的端口对其软复位。如果Soft_Reset消息硬重置失败应在nRetryCount(重试计时器)后到期的最后一个CRCReceiveTimer(CRC接受计时器)的5ms内启动重试已完成。

Soft_Reset消息用于从协议层错误中恢复;将消息计数器置于已知状态以重新获得消息同步。Soft_Reset 消息对Source或Sink没有影响;这是先前商定的方向。电压和电流保持不变。模态操作不受软复位的影响。然而,在软复位完成后,将重新建立PD通信并将两个端口伙伴的状态操作恢复到适当的PE_SNK_Ready或PE_SRC_Ready状态。

当有消息同步错误时,可以由Source或Sink发送Soft_Reset消息。如果软复位没有纠正错误,则应发出硬复位信号。

根据所使用的SOP*数据包类型,Soft_Reset消息应针对特定实体。Soft_Reset使用 SOP数据包发送的消息应仅软重置端口伙伴。使用SOP’/SOP’’数据包发送的Soft_Reset消息应仅软复位相应的电缆插头。

在VCONN交换之后,VCONN源需要重置电缆插头的协议层以确保MessageID同步。如果在VCONN交换之后,VCONN源想要使用SOP’数据包发送Soft_Reset消息,以重置电缆插头的协议层。如果VCONN源想要使用SOP’’数据包与电缆插头通信,他应使用SOP’’数据包发送Soft_Reset消息,以重置电缆插头的协议层。

14. Data_Reset Message 

Data_Reset消息可以由DFP或UFP发送,并应重置USB数据连接并与其端口伙伴退出所有备用模式,同时保持VBUS上的电源。Data_Reset消息不应更改现有的角色状态以及电源状态。

Data_Reset消息的接收者应通过发送接受消息来响应,然后按照以下步骤中概述的过程进行操作。在数据重置过程完成之前,发送方和接收方都不会发起VCONN交换。在收到接受消息之后,或接受之后的GoodCRC,取决于哪个端口发送Data_Reset消息:

1.  DFP应:

‧ 断开端口的[USB 2.0] D+/D信号。

‧ 如果在[USB 3.2]中操作,请移除端口的Rx终端。

‧ 如果在[USB 4]中运行,将端口的SBTX驱动为逻辑低电平。

2.  DFP和UFP都应退出所有备用模式(如果有)。

3.重置电缆:

‧如果VCONN源端口也是UFP,在确认接受消息以响应Data_Reset消息的GoodCRC的最后一位之后UFP应关闭VCONN,并确保其低于125ms内的vRaReconnect(usb 2.0文档内规定的电压,这个我没有看那个文档,哪位大佬可以告知一下)。当VCONN低于vRaReconnect时,UFP发PS_RDY消息。 注意UFP是否没有来源  VCONN,它仍然发送PS_RDY消息。DFP将在确认PS_RDY消息的GoodCRC的最后一位之后等待10-20ms内在采购VCONN之前。 DFP应确保VCONN在vVconn Valid(这个值也不知道。。。)范围内 。

‧ 如果VCONN源端口也是DFP,如果DFP发送了Data_Reset消息,并且正在源VCONN,那么它应该关闭VCONN,并确保它是在vRaReconnec下面的125ms中的GoodCRC的最后一位确认接收消息作为Data_Reset消息的响应。 如果UFP发送了Data_Reset消息,那么DFP应该关闭VCONN,并确保它在以下 vRaReconnect在125ms中,在GoodCRC的最后一位之后确认接收消息作为Data _Reset消息的响应。当VCONN低于vRaReconnect时,DFP应等待tvconn重新应用,然后再提供VCONN源。DFP应确保VCONN在tVconnValid范围内。

‧ DFP应作为VCONN源退出VCONN电源循环过程并提供VCONN。

4. DataReset后DFP应:

‧ 重新连接[USB 2.0] D+/D-信号 。

‧ 如果端口在[USB 3.2]或[USB4]中运行,请重新应用端口的Rx终端。

5.数据重置过程完成:

‧ DFP应发送Data_Reset_Complete(数据重置完成)消息并进入USB4发现和进入流程。

‧ 如果Data_Reset消息的发起者在24-30S内没有收到Accept消息,它将进入ErrorRecovery(错误恢复)状态。

15. Data_Reset_Complete Message(数据重置完成消息)

Data_Reset_Complete消息应由DFP发送到UFP,以指示数据重置过程的完成。

16. Not_Supported Message 

Not_Supported消息应由端口或电缆插头发送,以响应它不支持的任何消息。

17. Get_Source_Cap_Extended Message

Get_Source_Cap_Extended消息由端口发送以请求有关端口的source能力的附加信息。端口应通过返回Source_Capabilities_Extended消息来响应。

18. Get_Status Message 

Get_Status消息由端口使用SOP发送以请求端口合作伙伴的当前状态。

Source或Sink应通过返回状态消息来响应。接收警报的端口消息指示source或sink的状态已更改,应使用Get_Status消息重新读取。

Get_Status消息也可以发送到活动电缆以使用SOP’/SOP’’获取其当前的状态活动电缆应通过返回状态消息进行响应。

19. FR_Swap Message (快速角色交换消息)

初始sink检测到FR_Swap信号后,电源会降到安全电压5V来响应FR_Swap,从而为FR_Swap做准备,满足一下条件后,初始sink应仅响应FR_Swap:

1.已建立明确的协议,并且初始source的Sink Capabilities已被接收到,初始sink已经请求

2.初始source发出的source cap中有一个FR_Swap位设置为source固定的5vPDO

3.初始sink愿意在FR_Swap中提供初始source在sink cap中的电流在检测FR_Swap消息时应丢弃任何未决消息。

当初始sink准备好进行FR_Swap时,CC 电压min在30-50us上平均保持在0.7v左右,因为source Rp为1.5V或5V,但是 VBUS的峰间噪音300mv可能导致cc电压短时间达到0.7v- vNoiseIdle/2,当初始sink准备好进行FR_Swap并且初始source发出FR_Swap信号时,传输将被衰减,使得峰值cc电压不能超过490mv。因此,当初始sink进行FR_Swap时,当cc电压(在tFRSwapRx  min 490mv内平均)高于0.7v,他不应检测到FR_Swap信号,当初始sink准备好FR_Swap时,他应检测到低于30-50us的490mv的CC 电压作为快速角色交换请求。注意:初始Sink不需要平均CC电压来满足这些要求。

初始sink应在检测快速角色交换请求的15ms内启动FR_Swap 的AMS(原子消息序列) ,以便将Rp/Rd电阻器分配给正确的端口并重新同步状态机。

最初的Sink应成为新的Source并应开始以USB Type-C电流提供vSafe5V不迟于VBUS降至vSafe5V以下后的150us。初始接收器应禁用其VBUS在快速角色交换检测处于活动状态时断开阈值检测电路。

注意:当电源将VCONN源转换到电缆插头时,不能保证。

FR_Swap消息应在15ms内由新source在检测到快速角色交换信号后发送。快速角色交换AMS(原子消息序列)对于将Rp应用于新的Source并将Rd  应用于新的Sink并重新同步状态机是必要的。15ms时间应从发送 50us的FRS信号到物理层发送FR_Swap消息的EOP的最后一位的时间开始测量。

FR_Swap的sink应发送accept消息来响应。

成功FR_Swap后,端口合作伙伴应重置其各自的协议层(相当于软重置):在尝试建立显式合同之前重置其MessageIDCounter(消息id计时器)、 RetryCounter(重试计时器)和协议层状态机。此时,Source还应重置其CapsCounter(能力计时器) 。

这确保只有电缆插头以GoodCRC消息响应Discover Identity(发现身份)命令。

在快速角色交换AMS(原子消息序列)之前,新的Source应在CC线上声明Rd,新的Sink应在CC线上声明Rp。请注意,这是Rp/Rd的错误分配(因为Rp跟随在[USB TypeC 2.0] 中定义的source和Rd跟随接收器),该分配已被快速角色交换AMS(原子消息序列)纠正。

在快速角色交换AMS(原子消息序列)期间,新的Source应将其CC Wire电阻器从Rd更改为Rp,新的  Sink应将其CC Wire电阻器从Rp更改为Rd。在快速角色交换过程中,DFP(主机)、UFP(设备)角色和VCONN源应保持不变。

当不主动与电缆通信时,初始源应避免成为VCONN源(通过使用VCONN交换过程),因为在快速角色交换过程中初始源难以保持VCONN电源。

注意:对于PD USB设备失去外部电源的情况,FR_Swap是一种“尽力而为”的解决方案。此过程可随时发生,即使在不可中断AMS(原子消息序列)期间,也会触发硬重置或错误恢复等错误处理。

注意:在快速角色交换过程中,即使VBUS降至vSafe5V  以下,初始接收器也不会断开连接。

20. Get_PPS_Status

Get_PPS_Status消息由Sink发送以请求有关Source状态的附加信息。端口应通过返回PPS_Status消息进行响应。

21. Get_Country_Codes 

Get_Country_Codes消息由端口发送,以请求其端口合作伙伴支持的 alpha-2国家代码,如[ ISO 3166] 中定义。端口合作伙伴应通过返回 Country_Codes消息进行响应。

22. Get_Sink_Cap_Extended Message 

Get_Sink_Cap_Extended ( Get Sink Capabilities Extended)消息由端口发送以请求有关端口的接收器能力的附加信息。端口应通 过返回Sink_Capabilities_Extended来响应消息。

本文中出现的消息有点多我也没使用过所有的消息,我尽量通过翻译文档加上一点自己的理解,前面的消息还可以用自己的话解释一下,后面的消息实在只能翻译文档了,抱歉,如果有错误,欢迎大家指正,谢谢。

PD3.0协议层 第四章控制消息相关推荐

  1. MW7299/PD+HUB2.0集成芯片上行支持PD3.0协议下行HUB支持BC1.2协议QFN32封装

    MW7299/PD+HUB2.0集成芯片上行支持PD3.0协议下行HUB支持BC1.2协议QFN32封装 特点:采用单 5V 电源供电,内置 5V转 3.3V LDO. ●内嵌一个类 RISC 处理器 ...

  2. android推送如何推送不在线设备,推送系统从0到1(四):消息如何到达用户设备...

    本篇主要为大家揭秘推送消息是如何传输的,如何到达用户设备上的,在不同的设备上会如何展示. 在上一篇文章中,我们可以知道在建立推送任务的过程中,需要考虑带有自滤功能的用户池构建.筛选有效用户.设置推送内 ...

  3. 禁止服务器的协议,电脑怎么阻止Internet控制消息协议ICMP?

    电脑完全阻止ICMP绝不是一个好主意,因为它是一个非常有用的协议.ping请求(回显)和超时数据包(由traceroute请求返回)等故障排除工具最好不要单独使用,否则解决简单的网络问题将是未来的噩梦 ...

  4. WCF4.0进阶系列--第四章 保护企业内部的WCF服务(转)

    http://www.cnblogs.com/yang_sy/archive/2011/05/24/2054834.html [摘要] 安全是任何系统至关重要的一个方面,尤其当该系统由分布式的程序和服 ...

  5. 禾川兴科技PD协议芯片LDR6282 DRP PD3.0协议芯片

    LDR 6282是一种双端口usb型C控制器,具有显示PortTM交替模式,特别是 设计用于USB PD对接站的视频输出.LDR 6282能够作为双重角色工作. 设备(提供者或消费者).LDR 628 ...

  6. Thinking in JAVA笔记——第三章 操作符 第四章控制执行流程

    3.1更简短的打印语句 import static一个包 3.2Java操作符:与c++类似 3.3优先级 java有优先级,如果忘记优先级规则,应该加括号已明确. 3.4赋值 基本类型的赋值就是赋值 ...

  7. Thinking In Java 第四章 控制执行流程

    2019独角兽企业重金招聘Python工程师标准>>> Java并不支持goto语句,但是依旧可以有限制的完成类似的跳转. true 和 false Java不允许我们将一个数字作为 ...

  8. 【译】WebSocket协议第四章——连接握手(Opening Handshake)

    概述 本文为WebSocket协议的第四章,本文翻译的主要内容为WebSocket建立连接开始握手的内容,主要包含了客户端和服务端握手的内容,以及双方如何处理相关字段和逻辑. 4 开始握手(协议正文) ...

  9. 硕盟type-c转接头HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...

最新文章

  1. 学术分享丨面向机器人的学习算法简述
  2. 为什么上学,会让你变呆
  3. python结构嵌套_python2.3嵌套if结构:
  4. 【OpenPose-Windows】OpenPose+VS2015+Windows+CUDA8+cuDNN5.1 官方配置教程
  5. arcgis在线地图插件安装
  6. 合并数据 - 合并多个Excel文件并转成CSV - Python代码
  7. docker启动elasticsearch——ERROR: Elasticsearch did not exit normally - check the logs at xxx
  8. ansys icem cfd网格划分技术实例详解_详解航空燃油滑油3D打印热交换器设计流程...
  9. POJ1703-Find them, Catch them
  10. Attention注意力机制总结
  11. 如何在 Mac 上合并 PDF?
  12. 苹果电脑装系统只有W ndows,苹果MAC电脑双系统教程——MAC安装Windows双系统教程...
  13. Python 文字排版工具
  14. D盘需要管理员权限解决办法
  15. 收缩毛孔全过程,很详细! - 健康程序员,至尚生活!
  16. 新浪开放平台开发1--认证
  17. linux系统怎么禁用键盘,Linux下禁用笔记本自带键盘和touchpad
  18. Windows句柄数限制
  19. GridView合并表头单元格
  20. docker部署apache服务(使用存储卷)

热门文章

  1. 二、八、十、十六 进制转换(B、O\Q、D、H)
  2. 站长常用的SEO查询工具有哪些?
  3. html字幕字体大小,视频加字幕大小不一样 一般视频字幕字体大小 字幕保存时设置ASS格式 utf-8编码...
  4. 经典软件工程著作《人月神话》经典语录摘抄和笔记
  5. 马年宝宝取名的几点技巧
  6. C++实现的复数运算符重载
  7. ubutnu系统维护
  8. 三大运营商的频段-信号
  9. 2021最新分享苹果cms10资讯采集接口,无广告超清通用解析接口
  10. python 批量给图片加水印