【硬件介绍】Type-C接口详解
一、Type-C接口概述
- Type-C接口特点:以其独特的扁头设计和无需区分正反两面的便捷性而广受欢迎。这种设计大大提高了用户的使用体验,避免了传统USB接口需要多次尝试才能正确插入的问题。
- Type-C接口内部结构:内部上下两排引脚的设计虽然可能不对称,但这种布局巧妙地实现了接口的正反插功能,使得Type-C接口在物理连接上更为灵活和耐用。
在USB Type-C的生态系统中,DFP(Downstream Facing Port)和UFP(Upstream Facing Port)是两个重要的角色,它们定义了设备在USB Type-C连接中的供电和数据传输方向。
1、DFP(Downstream Facing Port)
- 定义:DFP是指供电方向朝向另一设备的USB端口,通常是一个电源提供者。
- 功能:
- 提供电源:DFP可以提供电源给连接的设备,如充电器、电脑的USB端口等。
- 数据传输:DFP可以发送和接收数据,但通常在供电角色中,它更多的是作为数据的主导者。
- 例子:
- 壁式充电器
- 电脑的USB Type-C端口
- USB Type-C扩展坞的供电端口
2、UFP(Upstream Facing Port)
- 定义:UFP是指供电方向从另一设备接收电源的USB端口,通常是一个电源消费者。
- 功能:
- 接收电源:UFP从DFP接收电源,用于给自身设备充电或供电。
- 数据传输:UFP也可以发送和接收数据,但通常在接收电源的角色中,它更多的是作为数据的从属者。
- 例子:
- 智能手机
- 平板电脑
- USB Type-C外接硬盘
3、USB Type-C连接中的角色分配
在一个USB Type-C连接中,设备可以通过以下方式进行角色分配:
- 角色协商:当两个设备通过Type-C电缆连接时,它们会通过CC引脚进行角色协商。DFP和UFP的角色不是固定的,设备可以根据需要和协商结果切换角色。
- 双角色端口(DRP):一些设备具有双角色端口,这意味着它们可以同时充当DFP和UFP。例如,笔记本电脑的USB Type-C端口可以在连接充电器时作为UFP接收电源,而在连接智能手机时作为DFP提供电源。
二、Type-C接口与USB的关系
- Type-C全名:USB Type-C,是USB(通用串行总线)接口标准的一部分,继承并扩展了USB技术的诸多特性。
- USB Type-A简介:作为最常见的USB接口类型,USB Type-A拥有四个引脚,采用USB2.0协议,提供了最高480MBit/s的传输速率,广泛应用于各种电子设备。
三、USB Type-C引脚功能详细说明
Type-C插座


Type-C插头


主要引脚功能包括:
GND(地线)和VBUS(电压总线)
提供电源连接,VBUS通常为5V,是USB接口的电源正极。
D+和D-
这两根线用于兼容USB2.0协议,通过差分信号传输数据,具有较好的抗干扰能力。
TX+、TX-、RX+、RX-
这四根线用于兼容USB3.0协议,实现更高的数据传输速率,最高可达10Gbit/s,支持全双工通信。
SBU(辅助信号线)
用于传输附加功能信号,如音频或视频信号。
- 音频传输:
当Type-C设备处于ALT MODE模式,进行DP信号传输时,SBU引脚可作为音频传输通道,将音频信号从设备传输到外部的音频设备,如耳机、扬声器等。
- 麦克风信号传输:
在进入TYPE-C模拟音频耳机附件模式时,SBU引脚可作为麦克风信号传输通道,将麦克风采集到的音频信号传输到设备中进行处理。
- 数据传输:
SBU2是数字信号的传输通道,主要用于传输数据和控制信号,其传输速度可以达到1.5Mbps,可用于传输数字音频、控制信号以及扩展的USB功能,如USB PD(快速充电协议)和DP(显示器端口),还能实现USB Alt Mode(可选模式)功能,使Type-C接口实现多种信号传输,扩展了其适用范围。
CC(配置通道)
用于识别插入方向和协商供电协议,是Type-C接口能够智能识别插入方向的关键。一般数据线中只有一根导线连接到了CC脚,因此通过判断哪根CC线上有下拉电阻来判断方向

| 插入状态 | CC1状态 | CC2状态 | 描述 |
|---|---|---|---|
| 正常插入 | 连接 | 开路 | 当Type-C公头正常插入母头时,CC1与电缆连接,CC2开路。 |
| 反向插入 | 开路 | 连接 | 当Type-C公头反向插入母头时,CC1开路,CC2与电缆连接。 |
| 未插入 | 开路 | 开路 | 当Type-C公头未插入母头时,CC1和CC2都是开路状态。 |
CC脚下拉电阻
CC脚需要下拉电阻,用于设备识别。如图所示:

