[驱动开发篇] PWM驱动开发 - 原理解析篇

[驱动开发篇] PWM 驱动原理解析

  • [一. PWM(脉冲宽度调制)通用原理详解](#一. PWM(脉冲宽度调制)通用原理详解)
    • 1.1、PWM基础原理
      • [1.1.1. PWM波形结构](#1.1.1. PWM波形结构)
      • [1.1.2. 核心控制方程](#1.1.2. 核心控制方程)
    • 1.2、通用实现原理(硬件无关)
      • [1.2.1. PWM生成基本组件](#1.2.1. PWM生成基本组件)
      • [1.2.2. 参数关系公式](#1.2.2. 参数关系公式)
      • [1.2.3. 计数模式(所有芯片通用)](#1.2.3. 计数模式(所有芯片通用))
    • 1.3、PWM控制机制(通用模型)
      • [1.3.1. 开环控制(基础模式)](#1.3.1. 开环控制(基础模式))
      • [1.3.2. 闭环控制(高级模式)](#1.3.2. 闭环控制(高级模式))
    • 1.4、通用应用原理
      • [1.4.1. 功率控制(恒定量控制)](#1.4.1. 功率控制(恒定量控制))
      • [1.4.2. 数模转换(DAC替代)](#1.4.2. 数模转换(DAC替代))
      • [1.4.3. 波形合成](#1.4.3. 波形合成)
      • [1.4.4. 多相协调](#1.4.4. 多相协调)
    • 1.5、关键设计考量(通用原则)
      • [1.5.1. 频率选择原则](#1.5.1. 频率选择原则)
      • [1.5.2. 分辨率设计](#1.5.2. 分辨率设计)
      • [1.5.3. 死区控制(关键安全机制)](#1.5.3. 死区控制(关键安全机制))
    • 1.6、通用数学原理
      • [1.6.1. 傅里叶分析](#1.6.1. 傅里叶分析)
      • [1.6.2. 谐波含量](#1.6.2. 谐波含量)
    • 1.7、实际应用示例(通用原则)
      • [1.7.1. LED调光](#1.7.1. LED调光)
      • [1.7.2. 电机控制](#1.7.2. 电机控制)
      • [1.7.3. 开关电源](#1.7.3. 开关电源)
    • 1.8、通用设计公式
      • [1.8.1. 占空比计算](#1.8.1. 占空比计算)
      • [1.8.2. 电感选择(开关电源)](#1.8.2. 电感选择(开关电源))
      • [1.8.3. 纹波计算](#1.8.3. 纹波计算)
    • 1.9、高级拓扑原理
      • [1.9.1. 空间矢量PWM(SVPWM)](#1.9.1. 空间矢量PWM(SVPWM))
      • [1.9.2. 移相控制](#1.9.2. 移相控制)
  • 二、总结

一. PWM(脉冲宽度调制)通用原理详解

本章节主要是针对PWM的原理进行介绍;如果是对具体使用感兴趣的可以关注后序的:[驱动开发篇] PWM驱动开发 - 具体应用篇

PWM(脉冲宽度调制)是通过控制数字信号的通断时间比例来模拟连续变化的模拟信号的技术。其核心原理在所有芯片和项目中都通用,无论是微控制器、电源管理还是电机控制。

1.1、PWM基础原理

1.1.1. PWM波形结构

复制代码
一个PWM周期:
┌───────────┬───────────┐
│  高电平    │   低电平   │
└───────────┴───────────┘
▲           ▲          ▲
0           t_on       T
  • 周期(T):完成一次完整波形的时间(频率f=1/T)
  • 占空比(D):高电平时间占周期的比例(D = t_on / T)

1.1.2. 核心控制方程

等效输出电压: V_avg = D × V_cc

V_cc = 电源电压

D = 占空比(0.0-1.0)

1.2、通用实现原理(硬件无关)

1.2.1. PWM生成基本组件

时钟源 计数器 比较器 输出信号 设置值

组件功能:

  1. 计数器:以固定频率从0递增到最大值
  2. 比较器:实时比较计数器和预设值
  3. 输出规则
    • 计数器 < 预设值 → 输出高电平
    • 计数器 ≥ 预设值 → 输出低电平

1.2.2. 参数关系公式

复制代码
频率(f) = 时钟频率 / (计数最大值 + 1)
占空比(D) = 预设值 / (计数最大值 + 1)
分辨率(R) = log₂(计数最大值 + 1) bit

1.2.3. 计数模式(所有芯片通用)

模式 工作方式 优点 应用场景
边沿对齐 0→Max,单次比较 实现简单 普通控制
中心对称 0→Max→0,两次比较 对称性好 低噪声应用
非对称 Min→Max,单次比较 精度高 电源管理

1.3、PWM控制机制(通用模型)

1.3.1. 开环控制(基础模式)

复制代码
输入信号 → PWM生成器 → 功率驱动 → 负载

1.3.2. 闭环控制(高级模式)

常用控制算法:

  • P控制:简单快速
  • PI控制:消除静差
  • PID控制:综合优化

1.4、通用应用原理

1.4.1. 功率控制(恒定量控制)

复制代码
功率 = 电压 × 电流 × 时间

通过调节占空比直接控制能量输出

1.4.2. 数模转换(DAC替代)

复制代码
模拟输出 = V_ref × (t_on / T)

需加RC低通滤波器:

复制代码
Vout = 1/(RC) ∫ Vpwm dt

1.4.3. 波形合成

任意波形 = 不同占空比的PWM序列组合

1.4.4. 多相协调

应用场景:

  • 多相电源管理
  • 电机相序控制
  • 谐波消除

1.5、关键设计考量(通用原则)

1.5.1. 频率选择原则

应用类型 推荐频率范围 选择依据
LED调光 100Hz-1kHz 避免频闪
电机控制 5kHz-20kHz 高于可听频率
电源转换 50kHz-2MHz 效率/体积平衡

1.5.2. 分辨率设计

最小占空比步长:

复制代码
ΔD_min = 1 / (2^N - 1)

N=分辨率位数

1.5.3. 死区控制(关键安全机制)

上桥臂 下桥臂 通道A 负载 通道B 死区控制器

必要场景

  • 半桥/全桥电路
  • 推挽输出
  • 任何存在直通风险的拓扑

1.6、通用数学原理

1.6.1. 傅里叶分析

任意PWM波形可表示为:

复制代码
V(t) = A0 + Σ[An·cos(nωt) + Bn·sin(nωt)]

其中基波分量:

复制代码
A0 = D·Vcc
A1 = (2Vcc/π) · sin(πD)

1.6.2. 谐波含量

复制代码
总谐波失真(THD) ∝ 1 / (开关频率)

高频PWM可显著降低谐波干扰

1.7、实际应用示例(通用原则)

1.7.1. LED调光

复制代码
亮度 ∝ 占空比
人眼感知曲线:
  亮度(L) ≈ (D)^γ, γ≈2.2(伽马校正)

1.7.2. 电机控制

复制代码
扭矩 ∝ 平均电压
速度 ∝ 平均电压 - 反电动势

1.7.3. 开关电源

复制代码
输出电压(Vo) = D × Vin
降压转换:D < 1
升压转换:D > 1

1.8、通用设计公式

1.8.1. 占空比计算

复制代码
D = (Vo / Vin)   (降压)
D = 1 - (Vin / Vo) (升压)

1.8.2. 电感选择(开关电源)

复制代码
L_min = [Vin × (Vo - Vin)] / (f × ΔI × Vo)

1.8.3. 纹波计算

复制代码
ΔV ≈ (Vin - Vo) × D / (8 × f² × L × C)

1.9、高级拓扑原理

1.9.1. 空间矢量PWM(SVPWM)

复制代码
       / \ 
      /   \
     / 110 \
    -------- 
   |  111   | 
    -------- 
     \ 101 /
      \   /
       \ /

优化原理

  • 最大化电压利用率
  • 降低谐波失真
  • 提高系统效率

1.9.2. 移相控制

复制代码
        ┌────────────┐
        │  周期T      │
        └─────┬──────┘
        ┌─────┴─────┐
PWM1:   │     100%   │
        └─────┬──────┘
              │ 延迟时间Δt
        ┌─────┴─────┐
PWM2:   │     100%    │
        └────────────┘
功率控制因子: α = Δt / T

应用:相控电源、无线充电

二、总结

PWM的核心原理可以概括为:

  1. 时间分割:将连续时间划分为离散周期
  2. 占空比调制:通过控制每个周期内导通/断开的比例
  3. 能量平均:负载响应对时间平均功率的积分
  4. 硬件无关性:原理适用于从8位MCU到FPGA的所有平台

无论芯片如何实现(硬件PWM外设、软件GPIO模拟、CPLD逻辑),PWM的基本原理都是通过控制固定周期内高低电平的时间比例,将数字开关信号转换为等效的模拟控制量。这种技术的强大之处在于其数学原理和物理本质的普遍适用性。