细谈Type-C、PD原理(一)[通俗易懂]

细谈Type-C、PD原理(一)[通俗易懂]第一部分包含:一、二、三、四第二部分包含:五、六目录一、Type-C简介以及历史二、Type-CPort的DataRole、PowerRole三、Type-C的Data/PowerRole识别协商/AltMode四、如何进行数据链路的切换五、相关参数/名词/状态解释六、PD协议简介一、Type-C简介以及历史自1998年…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

第一部分包含:一、二、三、四

第二部分包含:五、六

目录

一、Type-C简介以及历史

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

三、Type-C的Data/Power Role识别协商/Alt Mode

四、如何进行数据链路的切换

五、相关参数/名词/状态解释

六、PD协议简介


一、Type-C简介以及历史

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

细谈Type-C、PD原理(一)[通俗易懂]

图1   USB协议发布时间节点

        而对于Type-C来说,看起来USB标准化组织也是意识到统一和标准化问题,在定义标准时,除了硬件接口定义上,还增加了一部分“个性化”特点。分别是什么呢?

1.1 定义了全新的接口形态

        接口大小跟Micro USB相近,约为8.3mm x 2.5mm,支持正反插,同时也规范了对应的线材,接口定义如下(线材端只有一对USB2.0 DATA):

细谈Type-C、PD原理(一)[通俗易懂]

细谈Type-C、PD原理(一)[通俗易懂]

在插座定义上,定义了如下两种插座:

a)全功能的Type-C插座,可以用于支持USB2.0、USB3.1、等特性的平台和设备。 

b)USB 2.0 Type-C插座,只可以用在支持USB2.0的平台和设备上。

在插头定义上,定义了如下三种插头:

a)全功能的Type-C插头,可以用于支持USB2.0、USB3.1、等特性的平台和设备。 
b)USB 2.0 Type-C插头,只可以用在支持USB2.0的平台和设备上。 
c)USB Type-C Power-Only插头,用在那些只需要供电设备上(如充电器)。

在线缆定义上,定义了如下三种线缆:

a)两端都是全功能Type-C插头的全功能Type-C线缆。 
b)两端都是USB 2.0 Type-C插头的USB 2.0 Type-C线缆。 
c)只有一端是Type-C插头(全功能Type-C插头或者USB 2.0 Type-C插头)的线缆。

还定义了N种为了兼容旧设备的线缆:

a)一种线缆,一端是全功能的Type-C插头,另一端是USB 3.1 Type-A插头。 
b)一种线缆,一端是USB 2.0 Type-C插头,另一端是USB 2.0 Type-A插头。 
c)一种线缆,一端是全功能的Type-C插头,另一端是USB 3.1 Type-B插头。 
d)一种线缆,一端是USB 2.0 Type-C插头,另一端是USB 2.0 Type-B插头。 
e)一种线缆,一端是USB 2.0 Type-C插头,另一端是USB 2.0 Mini-B插头。 
f)一种线缆,一端是全功能的Type-C插头,另一端是USB 3.1 Micro-B插头。 
g)一种线缆,一端是USB 2.0 Type-C插头,另一端是USB 2.0 Micro-B插头。 
h)一种适配器,一端是全功能的Type-C插头,另一端是USB 3.1 Type-A插座。 
i)一种适配器,一端是USB 2.0 Type-C插头,另一端是USB 2.0 Micro-B插座。

以上这些线材,我们知道,Type-A接的是HOST,所以转接线中,CC引脚需要接上拉电阻。Type-B接的是Device,因此CC引脚需要接下拉电阻。

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

1.2传输速率,供电效能

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

细谈Type-C、PD原理(一)[通俗易懂]

1.3 “个性化”协商机制

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

1.4 强悍的一统天下的态势

      由于Type-C的扩展功能(SBU1/SBU2),大部分配件诸如耳机、视频接口、Debug接口等等都可以实现兼容设计,成功逆袭以往所有的USB标准,成功上位!

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

2.1 Type-C的 Data Role

        在USB2.0端口,USB根据数据传输的方向定义了HOST/Device/OTG三种角色,其中OTG即可作为HOST,也可作为Device,在Type-C中,也有类似的定义,只是名字有了些许修改。如下所示:

(1)DFP(Downstream Facing Port):

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

(2)UFP(Upstream Facing Port):

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

(3)DRP(Dual Role Port):请注意DRP分为DRD(Dual Role Data)/DRP(Dual Role Power)

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

2.2 Type-C的Power Role

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

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

细谈Type-C、PD原理(一)[通俗易懂]

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,笔记本电脑)

三、Type-C的Data/Power Role识别协商/Alt Mode

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

3.1 CC引脚有如下作用:

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

b)用于判断插入方向,翻转数据链路

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

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

e)配置VCONN

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

3.2 连接方向、Data Role、Power Role角色检测

 3.2.1 SourceSink Connection

细谈Type-C、PD原理(一)[通俗易懂]

细谈Type-C、PD原理(一)[通俗易懂]

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

如下图指示了Source端,在连接SINK之前,CC1和CC2的框图模型:

细谈Type-C、PD原理(一)[通俗易懂]

a)Source端使用一个MOSFET去控制电源,初始状态下,FET为关闭状态

b)Source端CC1/CC2均上拉至高电平,同时检测是否有Sink插入,当检测到有Rd下拉电阻时,说明Sink被检测到。Rp的阻值表明Host能够提供的功率水平。

c)Source端根据Cable中哪一个CC引脚为Rd下拉,去翻转USB的数据链路,同时决定另外一个CC引脚为VCONN

d)在此之后,Source打开VBUS,同时VCONN供电

e)Source可以动态调整Rp的值,去表示给Sink的电流发送变化,告知SINK最大可以使用的电流

 f)Source会持续检测Rd的存在,一旦连接断开,电源将会被关闭

g)如果Source支持高级功能(PD或者Alternate Mode),将通过CC引脚进行通信

    如下图指示了SINK端CC1和CC2框架:

细谈Type-C、PD原理(一)[通俗易懂]

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

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

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

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

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

如下图指示DRP的CC引脚在链接之前的架构:

细谈Type-C、PD原理(一)[通俗易懂]

a)当作为Source存在的时候,DRP使用MOSFET控制VBUS供电与否

b)DRP使用Switch去切换自身身份作为Source,或者是SINK

c)DRP存在一套机制,分三种情况,去决定自身是SINK或者是Source,去建立两者间彼此的角色。

情况1:不使用PD SWAP,随机变成Source/SINK中的任意一个,CC脚波形为方波

细谈Type-C、PD原理(一)[通俗易懂]

情况2:自身倾向于作为Source,执行Try.SRC,问对面能不能做SINK呀,我做Source

情况3:与情况2相反,自身倾向作为SINK,执行Try.SNK,你做Source,我做小弟

细谈Type-C、PD原理(一)[通俗易懂]

当然还存在Source&Source,SINK&SINK这种搞基模式,唯一的结果就是一直停留在Unattached.SNK/Unattached.SRC,无法终成眷属。

3.3 Type-C的其他模式

3.3.1 Display Port Alternate Mode

      系统会通过USB PD协议中VDMs的信息通信(CC引脚通信),去告知支持Display Port模式。在这个模式当中,USB SuperSpeed 信号允许部分传输USB,部分传输DP信号。

细谈Type-C、PD原理(一)[通俗易懂]

3.3.2  Audio Adapter Accessory Mode 

       如下图,为3.5mm音频输入口转Type-C端口,USB2.0链路被用来传输模拟音频信号,若带MIC,MIC信号则连接在SBU引脚上,在这个模式当中,电源可以提供到500mA电流。

       Host端如何识别到音频模式呢?把CC引脚和VCON连接,并且下拉电阻小于Ra/2(则小于400ohm),或者分别对地,下拉电阻小于Ra(小于800ohm),则Host会识别为音频模式。

细谈Type-C、PD原理(一)[通俗易懂]

3.3.3 Debug Accessory Mode (DAM)

       在DAM下,连接软体和硬体提供可视化调试和控制的系统,使用较少。

四、如何进行数据链路的切换

4.1 纯USB3.0

