USB Type-C工作原理解析

自从苹果发布了新MacBook,USB Type-C接口就成为了热议对象。我来从硬件角度解析下这个USB Type-C,以便大家更好的了解USB Type-C的工作原理。
特色
尺寸小,支持正反插,速度快(10Gb)。这个小是针对以前电脑上的USB接口说的,实际相对android机上的microUSB还大了点:
USB Type-C:8.3mmx2.5mm
microUSB:7.4mmx2.35mm
lightning:7.5mmx2.5mm
所以,从尺寸上我看不到USB Type-C在手持设备上的优势。而速度,只能看视频传输是否需要了。

引脚定义

可以看到,数据传输主要有TX/RX两组差分信号,CC1和CC2是两个关键引脚,作用很多:
? 探测连接,区分正反面,区分DFP和UFP,也就是主从
? 配置Vbus,有USB Type-C和USB Power Delivery两种模式
? 配置Vconn,当线缆里有芯片的时候,一个cc传输信号,一个cc变成供电Vconn
? 配置其他模式,如接音频配件时,dp,pcie时

电源和地都有4个,这就是为什么可以支持到100W的原因。

不要看着USB Type-C好像能支持最高20V/5A,实际上这需要USB PD,而支持USB PD需要额外的pd芯片,所以不要以为是USB Type-C接口就可以支持到20V/5A。当然,以后应该会出现集成到一起的芯片。
辅助信号sub1和sub2(Side band use),在特定的一些传输模式时才用。
d+和d-是来兼容USB之前的标准的。
这里说一下,USB3.0只有一组RX/TX,速度是5Gb,USB Type-C为了保证正反都可以插就用了两组,但实际上数据传输还是只用了一组RX/TX,速度就已经达到10Gb了。如果后面升级协议,两组都传的话就和DisplayPort一样20Gb了。

工作流程

上图DFP (Downstream Facing Port)也就是主,UFP (Upstream Facing Port)为从。除了DFP、UFP,还有个DRP (Dual Role port),DRP可以做DFP也可以做UFP。当DPR接到UFP,DRP转化为DFP。当DRP接到DFP,DRP转化为UFP。两个DRP接在一起,这时就是任意一方为DFP,另一方为UFP。
在DFP的CC pin有上拉电阻Rp,在UFP有下拉电阻Rd。未连接时,DFP的VBUS是无输出的。连接后,CC pin相连,DFP的CC pin会检测到UFP的下拉电阻Rd,说明连接上了,DFP就打开Vbus电源开关,输出电源给UFP。而哪个CC pin(CC1,CC2)检测到下拉电阻就确定接口插入的方向,顺便切换RX/TX。
电阻Rd=5.1k电阻Rp为不确定的值,根据前面的图看到USB Type-C有几种供电模式,靠什么来甄别? 就靠Rp的值,Rp的值不一样,CC pin检测到的电压就不一样,然后来控制DFP端执行哪种供电模式
需要注意的是,上图里画了两个CC,实际上在不含芯片的线缆里只有一根cc线
含芯片的线缆也不是两根cc线,而是一根cc,一根Vconn,用来给线缆里的芯片供电(3.3V或5V),这时就cc端没有下拉电阻Rd,而是下拉电阻Ra,800-1200欧。

当CC pin两个都接了下拉电阻<=Ra,DFP进入音频配件模式,左右声道,mic都俱全,如上图。

USB Type-C和DisplayPort,PCIE
USB PD是BMC编码的信号,而之前的USB则是FSK,所以存在不兼容,不知道目前市面上有没有能转换的产品。
USB PD是在CC pin上传输,PD有个VDM (Vendor defined message)功能,定义了装置端ID,读到支持DP或PCIe的装置,DFP就进入替代(alternate)模式。
如果DFP认到device为DP,便切换MUX/Configuration Switch,让Type-C USB3.1信号脚改为传输DP信号。AUX辅助由Type-C的SBU1,SUB2来传。HPD是检测脚,和CC差不多,所以共用。
而DP有lane0-3四组差分信号,Type-C有RX/TX1-2也是四组差分信号,所以完全替代没问题。而且在DP协议里的替代模式,可以USB信号和DP信号同时传输,RX/TX1传输USB数据,RX/TX2替换为lane0,1两组数据传输,此时可支持到4k。
如果DFP认到device为DP,便切换MUX/Configuration Switch,让Type-C USB3.1信号脚改为传输PCIe信号。同样的,PCIe使用RX/TX2和SBU1,SUB2来传输数据,RX/TX1传输USB数据。
这样的好处就是一个接口同时使用两种设备,当然了,转换线就可以做到,不用任何芯片。
总结
USB Type-C终结了长期以来USB插来插去的缺陷,节省了人们大量的时间,换一次方向至少2s吧,按全球10亿人每天插拔一次USB,50%概率插错,共耗时277000多小时,约为31年,太恐怖了。
一个接口搞定了音视频数据三种,体积还算小。可以预见,以后安卓机可以改为USB Type-C接口了,如果只需要USB2.0的话,只需要重做线缆,不用芯片,成本上完全可以忽略不计。
至于Thunderbolt,lightning,该怎样还是怎样吧,毕竟百花齐放才是五彩的世界。

