找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

549

积分

0

好友

69

主题
发表于 5 天前 | 查看: 16| 回复: 0

USB 协议发展简史

在深入了解 Type-C 之前,回顾一下 USB 接口的演变很有帮助。常见的 USB 物理接口主要分为以下几类:

  • Type-A: 标准的 USB 接口,常见于电脑主机、充电器等设备。
  • Type-B: 通常用于打印设备和显示器等外设。
  • Micro-B: USB 标准时代的手机主流接口。
  • Type-C: 当前主流的全功能接口。

USB接口类型演变图

从数据传输速率和功率传输能力来看,USB 协议本身也在飞速发展。下图清晰地展示了从 USB 2.0 到最新 USB4 的技术演进路径:

USB协议发展历程与带宽对比

Type-C 接口概览

USB Type-C,常被称为 USB-C,是一种通用串行总线的硬件接口形式。其最大的物理特点是拥有 24 个连接引脚 和正反均可插入的设计。

USB Type-C 接口外观示意图

Type-C 接口分为公头(Plug)和母头(Receptacle)。值得注意的是,母头内部是凸起的舌片,而公头内部是凹槽,这样的设计可以避免金属引脚外露,提高安全性。

USB Type-C 公头与母头结构对比

Type-C 引脚定义与功能

要理解 Type-C 的强大功能,必须从其引脚定义开始。一个全功能的 Type-C 接口拥有 24 个引脚,对称分布在接口的 A 面和 B 面。

USB Type-C 接口引脚定义与功能详解

关键信号线对关系

  • TX2+/- --> TX1+/- (USB 3.0 数据发送差分对)
  • RX2+/- --> RX1+/- (USB 3.0 数据接收差分对)
  • D+/- --> D1+/- (USB 2.0 数据传输差分线)

以下是完整的引脚功能表:

引脚(A面) 名称 描述 引脚(B面) 名称 描述
A1 GND 接地 B12 GND 接地
A2 SSTXp1 SuperSpeed 差分信号 #1,TX,正 B11 SSRXp1 SuperSpeed 差分信号 #1,RX,正
A3 SSTXn1 SuperSpeed 差分信号 #1,TX,负 B10 SSRXn1 SuperSpeed 差分信号 #1,RX,负
A4 VBUS 总线电源 B9 VBUS 总线电源
A5 CC1 配置通道。用于连接检测、方向识别、USB PD协议通信及功率协商。 B8 SBU2 辅助信号。在 DP Alt Mode 下可传音频,在音频附件模式下可作为麦克风通道。
A6 Dp1 USB 2.0 差分信号,position 1,正 B7 Dn2 USB 2.0 差分信号,position 2,负
A7 Dn1 USB 2.0 差分信号,position 1,负 B6 Dp2 USB 2.0 差分信号,position 2,正
A8 SBU1 辅助信号。用途同 SBU2。 B5 CC2 配置通道。功能同 CC1。
A9 VBUS 总线电源 B4 VBUS 总线电源
A10 SSRXn2 SuperSpeed 差分信号 #2,RX,负 B3 SSTXn2 SuperSpeed 差分信号 #2,TX,负
A11 SSRXp2 SuperSpeed 差分信号 #2,RX,正 B2 SSTXp2 SuperSpeed 差分信号 #2,TX,正
A12 GND 接地 B1 GND 接地

基于这些丰富的引脚,全功能 Type-C 接口实现了以下主要特性:

  • 正反插自由:接口物理对称。
  • 高速数据传输:支持 USB 3.2/4 等高速协议。
  • 角色自由切换:可自动识别主机 (Host) 或设备 (Device) 角色。
  • 视频直接输出:支持 DisplayPort Alt Mode 等替代模式。
  • 大功率充电:通过 USB PD 协议支持最高 100W 供电。

数据角色 (Data Role) 定义

在 USB 2.0 时代,我们熟悉 HOST(主机)、Device(设备)和 OTG(On-The-Go)三种角色。Type-C 规范在此基础上进行了更精细的定义:

  • DFP (Downstream Facing Port):下行端口,类比于传统的主机 (Host)。它初始状态下提供 VBUS 电源,作为数据通信的 Source(源)端。
  • UFP (Upstream Facing Port):上行端口,类比于传统的设备 (Device)。它初始状态下消耗 VBUS 电源,并可作为数据提供的 Sink(接收)端。典型设备如 U 盘、移动硬盘。
  • DRP (Dual Role Port):双角色端口,类似于 OTG。DRP 既可以作为 DFP(主机),也可以作为 UFP(设备),并且能够在两者之间动态切换。智能手机的 Type-C 口通常是 DRP。

核心:CC 通信通道

Type-C 的“智能”很大程度上源于两根 CC (Configuration Channel) 引脚。在深入其通信原理前,需要理解一个基础电路概念:下拉电阻

