USB-C(USB Type-C)规范的简单介绍和分析
作者:wowo 发布于:2017-12-18 16:18
分类:USB
1. 前言
从1996年1月USB1.0正式发布至今(2017年9月 USB3.2发布),USB已经走过了21个年头。在这21年的时间了,USB标准化组织(USB Implementers Forum,USB-IF)折腾出来了各式各样、五花八门的接口形态:Type A、Type A SuperSpeed、Type B、Type B SuperSpeed、Mini-A、Mini-B、Micro-A、Micro-B、Micro-B SuperSpeed、Type C等等。
另外,USB接口主要由插座(Receptacle)、插头(Plug)和线缆(Cable)三部分组成,再叠加上这些奇奇怪怪的规范,灾难就发生了: A产品喜欢用Type A的插座,B产品偏偏喜欢Type B,连接它们的线缆就悲剧了,只能变成A-to-B的了。以此类推,A-to-A、B-to-B、A-to-MicroA、等等,于是我们的抽屉就挤满了各种不明用途的USB线……
好吧,吐槽时间结束,因为本文的主角不是过去的那些奇奇怪怪的接口,而是最新的、红到发紫的USB-C(也称作USB Type C)规范。提起typec,它还真和它的A、B前辈们不太一样: 因为它有自己独立的、自行演化的规范文件----USB Type-C Specification(2014年发8月布1.0版本,2017年7月发布1.3版本)。而前辈们就没有这样的待遇了,它们都依附于具体的USB规范(USB 1.0、USB 1.1、USB 2.0、等等)。
为什么会这样的呢?当然是因为它有独特之处了,具体请参考本文后续的描述。
2. 概述
我们接着上面的问题讲。
Type C之前的规范(Type A、Type B、等等),偏重于USB接口的“硬”的特性,如信号的个数、接口的形态、电气特性、等等,这些特性一旦固定,就没有更改的需求了,这就导致了: 1)这些接口规范不需要单独存在(因为没有更新、演化的要求),“随便”在USB规范的哪个章节交代一下就行了。
2)同时存在五花八门、种类繁多的接口(因为不能更新、演化啊,一旦新需求出现,只能再搞一个新的了)。
到USB Type C的时候,USB标准化组织的这些家伙突然开窍了(管他主动开窍还是被动开窍,反正是开窍了),在定义USB接口“硬”的特性的基础上,增加了一些“软”的内容,一下子就海阔天空了。至此,USB接口(仅仅指Type C)摆脱了和USB的从属关系,变成了一个可以和USB规范平起平坐的新规范。
大家估计会很好奇,这家伙到底Get了什么新技能,从而成功上位了呢?让我们简单总结一下(注意其中黄色高亮部分): ▲ 定义一套新的接口形态(Receptacle/Plug/Cable)
▲ 插座(Receptacle)可以用在很薄的电子设备上,因为它的高度只有3mm
▲插头(Plug)更容易使用了,可以正着插、反着插、随便插、想怎么插怎么插,终于不再反人类了(想想之前,插一个U盘到电脑中:哦,好像插不进去,反过来试试;嗯?还是插不进去,再反过来试试;噢!终于插进去了……流汗中……)
▲ 线缆(Cable)也更容易使用了,两端一模一样(当然,为了兼容、转接旧有规范的除外),也是想怎么插就怎么插
▲ 插头(Plug)和线缆(Cable)的改进,并不是一个空手套白狼的买卖,是要付出代价的,因为需要一个称作“Configuration Process”的过程解决如下的两个问题:
□ 插头可以随便插,因而需要一套检测插入方向的机制,并可以通过插入方向动态的map管脚信号以便进行后续的通信
□ 线缆的两端一模一样,就无法区分所连接的两个USB设备的角色(Host or Device、等等),因而需要一套协商机制,以便让两端的USB设备进行角色的沟通
▲ 以上的“Configuration Process”是使用两个称作CC(CC1和CC2)的管脚进行的,利用不同电压,传递一些简单的信息,以满足上面的需求。
□ 后来,一个称作U