一、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下,连接软体和硬体提供可视化调试和控制的系统,使用较少。
兼顾稳定性与性价比,锐驰智光产线大升级,开启激光雷达行业极度新内卷!
单臂万能试验机,科准制造的好用吗?
超声波清洗机原理图_超声波清洗机电路图_超声波清洗机结构图
AI不但会耍小聪明,还会使坏
BICV高精度解决方案拥有更大的市场优势
USB-C Port的Data Role、Power Role工作原理介绍
基于NI USRP的2X2 MIMO系统
4G工业路由器在太阳能物联网领域的应用
SiC功率器件降低成本以推动采用
汽车电子氛围灯呼吸效果控制原理
整理了一份经常忽略的嵌入式基础知识点
Xilinx Ultrascale Kintex FPGA 电源解决方案
Linux互斥锁的作用 互斥锁是什么
基于单片机的红外遥控通信实验 红外遥控器的发送和接收原理
iPhoneX和小米MIX2S哪个性能最好
水位指示器电路图分享
在线烟气分析仪常见故障及其排除方法
加拿大开发铁基燃料电池催化剂
奥格在智能家居领域构建“三全”应用方案
海尔推出3款洗衣机 颠覆了用户对传统洗衣机的认知