电子说
一、Data Role协议通讯过程和工作原理
Data Role描述了数据传输的方向。在Type-C接口中,下行端口(DFP)可以作为Host或HUB,负责提供VBUS和VCONN,并接收数据。与之相对的上行端口(UFP)则作为Device,从VBUS中获取电力,并发送数据。而双角色端口(DRP)则能够在Host和Device之间进行动态切换。
通讯信号内容:
连接建立阶段:
设备A发送默认的USB信号(如USB JID信号)给设备B。
设备B收到信号后,回复USB Detection信号给设备A,确认连接建立。
数据传输阶段:
设备A发送SOF(Start of Frame)信号给设备B,表示开始传输数据。
设备B收到SOF信号后,回复ACK(Acknowledgment)信号给设备A,表示数据已成功接收。
数据传输过程中,设备A和设备B通过交换一系列数据包实现数据传输。这些数据包可能包括Data Token、STP(Split Transaction Preamble)、STP Token、Data Preamble、Data、Handshake等信号内容。
角色切换阶段:
设备A发送PR_Swap请求信号给设备B,请求切换为Sink角色。请求信号可能包含电压级别、电流限制等信息。
设备B收到请求信号后,通过CC引脚发送PR_Swap_GIVE响应信号给设备A,表示同意切换。响应信号可能包含确认信息或状态信息。
在角色切换完成后,设备A作为Sink模式会打开VBUS和VCONN,提供电力给设备B。同时设备B也会进行相应的配置调整以接收电力。
断开阶段:
当设备A与设备B断开连接时,双方设备会通过CC引脚发送DISCONNECT请求信号。请求信号可能包括断开的原因、断开前的状态等信息。
在确认断开后,设备A和设备B会关闭VBUS和VCONN,结束连接。同时双方设备也会进行一些清理和复位操作。
二、Power Role协议通讯过程和工作原理
Power Role定义了供电的角色。根据USB PORT的供电情况来划分,Source是供电方,Sink则是受电方。Source Only表示只能作为供电方,Sink Only则只能作为受电方。默认情况下,设备为Source模式,但可以通过PD SWAP协议切换为Sink模式。
通讯信号内容:
源模式阶段:
设备A作为Host模式默认打开VBUS和VCONN,向设备B提供电力。
设备B作为Device模式接收电力并发送回复信号给设备A,该回复信号可能包括电力的状态、需求或反馈信息等。
角色切换阶段:
当设备B需要从设备A接收电力时,双方设备会进行角色切换。
设备A作为Source模式发送PR_Swap请求信号给设备B,请求切换为Sink角色。请求信号可能包含电压级别、电流限制等信息。
设备B作为Sink模式响应PR_Swap_GIVE信号给设备A,表示同意切换。响应信号可能包含确认信息或状态信息。
在角色切换完成后,设备A作为Sink模式打开VBUS和VCONN,提供电力给设备B。同时设备B也会进行相应的配置调整以接收电力。
断开阶段:
当设备A与设备B断开连接时,双方设备会通过CC引脚发送DISCONNECT请求信号。请求信号可能包括断开的原因、断开前的状态等信息。
在确认断开后,设备A和设备B会关闭VBUS和VCONN,结束供电。同时双方设备也会进行一些清理和复位操作。
如下图显示常用设备的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,笔记本电脑)
Type-C的Data/Power Role识别协商/Alt Mode
USB Type-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)检测还有配置其他可选的配置模式,如耳机或者其他模式
连接方向、Data Role、Power Role角色检测
SourceSink Connection
如图所示,Source端CC引脚为上拉,Sink端CC引脚为下拉。握手过程为接入后检测到有效连接(即一端为Host一端为Device),随后检测线材供电能力,再进行USB枚举。
如下图指示了Source端,在连接SINK之前,CC1和CC2的框图模型:
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框架:
a)SINK的两个CC引脚均通道Rd下拉到GND
b)SINK通过检测VBUS,来判断Source的连接与否
c)SINK通过CC引脚上拉的特性,来检测目前的USB通信链路(翻转)
d)SINK可选地去检测Rp的值,去判断Source可提供的电流。同时管理自身的功耗,保证不超过Source提供的最大范围
e)同样的,如果支持高级功能,通过CC引脚进行通信。
如下图指示DRP的CC引脚在链接之前的架构:
a)当作为Source存在的时候,DRP使用MOSFET控制VBUS供电与否
b)DRP使用Switch去切换自身身份作为Source,或者是SINK
c)DRP存在一套机制,分三种情况,去决定自身是SINK或者是Source,去建立两者间彼此的角色。
情况1:不使用PD SWAP,随机变成Source/SINK中的任意一个,CC脚波形为方波
情况2:自身倾向于作为Source,执行Try.SRC,问对面能不能做SINK呀,我做Source
情况3:与情况2相反,自身倾向作为SINK,执行Try.SNK,你做Source,我做小弟
当然还存在Source&Source,SINK&SINK这种搞基模式,唯一的结果就是一直停留在Unattached.SNK/Unattached.SRC,无法终成眷属。
Type-C的其他模式
Display Port Alternate Mode
系统会通过USB PD协议中VDMs的信息通信(CC引脚通信),去告知支持Display Port模式。在这个模式当中,USB SuperSpeed 信号允许部分传输USB,部分传输DP信号。
Audio Adapter Accessory Mode
如下图,为3.5mm音频输入口转Type-C端口,USB2.0链路被用来传输模拟音频信号,若带MIC,MIC信号则连接在SBU引脚上,在这个模式当中,电源可以提供到500mA电流。
Host端如何识别到音频模式呢?把CC引脚和VCON连接,并且下拉电阻小于Ra/2(则小于400ohm),或者分别对地,下拉电阻小于Ra(小于800ohm),则Host会识别为音频模式。
Debug Accessory Mode (DAM)
在DAM下,连接软体和硬体提供可视化调试和控制的系统,使用较少。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !