Type-C PD充电简介

一、Type-C简介

自1998年以来,USB发布至今,USB已经走过20个年头有余了。在这20年间,USB-IF组织发布N种接口状态,包括A口、B口、MINI-A、MINI-B、Micro-A、Micro-B等等接口形态,由于各家产品不同,不同产品使用不同类型的插座,因此我们也要常备各种不明用途的接口转接线材。

USB协议发布时间节点

对于Type-C,USB标准化组织意识到统一和标准化问题,在定义标准时,做了如下规定:

1、接口形态

支持正反插,同时也规范了对应的线材,接口定义如下:

其中,具备全功能的Type-C应该具备E-Marker功能,由于具备E-Marker,线缆能够被读到其带电流的能力、特性、线材ID等等。E-Marker的供电电源来自于VCONN,线缆会通过下拉的电阻Ra,Source检测到之后会提供VCONN。

2、传输速率

最大传输速度10Gb/s,即是USB 3.1 Gen2标准,也支持4 Lane DP模式,传输高清图像,在供电部分,最大可以支持100W(20V/5A)

3、协商机制

为了能够区分两端USB设备的角色(Host/Device),必须有一套协商机制,便于进行角色确认,这部分通过CC(Configuration Channel)管脚进行设置。后面随着PD规范的面世,CC脚开始被用来做简单的半双工通信,用来完成POWER供给的协商。

二、Type-C Port的Data Role、Power Role

1、Type-C 的 Data Role

(1)DFP(DownstreamFacing Port):

下行端口,可以理解为Host或者是HUB,DFP提供VBUS、VCONN,可以接收数据。在协议规范中DFP特指数据的下行传输,笼统意义上指的是数据下行和对外提供电源的设备。

(2)UFP(Upstream Facing Port):

上行端口,可以理解为Device,UFP从VBUS中取电,并可提供数据。典型设备是U盘,移动硬盘。

(3)DRP(Dual Role Port):

双角色端口,DRP既可以做DFP(Host),也可以做UFP(Device),也可以在DFP与UFP间动态切换。典型的DRP设备是笔记本电脑。设备刚连接时作为哪一种角色,由端口的Power Role决定;后续也可以通过switch过程更改(需支持USB PD协议)。

2、Type-C 的 Power Role

根据USB PORT的供电(或者受电)情况,USB Type-C将port划分为Source、Sink等power角色

如下图显示常用设备的Data Role和Power Role

Power Role 详细可以分为:

a)Source Only 

b)默认Source,但是能够通过PD SWAP切换为SINK模式

c)Sink Only

d)默认SINK,但是能够通过PD SWAP切换为Source模式

e)Source/SINK 轮换

f)Sourcing Device(能供电的Device,如显示器)

g)Sinking Host(吃电的Host,如笔记本电脑)

USBType-C的插座中有两个CC脚,角色检测就是通过CC脚进行的,但是对于插头、或者线缆正常只有一个CC引脚,两个端口连接在一起之后,只存在一个CC引脚连接,通过检测哪一个CC有连接,就可以判断连接的方向。如果USB线缆中有需供电的器件,其中一个CC引脚将作为VCONN供电。

CC引脚有如下作用:

a)检测USB Type-C端口的插入,如Source接入到Sink

b)用于判断插入方向

c)在两个连接的Port之间,建立对应的Data Role

d)配置VBUS,通过下拉电阻判断规格,在PD协商中使用,为半双工模式

e)配置VCONN

f)检测还有配置其他可选的配置模式,如耳机或者其他模式

3、连接方向、Data Role、PowerRole角色检测

SourceSink Connection

Source端CC引脚为上拉,Sink端CC引脚为下拉。握手过程为接入后检测到有效连接(即一端为Host一端为Device),随后检测线材供电能力,再进行USB枚举。

a)SINK的两个CC引脚均通道Rd下拉到GND

b)SINK通过检测VBUS,来判断Source的连接与否

c)SINK通过CC引脚上拉的特性,来检测目前的USB通信链路(翻转)

d)SINK可选地去检测Rp的值,去判断Source可提供的电流。同时管理自身的功耗,保证不超过Source提供的最大范围

e)同样的,如果支持高级功能,通过CC引脚进行通信。

