具有光电耦合器(OC)隔离输出的脉冲宽度调制(PWM)信号工作频率问题

文章探讨了脉冲宽度调制(PWM)在近边缘控制中通过光电耦合器传输时的挑战,特别是光耦的延迟如何影响PWM信号质量和占空比分辨率。提出通过频率调制(PFM)来解决这个问题,尤其是在低占空比下提高输出信号频率。

概述

脉冲宽度调制(Pulse-width modulation)在近边缘控制应用场景中,会使被调制后的信号直接驱动末级功率器件,以实现对目标对象的控制。

对于调制信号的控制器来说,其运行的电压域并不会太高,而与之相连的末级功率器件则因为输出功率的需要,要有足够的电压*电流输出。

如果直接将控制级与功率级两者相连,显而易见地会存在有电气风险,因此需要使用隔离器件来对两者进行隔离的同时,满足信号的传输。

光电隔离,就是一种普遍的隔离方式,涉及到的器件为“光电耦合器(optical coupler )”。光电耦合器能够胜任千伏级的电气隔离,有效防止控制器因异常的电气冲击而失效,但与此同时,光电耦合器的性能能否满足调制信号的传输,也是一个必须注意的问题。
回流焊温控器

光电耦合器

光电耦合器(以下简称“光耦”),是一种将电信号转换为光信号,再转换回电信号的器件,因为光的传播并不需要直接的电气连接,由此来实现电气隔离保护的目的。
光电耦合器
通过以上电路符号我们可知光耦的输入端接有一个发光二极管,输出端接有一个光电三极管,当发光二极管通电发光时,输出的光电三极管导通,否则截止。电信号由发光二极管转化为光,在介质中传输至光电三极管,再被转换为电,毋庸置疑,这种转换并非是无消耗的,对于给定的阶跃信号,光耦需要经过一定延迟,才能将阶跃信号输出,这之中的转换延迟,可以在光耦的数据手册中查到。

就以以上类型的光耦为例,其开启和关断的转换耗时约为10微秒,也就是说,输入阶跃需要等待10微秒后,输出才会开始跳变,对于一开一关这一个完整的周期,必然存在着两次由光耦引入的延时,约为20微秒。

脉冲宽度调制(PWM)

脉冲宽度调制(以下简称“PWM”),是一种普遍使用的数字调制方式,其原理是通过改变特定定频率方波信号的有效平时间(占空比)来改变有效输出值。与此同时,PWM调制的信号频率,也会对输出特性产生影响,如使用较低的调制频率,会产生人耳可闻的噪音等。要将调制频率提升至20千赫兹以上,才能避免这个问题。

总地来说,PWM调制信号的工作频率和占空比,同时影响着调制结果的质量。

对于传输PWM调制信号的隔离器件,自然是要求其尽可能地还原输入PWM信号的频率和占空比,但如之前所说,光耦的信号转换无可避免地存在着延迟,必然会使PWM信号在通过后产生失真,问题是在什么样的情况下,光耦延迟引入的失真是不可容忍的?

PWM占空比分辨率

对于一个特定频率的PWM调制信号,其占空比的变化必然是以数字形式跳跃的,假设有一个占空比分辨率为1%的PWM信号,那么它的占空比必然以1%为最小阶梯跳变(1%-2%-3%),无法精确到更小如0.1%的尺度(1%-1.1%-1.2%)。

越小的占空比分辨率,就代表着越精细的调制输出,而当占空比分辨率达到100%时,则PWM调制信号完全变成了一个开关信号,只能在打开(100%)和关闭(0%)之间变换,此时PWM调制完全失调。

这时候再来回答之前所提到的问题:“在什么样的情况下,光耦延迟引入的失真是不可容忍的?”

以最宽容的标准来看,给出的答案是光耦的延迟使得占空比的分辨率降低到100%甚至更低时。

此时,光耦的上升延时或下降延时将占用整个PWM信号周期,由之前给出的典型延时为例,10微秒,对应着PWM信号的频率为100kHz。

看上去不错,但如果真的将设备的工作频率设定为该值或略小于该值,则会因为上升/下降延时占用了过多的时间而使得一定范围外的占空比完全失效。

因此我们会希望,要有至少1%的有效占空比,这样一来,光耦的上升延时或下降延时应小于等于1%占空比所持续的时间,因此那么上限频率将降低100倍,变成1kHz,远低于人耳听力上限,非常捉急。

分辨率定性分析

假设我们对前文中提到的光耦输入一个占空比为50%的方波,并且该方波的工作频率为100千赫兹,那么我们的输入波形与输出波形将如下图所示:

由图中可以看出,因为光耦所引入的延迟过大,而导致输出波形根本无法达到最高电平,而是呈现出一种峰值电压为50%左右的三角波。