下拉电阻连接在信号线与地之间,主要作用是确保信号线在没有有效驱动时保持稳定的低电平(0V)。这能防止输入引脚悬空导致的不确定状态,提高电路稳定性,并为信号提供明确的接地路径。

下拉电阻工作原理电路图

CC 通道的检测电路正是基于电阻分压原理构建的。

CC通信通道检测电路图(主机与客户端)

工作过程如下

  1. 作为电源提供方的 Source 设备(如充电器、电脑),其 CC1 和 CC2 引脚通过上拉电阻 Rp 连接到电源。
  2. 作为电源消耗方的 Sink 设备(如手机、U盘),其 CC1 和 CC2 引脚通过下拉电阻 Rd 连接到地。
  3. 当线缆未连接时,Source 端检测 CC1/CC2 为高电平。
  4. 当 Type-C 线缆连接后,Source 端的 CC 引脚通过线缆与 Sink 端的 Rd 电阻形成通路,电压被拉低。Source 端通过检测 哪一个 CC 引脚(CC1 或 CC2)的电压发生了特定变化,即可判断插头的插入方向,从而正确配置高速数据线(TX/RX)的映射关系。

Source与Sink设备通过CC引脚通信示意图

总结来说,CC 通道是 Type-C 接口实现以下核心功能的关键:

1. 连接检测

  • 通过检测 CC 引脚上的电压变化,判断设备是否插入。
  • Sink 端的下拉电阻 Rd 是 Source 端检测到连接的“信号”。

2. 方向识别

  • 利用 CC1 和 CC2,判断插头是正插还是反插。
  • 主机据此重新配置内部高速数据通道的物理连接。

3. 功率协商

  • CC 线用于传输 USB PD 协议报文。
  • Source 和 Sink 设备通过它协商供电电压和电流(如 5V/3A, 9V/2A, 20V/5A)。

4. 模式切换

  • 通过 CC 通信,设备可以协商并切换到非 USB 的“替代模式”,如 DisplayPort 或 Thunderbolt 模式。

USB PD (Power Delivery) 协议详解

USB PD 协议是 USB-IF 制定的官方快充标准,最大支持 100W(甚至更高)供电,广泛应用于手机、平板、笔记本。

数据包结构

PD 协议通信有固定的数据包格式,以确保可靠性。

USB PD协议数据包结构

一个完整的数据包包含:

  • 前导码 (Preamble):用于接收端时钟同步训练。
  • *包起始标识 (SOP)**:标记数据包的开始。
  • 消息头 (Message Header):包含消息类型、数据长度等信息。
  • 数据码 (Payload):具体的协议数据。
  • CRC 校验:循环冗余校验,确保数据完整性。
  • 包结束标识 (EOP):标记数据包的结束。

物理层编码

PD 协议在物理层采用 4b/5b 编码BMC (Biphase Mark Code) 调制。4b/5b 编码将 4 位数据转换为 5 位符号进行传输,提高了直流平衡和时钟恢复能力。特殊的功能码(如同步、复位)则使用专门的 K 码。

USB PD协议使用的4b/5b编码表

充电协商流程

一个典型的 USB PD 充电过程如下例所示:充电器(Source)告知手机(Sink)自己的能力,手机选择并请求一个合适的档位,双方确认后,充电器准备好电源。

USB PD充电协议交互流程图示例

DisplayPort 替代模式

Type-C 的强大之处在于它不仅能传 USB 数据,还能通过 替代模式 (Alternate Mode) 传输其他协议的视频信号,如 DisplayPort。

系统会通过 USB PD 协议中的 VDM (Vendor Defined Message) 信息,经由 CC 引脚通信,协商是否进入 DisplayPort 模式。在此模式下,原本用于 USB 3.0 的高速差分对 (TX/RX) 可以被重新分配用于传输 DP 信号。

Type-C Alternate Mode (如DP/雷电) 内部结构示意图

  • DP Only 模式:当 Type-C 接口仅用于传输 DP 信号时,可以占用全部 4 对高速差分对 (TX1/RX1, TX2/RX2),实现 4 Lane 传输,获得最高带宽。
  • DP + USB 2.0 模式:同时使用 4 Lane 传输 DP 信号,并保留 USB D+/D- 用于连接 USB 2.0 设备。这是最常见的扩展坞工作模式之一。

下图展示了一个系统通过 Type-C 连接到显示扩展坞的典型应用,内部涉及复杂的多路复用器 (Mux) 切换:

系统通过Type-C连接显示扩展坞的框图

RK 平台 DP 驱动示例

以 Rockchip 平台为例,其 DP 驱动主要涉及以下文件:

  • DP Controller 驱动drivers/gpu/drm/rockchip/dw-dp.c
  • DP PHY 驱动drivers/phy/rockchip/phy-rockchip-usbdp.c

在设备树 (DTS) 中需要进行相应配置,以启用 Type-C 口的 DP 功能、方向切换等:

&dp0 {
    status = "okay";
};

&dp0_in_vp2 {
    status = "okay";
};

