TYPE-C USB设计
目录
摘要
TYPE-C电路
握手过程
USB电路
摘要
TYPE-C,是USB的一种接口,USB的第一种接口为常见的USB接口,U盘即为这种接口;第二种接口的形状类似一个凸字,常应用在打印机中,第三种接口即为TYPE-C,支持正反插,支持PD,全称是Power Delivery,功率传输协议,即快速充电标准,截至今天,非常广泛应用在笔记本电脑、手机当中,是一种被看好的接口。
TYPE-C电路
UFP:Upstream Facing Port,面向上行端口,可以理解成Device,如U盘。
DFP:Downstream Facing Port,面向下行端口,可以理解成Host/HUB。
DRD:Dual-Role-Data,双角色数据端口,既可以是DFP,也可以是UFP。
Source:通过Vbus供电的端口。
Sink:通过Vbus耗电的端口。
DRP:Dual-Role-Power,双角色电源端口,可以成为Source或Sink
下图为其引脚图:

下图模式为Source对Sink的连接示意图:

源端将CC1、CC2上拉至5V,当Sink接入的时候,由于两个Rd电阻的作用,CC1、CC2的电位将发生变化,此时源端检测到了这个变化,打开MOS管,输出5V。
Source端的Rp的大小指示着Source端的供电能力。
Sink检测到Vbus为5V时,判断Source已连接;
Sink通过判断Rp的大小来判断Source的供电能力。
DPR,即可以当作Source,也可以当作Sink,即Rp、Rd都存在且可调。
为了实现这个功能,CC引脚不断拉高拉低,此时CC引脚为矩形波。
当CC脚下拉到GND时,识别过程与Sink一致;
当CC脚上拉至5V时,识别过程同Source一致;
握手过程

USB2.0考虑最高速率只有480Mbps,无需使用MUX芯片作为切换,将其A面的D+、D-分别与B面的D+、D-短接;USB3.0速率最低5Gbps,短接会被信号质量造成很大的影响,需要使用MUX芯片作为切换
正插时,CC1连接,CC2不连接,选择TX1/RX1;反插时,CC2连接
,CC1不连接,选择TX2/RX2。
1、CC中成功进入Alternater Mode中Display Port
2、UFP准备好EDID后,拉高HPD,在CC中发起Display Attention(HPD_High)
3、DFP通过CC读DPCD(DP配置数据),获取UFP的链路信息,如lane的数目、链路速率等
4、DFP读取EDID
5、DFP开始training,过程中通过调整电压摆幅、预加重
6、training成功后,DFP通过每lane送数据至UFP
USB电路
什么是Host、Device?OTG又是什么?
拿电脑和U盘做例子,U盘插入电脑,这个时候电脑就是Host,U盘就是Device。
OTG技术就是在没有Host的情况下,实现设备间的数据传送。例如数码相机直接连接到打印机上,通过OTG技术,连接两台设备间的USB口,将拍出的相片立即打印出来;也可以将数码照相机中的数据,通过OTG发送到USB接口的移动硬盘上,野外操作就没有必要携带价格昂贵的存储卡,或者背一个便携电脑。
下表是USB3.0和USB2.0的部分参数对比:
| USB3.0 | USB2.0 | ||||
| 速度模式 | Super Speed | High Speed | Full Speed | Low Speed | |
| 最大传输速率 | 5.0Gbps | 480Mbps | 12Mbps | 1.5Mbps | |
| 线缆最大长度 | NA | 5米 | |||
| 编码方式 | 8B/10B | NRZI | |||
| 传输模式 | 全双工 | 半双工 | |||
| 线缆信号个数 | 6个(TX+、TX-、RX+、RX-、D+、D-) | 2个(D+、D-) | |||
| 信号电平 | 单端:400mV差分:800mV | 400mV±10% | 3.3V±0.5V | ||
| 传输线阻抗要求 | 90Ω ± 7Ω | 90Ω ±15% | |||
| 上升时间要求 | <200ps | 400~500ps | 4~20ns | 75~300ns | |
USB是如何判断Device是属于High Speed、Full Speed还是Low Speed的?
Low Speed:在USB Device端有一个1.5K电阻接在D-到VCC上;
High Speed、Full Speed:在USB Device端有一个1.5K电阻接在D+到VCC上;
可以这样记,速度快的上拉D+,速度慢的上拉D-。
Device切换到高速模式后,内部硬件会发生如下变化:
1、断开1.5K上拉电阻。
2、连接D+/D-上的45欧终端电阻。
3、进入高速状态。
USB Hub是一个让多个USB设备连接到一个上行设备USB口的设备。
USB Switch是一对多的切换开关,可以让USB信号在不同HOST间进行切换。电路上USB Switch的选取需要关注哪些参数呢,一般包括供电电压、电平幅度、导通时间、寄生电容和导通电阻。
Redriver是一个可以对输入信号进行接收均衡、对输出信号进行预加重、去加重的器件,如下图。