我们将输入信号的频率降低到50千赫兹,那么波形图将会如下所示:

此时我们可以看到,光耦的输出波形变成了一个峰值电压为100%的三角波。

继续降低频率到25千赫兹,则光耦的输出将从三角波转变为梯形波,如下:

我们假设光耦的后级具有波形整形,当电压达到100%时开启,0%时关闭,那么当工作频率为100千赫兹时,后级根本无法正常开启,无法工作,当频率为50千赫兹时,后级刚好能够工作,降低到25千赫兹时,自然也能正常工作。

我们以25千赫兹为例,降低输入信号的占空比为5%,则光耦的输出波形如下:

这时波形再次呈现出三角波,因为峰值电压达不到100%而无法驱动后级功率器件正常开启。

如果我们将占空比升高到95%,则输出波形如下:

这时波形将变成倒三角波,波形无法下降至0%就再次开始上升,因此无法驱动后级功率器件正常关闭。

同样的25千赫兹工作频率,当占空比为50%时工作正常,5%和95%时则无法正常驱动后级,因此该工作频率无法支持5%占空比分辨率的输出。

由此我们可以得出,对于上升、下降延时,只有当上升延时和下降延时同时低于最小占空比分辨率所需要保持的高、低电平时间时,才能正常输出该分辨率的波形。

然而以上分析,却是十分理想的,因为只考虑了上升时间和下降时间的影响,实际当光耦的输入方波达到100%时,光耦的输出并不会立即开始上升,还需要经过一定时间延时才会开始上升。同时对于栅极驱动器,往往也不需要100%的电压来使功率级开启。因此实际效果还是要通过示波器测量,才能够确定,以上分析只能提供一个大致的参考。

解决方案

从根本上解决问题的方式是使用速度更快的隔离器件,比如将光电三极管输出的光耦更换为逻辑输出的光耦,或是在电压允许的情况下,使用数字隔离器。但毫无疑问这需要通过更改硬件来实现,非常麻烦,那么有没有方法能够绕开这个问题呢?

有,但不完全有。

经过占空比分辨率的定性分析我们知道,脉冲宽度调制时,隔离器件的上升延时将会影响到输出的最小开启时间,而下降延时将会影响到输出的最小关断时间,此消彼长,互相制衡。

但如果使用脉冲频率调制(PFM)时,事情会略有不同。

PFM通过固定开启的时间增加关断的时间来控制输出,也就是说开启时间与关断时间互不影响,不会左右牵制,当PFM调制占空比为50%时,波形的高电平时间与低电平时间正好相等,如果占空比继续下降仅仅会增加波形低电平的持续时间而已。

如果我们令高电平的持续时间刚好等于隔离器件的上升时间,占空比为50%,对于前文的上升下降延时,此时调制频率为50千赫兹,如果占空比为25%,则调制频率为25千赫兹,仍高于20千赫兹。因为高电平的持续时间不变,且等于上升延时,而低电平的时间随着占空比降低只会变长不会变短,理想化地说,此时的占空比分辨率是无穷大,不需要被考虑的。

结论就是,如果输出信号工作在50%占空比以下,那么在保证占空比分辨率的同时,使用PFM将大大提高输出信号的频率,只有在极低占空比的情况下,PFM输出信号的频率才会低于PWM,对于之前1%占空比分辨率的PWM需要低至1千赫兹的调制频率,PFM需要输出1%占空比以下的信号才能低于PWM。