&usbdp_phy0 {
    orientation-switch; // 使能方向切换
    svid = <0xff01>;
    sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
    sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
    status = "okay";
    port {
        #address-cells = <1>;
        #size-cells = <0>;
        usbdp_phy0_orientation_switch: endpoint@0 {
            reg = <0>;
            remote-endpoint = <&usbc0_orien_sw>;
        };
        usbdp_phy0_dp_altmode_mux: endpoint@1 {
            reg = <1>;
            remote-endpoint = <&dp_altmode_mux>;
        };
    };
};

Type-C接口电路原理图示例

RK3588S USB控制器DP通道连接示意图

DP 输出方案与 MST 技术

根据产品形态,DP 输出可以有多种设计方案:

DP输出的三种设计方案:Type-C输出、标准DP输出、转接输出

MST (Multi-Stream Transport) 是 DisplayPort 1.2 及更高版本支持的特性,允许通过单根 DP 线缆传输多个独立的视频流。实现方式主要有两种:

  1. MST 集线器:一个集线器分出多个视频输出口(DP/HDMI等)。
  2. 菊花链:显示器串联连接,除最后一个显示器外,中间显示器都需要支持 DP MST 输出功能。

Type-C 作为音频接口

Type-C 也可以用于传输模拟音频,替代传统的 3.5mm 耳机孔。在这种模式下:

  • USB 2.0 的 D+/D- 差分对被用来传输右声道 (Right)、左声道 (Left) 和麦克风/地 (MIC/AGND) 的模拟音频信号。
  • 如果带有麦克风,其信号通常连接在 SBU 引脚上。
  • 此模式下,主机最多可提供 500mA 电流。

设备通过在 CC 引脚上配置特定的下拉电阻值(如小于 400Ω 或 800Ω),来告知主机自己是一个音频附件。

3.5mm音频接口与Type-C接口引脚映射关系图

主机/设备角色判断与切换

Type-C 接口如何智能判断自己该扮演主机 (Host) 还是设备 (Device) 的角色?这依赖于对 CC1 和 CC2 引脚状态的检测。

在实际硬件设计中,常使用专用的 Type-C 端口控制器芯片(如 FUSB302)来完成这一复杂任务。该芯片通过持续监控 CC1/CC2 的电压,来识别对端设备是主机还是设备,然后通过 I2C 中断通知主处理器(如 Rockchip SoC),驱动层再动态切换 USB 的工作模式(Host 或 Device)。

FUSB302芯片电路连接图

FUSB302芯片功能框图

简化的 Type-C 接口:6PIN 与 16PIN

并非所有设备都需要完整的 24Pin Type-C 功能,因此衍生出了简化版本:

6 PIN Type-C

  • 产品定位:仅需充电,无需任何数据通信。
  • 引脚:通常只保留 VBUS, CC1/CC2, GND。
  • 应用:电动牙刷、玩具、小型电子设备。

6 PIN Type-C接口引脚定义

16 PIN Type-C

  • 产品定位:需要 USB 2.0 数据通信和充电,但不需要 USB 3.0 高速传输。
  • 特点:阉割了 USB 3.0 的 SSTX/SSRX 差分对(A2,A3,A10,A11,B2,B3,B10,B11),保留了 USB 2.0、CC、SBU、VBUS 和 GND。
  • 支持功能:仍支持 PD 快充、音频附件模式、DisplayPort Alt Mode(带宽受限)、调试模式等。许多微控制器(MCU)采用的便是这种接口。

24 PIN (全功能) Type-C接口引脚定义

总结

USB Type-C 凭借其精妙的物理设计、强大的 CC 配置通道和灵活的 PD/替代模式协议,实现了“一线通”的愿景。从简单的充电、数据传输,到高速视频输出和百瓦功率交付,其背后的硬件原理通信协议栈构成了一个复杂而高效的体系。对于嵌入式开发者而言,理解引脚定义、CC 检测逻辑和协议协商流程,是进行相关硬件设计和软件调试的基础。希望本文的梳理能帮助你更好地理解和使用 Type-C 技术。更多深入的技术讨论,欢迎在 云栈社区 交流。


参考阅读

  • USB Type-C 和 PD 协议基础
  • 聊聊瑞芯微 RK 平台的 TypeC 接口
  • Rockchip_RK3399_Developer_Guide_USB_CN
  • Rockchip DisplayPort 软件开发指南
  • RK3399 android10 二合一 typeC OTG 切换 HOST 和 DEVICE
  • PD 快充 - fusb302 驱动调试笔记
  • RK3399 Type-C 改为 MicroUSB 以节省成本
  • PD 协议详解与实战



上一篇:Linux服务器性能调优实战:从监控、CPU、内存到网络的全方位优化指南(CentOS/Ubuntu)
下一篇:Windows驱动开发实战:WDK与Visual Studio 2022环境搭建及WinIo源码深度解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 01:47 , Processed in 0.340941 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表