三、USB PD物理层

news/2025/3/10 18:30:23/文章来源:https://www.cnblogs.com/linhaostudy/p/18610785

1、定义

物理层(PHY层)定义了USB电源传输的信令技术。本章定义了USB PD设备之间的互操作性所需的PD物理层的电气要求和参数

2、物理层的功能

USB PD物理层由一对发射机和接收器组成,它们通过单个信号线(CC)进行通信。所有的通信都是半双工的。PHY层实现了避免冲突,以最小化信道上的通信错误。

发射机执行以下功能:从协议层接收分组数据。

  - 计算并附加一个CRC。- 使用4B5B编码包括CRC(即有效载荷)在内的数据包数据。- 通过CC上的双相标记编码(BMC)传输信包(序言、SOP*、有效载荷、CRC和EOP)。

接收器执行以下功能:

  - 恢复时钟并从序言中锁定到数据包上。- 检测SOP*。- 解码接收到的数据,包括CRC。- 检测EOP并验证CRC: - 如果CRC有效,则将数据包数据传递到协议层。- 如果CRC无效,请刷新接收到的数据。

3、4B5B编码

应使用4b5b行代码。这将4位数据编码为5位符号以用于传输,并将5位符号解码为4位数据以供接收机消耗。

Example:我要发送的数据为0b1111(二进制),经过4B5B转换,我要发送的数据为0b11101

4、有序集(k-code)

有序集列表:

_Cable Reset _ RST-1 Sync-1 RST-1 Sync-3
Hard Reset RST-1 RST-1 RST-1 RST-2
SOP Sync-1 Sync-1 Sync-1 Sync-2
_SOP’ _ Sync-1 Sync-1 Sync-3 Sync-3
_SOP’_Debug _ Sync-1 RST-2 RST-2 Sync-3
SOP’’ Sync-1 Sync-3 Sync-1 Sync-3
_SOP’'Debug Sync-1 RST-2 Sync-3 Sync-2

接收方应搜索所有四个k码。当接收方发现所有四个k码都在正确的位置时,它应将其解释为一个有效的有序集。当接收方发现四个k码中的三个在正确的位置时,它可以将其解释为一个有效的有序集。接收方应确保所有四个k码都有效,以避免检测中的歧义

5、传输位顺序

本节描述了在传输不同大小的数据时应使用的导线上比特的顺序

6、包格式

数据包格式应包括前导码SOP数据包数据,包括消息头CRC和EOP。一旦对4b/5b进行编码,整个数据包应通过CC使用BMC进行传输注意,包中的所有位,包括序言,都是BMC编码的。*

黄色部分:由物理层提供不进行4B5B编码
绿色部分:由物理层提供进行4B5B编码
蓝色部分:由协议层提供进行4B5B编码
传输从一个前置码开始,用于允许接收器锁定到载体上。它后面是一个SOP*(数据包的开始)。数据包以EOP(数据包结束)K码终止。

(1)、前导码

前导码是用来通过呈现“0s”和“1s”的交替序列来实现在接收机中的锁定,所以平均频率是载波频率。与数据包的其他部分不同,前导码不应采用4b/5b编码。前导码应由0和1交替的64位序列组成。序言应以“0”开头,并以“1”结尾。

(2)、SOP*

1)、SOP (start of packet)

具有供电能力的SourceSink应能够使用SOP检测并与数据包进行通信。如果未检测到有效的SOP,则应丢弃整个传输。

2)、SOP’

VPD应具有 SOP’ 的通信能力。具有 SOP’ 通信能力的VPD和电缆插头只能检测并与从 SOP’ 开始的数据包通信。

3)、SOP’’

VPD不具备SOP’‘的通信能力。具有SOP’‘通信能力的电缆插头,其其他电缆插头应具有SOP’‘通信能力。任何电缆都只能支持SOP’‘的通信。分配了SOP’'通信的电缆插头只能检测并与以SOP开始的数据包进行通信,并应丢弃任何其他数据包。

(3)、有效载荷(数据)

数据包有效载荷从协议层交付,并应使用“4b5b符号编码表”中的十六进制数据编码进行编码。

(4)、CRC

CRC应放在有效载荷之后立即插入

(5)、EOP