下拉电阻阻值与功能对应表:
| 下拉电阻阻值 (kΩ) | 功能描述 |
|---|---|
| 5.1 | USB 2.0 设备或电缆(默认) |
| 10.1 | USB 3.1 或更高版本的设备或电缆 |
| 56 | 下行端口(DFP,例如,充电器或电脑的USB端口) |
| 22.7 | 上行端口(UFP,例如,智能手机或平板电脑) |
| 44.2 | 双角色端口(DRP,即可以作为供电端或接收端) |
| 75 | 被动电缆(不支持数据传输,仅供电) |
| 0 (开路) | 不确定角色,通常用于检测电缆的插入方向 |
四、Type-C接口种类
根据不同场景需求,Type-C有着各种版本与删减版本。
完整的Type-C是24个引脚,但由于其成本相对较高、工艺困难,因此Type-C还有各种减配版。
| 直插(立式) | 弯插 | 贴片 | 沉板 | |
| 2脚 |
|
| ||
| 4脚 | ![]() | ![]() | ![]() | ![]() |
| 6脚 | ![]() | ![]() | ![]() | ![]() |
| 12脚(16脚) | ![]() | ![]() | ![]() | ![]() |
| 24脚(完整) | ![]() | ![]() | ![]() | ![]() |
| 引脚定义 | ||
| 2脚 |
| ![]() |
| 4脚 |
| ![]() |
| 6脚 |
| ![]() |
| 12脚(16脚) |
| ![]() |
| 24脚(完整) |
| ![]() |
五、Type-C接口的硬件简化实例
- Type-C接口的硬件设计可能会根据用途的不同而有所简化,这体现在引脚数量的减少和功能的裁剪上。
- 公头和母头的简化设计:
- DP和DN分别代表D+和D-,用于数据传输。
- CC1和CC2通过接入5.1k下拉电阻来识别插入方向。
- VBUS通常作为5V供电使用,而SBU等非必需引脚可以根据需要进行省略。
- 这种硬件简化不仅有助于降低生产成本,还能使接口更加紧凑,适应更多样化的设备设计需求。
相关文章:
【硬件介绍】Type-C接口详解
一、Type-C接口概述 Type-C接口特点:以其独特的扁头设计和无需区分正反两面的便捷性而广受欢迎。这种设计大大提高了用户的使用体验,避免了传统USB接口需要多次尝试才能正确插入的问题。Type-C接口内部结构:内部上下两排引脚的设计虽然可能不…...
【Pandas】pandas Series rtruediv
Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…...
项目开发版本控制Git流程规范
个人&测试&预发布&生产分支命名 1)个人分支: 从sit或者master进行切出,姓名切出分支命名,或者日期切出分支命名 示例:liuys_sit、20250110_sit2)测试分支: sit3)用户验…...
STM32 : 波特率发生器
波特率发生器 1. 发送器和接收器的波特率 波特率寄存器 (BRR): 在串行通信中,发送器和接收器的波特率是由波特率寄存器(BRR)中的一个值 DIV 来确定的。 2. 计算公式 计算公式: 详细解释 1. 波特率寄存器 (BRR) BRR: 波特率寄存器是一…...
STM32 USB组合设备 MSC CDC
STM32 USB组合设备 MSC CDC实现 教程 教程请看大佬niu_88 手把手教你使用USB的CDCMSC复合设备(基于stm32f407) 大佬的教程很好,很详细,我调出来了,代码请见我绑定的资源 注意事项 值得注意的是: 1、 cu…...
继续以“实用”指导Pythonic编码(re通配表达式)(2024年终总结2)
弃现成工具手剥任务🧐,我哈哈滴就像笨笨的傻大个儿😋。 (笔记模板由python脚本于2025年01月12日 23:29:33创建,本篇笔记适合熟悉正则表达式的coder翻阅) 【学习的细节是欢悦的历程】 Python官网:https://www.python.or…...
Flutter使用BorderRadiusTween实现由矩形变成圆形的动画
BorderRadiusTween 是插值动画中,用于组件边框半径的类,专门作用于组件边框和半径动化过度。 这个类继承自Tween,用法相似。 下面是示例写法 class BorderRadiusTweenPage extends StatefulWidget {overrideState<StatefulWidget> c…...
VSCode 中的 launch.json 配置使用
VSCode 中的 launch.json 配置使用 在 VSCode 中,launch.json 文件用于配置调试设置,特别是用来定义如何启动和调试你的应用。它允许你配置不同的调试模式、运行参数和调试选项。 基本结构 launch.json 文件位于 .vscode 文件夹内,可以通过…...
深度学习张量的秩、轴和形状
深度学习张量的秩、轴和形状 秩、轴和形状是在深度学习中我们最关心的张量属性。 秩轴形状 秩、轴和形状是在深度学习中开始使用张量时我们最关心的三个属性。这些概念相互建立,从秩开始,然后是轴,最后构建到形状,所以请注意这…...
Redis有哪些常用应用场景?
大家好,我是锋哥。今天分享关于【Redis有哪些常用应用场景?】面试题。希望对大家有帮助; Redis有哪些常用应用场景? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 是一个高性能的开源键值对(Key-Va…...
vue3+ts+element-plus 输入框el-input设置背景颜色
普通情况: 组件内容: <el-input v-model"applyBasicInfo.outerApplyId"/> 样式设置: ::v-deep .el-input__wrapper {background-color: pink; }// 也可以这样设置 ::v-deep(.el-input__wrapper) {background-color: pink…...
Ubuntu 磁盘修复
Ubuntu 磁盘修复 在 ubuntu 文件系统变成只读模式,该处理呢? 文件系统内部的错误,如索引错误、元数据损坏等,也可能导致系统进入只读状态。磁盘坏道或硬件故障也可能引发文件系统只读的问题。/etc/fstab配置错误,可能…...
使用RSyslog将Nginx Access Log写入Kafka
个人博客地址:使用RSyslog将Nginx Access Log写入Kafka | 一张假钞的真实世界 环境说明 CentOS Linux release 7.3.1611kafka_2.12-0.10.2.2nginx/1.12.2rsyslog-8.24.0-34.el7.x86_64.rpm 创建测试Topic $ ./kafka-topics.sh --zookeeper 192.168.72.25:2181/k…...
通过Apache、Nginx限制直接访问public下的静态文件
一、Apache 在public目录下的.htaccess文件中添加如下规则,来拒绝除了指定文件类型之外的所有请求 <FilesMatch "\.(?!(jpg|jpeg|png|gif|css|js|ico)$)[^.]$">Order Allow,DenyDeny from all </FilesMatch> 上述配置表示仅允许访问.jpg …...
uniapp小程序中隐藏顶部导航栏和指定某页面去掉顶部导航栏小程序
uniappvue3开发小程序过程中隐藏顶部导航栏和指定某页面去掉顶部导航栏方法 在page.json中 "globalStyle": {"navigationStyle":"custom",}, 如果是指定某个页面关闭顶部导航栏,在style中添加"navigationStyle": "cus…...
Agile Scrum 敏捷开发方法
Agile Scrum 是一种敏捷开发方法,广泛用于软件开发以及其他项目管理领域。它强调迭代式的工作流程、团队协作、灵活应对变化和持续改进,旨在通过快速交付和反馈来最大化项目价值。Scrum 是 Agile(敏捷)方法中的一种具体实践框架&a…...
【算法与数据结构】—— 回文问题
回文问题 目录 1、简介2、经典的回文问题(1) 判断一个字符串是否为回文(2) 给定字符集求构建的最长回文长度(3) 求最长回文子串方法一:中心拓展方法二:Manacher 算法 (4) 求回文子串的数目方法一:中心拓展方法二:Manacher 算法 1、…...
用vscode写latex-1
一般大伙使用 LaTeX 大体有两种方案, 一种是在本地配置环境或使用本地的软件,如 vscode LaTeX,texlive,lyx 等等; 另一种是线上 LaTeX 平台,其中用的最多的是 Overleaf,还有一部分高校也有自…...
爬虫基础之爬取歌曲宝歌曲批量下载
声明:本案列仅供学习交流使用 任何用于非法用途均与本作者无关 需求分析: 网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载 (gequbao.com) 爬取 歌曲名 歌曲 实现歌手名称下载所有歌曲 本案列所使用的模块 requests (发送…...
GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目
1、查看gitlab版本 建议安装的runner版本和gitlab保持一致 2、查找runner 执行 yum list gitlab-runner --showduplicates | sort -r 找到符合gitlab版本的runner,我这里选择 14.9.1版本 如果执行出现找不到下载源,添加官方仓库 执行 curl -L &quo…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...






















