简单理解:主流快充协议完整对比表(PD / UFCS / QC / SCP / VOOC / Dart)
·
| 协议名称 | 全称 / 制定方 | 接口 | 通信方式 | 最高功率 | 核心特点 | 代表品牌 / 设备 |
|---|---|---|---|---|---|---|
| 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- | 电平握手 | 固定电平序列 |
更多推荐
所有评论(0)