Type-C协议简介(CC检测原理)
作者:AirCity 2019.12.15
Aircity007@sina.com 本文所有权归作者Aircity所有

1 简介

越来越多的手机开始采用Type-C作为充电和通信端口,Type-C连接器实物和PIN定义如下图:

Type-C连接器中有两个管脚CC1和CC2,他们用于识别连接器的插入方向,以及不同的插入设备。本文介绍CC的基本识别原理。

先介绍几个概念:
DFP——Downstream Facing Port,也就是Host
UFP——Upstream Facing Port,也就是Device
DRP——Dual Role port,既可以做DFP,也可以做UFP。

在建立连接之前,DRP的角色在DFP和UPF之间切换。如果两个DRP连接,最先随机到那种角色后开始建立连接,之后可以通过USB协议协商进行动态切换。

2 为什需要CC检测

虽然USB Type-C插座和插头的两排管脚对称,USB数据信号都有两组重复的通道,但主控芯片通常只有一组TX/RX和D+/-通道(某些芯片有两组TX/RX和D+/-通道)。

由于USB2.0的数据率最高只有480Mbps, 可以不考虑信号走线的阻抗连续性,USB2.0的D+/-信号可以不被MUX控制而直接从主控芯片走线,然后一分二连接至USB Type-C插座的两组D+/-管脚上。

但USB3.0或者USB3.1的数据率高达5Gbps或者10Gbps,如果信号线还是被简单地一分二的话,不连续的信号线阻抗将严重破坏数据传输质量,因此必须由MUX切换来保证信号路径阻抗的一致性,以确保信号传输质量。

下图中右侧所示的MUX从TX1/RX1和TX2/RX2中选择一路连接至主控芯片,而这个MUX就必须被CC管脚控制。

在USB2.0应用中,无需考虑CC方向检测问题,但USB3.0或者USB3.1应用中,必须考虑CC方向检测问题。

注意UFP,比如U盘,移动硬盘内部不需要CC逻辑检测,因为它是上行,只有一对USB2.0或USB3.0信号,如下图

3 CC检测原理

CC信号有两根线,CC1和CC2,大部分USB线(不带芯片的线缆)里面只有一根CC线,DFP可根据两根CC线上的电压,判断是否已经插入设备。通过判断哪根CC线上有下拉电阻来判断方向,下图的说明已经非常清晰。

如果CC1引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接未翻转。
如果CC2引脚检测到有效的Rp/Rd连接(对应的电压),则认为电缆连接已翻转。

“有效的Rp/Rd连接”指在CC上形成了有效的电压。
从DFP的角度看,下表列出了所有可能的连接状态,

以上只是介绍了CC检测中判断是否翻转的原理,两个CC信号还有向UPF通告DFP提供电流能力的功能等,见下文。

3.1 DFP的上拉电阻Rp

DFP的CC1和CC2信号上都必须有上拉电阻Rp,上拉到5V或3.3V。或者CC1和CC2都用电流源上拉。最终的目的是在插入后,能检测到CC1或CC2上的电压,进而判断是否翻转以及DFP的电流能力。如下是所有可能的配置。可以选择右边三列中的任何一列作为上拉方式,比如Fairchild的FUSB300就是用330uA上拉,TI的TUSB320LAI用的是80uA的上拉,不同的上拉方式在CC引脚上形成的电压不同,不同的电压对应不同的电流能力。

3.2 UPF的Rd

UFP的CC1和CC2管脚都要有一个下拉电阻Rd到GND(或者使用电压钳位)。Rd的处理方式如下表。

注意,最后一列的电流源连接至的电压,是指3.1节中表格的最后一列电流源的上拉电压。
结合这个表格,和3.1节的表格,我们把每种可能的上下拉范围都计算出了最终形成的电压范围,如下表。

CC检测芯片会检测这个电压,通过判断电压范围来决定下一步操作。下表是CC管脚上不同的电压对应的DFP能提供的电流能力。第二列列出的每一种电压范围,都分别覆盖了上表计算出的电压。Rp/Ra的计算是同理的。

3.3 数据线上的Ra

带电子标签的线缆,其中一个CC管脚被更名为VCONN,用于给电子标签芯片供电。这个VCONN管脚与GND之间需要一个Ra电阻,这个电阻值范围是800Ω~1.2KΩ。