<think>好的,我现在要解决的问题PWM输出对MQ2气体传感器ADC采样精度的影响及解决方法。首先,我需要理解用户的问题。用户提到他们参考了STM32读取MQ4传感器的代码,其中涉及ADC采样,以及生成PWM波的相关参数。现在他们想知道PWM如何影响MQ2的ADC采样精度,以及如何解决这个问题。 首先,我需要回顾PWM和ADC的基本工作原理。PWM脉冲宽度调制)是通过调节占空比来控制输出的模拟信号,常用于驱动电机、LED调光等。而ADC(模数转换器)则是将模拟信号转换为数字信号,供微控制器处理。MQ2传感器输出的是模拟电压,其值与检测到的气体浓度成正比,所以ADC采样的准确性直接影响到气体浓度的测量结果。 接下来,我需要分析PWM如何影响ADC采样。可能的干扰路径包括电源噪声、地线干扰以及电磁耦合。当PWM信号切换时,尤其是高频PWM,可能会在电源线上引起电压波动。如果传感器和微控制器共用同一电源,这种波动会导致传感器输出电压的不稳定,从而影响ADC采样值。此外,PWM信号的高频成分可能通过电磁辐射耦合到传感器的模拟信号线上,引入噪声。地线回路中的电流变化也可能导致地电位不一致,进而影响ADC的参考电压,造成采样误差。 然后,我需要考虑解决方法。根据常见的电子设计实践,可能的解决方案包括硬件和软件两方面。硬件方面,可以优化电源设计,例如为模拟电路和数字电路使用独立的电源或添加滤波电路。使用RC低通滤波器来平滑PWM信号,减少高频噪声。此外,合理布局电路板,将模拟部分和数字部分分开,减少干扰。软件方面,可以在PWM不活跃的时间窗口进行ADC采样,或者在ADC采样时暂时关闭PWM输出,以避免同时工作带来的干扰。另外,软件滤波算法,如移动平均或中值滤波,也可以减少噪声的影响。 我需要验证这些方法的有效性。例如,使用示波器观察PWM工作时传感器的输出信号是否有噪声,添加滤波后是否改善。软件同步采样和硬件滤波的结合使用可能会更有效。同时,要考虑到不同的PWM频率和占空比对干扰程度的影响,高频PWM可能更容易引起问题,因此调整PWM频率到较低的范围可能也是一种解决方案。 最后,总结这些分析,形成结构化的回答,包括影响的具体方面和对应的解决方法,确保用户能够逐步理解和实施这些解决方案。</think>### PWM输出对MQ2传感器ADC采样精度的影响及解决方法 #### 一、PWM对ADC采样的影响机制 1. **电源噪声干扰** PWM输出(尤其是高频PWM)会导致电源电压波动。若MQ2传感器与PWM设备共用同一电源,其模拟输出的稳定性会被破坏,导致ADC采样值出现周期性波动[^2]。 2. **电磁耦合干扰** PWM信号的高频分量会通过导线或空间辐射耦合到MQ2的模拟信号线上,形成高频噪声叠加在传感器输出信号中。例如,当PWM频率为$f_{\text{PWM}}$时,可能引入$f_{\text{PWM}}\pm \Delta f$的干扰频率分量。 3. **地线回流干扰** PWM负载电流变化会引起地线电位波动。若ADC参考地与PWM地线存在共阻抗,会导致ADC参考电压偏移,造成采样误差。公式表示为: $$ \Delta V_{\text{ADC}} = I_{\text{PWM}} \cdot R_{\text{ground}} $$ 其中$R_{\text{ground}}$为地线阻抗。 --- #### 二、关键解决方案 ##### 硬件优化 1. **电源隔离与滤波** - 为模拟电路(MQ2+ADC)与数字电路(PWM)设计独立供电路径 - 在MQ2电源端增加LC滤波器(例如$10\mu\text{H}$电感+$100\mu\text{F}$电容) - 使用低压差线性稳压器(LDO)替代开关电源 2. **信号隔离与滤波** - 在MQ2输出端添加RC低通滤波器,截止频率$f_c=\frac{1}{2\pi RC}$需低于PWM频率 例如:$R=1k\Omega$, $C=100nF$时,$f_c \approx 1.6kHz$ - 使用屏蔽双绞线连接传感器与ADC 3. **地线设计** - 采用星型接地,将ADC参考地直接连接到电源地入口 - 在PWM负载端增加本地去耦电容(如$10\mu\text{F}$钽电容+$100nF$陶瓷电容) ##### 软件优化 1. **同步采样控制** 在PWM输出的"静默期"进行ADC采样(需利用定时器触发ADC),伪代码如下: ```c void TIM_PWM_Config(void) { TIM_OCInitTypeDef oc; oc.TIM_Pulse = (ARR+1)*DutyCycle; //ARR为定时器自动重装载值 oc.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &oc); TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_OC1Ref); //设置OC1作为触发源 ADC_ExternalTrigConvCmd(ADC1, ENABLE); } ``` 2. **数字滤波算法** 采用滑动平均滤波结合中值滤波: ```c #define SAMPLE_SIZE 8 uint16_t FilterADCValue(void) { static uint16_t buffer[SAMPLE_SIZE]; uint16_t temp[SAMPLE_SIZE]; //采样并排序 memcpy(temp, buffer, sizeof(temp)); bubble_sort(temp); //取中间4个值的平均 return (temp[2] + temp[3] + temp[4] + temp[5])/4; } ``` --- #### 三、验证方法 1. **示波器诊断** 使用示波器同时捕获PWM信号与ADC输入信号,观察是否存在以下现象: - PWM上升/下降沿与ADC信号毛刺同步 - 信号基线随PWM占空比变化而漂移 2. **频谱分析** 通过FFT分析ADC采样数据的频率成分,确认干扰是否来自PWM基频或其谐波。 --- #### 四、典型改进效果 | 优化措施 | 噪声降低幅度 | ADC有效分辨率提升 | |---------|-------------|------------------| | RC滤波 | 40%-60% | 2-3 bits | | 同步采样| 70%-80% | 3-4 bits | | 综合方案| >90% | 4-5 bits | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值