首页 > 其他分享 >三、USB PD物理层

三、USB PD物理层

时间:2024-12-16 17:55:38浏览次数:5  
标签:编码 USB SOP CC 物理层 Sync CRC PD 数据包

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即可

标签:编码,USB,SOP,CC,物理层,Sync,CRC,PD,数据包
From: https://www.cnblogs.com/linhaostudy/p/18610785

相关文章

  • LInux基础——vsftpd问题
    1、问题:客户端报错“响应:500OOPS:failedtoopenxferloglogfile:/var/log/vsftpd/vsftpd.conf”根因:没有创建vsftpd日志目录#创建vsftpd日志目录mkdir/var/log/vsftpd 2、问题:修改默认vsftpd登入端口根因:/etc/vsftpd/vsftpd.conf#将默认登入端口21修改未132......
  • 工业 4.0 赋能 | TapData 诚邀制造行业技术伙伴,共享行业数字化、智能化市场新机遇
    近日,TapData正式启动实时数据集成平台战略合作计划,致力于打造一个协同发展的资源共享生态,以高效的实时数据同步与集成技术为核心,通过提供行业领先的产品与完整的技术支持,帮助合作伙伴进一步提升服务能力和业务价值,共同推进方案创新,从而为各行业客户提供更高效、更智能、更实时的......
  • DeprecationWarning: Callback API version 1 is deprecated, update to latest versi
    背景说明        最近在使用MQTT进行发送消息的时候,每次运行都会弹出这个红色的警告,虽然不影响运行,但是看起来怪怪的,于是乎想顺手解决一下,自己使用的mqtt服务器是mosquitto。具体的警告提示如下:问题分析及解决        在Python中使用MQTT时,如果你收到......
  • 2024年DIIRC大模型行业应用十大典范案例集(附完整PDF下载)
    本案例集汇集当前大模型技术在各行各业中应用的杰出案例集,旨在展示大模型技术如何推动产业智能化、优化业务流程,并增强用户体验。案例集中的每一个案例都是基于实际应用,涵盖了从数字员工平台、智能写作工具、数据分析诊断系统,到知识管理平台和产业顾问等多个领域,体现了大模......
  • NLP界大牛讲Transformer自然语言处理的经典书!,466页pdf及代码
    《Transformer自然语言处理实战》本书涵盖了Transformer在NLP领域的主要应用。内容介绍:首先介绍Transformer模型和HuggingFace生态系统。然后重点介绍情感分析任务以及TrainerAPI、Transformer的架构,并讲述了在多语言中识别文本内实体的任务,以及Transformer模型生成......
  • .NET8升级.NET9,CodeFirst模式迁移Add-Migration执行Update-DataBase报错
    在做netcore开发时,如果net8一直是正常的,只升级了一下框架net9,在使用EntityFrameworkCore的CodeFirst模式进行迁移时,执行Add-Migration后尝试使用Update-DataBase时出现了如下错误。Unhandledexception.System.InvalidOperationException:Anerrorwasgeneratedforwarni......
  • 网安大佬(黑客)整理的282G自学资料,高清视频,边学边练,高清PDF开放下载,零基础自学转行,首选
    前言在考虑成为黑客的步骤或学习曲线之前,先问自己一个问题,为什么要黑客?相信我,这个问题的答案肯定会告诉你一些方法。这个问题的可能答案是:只是感兴趣测试系统作为黑客工作那么我们首先要知道无论学习什么,基础知识一定要扎实,基础功非常的重要,找到一个合适的学习方法......
  • 如何在页面打开PDF文件?
    在前端开发中,有多种方式可以在页面上打开PDF文件。以下是一些常见的方法:使用<a>标签直接下载或打开PDF如果你的PDF文件是公开可访问的,并且你希望用户能够直接下载或打开它,你可以使用一个简单的<a>标签,并将其href属性设置为PDF文件的URL。例如:<ahref="path/to/your/file.pdf"......
  • Debiasing Model Updates for Improving Personalized Federated Training为改进个性
    第一部分:解决的问题联邦学习(FL)是一种分布式机器学习方法,允许设备在不共享本地数据的情况下协同训练模型。在个性化联邦学习中,目标是为每个设备训练个性化模型,而不是一个通用的全局模型。然而,由于设备之间数据分布的异质性,传统方法会导致模型偏差。第二部分:解决的方法/idea......
  • Django 的数据库对象object的save() 方法和update()方法
    Django的save()方法默认情况下不会自动进行数据验证。如果需要在保存之前执行数据验证,需要手动调用full_clean()方法,或者通过重写save()方法显式触发验证。update()方法直接执行SQL,不会实例化模型对象,也不会触发模型方法(如save()或full_clean())。用于批量更新数据,性......