数据包标记的末端应为单一的EOP K码,这将标志着CRC的结束。EOP检查完成后,应检查crc残留物。如果CRC不好,则丢弃整个传输,如果传输很好,则将数据包发送至协议层。注意,EOP可用于提前终止数据包,例如,在发送硬重置信令之前

7、CRC

消息头和数据应由32位CRC保护。

  • CRC-32可保护数据有效负载的数据完整性。CRC-32的定义如下:
  • CRC-32多项式应为= 04C11DB7h
  • CRC-32的初始值应为= FFFFFFFFh
  • CRC-32应计算不包括任何数据包框架符号的所有字节(即,不包括序言、SOP*、EOP)。
  • CRC-32的计算应从字节0、第0位开始,并继续计算到数据包的每个字节的第7位。
  • CRC-32的其余部分应予以补充。
  • CRC-32的残余量应为C704DD7Bh

注意:CRC的实现与[USB 3.2]中使用的实现相同。

8、硬复位

硬重位信令是一组旨在被PHY层识别的有序字节。硬重置信令排序集定义为:三个RST-1K码和一个RST-2K码

9、线缆复位

电缆复位信号只能由DFP发送。电缆重置命令集用于重置电缆插头,而不需要硬重置端口合作伙伴。电缆复位信号发出后的电缆插头状态应相当于电缆插头的电源循环。

10、双相标记编码(BMC)信令方案

双相标记编码(BMC)是一种用于传输USB电源传输消息的物理层信令方案。此编码假定有一个专用的直流连接,标识为CC线,用于发送PD消息。双相位标记编码是曼彻斯特编码的一个版本(参见[IEC 60958-1])。在BMC中,在每个比特时间(UI)的开始时都有一个转换,当传输一个1时,在UI的中间有一个第二个转换。BMC是有效的直流平衡,(每个1是直流平衡,两个连续的0是DC平衡,不管中间1的数量是多少)。它有有限的视差(限制在1位,所以一个非常低的直流水平)。图5-7“BMC示例”说明了双相位标记编码。此示例显示了在消息开始时的SOP排序集的从前导到Sync-1K码的转换。注意,其他k码可以发生在信号的序言之后,如硬复位和电缆复位。

BMC发送机框图

BMC接收机框图

在发送前导码时,发射机应从发送低电平开始。接收器应容忍第一边缘的损失。发射机可以通过tStartDrive min来改变前导码的开始(参见图5-10“BMC编码的序言开始”)。

发射机应通过边缘(“尾缘”)终止帧的最后位,以确保接收机锁定最后位。如果后缘导致发射机驱动CC低(即帧的最后半UI高),则发射机:

  • 应继续降低tHoldLowBMC的CC水平。
  • 然后,应继续降低从框架最后一点的后缘测量出的tEndDriveBMC的CC值。
  • 然后应将CC释放到高阻抗。

什么意思呢?就是当一帧数据结束时,不管结尾数据是0或是1,只要它的后半个比特时间为高,那它接下来就应该持续拉低CC线tHoldLowBMC的时间,之后在把CC线拉高,也就是一帧数据结尾要补一段低电平时间。

如果后缘导致发射机驱动CC高(即帧的最后半UI低),则发射机:

  • 应继续驱动CC高为1 UI。
  • 然后降低tHoldLowBMC。
  • 然后继续降低从帧最后位的最终边缘测量的tEndDriveBMC的CC。
  • 然后应将CC释放到高阻抗。

什么意思呢?就是当一帧数据结束时,不管结尾数据是0或是1,只要它的后半个比特时间为低,那它接下来就应该拉高一个比特时间的高电平,然后持续拉低CC线tHoldLowBMC的时间,之后在把CC线拉高,也就是一帧数据结尾要补一个比特时间的高电平和一段低电平时间。

在USB PD规范中,这段拉低时间范围为1-23us即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853870.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FineReport模板性能问题排查方法

1. 概述 模板的加载速度受到很多因素影响,如果一个模板预览的时候,加载较慢,该如何去分析问题原因呢? 2. 排查步骤 2.1 查看数据集查询速度 大部分模板加载慢,都是因为 sql 执行速度比较慢。那么如何验证 sql 速度快慢呢?可以使用以下几种方案。 1)在设计器的数据集中直…

