从柜子里翻出了十几年前购买的笔记本,看着这台笔记本密密麻麻的接口,再看看我现在的华为轻薄笔记本,感觉这完全是两个世纪的产物。十几年前太长,我又翻出了四年前购买的一台惠普 360PC 平板二合一,也感觉和现在的这台轻薄本完全不一样。不一样的地方就在于,我找来找去都找不到一个 TYPE-C 的 USB 接口。我想 TYPE-C 发展的这几年对于我们的工作方式改变的实在是太大了。

 

 

1.TYPE-C 和 USB3.0

“TYPE-C 绝对不是 USB3.0,这一点一定要清楚,TYPE-C 只不过是 USB 接口外形的一种形状,它是叫做 C 类型,所以被称为‘TYPE-C’”。这段话我之前和我一个朋友解释过,爱抬杠的他总是不服输的会来杠一下,“那么为什么没有‘TYPE-A’和‘TYPE-B’?”他又杠到。此问题一出,我瞬间抛出科普知识的态度,准备打其脸。USB 不仅有 TYPE-C,还有 TYPE-A 和 TYPE-B。我们来看一下自己的优盘,大多数优盘是一个方形 USB 插头,这种方形的 USB 插头就是 TYPE-A。

 

图 2 USB-A 接口


而我们工业上面常用到的那种长方形的 USB 接口,就是 TYPE-B 类型的 USB 口了,这种接口在日常生活中用的比较少,但是在一些工业应用,或者在某些打印机上面用的很多,比如我的 51 单片机开发板,还有惠普的打印机。其形状可以参考图 3。

 

图 3 TYPE-B 接口


大家可以注意自己手中的以前的 USB 数据线,一般都是一头是 USB 的插头,另一头是 Mini USB 或者 Micro USB 的接头。如图 4 所示。

 

图 4 传统 USB 线


好了,现在又仔细阅读的读者可能就有疑问了,这里的 Mini USB 和 Micro USB 算是 TYPE what?这里就要说到 USB 的主从模式了,我们用 USB 线把手机连到笔记本上面时,手机会提示你是否作为存储介质,一旦当你选定好之后,那么这个 USB 通讯就被建立起来了,此时手机扮演的角色是 USB 从机(Slave),而笔记本电脑扮演的是 USB 主机(Host)。而以前的 USB 通讯中,主机上面用到的都是标准的 USB TYPE A 接口,从机上面的都是 Mini USB 或者 Micro USB 接口。但是,随着智能手机的发展,手机再也不单单只是一个笔记本的附属产品了,我们可以将手机变成一台台式电脑,插上鼠标,键盘,就可以使其像电脑一样处理我们工作中的邮件,文档,PPT 等等事务。换句话说,手机上面的 USB 也是可以扮演 USB 主机的角色,因此,从 2015 年苹果第一次将 TYPE C 用到 Macbook 上面之后,越来越多的 TYPE C 接口被放到了手机上,这也就导致了我们现在对这种新型的 USB 都简称为 TYPE C 接口。


而 USB3.0 和 USB2.0 的区别又是另外一回事情了。我相信绝大多数人接触 USB 都是从 USB2.0 时代开始的,它需要四根线来进行数据传输,即 VBUS,D+,D-,GND。其中这里的 D+和 D- 是一对差分线,由于这些线都是按照某一个特定顺序排列的,因此在使用时绝对不能插反。最终导致了 Mini USB 和 Micro USB 这两种防呆接口的诞生。

 

图 5 USB2.0 引脚及定义


而 USB3.0 为了大大提高传输效率,因此在原有的 USB2.0 四线制的基础上,又增加了一组超级差分线,用来传输数据。

 

图 6 USB3.0 引脚及定义

 

2.USB3.1 和 TYPE C

USB 3.1 Gen2 是最新的 USB 规范(USB4.0 也快来了),该规范由英特尔等公司发起。数据传输速度提升可至速度 10Gbps。与 USB 3.0(即 USB 3.1 Gen1)技术相比,新 USB 技术使用一个更高效的数据编码系统,并提供一倍以上的有效数据吞吐率。它完全向下兼容现有的 USB 连接器与线缆。2008 年 11 月 12 日 USB 3.0 推出之后,SuperSpeed 带来了 5Gbps 高速传输效能,附加提供 5V/0.9A 电源。随着传输速率的要求提高,加上也希望能提升供电能力,2013 年 1 月 6 日 USB IF 协会(USB Implementers Forum)正式宣布要推出新的 USB 3.0 加强版(即 USB 3.1)。2013 年 7 月 31 日宣布正式开始研发 SuperSpeed 10Gbps,2013 年 12 月 3 日 USB 3.0 Promoter Group 正式宣布 USB 3.1 诞生。