三、PD充电通信过程

PD协议是Power Delivery,简单来说是一种快速充电标准。

包含PD协议的Type-C 系统从Source到SINK的系统框图大致如下:

在Source的内部包含了一个电压转换器,且受到PD控制器控制,他会根据输入电压的条件以及最高可输出规格需求,此电压转换器可以是BUCK、Boost、Buck-Boost或者反激转换器。整个通信过程都在PD控制器的管控之下,USB PD还有一个开关,用于切换VCONN电源(电缆包含电子标签时用到)。

当电缆接通之后,PD协议的SOP通信就开始在CC线上进行,以此来选择电源传输的规格,此部分由Sink端向Source端询问能够提供的电源配置参数(5V/9V/12V/15V/20V)。

如下波形为SINK 控制器申请一个9V电压输出的例子。

1、充电器在连接建立后,会通过CC线进行广播,告诉连接的另外一方,充电器能够提供多少种电压以及对应的电流;

2、手机侧USB PD 设备策略管理器(policy_engine.c)监控CC上是否耦合了BMC信号,并且解码消息得出是SourceCapabilities消息,就根据USB PD规范解析该消息得出USB PD充电器所支持的所有电压和电流列表对;

3、手机根据充电的配置从SourceCapabilitie消息中选择一个电压和电流对,向适配器发送请求数据包,将电压和电流对加在Request消息的payload上,然后PD phy将BMC 信号耦合到CC上;

4、充电器解码BMC信号并发出Accept消息给手机,同时调整Power Supply的直流电  压和电流输出;

5、手机收到Accept消息,调整Charger IC的充电电压和电流;

6、手机在充电过程中可以动态发送Request消息来请求充电器改变输出电压和电流,从而实现快速充电的过程。

#推荐阅读:

    专辑|Linux文章汇总

    专辑|程序人生

    专辑|C语言

嵌入式Linux

微信扫描二维码,关注我的公众号 

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

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

相关文章

Linux字符设备驱动内幕

哈喽,我是老吴,继续记录我的学习心得。一、保持专注的几个技巧将最重要的事放在早上做。待在无干扰环境下,比如图书馆。意识到刚坐下开始投入工作前,有点负面小情绪是特别正常的现象。让“开心一刻”成为计划的一部分。拥有合情合…

旧地重游

光阴飞逝1991年跟随父母搬迁至长沙,至今已有16年。2007年春节舅妈大寿借此机会回到儿时旧地以了多年来的心愿。经过1个小时左右颠簸终于快回到儿时生长的地方,那里的路面年久失修,经过昨天的大雨,已经坑坑洼洼路面到处积水&#x…

我要不要离职?

1#读者提问来到四线城市的小公司,其他员工都是公司主动找到他们转正的,有的一个月有的三个月,而我半年过去了,以为时间到了也跟他们一样自动帮我转正。然而没有,昨天忍不住问了公司,今天就拿转正表来给我填…

搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

守护进程概念:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp&#xf…

关于编译C#文件