模板性能问题排查方法

1. 概述 模板的加载速度受到很多因素影响,如果一个模板预览的时候,加载较慢,该如何去分析问题原因呢? 2. 排查步骤 2.1 查看数据集查询速度 大部分模板加载慢,都是因为 sql 执行速度比较慢。那么如何验证 sql 速度快慢呢?可以使用以下几种方案。 1)在设计器的数据集中直…

【bug】重复请求的幂等问题

问题背景 某验收系统,客户发起验收流程时,由于前端没有做防重点击的限制,导致申请按钮连续点击了多次,重复发起了多条流程 历史逻辑 后端为了保证接口幂等,在发起验收流程的代码中加了几层逻辑如下:判断验收记录状态是否为待发起, 如果不是,则立刻返回失败 发起流程的入…

Deformable DETR

PDF:https://arxiv.org/pdf/2010.04159 Code:https://github.com/fundamentalvision/Deformable-DETR 一、大体内容 前面介绍DETR时,说明了其还存在对小物体检测效果不佳和训练慢的问题,Deformable DETR引入了DCN(Deformable Convolutional Networks)并将其和DETR相结合,借…

【蓝队】HW中盛行的Java内存马,如何全面检测?

一、背景 1.1 Java内存马是什么? 内存马是一种仅在内存中运行、没有文件落地的恶意程序,因此具有较强的隐蔽性,能够避开常规的基于文件系统的检测。Java内存马是针对Java语言的内存马,它利用Java语言的动态特性,如类加载机制、动态代理和反射技术等,在Java应用的内存中注…

Express的使用笔记9 使用bcrypt算法给用户密码加密

先了解一下bcrypt算法,一种基于Blowfish密码学算法的密码散列函数,用于在密码存储时抵抗暴力破解攻击,通过在散列过程中加salt来提高安全性,salt是个随机生成的数据串,与密码一起被散列,使得即使两个相同的密码也会产生不同的散列值。bcrypt算法允许开发者指定工作因子(…

4.mysql中的存储过程

创建存储过程和函数 CREATE[DEFINER = {USER | CURRENT_USER}] # 定义者是谁PROCEDURE sp_name ([proc_parameter[,...]])[characteristic ...] routine_bodyCREATE [DEFINER = {USER | CURRENT_USER}]FUNCTION sp_name ([function_name[,...]])[characteristic ...] routine_…

印象笔记使用

vscode安装插件登录印象笔记,开通token点击插件页面的设置填写url和tokenctrl + shift + pever new - 新建笔记 ever open - 打开笔记 ever search - 搜索笔记 ever publish - 发布笔记 ever sync - 同步笔记新建笔记下载安装windows客户端,功能比网页端更全面客户端才能导出…

(BIBM-2024) 用于药物相互作用预测的可解释多视图注意网络

用于药物相互作用预测的可解释多视图注意网络 论文标题: Interpretable multi-view attention network for drug-drug interaction prediction 论文地址: https://ieeexplore.ieee.org/document/10385757 论文期刊: BIBM 2024 摘要 药物间相互作用(DDI)在药物发现中发挥着越来…

Volatility取证工具安装教程

linux安装vol2.6 1.准备工作 准备一台虚拟机,拥有python2版本(虚拟机以kali为例) 准备Volatility2.6安装包 volatilityfoundation/volatility: An advanced memory forensics framework 准备反编译库安装包 vext01/distorm3: distorm3 2.安装步骤详解(全程在root用户下操作…

[React]AntDesign 4.x 汉化

antd汉化,适用于4.x转载自:https://blog.csdn.net/weixin_43013802/article/details/132870349全局汉化,在main.ts中引入下面代码:import{ ConfigProvider }fromantd import locale from antd/locale/zh_CN; import dayjs/locale/zh-cn;ReactDOM.createRoot(document.getEl…

线性回归(linear regression)

其实线性回归不过就是在做两件事,画一条线并判断这条线到各个点的距离。 如下图:其中这条线便是距离各个点距离总和最小的直线。也就是e+u+w+b+a总和在直线为这个情况下最小。但是什么时候这条线是我们需要的线呢?-- 线到各个点最短的时候便是。 我们先理解一下什么是凹函数…