简单理解:Qi 无线充电
Qi 无线充电(WPC 标准)是目前最通用的电磁感应式无线充电技术,核心是高频交变磁场耦合 + 双向数字通信 + 异物检测(FOD),广泛用于手机、耳机、车载、智能家居等。
下面直接给你完整理论 + 硬件架构 + 协议流程 + 发射 / 接收代码(STM32)。
一、核心原理(电磁感应)
- 物理基础:法拉第电磁感应
- 发射端(TX):DC →高频逆变(110–205 kHz)→ 发射线圈产生交变磁场
- 接收端(RX):线圈感应出 AC →整流 + 滤波 + 稳压→ 给电池 / 负载供电
- 关键参数
- 工作频率:110–205 kHz(BPP/EPP 标准频段)
- 功率档位:
- BPP (Baseline Power Profile):5W (5V/1A)
- EPP (Extended Power Profile):15W (9V/1.67A)
- Qi2/MPP:最高 30W(磁吸对准)
- 效率:5W≥70%,15W≥65%
- 通信:负载调制(RX→TX)+ ASK/FSK(TX→RX)
二、系统架构(TX + RX)
1. 发射端(TX)典型结构
- 输入:5V/9V/12V(USB-C/DC)
- 主控:MCU(STM32)或专用 Qi 芯片(TI BQ50021、ST STWBC)
- 逆变:全桥 H 桥(4×MOSFET)+ 栅极驱动(EG2133/IR2104)
- 谐振槽:TX 线圈(L=10–20μH)+ 谐振电容 C(f₀=1/2π√LC)
- 检测:电流采样、电压采样、异物检测 FOD、NTC 温度
- 通信:解调 RX 的负载调制信号
2. 接收端(RX)典型结构
- RX 线圈(L≈8–12μH)+ 谐振电容
- 整流:全桥同步整流(高效率)或二极管整流
- 稳压:LDO 或 DC-DC(5V/9V 输出)
- 协议芯片:TI BQ51013/BQ51221、IDT P9221
- 通信:负载调制(改变线圈负载)向 TX 发指令
- 保护:过压、过流、过温
三、Qi 协议核心流程(状态机)
标准 Qi 握手必须走以下状态:
- IDLE(待机)
- 低功耗,周期性发Ping 信号检测物体
- Analog Ping
- 短脉冲,检测是否有金属 / RX 线圈
- Digital Ping
- 发送 ASK 信号,RX 应答(负载调制)
- Identification & Configuration
- RX 发 ID、版本、功率能力
- Power Transfer(正式充电)
- RX 通过负载调制实时请求功率(调整占空比 / 频率)
- End Power / Fault
- 充满 / 异常(过温、FOD、过压)→ 停机
四、硬件关键设计(必看)
TX 线圈与 PCB
- 线圈:利兹线(多股)绕制,外径 40–50mm,L=12–18μH,Q>100
- 谐振电容:C0G/NPO 高频电容(低 ESR)
- 禁铜区:线圈下方全层挖空(减少涡流损耗)
- 差分走线:H 桥输出到线圈等长、宽线、短路径
- 匹配电阻:100Ω(通信解调)
- FOD:通过电流 / 频率偏移检测金属异物(最容易失败)
RX 线圈
- 外径 30–40mm,L=10μH 左右
- 磁片:铁氧体 / 纳米晶隔磁、增强耦合
- 整流:用同步整流 MOS 管(效率比二极管高 10%+)
五、发射端代码(STM32 实现 Qi 状态机 + 逆变驱动)
1. 定义与初始化
#include "stm32f1xx_hal.h" // Qi状态机 typedef enum { QI_IDLE, QI_ANALOG_PING, QI_DIGITAL_PING, QI_IDENTIFY, QI_POWER_TRANSFER, QI_FAULT } QiState; QiState qiState = QI_IDLE; // 引脚定义 #define TX_EN_Pin GPIO_PIN_0 #define TX_EN_GPIO_Port GPIOA #define PWM_HA_Pin GPIO_PIN_6 // H桥A相 #define PWM_HB_Pin GPIO_PIN_7 // H桥B相 // 全局变量 uint16_t pwmDuty = 30; // 初始占空比 uint8_t rxPowerReq = 5; // RX请求功率等级 uint32_t pingTimer = 0; // 函数声明 void Qi_StateMachine(void); void TX_PWM_Start(uint16_t duty); void TX_PWM_Stop(void); uint8_t Detect_Rx_Device(void); void FOD_Check(void);2. Qi 主状态机(核心)
void Qi_StateMachine(void) { switch(qiState) { case QI_IDLE: // 每500ms发一次Ping if(HAL_GetTick() - pingTimer > 500) { pingTimer = HAL_GetTick(); qiState = QI_ANALOG_PING; } break; case QI_ANALOG_PING: TX_PWM_Start(20); // 短脉冲 HAL_Delay(10); if(Detect_Rx_Device()) { // 检测到RX qiState = QI_DIGITAL_PING; } else { TX_PWM_Stop(); qiState = QI_IDLE; } break; case QI_DIGITAL_PING: // 发送ASK握手信号 TX_PWM_Start(30); HAL_Delay(20); if(/* 收到RX应答 */1) { qiState = QI_IDENTIFY; } else { TX_PWM_Stop(); qiState = QI_IDLE; } break; case QI_IDENTIFY: // 读取RX的ID/功率配置 // ... 通信解析 ... qiState = QI_POWER_TRANSFER; break; case QI_POWER_TRANSFER: // 异物检测 FOD_Check(); // 根据RX请求动态调整PWM占空比 pwmDuty = 30 + (rxPowerReq * 5); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwmDuty); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, pwmDuty); // 过温/过流保护 if(/* 温度>60℃ || 过流 */0) { qiState = QI_FAULT; } break; case QI_FAULT: TX_PWM_Stop(); HAL_Delay(1000); qiState = QI_IDLE; break; } }3. PWM 驱动(H 桥)
// 启动H桥PWM(互补带死区) void TX_PWM_Start(uint16_t duty) { HAL_GPIO_WritePin(TX_EN_GPIO_Port, TX_EN_Pin, GPIO_PIN_SET); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, duty); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, duty); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); } // 停止PWM void TX_PWM_Stop(void) { HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_2); HAL_GPIO_WritePin(TX_EN_GPIO_Port, TX_EN_Pin, GPIO_PIN_RESET); }4. 主循环
int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM3_Init(); // 150kHz PWM(对应Qi频率) while(1) { Qi_StateMachine(); // 1ms周期调用 HAL_Delay(1); } }六、接收端代码(简化:负载调制发功率请求)
// RX通过控制负载通断(负载调制)向TX发信号 void RX_Send_Power_Request(uint8_t level) { // 负载调制:短时短路/断开整流负载(发送FSK/ASK) // 示例:发3bit功率等级 for(uint8_t i=0; i<3; i++) { if(level & (1<<i)) { // 发送'1':导通负载 HAL_GPIO_WritePin(LOAD_MOD_Pin, GPIO_PIN_SET); } else { // 发送'0':断开负载 HAL_GPIO_WritePin(LOAD_MOD_Pin, GPIO_PIN_RESET); } HAL_Delay(5); // 位宽 } } // 主逻辑 void RX_Main(void) { if(/* 整流电压正常 */1) { // 请求5W(等级5) RX_Send_Power_Request(5); } }七、常用专用芯片(推荐方案)
- 发射端(TX)
- TI:BQ500211A(5W/15W 集成,带 FOD)
- ST:STWBC-EP(15W EPP,支持 Qi2)
- 国产:智融 SW5000、英集芯 IP6809
- 接收端(RX)
- TI:BQ51221(15W 同步整流)
- IDT:P9221-R(15W,高集成)
- 国产:南芯 SC8002、芯海科技 CS32G021
八、调试要点(避坑)
- 频率必须 110–205kHz(超范围 WPC 不认)
- 谐振必须精准(L/C 计算匹配,示波器看波形)
- FOD 是难点:金属异物必须检测并停机
- 线圈对准:偏移 > 10mm 效率暴跌
- 散热:H 桥与整流 MOS 管必须铺铜散热