使用csc.exe编译非控制台应用程序,常使用/target选项此选项可简写为/t,用来指定要创建的文件类型. 如编译一个类库文件(dll)Class1.cs: namespaceTest...{ /**//// <summary> /// Class1 的摘要说明。 /// </summary> public class Class1 ...{ …

【速来抢】iPhone12、STM32开发板、1024元现金红包…打包免费送!!!

没错&#xff01;华清远见在做1024狂欢节活动今年他们“玩”的有点大参与活动&#xff0c;抽取幸运锦鲤下面21件惊喜大礼&#xff0c;打包全部带回家????参与方式&#xff1a;扫码下方二维码&#xff0c;进活动群获取抽奖链接&#xff0c;参与抽奖????福利2除了万元锦鲤…

1024,第 15 届「中国内核开发者大会」 参会指南(议程全剧透)

各位好&#xff0c;第 15 届「中国内核开发者大会」即将开幕&#xff0c;这些参会指南请提前收藏好&#xff1a;2020「中国内核开发者大会」&#xff08;以下简称 CLK&#xff09;将在 2020 年 10 月 24 日举办&#xff0c;线上线下同步进行&#xff0c;线上由 CSDN 进行全网直…

1024对话内核大神谢宝友

我看了CSDN的采访&#xff0c;感觉比较官方&#xff0c;不知道是不是编辑的原因把一些内容给隐藏了&#xff0c;所以我还是想完整的内容放出来给大家看看&#xff0c;这些问题&#xff0c;可能是很多后辈程序员非常关心的。今天是1024节&#xff0c;这个数字对于写在电脑前写代…

javascript 里Array的一些方法

1. join()方法&#xff1a;join()方法的用途是连接字符串值&#xff0c;join()方法只有一个参数&#xff0c;即数组项之间使用的字符串如&#xff1a;varaColors ["red","green","blue"];alert(aCloors.join("-"));//output "red…

很多人都不清楚HEX文件格式

Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中&#xff0c;每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPR…

如何在asp.net中实现listbox item值上下移动?(转)

全部.net为&#xff1a;1 <form id"myform"runat"server">2 <div>3 <asp:ObjectDataSource ID"ObjectDataSource1"runat"server"OldValuesParameterFormatString"original_{0}"4 …

洛谷1345 [Usaco5.4]奶牛的电信

题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系&#xff0c;于是她们建立了一个奶牛电脑网络&#xff0c;以便互相交流。这些机器用如下的方式发送电邮&#xff1a;如果存在一个由c台电脑组成的序列a1,a2,...,a(c)&#xff0c;且a1与a2相连&#xff0c;a2与a3相连&#xff0c;…

有意思,USB资料分享

前几天&#xff0c;有个同学在微信问我 「发哥&#xff0c;能不能给我分享一些USB的资料吗&#xff1f;」-- 然后就有了今天的文章。我对USB印象很深&#xff0c;源于两个事情第一件事情是&#xff0c;我有一个大学同学&#xff0c;他的名字里面有一个「发」字&#xff0c;我们…

不知道的,还以为是555牌香烟

你认为历史上最成功的芯片是什么&#xff1f;就是出货很多很多那种。Intel的酷睿系列&#xff1f;NO&#xff01;AMD&#xff1f;错&#xff01;别猜了&#xff0c;原来是它&#xff01;这就是电工的神器——555定时器&#xff0c;从诞生到现在&#xff0c;销量过百亿&#xff…

Linux操作寄存器前为什么要ioremap

1. 原因这里只考虑有 MMU 的芯片&#xff0c;Linux 为了实现进程虚拟地址空间&#xff0c;在启用 MMU 后&#xff0c;在内核中操作的都是虚拟地址&#xff0c;内核访问不到物理地址。如果在驱动里直接访问物理地址&#xff0c;等于访问了一个非法地址&#xff0c;会导致内核崩溃…

Loading页的实现代码

用了几种Loading页的代码&#xff0c;还是算这个好用了。真的佩服牛人们的思想。有的说用DIV来实现遮盖后面的东西&#xff0c;当FORM加载完后&#xff0c;执行CLOSE()d的JS函数。我试验了几次&#xff0c;效果不是那么好。也主要是由于我吧东西都放在我本地&#xff0c;感觉不…

做算法,为什么建议你一定要学懂C++?

在工业界&#xff0c;有这样一个规律&#xff1a;“ 但凡能用其他语言的都不会用C&#xff0c;只能用C的必然用C。”但是&#xff0c;C的学习和项目开发都比较困难。一个有经验的老手也经常搞出野指针&#xff0c;内存泄露等bug&#xff0c;包括我自己在学C的时候也非常痛苦。所…

AI一键注释代码、阅读整个项目、转换编程语言。已开源!

获取github源码地址和国内url、key方式&#xff1a;在文章底部 大家好今天给大家介绍一款开源项目&#xff0c;这个项目是由渡码维护的&#xff0c;这个项目支持自己的大模型和使用openai两种方式&#xff0c;本文章介绍使用openai的方式&#xff01; 使用过程中发现两个问题…

为什么别人赚钱比自己容易?

之前的文章提到自己的一个同事&#xff0c;在一家公司干了10年&#xff0c;最近跳槽找了份5万薪水的工作&#xff0c;大家都很想听他的故事。为了方便记录&#xff0c;我叫他文哥文哥比我们一般的毕业生厉害&#xff0c;他比我大将近9岁&#xff0c;我在初中的时候他已经是一个…