1. PWM参数测量的技术本质与工程需求
在嵌入式系统中,PWM(Pulse Width Modulation)信号的周期与占空比是两个基础但关键的时序参数。周期决定了信号的频率特性,而占空比直接映射为模拟电压值或功率输出比例。传统上,工程师常采用输入捕获(Input Capture)配合软件计算的方式完成测量:将PWM信号接入定时器通道1,配置其捕获上升沿;再将同一信号接入通道2,配置其捕获下降沿;最后通过主循环读取CCR1和CCR2寄存器值并进行时间差运算。这种方案看似直观,却在实际工程中暴露出三个核心缺陷:
第一,时间戳同步性不可靠。主循环读取两个捕获寄存器存在固有延迟,且该延迟受中断响应、任务调度、编译器优化等多重因素影响,导致Thigh= CCR2 - CCR1的计算结果引入非确定性误差。当PWM频率升高至百kHz量级时,该误差可能达到数十甚至上百个计数周期。
第二,边沿抖动敏感度高。输入信号若存在上升/下降沿缓慢或噪声毛刺,单纯依赖硬件捕获点易触发误捕获。软件层面缺乏对连续多次捕获结果的统计滤波能力,单次异常值即可导致整个周期计算失效。
第三,资源占用与实时性冲突。频繁的寄存器读取与计算需占用CPU周期,在FreeRTOS等多任务环境中易引发高优先级任务饥饿。更严重的是,若在中断服务函数中执行复杂计算,将显著延长中断响应时间,破坏系统实时性边界。
因此,一种真正符合嵌入式工程实践的解决方案必须满足:硬件自动完成关键时序关系建模、消除软件计算引入的不确定性、最小化CPU干预、保持全