USB3.1 有三种连接介面,分别为 Type-A(Standard-A)、Type-B(Micro-B)以及 Type-C。标准的 Type-A 是应用最广泛的介面方式,Micro-B 则主要应用于智能手机和平板电脑等设备,而新定义的 Type-C 主要面向更轻薄、更纤细的设备。Type-C 大幅缩小了实体外型,更适合用于短小轻薄的手持式装置上,Type-C 将取代 Micro-AB 型连接器(支援 USB 装置直接对传,不需要有主控系统介入),也将取代一般 Micro-USB 连接器,Type-C 仿 Apple Lightning 连接器,正反均可正常连接使用,较现有 Micro-USB 更理想,Micro-USB 虽有防止反接的防呆机制,但正反均可接的好处,胜过防止反接,摸黑状况上都可顺利完成接线。另外,Type-C 还有增进的电磁干扰与 RFI mitigation (射频干扰抑制)特性。

 

图 7 TYPE C 接口


接下来我们先来看一下 TYPC 接口的几个术语:

 

DFP【Downstream Facing Port】:下行端口。它与 USB 数据流有关。一般是指 HOST 或 HUB 的端口,从设备器件与此类端口相连。

 

UFP【Upstream Facing Port】:上行端口。它与 USB 数据流有关。一般是指 DEVICE 端口或连接着其它 HOST 或 DFP HUB 的 HUB 端口。

 

SOURCE:供电端口。该端口上的 CC 脚接上拉电阻,并通过 VBUS 对外供电。一般指 HOST 或 DFP HUB 端口,比方传统的 Type-A 端口。

 

SINK:受电端口:该端口上的 CC 脚接下拉电阻,它从 VBUS 取电。一般指 device 端口,比方传统的 Type-B 端口。

 

DRP【Dual Role Port】双角色端口。既可做 SOURCE 又可以做 SINK 的端口,角色可以固定也可以协商切换。

 

USB Type-C 接口一共 24 个管脚,分对称性连接和非对称性连接。

对称性连接:

USB 2.0 差分信号对(D+/D-);

电源脚:VBUS/GND;

 

非对称性连接:

TYPE C 的引脚定义如图 8 所示。

 

两套支持 USB3.1 数据传输速度的 TX/RX 信号脚;

 

通道配置脚【CC 脚】,用于接插及角色的监测、供电等配置管理;

 

两路边带信号脚【SBU】,用于模拟音频模式或 DP 备选模式;

 

图 8 TYPE C 引脚定义


图 9 展示了 TYPE C 接口中每个引脚的含义。

图 9 USB 接口引脚定义

 

3.STM32 使用 TYPE C

那么本文的重点来了,我们在设计 STM32 单片机电路的时候,如何将 STM32 的 USB2.0 移植到现有的 TYPE C 接口上面来呢?


TYPE C 插座中有两个 CC 引脚,但每个面向端口的电缆中只有一个 CC 引脚连接。在 CC1 和 CC2 上,DFP 必须具有 Rp 上拉电阻,而 UFP 必须具有 Rd 下拉电阻。CC 引脚主要有两个作用:插头方向检测和功率检测。


   STM32 做 USB 设备时候的连接而我们在做 STM32 单片机移植的时候,我们往往需要 USB 提供最大的功率,因此不需要去做功率检测。而由于 USB 插头是双向的的,所以在连接到 STM32xx 设备之前,两对 DP/DN 需要相互连接,尽可能靠近插座。如图 10 所示。

 

图 10 STM32 做 USB 设备时的 TYPE C 电路


   STM32 做 USB 主机时候的连接由于平台是为 USB2.0 设计的,因此最大电流容量为 500 毫安。如果在实际应用中有较高的电源电流,Rp 电阻可以调整到 1.5 A 甚至 3 A。传统主机需要通过在 CC 线和 5V 电源加入 Rp 上拉电阻,将 STM32 配置为 DFP。并且通过 STM32 的 ADC_IN 监控 CC 线,从而在连接器上提供 VBUS。具体电路如图 11 所示。

 

图 10 STM32 做 USB 主机时的 TYPE C 电路