Type-C协议-CC检测原理

2023-05-16

Type-C协议简介(CC检测原理)

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)。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Type-C协议-CC检测原理 的相关文章

随机推荐

  • GT1050 PointPillar成功运行

    目的 之前在感知这里主要是考传统的算法 xff0c 但是遇到了瓶颈 xff0c 计算效率提不上来 xff0c 所以尝试一下其他的方法 目前看到pointpillar这种方法效果比较好 xff0c 就打算尝试一下 跑通测试一下效果 piont
  • 使用离线数据测试apollo7.0

    https zhuanlan zhihu com p 510712104 cd apollo 视觉测试 xff1a 1 启动dreamview 并选择车辆和地图 scripts bootstrap sh 2 启动transform模块 cy
  • 相机、激光雷达坐标系相互转换

    目录 读入外参和摄像头内参配置文件读入TF读入 激光雷达坐标系转到摄像头坐标系摄像头坐标系转到激光雷达坐标系 读入外参和摄像头内参 配置文件读入 std span class token double colon punctuation s
  • C++ thread的方式

    多线程的实现方式 xff0c 只做记录 xff0c 自己看 目录 第一种 在类中实现多线程第二种 在类外第三种 没有类第四种 pthread 定时触发总结附录 第一种 在类中实现多线程 新建thread对象 xff0c 传入类的成员函数名称
  • zynq 在ubuntu下移植ubuntu操作系统

    米联客的配套的文件是osrc lab 1 配置路径 在setting64 sh中把路径给更改一下 这里就是 改成ubuntu 并运行surce settings64 sh 2 rootfs 执行脚本 cfg rootfs sh 然后make
  • zynq 维修调试记录 客服支持 工作记录

    米联的板子用底板供电 xff0c 用JTAG往里面下程序 的时候也出现了如下问题 xff1a 跟客服进行沟通 xff0c 客服的回答是 xff1a 一般是两种可能 xff0c 一个是开发板坏了 xff0c 进行如下操作 xff0c 操作的程
  • ubuntu 16.04 安装apollo3.0(发布版)

    参考官网文档 xff1a https github com ApolloAuto apollo tree master docs https github com ApolloAuto apollo blob master docs how
  • 关于malloc返回地址无法访问

    正常情况下使用malloc申请内存 xff0c 要么是申请成功返回有效地址 xff0c 要么是内存申请失败 xff08 内存不足 xff09 返回NULL 如果出现返回了地址却无法访问的情况 xff0c 很有可能是前面代码访问内存时出现了越
  • docker里面安装Qt Creator

    sudo apt get install qt5 default qtcreator
  • 软连接ln -s 创建以及删除

    在 usr local 创建软连接 链接到 usr local include test dst文件夹 phe 64 phe usr local sudo ln s usr local include test dst test sourc
  • CAN报文:数据帧详解

    CAN报文 xff1a 数据帧详解 CAN报文CAN帧类型数据帧帧起始 Start Of Frame 仲裁段控制段数据段CRC段ACK段帧结束 End Of Frame CAN报文 CAN使用的是两条差分信号线 xff0c 只能表达一个信号
  • I2C总线和SPI总线

    I2C串行总线一般有两根信号线 xff0c 一根是双向的数据线SDA xff0c 另一根是时钟线SCL I2C协议 2条双向串行线 xff0c 一条数据线SDA xff0c 一条时钟线SCL SDA传输数据是 大端传输 xff08 字节高位
  • APM飞控学习之路:2 四旋翼的工作原理与系统组成

    一叶障目 xff0c 不见泰山 在研究四旋翼飞行器之前 xff0c 有必要从整体介绍其工作原理 主要部件 技术名词等基础知识 不然就像羊入虎口 xff0c 陷入一大堆不同层次的资料 xff0c 难觅出口 接下我就抛砖引玉 xff0c 尽自己
  • APM飞控学习之路:4 源码裁剪与下载

    月盈则亏 xff0c 水满则溢 当博主编译完成 xff0c 以为离成功更近一步准备下载的时候 xff0c 殊不知陷阱也早已准备好 xff0c 等待我的踏入 连上USB线 xff0c 下载 xff0c timeout xff0c timeou
  • 详解STM32CubeIDE 中 HAL库的串口中断接收函数 HAL_UART_Receive_IT

    MX串口配置方法见 xff1a CubeIDE 利用自带HAL库 串口收发 一 代码自动生成以后的项目及代码结构 xff1a main c中 xff0c 调用了串口初始化 串口初始化函数赋值了串口的参数 相当于底层的初始化 xff0c 配置
  • RTK-Real Time kinematic实时动态

    目前 xff0c GNSSj接收机约99 的时间都用作RTK模式进行测量 xff0c 只有1 的时间用作静态测量做控制网等 所以 xff0c 大部分人都习惯把GNSS接收机喊成RTK了 不过除去GNSS接收机 xff0c 你知道RTK是什么
  • USB-PD3.0(Power Delivery)充电协议

    USB PD xff08 Power Delivery xff09 是基于USB Type C的一种电源供电标准 xff0c 最大供电功率可达100瓦 xff08 W xff09 xff1b 随着USB Type C的普及 xff0c 越来
  • Lua ---- LFS库的使用

    lfs attributes filepath aname 获取路径指定属性 lfs chdir path 改变当前工作目录 xff0c 成功返回true xff0c 失败返回nil加上错误信息 lfs currentdir 获取当前工作目
  • USB2.0实际传输速度

    USB2 0规范中传输速度是480 Mbps 即60 MB s 但是很多USB2 0设备在实际工作时的数据传输速度却与此相差甚远 xff0c 比如用PC用U盘拷个东西 xff0c 往往比60MB s慢很多 xff0c 这是为什么呢 xff1
  • Type-C协议-CC检测原理

    Type C协议简介 xff08 CC检测原理 xff09 1 简介 越来越多的手机开始采用Type C作为充电和通信端口 xff0c Type C连接器实物和PIN定义如下图 xff1a Type C连接器中有两个管脚CC1和CC2 xf