以TUSB546(DFP),TUSB564(UFP)为例子

前者的使用例子如笔记本电脑、后者的使用例子如Monitor

如下图,两端设备会根据插入方向,切换数据链路。图X插入连接为CC1,因此TUSB564切换到TX1/RX1

细谈Type-C、PD原理(一)[通俗易懂]

图中插入连接为CC2,因此TUSB564切换到TX2/RX2,也就是根据CC引脚插入,识别插入方向

细谈Type-C、PD原理(一)[通俗易懂]

4.2 USB3.1和2 LANE of DisplayPort

切换原理如上,需要注意的是,DP信号是使用TX/RX进行传输,DP的AUX是通过SBUx进行传输

细谈Type-C、PD原理(一)[通俗易懂]

细谈Type-C、PD原理(一)[通俗易懂]

4.3 纯DP模式 4 lane细谈Type-C、PD原理(一)[通俗易懂]

细谈Type-C、PD原理(一)[通俗易懂]

问题思考:如何确定是DP 4 lane模式或者是DP 2 lane+USB3.0 模式?

通过CC引脚,利用PD协议沟通,协商,PD Controler 发起请求,并得到回应

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:http://www.javaforall.cn/234636.html原文链接:http://www.javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 几何画板 很实用的一个软件

    几何画板 很实用的一个软件

  • linux 网络ip设置方法,Linux配置ip地址的两种方法

    linux 网络ip设置方法,Linux配置ip地址的两种方法Linux配置ip地址的两种方法,实验环境为centos7.6方法1:nmcli工具配置(centos7以下版本不支持该方法)第一步,通过nmcliconnection查看网卡名称[root@localhost~]#nmcliconnectionNAMEUUIDTYPEDEVICEeth009be0948-faf1-43b6-a5a4-c19efab0bb48ethernet…

  • eclipse SVN插件的缓存清理[通俗易懂]

    eclipse SVN插件的缓存清理[通俗易懂]工具原料:SVN客户端;windowxp;eclipse中的缓存清理主要有: eclipse清理网页缓存; eclipse清理XSD文件缓存; eclipse清理svn账号缓存; 情况一:eclipse清理网页缓存。修改了代码多次刷新页面[已经清除过浏览器缓存]后页面调试仍显示源代码解决步骤:①停止tomcat的运行;②在eclipse中的Servers下找到并选中tomcat,右键选择”clean…”;③重新启动tomcat,刷新页面;④设置b

    2022年10月14日
  • c语言调用循环内部函数,通达信绘图函数调用,通达信调用内部数据[通俗易懂]

    c语言调用循环内部函数,通达信绘图函数调用,通达信调用内部数据[通俗易懂]内容导航:Q1:通达信函数大全使用说明内容来自用户:艳我爱你you软件简介:通达信全部函数及其用法(2011年最新版)(一)行情函数1)HIGH(H)最高价返回该周期最高价.2)LOW(L)最低价返回该周期最低价.3)CLOSE(C)收盘价返回该周期收盘价.4)VOL(V)成交量(手)返回该周期成交量.5)OPEN(O)开盘价返回该周期开…

    2022年10月30日
  • python中class的定义及使用_python中class的定义及使用

    python中class的定义及使用_python中class的定义及使用因为一直不太清楚面向对象的类和方法的编程思想,所以特地补了一下python-class的知识,在这里记录和分享一下。文章目录类和方法的概念和实例1.python类:`class`2.类的构造方法`__init__()`3.类中方法的参数`self`4.继承5.方法重写类的特殊属性与方法类的私有属性类的私有方法类和方法的概念和实例类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类的构造方法__init.

  • 什么是bin文件?「建议收藏」

    什么是bin文件?「建议收藏」出现这样的问题:未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件。原因可能是:1.路径不正确;2.文件不存在。相信大家都遇到这样的问题了,我和大家一样按照常规的方法:把DAL的路径改到E:\4.平时记录\UI\机房重构\UI\bin\Debug下面了,一般这样就可以解决了。但是,我的没有解决。bin\Debug下面仍让没有有关DAL的dll文件。不

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号