一次失败的USB Type C告白

李大虾

望天一眼,云烟消散如云烟。

本文覆盖信号横穿USB Type C线缆(cable)和连接器(connector)的功能要求,包含信号功能定义、发现和配置过程和功率输送。还将介绍一些扩展功能。

  1. 名词解释
    Accessory Mode: 附件模式,分别通过在CC1/CC2上的Rd/Rd或Ra/Ra状态重新配置连接器。
    Active Cable:主动线缆,具有额外电路的电子标识电缆来决定数据信号通路。
    Alternate Mode:交替模式,其行为受供应商和标准组织(SVID:USB-IF)规定,进入和退出交替模式是USB PD组织VDM命令发生的。
    Audio Adapter Accessory Mode:分别定义于CC1/CC2的Ra/Ra状态。
    BFSK:Binary Frequency Shift Keying,二进制频移键控,USB PD通过VBUS通信。
    BMC:Biphase Mark Coding,双相位标识编码,USB PD通过CC通信。
    Captive Cable:不可分离电缆,一端是USB Type C插头的电缆,另一端是供应商定制的连接方式(固定的或客制化可拆卸)
    DAM:Debug Accessory Mode,调试辅助模式,通过CC1/CC2的Rd/Rd或Rp/Rp状态定义。
    DTS:Debug and Test System,在DAM下,连接软体和硬体提供可视化调试和控制的系统。
    DFP:Downstream Facing Port,USB连接的数据流,典型是主控(host)或集线器(hub)的端口,在初始状态下发起VBUS、VCONN和数据的作用,在只充电的DFP端口只发起VBUS。
    DRD:Dual-Role-Data,可以用作DFP(Host)或UFP(Device)的端口。
    DRP:Dual-Role-Power,可以用作Source或Sink。
    DR_Swap:USB PD数据角色转换。
    Electronically Marked Cable:电子标识电缆,USB PD提供电缆的特征。
    Initiator:端口初始化一个VDM,是一个独立的端口角色(Provider、Customer、Provider/Customer、Customer/Provider),一般情况下被认为是Host。
    Port Partner:一个被连接的端口。
    Powered Cable:有电插入的VCONN和Ground之间存在Ra的线缆。
    PR_Swap:USB PD电源角色转换。
    Responder:端口对初始化VDM的一个回应,是一个独立的端口角色(Provider、Customer、Provider/Customer、Customer/Provider),一般情况下被认为是Device。
    SID:Standard ID,USB-IF指定,用来区分制造商。
    Sink:CC上Rd有效,消费VBUS上电源,一般是Device。
    Source:CC上Rp有效,提供VBUS上电源,一般是Host,Hub DFP。
    SVID:SID或VID
    UFP:Upstream Facing Port,USB连接的数据流,典型是设备(Device)或集线器(hub)的端口连接到Host或DFP Hub,在初始状态下Sink VBUS和提供数据的作用。
    VCONN-powered accessory:在交替模式下VCONN提供辅助电源功能。
    VCONN_Swap:USB PD VCONN交换。
    VDM:Vendor Defined Message,供应商定义信息(USB PD)。
    VID:Vendor ID,16Bit,USB-IF指定。
    Plug:插头;Receptacle:插座。
    Port:与插座关联,包含信号,CC逻辑,多路复用器,及其他相关逻辑。

  2. 信号总结

信号引脚描述
2.1 SSTXp1, SSTXn1 (SSTXp2, SSTXn2)
这些引脚提供了USB3.1高速接口的发送通道,从发送端口差分对路由到另一端接收端口差分对。USB3.1规范定义了该接口所有的电气特性、枚举、协议和管理特征。
SSRXp1, SSRXn1 (SSRXp2, SSRXn2)实现的是接收通道。
2.2 Dp1, Dn1 (Dp2, Dn2)
这些引脚支持USB2.0的LS、FS和HS模式支持及相关功能。具体定义见USB2.0规范。
2.3 SBU1, SBU2
边带使用引脚将在将来的USB规范上进行额外功能定义。SBU会被用在交替模式(Alternate Mode)和音频适配器附件模式(Audio Adapter Accessory Mode)。SBU引脚端口需要一个开路或者弱下拉到地。SBU1和SBU2在线缆上是交叉连接的。
2.4 VBUS, VCONN, GND
VBUS只在CC通道呈现出Source-to-Sink连接时候呈现。
VCONN应用于未使用CC引脚进行供电的本地插头。
GND是当前回路。
2.5 CC1, CC2, CC
这些引脚用于USB Type C的线缆和连接器的连接检测和接口配置。一旦连接确定,CC1或CC2重新指定为插头VCONN引脚提供功率输出。

