简单聊一聊手机端口的识别协议-BC1.2

2023-11-01

关于BC1.2协议 每一个从事手机硬件设计的工程师都应该非常了解熟悉,其主要是为了充电端口的识别。然而关于这部分协议,网上有很多的讲解,有讲的很仔细的,也有讲的很粗糙的,小编也是为了学习这部分协议,翻阅了很多资料,最终决定将自己学到的结合自己工作上确实遇到的进行一些简单的描述讲解。

首先先要了解几个名词
SDP:Standard Downstream Port标准下行端口,比如电脑的USB口。这种口的充电能力是0.5A
CDP:Charging Downstream Port带较强充电能力的USB口,比如电脑的USB口(蓝色的口)。这种口的充电能力一般1.5A.
DCP: Dedicate Charging Port专用充电口,比如手机充电器
PD:portable Device便携设备,如手机。
————————————————
在这里插入图片描述图示为充电端口检测的框架

充电端口的识别主要分为以下五个步骤:
(1)VBUS Detect
(2)Data Contact Detect
(3)Primary Detection
(4)Secondary Detection
(5)ACA Detection

本文主要讲常见的前四个阶段

  1. VBUS 检测
    在BC1.2开始之前,首先会进行一番VBUS的检测。每一个PD内部都存在一个同相比较器,用于检测VBUS。当适配器接入PD时,只有比较器的VBUS大于参考电压VOTG_SESS_VLD时,VBUS才会有效,随后将会进行后面的操作。
    在这里插入图片描述补充说明:因为手机端口USB座子的设计(箭头指向为VBUS引脚),TYPE C端的VBUS引脚最先接触到手机端(除去GND端),其次再是数据引脚接触。这也就是为什么充电识别过程中,最先执行的是VBUS detect了。
    在这里插入图片描述

  2. DCD检测
    Data Contact Detect,数据的连接线检测,即判断适配器是否完全接入手机USB座子。
    判断完VBUS接入后,随后即是判断数据信号的连接是否到位。
    当Attached时
    手机端的D+的IDP_SRC(大概10uA)打开,因为D+端接了一个电阻RDP_DWN(20K左右)下地,所以D+会存在一定的小电压200mV,当电压小于参考值时,说明USB接入良好。所以在波形上看D+最前端存在一个非常小的电压起伏。
    在这里插入图片描述
    在这里插入图片描述

然而DCD的检测并不是必须要执行,如果没有执行DCD的检测,协议会在VBUS有效后的T DCD_TIMEOUT开始执行后面的步骤(后面的波形是没有执行DCD检测的情况)。

  1. 充电端口检测
    (1) Primary Detection :区分SDP与DCP CDP
    在这里插入图片描述
    当PD连接到SDP时,PD设备会打开上端的VDP_SRC 与中间的IDM_SINK,致使D+存在一定的电压(大概0.6V),也就是图示波形D+在“Primary detection” 中拉高的那部分。之后手机开始检测D-的电压,当D-电压小于VDAT_REF则认为识别到的是SDP。当D-电压大于VDAT_REF,则认为识别到的是DCP或者CDP,后面开始进行二次检测。
    在这里插入图片描述SDP

(2)Secondary Detection:区分DCP与CDP
CDP
在这里插入图片描述
首次检测完成之后,PD会在D-端打开VDM_SRC,在D+端打开IDP_SINK,同时比较D+端的电压与VDAT_REF,如果小于VDAT_REF。说明接入的设备属于CDP。
在这里插入图片描述

DCP
在这里插入图片描述
若D+端的电压大于VDAT_REF,说明接入的是DCP,因为D+与D-之间通过RDCP_DAT短接在一起。所以D+与D-电压几乎相似。
在这里插入图片描述
在DCP检测完成之后,我们还要检测协议是否支持QC2.0。其会在D+端施加0.6V电压,因为DCP阶段,D+与D-短接在一起,所以D+与D-电压始终一致。在维持1.25s后D+与D-将断开短接,若D-电压跌落至0V并维持一段时间,说明此适配器支持QC2.0。
在这里插入图片描述
在D-跌落至0V并维持一段时间后,D+与D-电压继续发生变化,即图示D+ D-最后一个阶段,其按照如下原则,通知充电器,输出对应的电压。
在这里插入图片描述
上图波形:D+最终3.3V,D-最终0.6V 所以VBUS被抬高到9V。

总之,根据波形总结,在识别阶段,Primary Detect由D+发起,Secondary Detect由D-发起。SDP DCP CDP三者在波形上的区别,SDP在Primary Detect就被识别,所有永远只有一次位于D+的高电平。DCP由于D+ D-被电阻短接在一起,所以D+与D-永远保持一样的电平状态,两次都位于高电平状态。CDP则是看为二者的波形中和,D+只存在一次高电平,D-存在两次高电平。

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

简单聊一聊手机端口的识别协议-BC1.2 的相关文章