PCB布局放在HOST和Device的中间。
当我们的板卡上存在多个Hub,Device,我们尽量要保证这样的上电顺序:Host —> Hub —> Device依次上电,原因是,如果反向上电,Host最后上电的话,Host一上电就发现有这么多的“负载”,对其来说无疑是一种压力,有识别出错的风险,而先给Host上电的话,每一步通电,Host所感知到的负载较少,其更容易“适应”,出错率更低!
相关文章:
TYPE-C USB设计
目录 摘要 TYPE-C电路 握手过程 USB电路 摘要 TYPE-C,是USB的一种接口,USB的第一种接口为常见的USB接口,U盘即为这种接口;第二种接口的形状类似一个凸字,常应用在打印机中,第三种接口即为TYPE-C,支持正…...
Python炒股自动化,怎样理解股票交易性质
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
Vue2 day-02
目录 一. Vue脚手架(Vue CLI) 1.1 安装新版本的Vue脚手架vue/cli 1.2 用命令创建Vue项目 1.2.1 命令创建vue项目 1.2.2 默认创建 1.2.3 自定义创建 1.2.4 基于ui界面创建Vue项目 1.3 分析Vue脚手架生成的项目结构及代码执行 1.3.1 默认创建文件结构 1.3.2 分开放置文…...
什么?!新版 Node.js V22.5 自带 SQLite 模块啦
前言 2024年7月,Node.js V22.5.0 版本发布,自带了 SQLite 模块,意味着开发者可以直接在程序中使用 SQLite 数据库,而无需引入第三方库👍。 话不多说,感觉来体验一波✈。 安装/升级 我现在用的是21.4.0版…...
Maven持续集成(Continuous integration,简称CI)版本友好管理
从Maven 3.5.0-beta-1 版本开始可以在pom文件中使用 r e v i s i o n 、 {revision}、 revision、{sha1}、${changelist}做为版本的占位符。 一、单module简单使用${revision}的场景 <project><modelVersion>4.0.0</modelVersion><parent><groupId…...
EvoSuite使用总结
1.安装EvoSuite插件 以IDEA为例,在Plugins栏搜索EvoSuite后点击install,安装完成后重启IDEA 2.使用EvoSuite 选中文件右键选择Run EvoSuite 生成成功可以看到如下提示: 注意事项: 生成路径:src/test/java 使用juni…...
Cortex-A7:简单中断处理(不可嵌套中断)机制
0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A…...
k8s HPA
水平自动扩容和缩容HPA HPA全称Horizontal Pod Autoscaler,即pod水平自动伸缩。HPA可以基于CPU利用率对replication controller、deployment和replicaset中的pod数量进行自动扩缩容(除了CPU利用率,也可以基于其他应用程序提供的度量指标cust…...
5G移动网络运维实验(训)室解决方案
随着第五代移动通信技术(5G)的快速普及和工业互联网的迅猛发展,全球制造业正面临着前所未有的深刻变革。5G技术凭借其超高的传输速率、极低的延迟以及大规模的连接能力,为工业自动化、智能制造等领域带来了革命性的技术支持。为了…...
单片机学习笔记
一、单片机帝国的诞生与发展 1.1 单片机的基本概念 单片机是一种集成电路芯片,采用超大规模的集成电路把具有数据处理功能的中央处理器存储器、输入输出端口、外围电路和相关外设集成在一块硅片上构成一个小而完整的微型计算机系统。 一般而言,单片机也…...
SpringBoot中@Value获取值和@ConfigurationProperties获取值用法及比较
SpringBoot中Value获取值和ConfigurationProperties获取值用法及比较 更新时间:2024年08月08日 09:41:48 作者:岳轩子 在Spring Boot中,Value注解是一个非常有用的特性,它允许我们将外部的配置注入到我们的Bean中,ConfigurationProperties用于将配置文件…...
执行任务赚积分
题目描述 现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限,请问…...
使用TLS解决Docker API暴露2375端口的问题
问题起因 由于本人开发环境是在 Windows,开发完成后需要使用 Dockerfile 打包镜像,这个过程需要有一个 Docker 服务完成,Windows 安装 Docker 会影响到很多环境,我又不想本地开虚拟机使用 Docker,于是我就索性使用服务…...
Pyspark中catalog的作用与常用方法
文章目录 Pyspark catalog用法catalog 介绍cache 缓存表uncache 清除缓存表cleanCache 清理所有缓存表createExternalTable 创建外部表currentDatabase 返回当前默认库tableExists 检查数据表是否存在,包含临时视图databaseExists 检查数据库是否存在dropGlobalTemp…...
聚焦2024数博会|与天空卫士一起探索AI与数据安全的融合应用
中国国际大数据产业博览会(简称数博会),是全球首个以大数据为主题的博览会,自2015年创办以来,经过多年的深厚沉淀,数博会已发展成为国际知名、引领前沿趋势的专业展示合作平台。 2024年8月28日至30日&#…...
实战docker第二天——cuda11.8,pytorch基础环境docker打包
在容器化环境中打包CUDA和PyTorch基础环境,可以将所有相关的软件依赖和配置封装在一个Docker镜像中。这种方法确保了在不同环境中运行应用程序时的一致性和可移植性: Docker:提供了容器化技术,通过将应用程序及其所有依赖打包在一…...
企业数字化转型的利器:RFID资产管理系统
在当今数字化时代,资产管理的效率和精确度对企业的成功至关重要。常达智能物联的RFID资产管理系统,凭借其高效、智能的管理方式,成为众多企业在数字化转型中的关键工具。 RFID资产管理系统的核心优势 一、精准资产定位与追踪 常达智能物联的…...
matplotlib中文乱码问题
在使用Matplotlib进行数据可视化的过程中,经常会遇到中文乱码的问题。显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导…...
提高开发效率的实用工具库VueUse
VueUse中文网:https://vueuse.nodejs.cn/ 使用方法 安装依赖包 npm i vueuse/core单页面使用(useThrottleFn举例) import { useThrottleFn } from "vueuse/core"; // 表单提交 const handleSubmit useThrottleFn(() > {// 具…...
【数据结构】你真的学会了二叉树了吗,来做一做二叉树的算法题及选择题
文章目录 1. 二叉树算法题1.1 单值二叉树1.2 相同的树1.3 另一棵树的子树1.4 二叉树的遍历1.5 二叉树的构建及遍历 2. 二叉树选择题3. 结语 1. 二叉树算法题 1.1 单值二叉树 https://leetcode.cn/problems/univalued-binary-tree/description/ 1.2 相同的树 https://leetco…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
用 FFmpeg 实现 RTMP 推流直播
RTMP(Real-Time Messaging Protocol) 是直播行业中常用的传输协议。 一般来说,直播服务商会给你: ✅ 一个 RTMP 推流地址(你推视频上去) ✅ 一个 HLS 或 FLV 拉流地址(观众观看用)…...
Qt学习及使用_第1部分_认识Qt---Qt开发基本流程
前言 学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面. 参考书:<Qt 6 C开发指南>(以下称"本书") 标识说明:概念用粗体倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字), 本书原话内容用深蓝色标识,比较重要的内容用加粗倾…...