3. 电源和地
3.1 线缆电阻压降(IR Drop)

地线的电阻压降不超过250mV,VBUS的不超过500mV。

Iso是绝缘体,L1和L2是负载。同样应低于250mV。
3.2 VBUS
VBUS的电压范围在USB2.0和USB3.1规范上有明确定义。注意由于允许更高的电流,传统设备可能在低负载情况下经受超过最大5.5V的电压。VBUS在没有被Source的时候,VBUS引脚和GND引脚的泄漏电阻最小为72.4千欧,电容最大为10微法拉。
3.3 VCONN
VCONN是插头里Source到电源线的电子提供,并经过不连接到CC线的CC引脚,初衷是给eMarker芯片供电。

下图是是VCONN的Source电气特征:

为了减少VCONN供电,Source可以不给VCONN供电或关掉VCONN在下面任何一个条件下:
(1)在tCCDebounce之后,一个CC引脚没有检测到Ra,另一个CC引脚在SRC.Rd状态;(2)在tCCDebounce之后,一个CC引脚没有检测到Ra,另一个CC引脚在SRC.Open状态并且这个端口支持辅助VCONN供电;
(3)如果没有GoodCRC回应USB PD发现识别信息。
下图是VCONN的Sink电气特征:

4. 配置通道(CC)
4.1 配置通道目的:
(1)检测USB端口的插上情况,比如Source到Sink
(2)解决电缆方向,确立交叉连接的数据总线路由
(3)确立两个连接端口的数据角色
(4)发现和配置VBUS:USB Type C当前模式还是USB功率传输模式
(5)配置VCONN
(6)发现和配置交替模式和辅助模式
4.2 USB Type C的数据总线接口及正反插
下图分别是USB Type C之间及其与直连设备的路有关系图,CC决定了蓝色和红色路由的选择。

4.3 连接Source和Sink
配置Source到Sink的典型流程:
(1)在端口上检测有效的连接(包含电缆方向,Source/Sink及DFP/UFP关系)
(2)发现电缆性能(可选)
(3)确定替代传统USB电源(可选):USB PD和CC进行高级功率传输谈判,USB Type C当前模式,USB BC 1.2
(4)USB设备枚举
Pull-Up/Pull-Down CC Model

Current Source/Pull-Down CC Model
是将上图的Rp换成Current Source。CC1和CC2的状态如下:

4.4 配置通道功能模型
通过CC1和CC2来看每个端口的类型:Source, Sink and Dual-Role-Power (DRP):
(1)类型Source:

a). Source使用FET开关VBUS的功率传输,初始为关闭状态
b). Source在CC1和CC2上放一个Rp上拉电阻来检测Sink,在引脚上出现Rd下拉电阻说明Sink连接上了。Rp值的大小意味着Host初始USB Type C电流水平
c).Source使用CC引脚的下拉特征检测和确定正确的USB高速数据路径路由并决定CC引脚打算给VCONN供电
d).一旦Sink检测到,Source会使VBUS,VCONN有效
e).Source能动态调整Rp值提供可变可用的USB Type C电流给Sink
f).Source继续监控Rd的状态以检测Sink的断开。当断开事件检测到了,Source删除掉之前提供的VBUS和VCONN,返回到步骤b)
g).如果Source提供高级功能(USB功率输送,替换模式),USB PD通信要求
(2)类型Sink:

a).Sink通过Rd下拉电阻到GND终止CC1,CC2
b).Sink通过VBUS出现决定Source的连接
c).Sink使用CC引脚的上拉电阻特征去检测和确定正确的USB高速数据通路路由
d).Sink可选的检测CC引脚以检测Source的可用更高USB Type C电流
e).如果Sink提供高级功能(USB功率输送,替换模式),USB PD通信要求

(3)类型DRP

a). DRP使用FET开始和关闭VBUS功率输出,在Source模式下初始化书关闭的
b).DRP使用交换器存在状态判断是Source还是Sink
c).DRP使用逻辑单元在初始连接时切换Source和Sink:直到指定的稳定状态确定,DRP交替表现为Source和Sink,时序是tDRP,dcSRC.DRP,tDRPTransition;当DRP表现为Source的时候,它执行Source的操作去检测连接的Sink,如果Sink检测到了,作用于VBUS、VCONN、继续操作Source一个tDRPHold;当DRP表现为Sink的时候,监视VBUS看是否连接到Source,如果检测到Source将执行Sink的一系列操作
d). 如果DRP提供高级功能(USB功率输送,替换模式),USB PD通信要求
4.5 USB Type C端口的电源角色和交换
Source-Only/Source(Default)
Sink-Only/Sink(Default)
DRP: Toggling(Source/Sink), Sourcing Device, Sinking Host
Rp—>Source VBUS/VCONN,DFP行为(USB HOST)
Rd—>Sink,UFP行为(USB DEVICE)
USB PD PR_Swap:交换Rp(Source)和Rd(Sink)
USB PD DR_Swap:交换DFP(Host)和UFP(Device)
USB PD VCONN_Swap:交换哪个端口提供VCONN
4.6 CC功能和行为要求
a). Source连接状态图

b).Sink连接状态图

c).DRP连接状态图:

除此之外,还有附件模式的支持状态,更为复杂。
d).相关状态解释:
Disabled State:从CC引脚移除终端,如果不支持该状态,那么该端口在上电后直接是Unattached.SNK或Unattached.SRC,该状态端口不会驱动VBUS或VCONN,CC1和CC2会呈现高阻到地。
ErrorRecovery State:从CC1和CC2引脚移除终端,接下来会根据端口类型转化为Unattached.SNK或Unattached.SRC,这相当于强制断开连接事件,并寻找一个新的连接。如果该状态不支持,则转化为支持的disabled状态,如果disabled状态也不支持,则转化Unattached.SNK或Unattached.SRC。,该状态端口不会驱动VBUS或VCONN,CC1和CC2会呈现高阻到地。
Unattached.SNK State:端口等待检测到Source的出现,一个端口Dead Battery不供电时候进入这个状态,端口不能驱动VBUS和VCONN,CC1和CC2分别地通过Rd终止到地,当Source连接检测到会转化为AttachWait.SNK,意味着在一个CC引脚上有SNK.Rp。USB 2.0不支持USB PD可能在VBUS检测到直接转化到Attached.SNK。
AttachWait.SNK State:端口检测到SNK.Rp状态在一个CC引脚上,并等待VBUS。端口不驱动VBUS或VCONN。
Attached.SNK State:端口连接上了,并作为Sink操作,如果初始化进入这个状态同样作为UFP操作,Power和Data的状态改变可以通过USB PD Command。直接从Unattached.SNK转化过来是通过检测VBUS,不确定方向和可用的高于默认的USB Power。
Try.SRC State:端口查询决定伙伴端口是否支持Sink,不驱动VBUS和VCONN,端口要在CC1和CC2上分别Source电流。
TryWait.SNK State:端口成为Source失败,准备连接成Sink,不支持VBUS或VCONN,CC1和CC2分别通过Rd终止。

Try.SNK State:端口查询决定伙伴端口是否支持Source,
TryWait.SRC State:端口成为Sink失败,准备连接成Source。
4.7 USB端口交互行为
a). Source到Sink的行为:

第一步,Source和Sink在Unattached状态
第二步,Source通过CC检测到Sink的Rd,经过AttachWait.SRC进入Attached.SRC。Source并打开VBUS和VCONN。
第三步,Sink从Unattached.SNK经过AttachWait.SNK转为Attached.SNK。USB2.0不支持附件模式,直接跳过AttachWait.SNK状态,该过程是通过检测VBUS完成。
第四步,当Source和Sink在Attached状态了,Source调整Rp值限制Sink拉的电流,Sink检测和监视vRd看VBUS可用的电流,Source监视CC的Detach行为进入Unattached.SRC,Sink监视VBUS的Detach行为进入Unattached.SNK。
b).Source到DRP行为:

第一步,Source和DRP在Unattached状态
第二步,Source通过CC检测到DRP的Rd,经过AttachWait.SRC进入Attached.SRC。Source并打开VBUS和VCONN。
第三步,DRP通过CC检测到Rp从Unattached.SNK转为AttachWait.SNK,再检测VBUS转为Attached.SNK。
第四步,当Source和DRP在Attached状态了,Source通过调整Rp值限制DRP拉的电流,DRP检测和监视vRd看VBUS可用的电流,Source监视CC的Detach行为进入Unattached.SRC,DRP监视VBUS的Detach行为进入Unattached.SNK。
c).DRP到Sink行为:DRP成为了Source,类似a)

以上行为都较为类似,除此之外还有DRP到DRP行为(尝试寻找Source和Sink),Source到Source行为(都失败在Unattached.SRC),Sink到Sink行为(都失败在Unattached.SNK)。
d). Source到Legacy设备端口行为:

主要是通过看CC引脚状态,类似的还有Legacy Host端口到Sink的行为,DRP到Legacy设备端口行为,Legacy Host端口到DRP行为。

5. 功率

1)在USB Suspend时候,USB Type C电流设置成1.5A或3.0A,允许Sink继续拉电流;USB PD提供了方法使Source和Sink通信Sink是否符合Suspend规则;如果Source在Suspend时候提供VBUS,也必须提供至少7.5mA电流给VCONN,而电子标识电缆要求从VCONN拉不超过7.5mA电流;
(2)在USB Type C电缆上VBUS功率传输,提供的电流包含3.0A、1.5A、500mA(USB2.0)、900mA(USB3.1),如前第4节描述通过CC引脚配置完成。
(3)USB Power Delivery:USB PD在CC线上使用双相标记编码(BMC)通信,在通信之前VBUS需要稳定:

USB PD BMC信号如下图

4)DFP作为Power Source:USB Type C插座的USB充电器,仅仅VBUS供电,且不建议电流超过3.0A,但是在支持USB PD识别电缆实际能力的除外;USB Type C固定线缆的USB充电器,不能超过该电缆的最大电流5A,电缆的电压是0.75×I/3 V (0<I≤ 3A)或者0.75×I/5V (0<I≤5A),输出电压是4.0V – 5.5V(3A)

6. 其他参数说明:
(1)电子标记电缆:全功能Type-C电缆,支持USB PD VDM结构功能发现身份认证命令,包含运输电流的能力、性能、厂商标识。要求VCONN(不超过70mW,7.5mA),尽管其他VBUS和Source已经提供,但不包含数据总线信号。
主动电缆:是电子标识的,并包含数据总线信号调节电路,VCONN功耗不超过1W。
(2)VCONN-Powered附件:替代模式实现的直连Sink,并仅操作VCONN(2.7V~5.5V),VCONN和CC引脚上有更大的电阻到地。当操作在UFP角色,VBUS没有呈现,VCONN-Powered附件必须协商VCONN应用为连接信号,并回应USB PD信息。当仅VCONN供电时候,VCONN-Powered附件必须谈判一个替代模式,如果谈判失败,就将伙伴端口的VCONN移除,如果VBUS没有呈现,该操作视为断开连接过程。当提供VBUS的时候,VCONN-Powered附件从属于替代模式。
(3)参数值:
Source CC端Rp:

Sink CC端Rd:

VBUS和VCONN的时序:

电压参数:
CC电压在Source端(默认USB,1.5A@5V,3.0A@5V,)
CC电压在Sink端(仅默认USB Type C电流,多种Source电流建议(如下表))