随机推荐

  • SSM框架+layui前端框架整合

    在上篇博文中 博主使用bootstrap SSM实现了商品列表展示效果 从页面上看 其虽然可以加入分页等功能 但不太方便 博主的分页使用的是mybatis的分页插件 今天 博主为大家分享一款功能强大的前端框架 layui layui lay
  • QP和CRF控制码率和画质的原理

    1 QP原理 2 CRF原理 3补充 3 1编码器内部三种压缩策略 3 2示例x264使用双通道模式 1 QP原理 量化器和CRF都是常用的视频编码器中用于控制视频码率和画质的工具 下面将从原理上详细解释它们是如何工作的 量化器是一种常用的
  • 高通平台android9.0充电电量,充电指示灯以及充电图标读取分析

    第一部分 qpnq qg c static int qpnp qg probe struct platform device pdev INIT WORK chip gt udata work process udata work INIT
  • 基于特征增强网络的SAR图像舰船目标检测

    源自 系统工程与电子技术 作者 张冬冬 王春平 付强 摘 要 合成孔径雷达 synthetic aperture radar SAR 图像场景复杂度高 舰船目标尺度小 传统方法检测效率低 虚警概率大 针对以上问题 提出一种特征增强网络用于S
  • npm 配置私服

    通过npm install命令下载前端项目依赖时 每次都需要从淘宝等第三方npm服务器下载 速度慢 耗时长 第三方npm服务器一般不支持包的上传 公司内部开发的公共包只能通过拷贝的方式添加到各个程序员开发的前端项目内 效率低 不方便 因此
  • 弱口令暴力破解详解(包含工具、字典下载地址)

    目录 一 弱口令概述 二 Web类 加密 验证码后台猜解 三 服务类 SSH RDP远程终端猜解 四 应用类 ZIP Word文件压缩包猜解 一 弱口令概述 弱口令 weak password 没有严格和准确的定义 通常认为容易被别人 他们
  • 使用YOLOv5实现实时目标检测结果保存

    本文将分享保存实时目标检测结果的方法 包括将目标信息逐帧保存到 txt文件中 逐帧输出检测结果图片 以及如何保存所有检测图片 包括视野中无目标的帧 目录 0 准备 1 目标信息保存 2 检测图片保存 3 保存所有帧 0 准备 本文以单摄像头
  • cuDNN:利用 GPU 加速卷积神经网络

    近年来深度学习领域的突破与计算能力的大幅进步是分不开的 加快了研究的迭代速度 有更多的机会来优化和调整网络 降低了试错的成本 可以在更大的数据集上进行训练 提高了最终的精度 相较于通用处理器 GPU 在单位面积 单位功耗上拥有更高的计算能力
  • 【HTML 教程】iframe

    作者 阮一峰 标签用于在网页里面嵌入其他网页 1 基本用法 标签生成一个指定区域 在该区域中嵌入其他网页 它是一个容器元素 如果浏览器不支持 就会显示内部的子元素 p a href https www example com 点击打开嵌入页
  • 你看懂 Elasticsearch Log 中的 GC 日志了吗?

    如果你关注过 elasticsearch 的日志 可能会看到如下类似的内容 2018 06 30T17 57 23 848 WARN o e m j JvmGcMonitorService qoo eS gc 228384 overhead
  • MIT 6.s081学习笔记

    MIT 6 s081学习笔记 introduction 计算机组织结构 最底部是一些硬件资源 包括了CPU 内存 磁盘 网卡 最上层会运行各种应用程序 比如vim shell等 这些就是正在运行的所有程序 它们都运行在同一个空间中 这个空间
  • BiseNet pytorch

    记录一下自己看BiseNet代码的过程 到目前只看了主要结构部分的代码 随便记录一下 class ConvBNReLU nn Module def init self in chan out chan ks 3 stride 1 paddi
  • 【C++】教你如何在中秋节给家人们画一个星空

    前言 将至中秋 想必大家都想给自己的家人们一个惊喜吧 今天就手把手地教大家如何用C 和Easyx画一个星空 效果图 一 准备Easyx 首先我们要前往Easyx官网下载安装程序 下载完成后打开程序 并点击 下一步 随后选择你的编辑器并点击
  • 全网都在找的GPT最权威的160条指令讲解

    看到有人发布了 全网都在找的GPT最权威的160条指令 实际上并不需要记住那么多指令 也没有必要记住160条Prompt 与ChatGPT进行交互最重要的是掌握Prompt的基本结构或模板 而不是记住所有的Prompt 一 基础用法 直接输
  • vue3子组件给父组件传参

    子组件传参 const emit defineEmits 自定义事件名字A 给父组件传参 emit 自定义事件名字A 数据 父组件接收参数 lt 子组件标签名 自定义事件名字A getRecentRecoding gt 父组件接收数据 fu
  • 【测试】软件测试的生命周期

    目录 1 软件测试的生命周期 2 如何描述一个bug 3 如何定义bug的级别 4 bug的生命周期 5 如何开始第一次测试 6 测试的执行和BUG管理 6 1 开始进行测试 6 2 BUG管理 1 软件测试的生命周期 软件测试的生命周期
  • linux系统下默认目录,linux系统默认的目录意思

    linux系统默认的目录意思 bin bin是binary的缩写 这个目录是对UNIX系统习惯的沿袭 存放着使用者最经常使用的命令 例如 cp ls cat boot 这里存放的是启动LINUX时使用的一些核心文件 dev dev是devi
  • DDPM模型——公式推导

    论文传送门 Denoising Diffusion Probabilistic Models 代码实现 DDPM模型 pytorch实现 推荐视频 54 Probabilistic Diffusion Model概率扩散模型理论与完整PyT
  • mmseg 安装

    mmseg 安装 文章目录 mmseg 安装 docker sh 基本mmcv mmseg等安装 Bugs ImportError libGL so 1 cannot open shared object file No such file
  • 简单聊一聊手机端口的识别协议-BC1.2

    关于BC1 2协议 每一个从事手机硬件设计的工程师都应该非常了解熟悉 其主要是为了充电端口的识别 然而关于这部分协议 网上有很多的讲解 有讲的很仔细的 也有讲的很粗糙的 小编也是为了学习这部分协议 翻阅了很多资料 最终决定将自己学到的结合自