USB Type-C的基本原理
1 USB Type-C的基本原理
1.1 基本特性
Figure 1-1 USB Type-C接头外形
USB Type-C(简称USB-C)的基本特性:
1. 接口插座的尺寸与原来的Micro-USB规格一样小,约为8.3mm X 2.5mm
2. 可承受1万次反复插拔
3. 支持正反均可插入的“正反插”功能
4. 最大传输速度10Gb/s,即是USB 3.1 Gen2标准
5. 配备USB-C连接器的标准规格连接线可通过3A电流,同时还支持超出现有USB供电能力的USB Power Delivery,可以最大提供100W电力(20V/5A)
1.2 引脚定义
Figure 1-2 引脚定义
母口:
公头:
Figure 1-3 引脚映射图
1.3 USB-C设备识别方法
Figure 1-4 USB-C设备识别方法
电阻和充电电流映射如Table 1-1所示。
Table 1-1 USB-C Rp和Rd具体值(以上拉电压5V为例)
1.4 正反可插原理
Figure 1-5 正反可插图示
1.5 DRP设备如何工作
Figure 1-6 DRP设备电路原理图
DRP状态机伪代码示例如下所示(该示例伪代码状态机来源于P124 Figure 4-15 of USB Type-C Specification Release 1.1),为便于理解下一章节讲述的USB PD,所以也加入了USB PD的简单状态。
drp_toggle_timeout = 50ms;
tc_sm(void *arg)
{
switch (state) {
case UFP_STATE_DETACHED:
if (DFP连接) {
state = UFP_STATE_ATTACHED_DEBOUNCE;
debounce_timeout = 100ms;
} else if (drp_toggle_timeout) {
set_drp_mode(CC电阻上拉);
state = DFP_STATE_DETACHED;
}
break;
case UFP_STATE_ATTACHED_DEBOUNCE:
if (DFP仍然连接) {
state = UFP_STATE_ATTACHED;
} else {
state = UFP_STATE_DETACHED;
}
break;
case UFP_STATE_ATTACHED:
// TODO
state = UFP_STATE_DISCOVERY;
break;
case UFP_STATE_DISCOVERY:
// TODO: PD negotiate
break;
[...]
case DFP_STATE_DETACHED:
if (UFP连接) {
state = DFP_STATE_ATTACHED_DEBOUNCE;
debounce_timeout = 100ms;
} else if (drp_toggle_timeout) {
set_drp_mode(CC电阻下拉);
state = UFP_STATE_DETACHED;
}
break;
case DFP_STATE_ATTACHED_DEBOUNCE:
if (UFP仍然连接) {
state = DFP_STATE_ATTACHED;
} else {
state = DFP_STATE_DETACHED;
}
break;
case DFP_STATE_ATTACHED:
// TODO
state = DFP_STATE_DISCOVERY;
break;
case DFP_STATE_DISCOVERY:
// TODO: PD negotiate
break;
} // end of switch
}
1.6 防伪以及线缆验证
Figure 1-7 eMarker(EMCA)原理简介
Question:USB-C的接口是否一定要IC支持?
2 Abbreviations
ARC:Argonant RISC Core
AT91SAM9260:SAM means Smart ARM-based Microcontroller
ATMEL SAMBA:ATMEL Smart ARM-based Microcontroller Boot Assistant
DWC2:Design Ware Controller 2,Apple的嵌入式设备,包括iPad和iPhone都是使用的DWC2
ISP1161:Philips' Integrated host Solution Pairs 1161,“Firms introduce USB host controllers”,https://www.eetimes.com/document.asp?doc_id=1290054
SL811HS:Cypress/ScanLogic 811 Host/Slave,性能上与ISP1161(Integrated host Solution Pairs 1161)相当
TDI:TransDimension Inc.,该公司首先发明了将TT集成到EHCI RootHub中的方法,这样对于嵌入式系统来说,就省去了OHCI/UHCI的硬件,同时降低了成本,作为对该公司的纪念,Linux内核定义了宏ehci_is_TDI(ehci)
TT:Transaction Translator(事务转换器,将USB2.0的包转换成USB1.1的包)
相关文章:
USB Type-C的基本原理
1 USB Type-C的基本原理 1.1 基本特性 Figure 1-1 USB Type-C接头外形 USB Type-C(简称USB-C)的基本特性: 1. 接口插座的尺寸与原来的Micro-USB规格一样小,约为8.3mm X 2.5mm 2. 可承受1万次反复插拔 3. 支持正反均可插入的“正反…...
HarmonyOS开发(八):动画及网络
1、动画概述 在ArkUI中,产生动画的方式是改变组件属性值并且指定相关的动画参数。当属性值发生变化后,按照动画参数,从原来的状态过渡到新的状态,就形成一个动画。 动画的相关参数如下: 属性名称 属性类型 默认值 …...
Pinctrl子系统和GPIO子系统
Pinctrl子系统: 借助Princtr子系统来设置一个Pin的复用和电气属性; pinctrl子系统主要做的工作是:1. 获取设备树中的PIN信息;2.根据获取到的pin信息来设置的Pin的复用功能;3.根据获取到的pin信息去设置pin的电气特性…...
Unittest单元测试框架之unittest构建测试套件
构建测试套件 在实际项目中,随着项目进度的开展,测试类会越来越多,可是直到现在我 们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的,在 unittest中可以通过测试套件来解决该问题。 测试套件&…...
Django回顾4
一.过滤器 1.过滤器格式 {{变量|过滤器名字}} 2.怎么使用 1.注册app 2.在app下创建templatetags模块(模块名只能是templatetags) 3.在包下写一个py文件,随便命名 4.在py文件中写入:from django import template …...
Apache APISIX 体验指南
APISIX 体验指南 所有的 sh 脚本通过 git bash 执行。 出现错误仔细核对文档。 github 地址: 使用 docker 安装 apisix 确保本地安装 Docker 和 Docker-compose 如未安装参开以下文档安装: Docker:https://docs.docker.com/engine/install/c…...
Promise的resolve和reject方法(手写题)
1.resolve 2.reject 3.手写 1.resolve //构造函数上添加 resolve 方法 Promise.resolve function (value) {return new Promise((resolve, reject) > {if (value instanceof Promise) {value.then((val) > {resolve(val)},(err) > {reject(err)})} else {resolve(v…...
关于wiki的Unlink攻击理解--附例题BUUCTF-hitcontraining_bamboobox1
堆机制我研究了很久,一直没有什么很大的进展。堆相较于栈难度大的多。利用手法也多。目前还没有怎么做过堆题。这次就把理解了很久的Unlink写一写。然后找一题实践一下。 在glibc中,堆管理都是用一个个chunk去组织的。这个就不过多阐述。Unlink是glibc一…...
【linux】日志有哪些
Linux系统日志主要有以下几种类型: 内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中设置决定内核消息及各种系统程序消息记录到什么位置。/var/log/message:该日志文件存放了内核消息…...
Redis主从复制实现RCE
文章目录 前置知识概念redis常用命令redis module 利用条件利用工具思路例题 [网鼎杯 2020 玄武组]SSRFMe总结 前置知识 概念 背景是多台服务器要保存同一份数据,如何实现其一致性呢?数据的读写操作是否每台服务器都可以处理?这里Redis就提供…...
Flutter应用程序的加固原理
在移动应用开发中,Flutter已经成为一种非常流行的技术选项,可以同时在Android和iOS平台上构建高性能、高质量的移动应用程序。但是,由于其跨平台特性,Flutter应用程序也面临着一些安全风险,例如反编译、代码泄露、数据…...
Centos7部署NFS
搭建NFS存储服务器--基于CentOS7系统 - jianmuzi - 博客园 在CentOS中搭建NFS - 陌上荼靡 - 博客园 NFS简介 NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它最早是由 Sun 公司发展出来的,也是 FreeBSD 支持的文件系统…...
我已经开了一个融资融券的账户了,还可以再在别的券商开两融(信用账户)吗?
融资融券交易又称“证券信用交易”或保证金交易,是指投资者向具有融资融券业务资格的证券公司提供担保物,借入资金买入证券(融资交易)或借入证券并卖出(融券交易)的行为。 简单说就是融资做多,…...
Spring Cloud 版本升级记:OpenFeignClient与Gateway的爱恨交织
Spring Cloud 版本升级记:OpenFeignClient与Gateway的爱恨交织 近日,在负责的项目中,我对 Spring Boot、Spring Cloud 以及 Spring Cloud Alibaba 进行了版本升级。原以为会一切顺利,没想到却遭遇了 Spring Cloud Gateway 无法正…...
华为OD机试 - 最多购买宝石数目(Java JS Python C)
题目描述 橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i] 0 ≤ i < nn = gems.length宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续; 例如客户最大购买宝石个数为m,购买的宝石编号必须为:gems[i],gems[i+1],...,ge…...
【LeetCode】挑战100天 Day17(热题+面试经典150题)
【LeetCode】挑战100天 Day17(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-192.1 题目2.2 题解 三、面试经典 150 题-193.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&…...
正则表达式的基本语法
1.正则表达式基本语法 两个特殊的符号^和$。他们的作用是分别指出一个字符串的开始和结束。例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等)࿱…...
使用visual Studio MFC 平台实现对灰度图添加椒盐噪声,并进行均值滤波与中值滤波
平滑处理–滤波 本文使用visual Studio MFC 平台实现对灰度图添加椒盐噪声,并进行均值滤波与中值滤波 关于其他MFC单文档工程可参考 01-Visual Studio 使用MFC 单文档工程绘制单一颜色直线和绘制渐变颜色的直线 02-visual Studio MFC 绘制单一颜色三角形、渐变颜色边…...
Django HMAC 请求签名校验与 Vue.js 实现安全通信
概要 在 Web 应用的开发过程中,确保数据传输的安全性和完整性是一个不容忽视的问题。使用 HMAC(Hash-based Message Authentication Code)算法对请求内容进行签名校验,是一种常见且有效的安全策略。本文将详细介绍如何在 Django …...
深度学习之循环神经网络
视频链接:6 循环神经网络_哔哩哔哩_bilibili 给神经网络增加记忆能力 对全连接层而言,输入输出的维数固定,因此无法处理序列信息 对卷积层而言,因为卷积核的参数是共享的,所以卷积操作与序列的长度无关。但是因为卷积…...
如何快速编辑虚幻引擎游戏存档?uesave-rs终极指南
如何快速编辑虚幻引擎游戏存档?uesave-rs终极指南 【免费下载链接】uesave Rust library and CLI to read and write Unreal Engine save files 项目地址: https://gitcode.com/gh_mirrors/ue/uesave 你是否曾经想修改游戏存档却无从下手?当面对虚…...
OpenClaw(小龙虾AI)Windows一键部署包v2.7.5|零代码+可视化操作
适配系统:Windows10 64 位(纯小白友好版) 核心优势:免命令行、免环境配置、解压即装,内置所有运行依赖,全程可视化操作,新手也能一次成功部署 2026 爆火的开源 AI 智能体! 本文专属…...
经手100万+终端后,聊聊校园门锁Sub-1G和Cat.1怎么选
做校园联网门锁项目的人大概都遇到过这个纠结:组网方案到底选Sub-1G还是4G Cat.1?我们团队(KEENZY中科易安)经手了100万在线终端的运行数据,可以明确地说——两种方案没有绝对的优劣,只有场景是否匹配。选错…...
告别演讲焦虑:PPTTimer如何让时间管理变得简单智能
告别演讲焦虑:PPTTimer如何让时间管理变得简单智能 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 你是否曾在重要演讲时频繁看表,担心时间不够用?是否在PPT演示中因时间控制…...
ImageGlass完整指南:高效轻量的Windows图片查看神器
ImageGlass完整指南:高效轻量的Windows图片查看神器 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows系统自带的图片查看器功能单一而烦恼…...
微信小程序互助交流
微信小程序互助群 你开发了一个微信小程序, 准备接广告, 卡在了 500 个 UV 这里, 想找大佬帮忙,结果大佬说要收一张费—— 于是我建了一个微信群, 大家互助,免费入群,入群条件: 每人…...
【紧急预警】ElevenLabs 2024 Q3瑞典文语音许可证变更:3类商业场景已触发合规风险,附欧盟GDPR语音数据处理自查清单
更多请点击: https://codechina.net 第一章:ElevenLabs瑞典文语音许可证变更的合规背景与影响速览 2024年第三季度,ElevenLabs正式更新其语音合成服务的区域许可政策,将瑞典语(sv-SE)语音模型纳入欧盟《人…...
基于 PyTorch 的 TransU-Net 模型进行不同城市建筑物的精准提取 来继续遥感图像语义分割
基于 PyTorch 的 TransU-Net 模型进行不同城市建筑物的精准提取 来继续遥感图像语义分割 遥感图像语义分割,遥感建筑物数据集,基于Pytorch框架,针对不同城市建筑物精准提取。 遥感图像中包含丰富的地理空间信息,从遥感图像中了…...
免费解密网易云音乐NCM格式:ncmdumpGUI完整使用指南
免费解密网易云音乐NCM格式:ncmdumpGUI完整使用指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否在网易云音乐下载了喜欢的歌曲ÿ…...
利用Taotoken模型广场为不同AI应用场景挑选最合适的模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken模型广场为不同AI应用场景挑选最合适的模型 在构建AI驱动的应用时,一个常见的挑战是如何为不同的功能模块…...