7. 功能性扩展
7.1 替代模式
替代模式不能在USB Hub拓扑中,必须在Host和Device直连环境下,支持替代模式的可选条件:
(1)USB PD构建VDMs去发现、配置和进入/退出模式到替代模式
(2)设备强烈鼓励提供等价的USB功能,并提供一些扩展功能,使用户获得更好的体验
(3)没有等价的USB功能实现,设备必须提供USB接口并能提供设备识别信息
替代模式要求:
(1)Host和Device必须在构建VDM之前协商一个明确的约定,用来发现和进入替代模式
(2)UFP需要发送ACK在切换替代模式(进入和退出)完成,进入替代模式失败,设备最低表现是USB2.0,并VBUS供电
(3)在替代模式,引脚RX1和RX2使用并AC耦合在USB Type C插头;引脚TX1和TX2使用并为替换模式的USB高速信号在系统中使用阻塞电容;USB Type C插座接收信号不能超过USB3.1定义的VTX-DIFF-PP值
USB DisplayPort Dock例子:

该Dock使用USB PD管理充电和电源,使用DP驱动到HDMI适配器并连接到HDMI插座,有一个USB Hub支持两个USB端口和一个USB内部设备(如USB音频设备/3.5mm耳机插座),USB BillBoard设备。
System Host的三种功能情形:
(1)主控系统不支持USB PD或者支持的USB PD不支持构建VDMs:不会查找SVID,发现和操作USB Hub,不会发送进入模式命令,报告连接的USB BillBoard设备是不支持设备
(2)主控系统支持USB PD并支持构建VDMs,但是不支持该Dock:发现和操作USB Hub,识别到SVID但是VID不认,如果VID认但不认为是该Dock,报告连接的USB BillBoard设备是不支持设备
(3)主控系统支持该Dock:查找和识别到该Dock SVID, 要求并识别该Dock的VID模式,使用进入模式命令重新配置USB Type C插座并进入USB DisplayPort Dock模式,可能显示USB BillBoard设备类接口给OS提供更多信息

其整个操作过程总结如下:
(1)Host通过CC引脚检测设备的出现和连接头方向
(2)Host申请默认的VBUS
(3)Host申请VCONN,因为Dock出现Ra
(4)Host使用USB PD与Dock订立Power约定
(5)Host运行发现识别过程:发送发现识别信息;收到ACK信息并带有电缆识别信息
(6)Host运行发现SVIDs过程:发送发现SVID信息;收到ACK信息并带有SVIDs列表
(7)Host运行发现模式过程:发送发现模式VDM为预先发现VIDs;接收到ACK信息并带有每个VID的模式列表;如果USB DisplayPort Dock的模式没有发现,Dock超时并出现USB BillBoard设备类接口,OS会通知用户这个错误并完成

8)Host运行进入模式过程:发送带VID和USB DisplayPort Dock模式的进入模式VDM;收到ACK信息,Host连上Dock并支持DP信号到联合USB信号额外功能接口
(9)Host一直待在Dock模式,直到退出模式的VDM出现、系统物理断开连接、USB PD硬重启、VBUS移除。
7.2 管理的主动电缆
通过USB PD构建VDM发现和配置该电缆,读取插头的VCONN出现,如下图:

该电缆除了支持USB高速模式还支持替代模式。SOP’和SOP”定义是为了允许厂商在电缆每端分别的通信。在连接和USB PD电缆重启后,插头直接连接到Source(SOP’回应),直接连接到Sink(SOP”回应),发现识别信息开始于SOP’。