时间: 2024-08-14 07:19:37

USB Type-C工作原理解析的相关文章

Servlet 工作原理解析

-----转自许令波老师Servlet 工作原理解析  感觉写的很不错,保存下来,留着以后温习 从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力.虽然它们是彼此依存的,但是又相互独立发展,这一切都是为了适应工业化生产的结果.从技术角度来说是为了解耦,通过标准化接口来相互协作.既然接口是连接 Servlet 与 Servlet 容器的关键,那我们就

jQuery工作原理解析

jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的. 从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库. jQuery改变javascript编码方式! 那么它是如何实现它的声明的呢?这里,用以下的一段简短的使用流程: 1)查找(创建)jQuery对象:$(”selector”); 2)调用jQuery对象的方法完成我们需要完成的工作:$(”selector”).doOurWork(); ok,jQuery就是以这种可

【Java】Servlet 工作原理解析

Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求.本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是如何启动的? Servlet 容器如何解析你在 web.xml 中定义的 Servlet ?用户的请

Jetty的工作原理解析以及与Tomcat的比较

Jetty 的基本架构 Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler. Jetty 的基本架构 下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector 两个组件构成,整个 Server 组件是基于 H

LVS 工作原理解析

LVS即Linux Virtual Server,淘宝大牛章文嵩读博士时发起的开源软件项目,是性能非常好的四层负载均衡集群服务,Linux内核2.4以后已经被直接收录至内核. LVS的工作模式: 在了解工作模式之前首先要晓得为什么会有不同的工作模式,用户的请求进来会先发送到director(virtual server),然后director通过一定的调度算法把请求比较公平的分发到后端的real server,那么自然由real server响应回去给用户. 本文中提到的缩写解释: VIP: D

浏览器的工作原理解析

PART1 有关浏览器的内核 一.Trident内核,代表产品IE Trident内核又称为IE内核.是微软开发的一种排版引擎.1997年与IE4一起诞生.虽然它相对于其它浏览器核心还比较落后,但trident一直在被不断地更新和完善.而且除IE外,许多产品都在使用Trident核心,比如Windows的HELP程序.RealPlayer.Windows Media Player.Windows Live Messager.Outlook Express等. 使用此内核的其它浏览器有:IE.傲游

【Tomcat】Servlet 工作原理解析

Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求.本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个 Web 工程在 Servlet 容器中是如何启动的? Servlet 容器如何解析你在 web.xml 中定义的 Servlet ?用户的请

Velocity工作原理解析和优化

在MVC开发模式下,View离不开模板引擎,在Java语言中模板引擎使用得最多是JSP.Velocity和FreeMarker,在MVC编程开发模式中,必不可少的一个部分是V的部分.V负责前端的页面展示,也就是负责生产最终的HTML,V部分通常会对应一个编码引擎,当前众多的MVC框架都已经可以将V部分独立开来,可以与众多的模板引擎集成. Velocity总体架构 从代码结构上看,Velocity主要分为app.context.runtime和一些辅助util几个部分. APP模块 其中app主要

SharePoint Client Object Model API 介绍以及工作原理解析

COM和ServerAPI 的对比 SharePoint从2010开始引入了Client Object Model的API(后文中用COM来代替),从名字来看,我们可以简单的看出,该API是面向客户端的应用程序的.有这个这套API,使得所有SharePoint的终端用户 可以开发自己的应用程序来访问,修改SharePoint.下面的列表简述了COM和Server API的区别:   COM Server 运行端 可以在任何能够访问SharePoint的机器上运行 可以再浏览器上,.Net应用程序