协议名称 全称 / 制定方 接口 通信方式 最高功率 核心特点 代表品牌 / 设备
USB PD USB Power Delivery (USB-IF) Type-C CC 线 (BMC) 240W (PD3.1 EPR) 国际通用、双向供电、PPS 精细调压、笔记本 / 手机通用 苹果、三星、笔记本、通用快充头
UFCS 融合快充协议 (中国信通院 + 国产厂商) Type-C CC 线 / D+D- 66W~100W 国产统一互通、跨品牌快充、兼容私有协议 华为 / 小米 / OPPO/vivo/ 荣耀 互通
QC Quick Charge (高通) Type-A / Type-C D+D- 100W+ (QC5) 高压快充、普及早、安卓生态广 高通平台手机、老款快充头
SCP Smart Charge Protocol (华为) Type-A / Type-C D+D- 100W+ 低电压大电流、温升低、私有协议 华为、荣耀手机
VOOC / Warp VOOC / SuperVOOC (OPPO / 一加) Type-A / Type-C D+D- 100W+ 大电流直充、低发热、私有 OPPO、realme、一加
FlashCharge 闪充 (vivo/iQOO) Type-A / Type-C D+D- 120W+ 超高功率大电流、私有协议 vivo、iQOO
QC+PD PPS 高通 + PD 混合 Type-C CC+D+D- 45W~100W 通用 + 私有兼顾、兼容性最强 安卓旗舰通用快充头

极简一句话记忆

  • PD:国际通用,笔记本手机都能用
  • UFCS:国产统一,安卓跨品牌互通
  • QC:高通系,老安卓通用
  • SCP:华为 / 荣耀私有
  • VOOC:OPPO / 一加私有
  • FlashCharge:vivo/iQOO 私有


一套能在 STM32 上跑、最精简、最实用的快充协议伪代码框架,只做协议握手 + 电压请求,不搞复杂封装,你移植就能用。

1. USB PD 协议精简代码(CC BMC 握手)

// PD 消息头
typedef struct {
    uint8_t  msg_id    : 3;
    uint8_t  port_data : 2;
    uint8_t  spec_rev  : 2;
    uint8_t  crc       : 1;
    uint8_t  data_obj_cnt;
    uint16_t data_obj[7];
} pd_msg_t;

// 发送 Request 申请 9V
void PD_Request_9V(void)
{
    pd_msg_t msg = {0};

    msg.msg_id      = 1;
    msg.spec_rev    = 1;    // PD 2.0
    msg.data_obj_cnt = 1;

    // PDO/PDM 申请 9V
    msg.data_obj[0] = (9000 << 10) | (3000 << 0);  // 9V / 3A

    PD_SendMessage(&msg);  // 通过 CC 线 BMC 发送
}

// 主流程
void PD_Init(void)
{
    PD_WaitCaps();          // 等待充电器发能力
    PD_Request_9V();        // 申请电压
    PD_AcceptWait();        // 等待 Accept
}

2. UFCS 融合快充精简代码

// UFCS 握手流程
void UFCS_Handshake(void)
{
    // Step1 发送 UFCS 识别信号
    UFCS_Send(0x01);
    delay_ms(5);

    // Step2 读取充电器能力
    uint8_t caps[8];
    UFCS_Read(caps, 8);

    // Step3 申请 9V/3A
    uint8_t req[] = {0x03, 0x00, 0x90, 0x00, 0x03};
    UFCS_Send(req, sizeof(req));

    // Step4 确认进入 UFCS 快充
    uint8_t ack;
    UFCS_Read(&ack, 1);
}

3. QC3.0 快充代码(D+D- 模拟)

// QC 握手
void QC3_Handshake(void)
{
    // 发送握手信号
    D_SetVoltage(0.6);  // D+ = 0.6V
    delay_ms(5);

    // 进入 QC 模式
    D_SetVoltage(3.3);
    delay_ms(5);

    // 设置 9V
    QC_SetVoltage(QC_9V);
}

// QC 电压档位
typedef enum {
    QC_5V  = 0,
    QC_9V  = 1,
    QC_12V = 2,
    QC_20V = 3
} QC_Volt_t;

4. 华为 SCP / OPPO VOOC 精简逻辑

// SCP 握手
void SCP_Handshake(void)
{
    // D+ D- 握手序列
    D_SendPulse(100us);
    delay_ms(2);

    // 进入快充
    SCP_SendCmd(0x21);  // 9V 请求
}

// VOOC 握手
void VOOC_Handshake(void)
{
    D_Set(1.2V);
    delay_ms(5);
    VOOC_Send(0x02);  // 进入闪充
}

5. 完整一张表:协议对应代码结构

协议 通信引脚 核心动作 代码结构
PD CC BMC 收发 PDO/Request 消息结构体 + 发送
UFCS CC/D+D- 握手 → 读能力 → 请求电压 4 步固定流程
QC D+D- 电平模拟握手 设置 D+D- 电压
SCP D+D- 脉冲握手 脉冲 + 指令
VOOC D+D- 电平握手 固定电平序列
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