USB Type C告白相关推荐

  1. USB TYPE -A -B -C 接口

    1. USB TYEP -A 普通电脑上那个USB口,称为A口母座,对应的插头,称为A口公头,A口主要的作用是作为数据及电源的下行端口,即拥有A口母座的设备,在电源上来说,属于供电设备**(TYPE- ...

  2. USB Type A/B/C基本知识和各版本区别

    不知道哪个是来源, 之中一个:  http://www.3lian.com/edu/2015/05-11/211795.html 自从苹果不久前在新MacBook上破天荒的使用单一数据接口USB Ty ...

  3. USB TYPE C接口拆解及定义、USB3.1标准说明

    FROM:http://www.lulian.cn/article-279-cn.html USB TYPE C接口以其纤薄.正反可插拔等诸多优势,得到了广泛运用,我们先看看USB TYPE C接头拆 ...

  4. USB Type A/B/C的区别和基本知识

    USB 1.0 USB规格第一次是于1995年,由Intel.IBM.Compaq.Microsoft.NEC.Digital.North Telecom等七家公司组成的USBIF(USB Imple ...

  5. 关于USB Type A/B/C的区别和基本知识

    USB 1.0 USB规格第一次是于1995年,由Intel.IBM.Compaq.Microsoft.NEC.Digital.North Telecom等七家公司组成的USBIF(USB Imple ...

  6. USB Type C数据线接线方式、工作原理

    USB Type C近段时间很火,现阶段市场真正带有TYPE C接口设备少(主要有MACBOOK,谷歌Chromebook Pixel,乐视手机,诺基亚N1等),而真正符合USB 3.1  TYPE ...

  7. USB C端口说明-USB Type C的不同之处和速度

    You might have heard about USB Type C - after all, USB ports are pretty ubiquitous in the world of t ...

  8. USB Type C规范详解

    USB Type C规范详解 目前USB Type C接口应用非常广泛,可以传输DP,USB,PCIE,音频等信号,已经不是纯粹的用来传输USB信号了,即USB Type C摆脱了和USB的从属关系, ...

  9. 无线测试软件市场份额,USBType C的应用方向及市场规模 - 关于USB Type C技术、应用和产业链的最强解读...

    根据IHS Technology的报告预测,USB-Type C接口使用量最大的市场将集中在智能手机.平板和笔记本电脑上,现在被USB覆盖的所有领域都可用USB-Type C取代.从产业链自上而下看, ...

  10. typecpd协议规范 C语言,谁能详细介绍USB Type C各个P位的作用,如Vconn和Vbus和CC的具体作用...

    满意答案 fdga25688 2020.05.27 采纳率:59%    等级:6 已帮助:205人 VBus:总线电源,USB PD协议可配置电压,最大20V 5A GND:地线 TxRx:Tx1 ...

最新文章

  1. php缓存mysql表_PHP 中的数据库缓存原理
  2. 2019黑马python面试资料_2019最新Python黑马头条推荐系统项目
  3. STM32之窗口看门狗原理
  4. day33 UDP、进程
  5. python爬虫网站简单_Python爬虫之简单爬虫框架实现
  6. Linux 重定向与连接符详解
  7. Kurento Tree 简介
  8. Android直播APP源码搭建中豪华物特效的实现
  9. openwrt 需要高级浏览器_斐讯K2P刷openwrt设置mentohust
  10. did拼接屏最小拼缝0.88mm
  11. Google Chrome谷歌浏览器清理缓存的常用方法
  12. [办公自动化]目录修改以及插入分页符后行间距自动变宽
  13. STC15W408AS系列管脚说明
  14. Elasticsearch APIs解析(一、API规范及约定)
  15. 说出至少4种vue当中的指令和它的用法?
  16. python模拟登录淘宝直通车_Python实现的淘宝直通车数据抓取(2)
  17. LSTM结构理解与python实现
  18. C语言中void具体有什么作用
  19. 企业ERP管理系统使用说明
  20. 移动硬盘插入电脑不显示的解决办法

热门文章

  1. sed -i 单引号中嵌套双引号_作文中标点符号的易错点整理,学到了以后不再用错...
  2. RadioButton 只读
  3. 随机数种子(seed)
  4. 怎么把html改成迅雷bt种子文件格式,BT种子怎么制作?教你如何制作BT种子
  5. 免费企业邮箱怎么注册申请
  6. 计算机怎么保存窗口画面,电脑视频怎么旋转保存 怎样将视频画面进行旋转并保存|视频画面旋转工具...
  7. android跑马灯效果横向,Android 通过自定义View实现纵向跑马灯效果
  8. 100多个免费API接口分享 调用完全不限次数,以后总用得着
  9. 面试官:为什么 0.1 + 0.2 == 0.300000004 ?
  10. 项目反应理论 EM估计