3.4 VCONN电源

VCONN的允许范围是4.75V~5.5V,要求供电能力是1W。默认情况下DFP提供这个电源。如果两个DRP连接,则双方可以通过USB PD协议协商来交换VCONN供电方。
支持PD的USB3.0接口均需支持VCONN,可以通过下面两种方式之一提供VCONN电源。

  1. 如果其中一个CC引脚上检测到有效的Rp/Rd连接,则VCONN电源可以接到另一个对应的CC引脚。
  2. 如果其中一个CC引脚上检测到有效的Rp/Rd连接,先检查另一个CC引脚是否也有Rp/Ra连接,然后再提供VCONN。
  3. 先检测是否有Ra存在,如果有说明需要Vconn供电,此时再提供Vconn。检测过程不需要Vconn存在。
    注意,每一个CC引脚内部都有一个开关,轮训CC和VCONN功能,下图是一个典型的连接方式:

4 手机都是DRP

现实中,我们的手机都是DRP,既能做DFP,又能做UFP,那么是如何切换呢?
DRP在待机模式下每50ms在DFP和UFP间切换一次。当切换至DFP时,CC管脚上必须有一个上拉至VBUS的电阻Rp或者输出一个电流源,当切换至UFP时,CC管脚上必须有一个下拉至GND的电阻Rd。此切换动作必须由CC Logic芯片来完成。当DFP检测到UFP插入之后才可以输出VBUS,当UFP拔出以后必须关闭VBUS。此动作必须由CC Logic芯片来完成。下面是一个CC逻辑芯片框图,CC上有一个开关,在不断切换功能。

5 USB Power Delivery 2.0

这个是由USB-IF制定的单线协议,在CC线上传输,用于协商供电角色,电压,最大供电能力,数据角色,备用模式等,端口与供电电缆之间的通信业通过PD协议进行。协议不做展开,详见USB-IF官网。下面是协议的几个特点:

  1. 所有通信均通过CC线。
  2. DFP是总线主设备,用于发起所有通信。
  3. 所有消息均采用32bit 4b/5b编码的双向标记编码(Bi-phase Mark Coded,BMC)
  4. 300K波特率
  5. CRC32错误检验+消息重试

6 Type-C线缆规范

  1. 线缆至少支持10000次拔插。
  2. 不规定信号线规,但是必须保证USB2.0和USB3.0的信号完整性
  3. CC和SUB1/SUB2线上的阻抗不大于50Ω
  4. GND返回路径上的最大IR压降为250mV
  5. Vbus上的最大IR压降为500mV
  6. USB Type-C规范中并未明确规定线缆长度,但是电器要求产生了一些物理限制。USB3.1 Type-C转Type-C电缆组件在5GHz下的插入损耗指定为为-6dB,从而将电缆长度有效限制为1米。USB3.0 Type-C转Type-C电缆组件在5GHz下的插入损耗指定为为-7dB,从而将电缆长度有效限制为2米。

7 带电子标签的Type-C数据线

如果Type-C数据线上带了芯片(我们称之为电子标签),这个芯片可以通过USB供电规范2.0 BMC协议与USB端口通信。电子标签电缆可用VCONN供电,也可以直接由Vbus供电,最高可消耗70mW的功率。如下类型的电缆必须要电子标签:

  1. 兼容USB3.1的USB Type-C电缆
  2. 100W供电电缆。能够实现60W以上功率承载能力的任何电缆都必须有电子标签,并且能够与DFP端口通信。
    带电子标签的电缆如果插入不支持USB供电规范2.0的插座中,其行为与标准的无源电缆完全相同。

8 音频配件模式

8.1 数字耳机

Type-C接口的数字耳机是一个UFP(Device),手机是DFP。耳机的CC1和CC2引脚上必须有Rd,实际上,乐视数字耳机的CC管脚上有一颗5.1K电阻。

8.2 模拟耳机

协议要求模拟耳机转接线上把两个CC引脚直接接到GND(必须小于Ra)。

Type-C协议简介(CC检测原理)相关推荐

  1. Type-C协议-CC检测原理

    Type-C协议简介(CC检测原理) 1 简介 越来越多的手机开始采用Type-C作为充电和通信端口,Type-C连接器实物和PIN定义如下图: Type-C连接器中有两个管脚CC1和CC2,他们用于 ...

  2. CC知识共享许可协议简介

    文章目录 CC知识共享许可协议简介 CC BY CC BY-SA CC BY-NC CC BY-NC-SA CC BY-ND CC BY-NC-ND 知识共享公共领域公开CC0 CC知识共享许可协议简 ...

  3. 原理简介_消息通信的利器MQTT协议简介及协议原理

    - 没用过但是必须得知道系列 - 前言: 相比于 XMPP, MQTT 的简单轻量受到了不少工程师的喜爱,从物联网到传统的消息服务,简单可依赖的 MQTT 到底为何让人如此着迷呢? MQTT 协议-M ...

  4. MQTT协议简介及协议原理

    文章目录 MQTT协议 MQTT协议简介 MQTT通信模型 MQTT客户端的功能: MQTT客户服务器功能: 消息主题与服务质量 MQTT控制报文 固定报头 可变报头 CONNECT报文 CONNAC ...

  5. 智能手环---MQTT协议简介及协议原理

    更新记录链接:STM32系统学习-目录_嵌入式学习_force的博客-CSDN博客 文章目录 MQTT协议 MQTT协议简介 MQTT通信模型 MQTT客户端的功能: MQTT客户服务器功能: 消息主 ...

  6. Tsung MQTT协议简介及MQTT xml文档配置介绍

    MQTT协议简介及MQTT xml文档配置介绍 by:授客 QQ:1033553122 1. MQTT协议介绍 MQTT(Message Queuing Telemetry Transport,消息队 ...

  7. RTSP协议探秘:从原理到C++实践,解锁实时流媒体传输之道

    目录标题 引言 RTSP协议基础 RTSP协议的组成与工作原理 RTSP协议的组成 RTSP协议的工作原理 RTSP协议与其他流媒体协议的比较 RTSP协议的基本功能与用途 RTSP协议详解 RTSP ...

  8. 生成树协议(STP)原理与配置PVST+实现负载均衡

    交换网络环路的产生 在实际网络环境中,物理环路可以提高网络的可靠性,当一条线路断掉时,另一条线路仍然可以传输数据.但是,当交换机收到广播请求时,交换机就根据转发原理(交换机从除收到该广播帧之外的所有端 ...

  9. TCP/IP协议简介

    TCP/IP协议简介<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&g ...

最新文章

  1. 用模板实现单例模式(线程安全)、模板方式实现动态创建对象
  2. java底层语言_JAVA语言思维的底层基础
  3. python 保留两位小数 占位_第17p,Python中格式化输出的3种方式
  4. ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)
  5. java日志输出到kafka
  6. linux连接wifi账户密码忘了怎么办,路由器账户密码忘记了怎么办_无线路由器密码忘记了怎么找回-系统城...
  7. jdbc odbc java mysql数据库连接_Java数据库连接之配置ODBC数据源
  8. 对adapter的封装优化
  9. 安装Kibana报错[warning][admin][elasticsearch] Unable to revive connection: http://localhost:9200/
  10. uniapp前端处理接口返回一整个html格式
  11. 伴随矩阵例题_§6伴随矩阵及练习题.ppt
  12. 给别人打电话显示用话提醒服务器,打电话给对方但提示已启用来电提醒功能,是怎么回事...
  13. Python基础教程:教你制作一个汇率换算程序
  14. Q12矩阵中的路径 回溯法
  15. L13-页眉页脚设计加水印
  16. Qt Creator 报错 moc_mainwindow.cpp:-1: error: undefined reference to `MainWindow::mouseDoubleClickEven
  17. 高德地图2----输入提示、关键字查询
  18. Excel中如何使用字符串提取函数LEFT
  19. 推荐一本网络科学入门书
  20. 赤兔Android数据恢复专业版发布啦

热门文章

  1. Sony A200小试~
  2. Java之多线程买票程序
  3. IRS(intelligent reflecting surface)智能反射面与无人机通信
  4. 【数论】求素数的三种方法
  5. 《蜗居》中的那些人物们
  6. 2-了解GeoServer的Web管理界面
  7. 以下哪种标签不是php起始 结束符,PHP笔试试题
  8. 【附源码】Java计算机毕业设计领导干部听课评课管理系统(程序+LW+部署)
  9. vue2.x 学习笔记for
  10. 这个库能轻松解决98%的异步和逻辑加载时机问题(异步篇)