控制pwm信号死区时间的方法、控制器及相关的电子设备

文档序号:1941075 发布日期:2021-12-07 浏览:14次 >En<

阅读说明:本技术 控制pwm信号死区时间的方法、控制器及相关的电子设备 (Method for controlling dead time of PWM signal, controller and related electronic equipment ) 是由 肖良 欧曦 李萌 白俊华 董俊丽 于 2021-09-28 设计创作,主要内容包括:本发明公开了一种控制PWM信号死区时间的方法、控制器及相关的电子设备。该方法包括以下步骤:S1,启动第一PWM波形发生器,以使第一PWM波形发生器输出第一信号;第一PWM波形发生器为负极性;S2,等待预定时间;S3,启动第二PWM波形发生器,以使第二PWM波形发生器输出第二信号;第二PWM波形发生器为正极性。本发明在第一个PWM信号发生器输出的第一个信号出现下降沿后,通过等待死区时间再让第二个PWM信号发生器输出第二个信号的高电平,再通过对两个PWM信号发生器输出信号的占空比的控制保证第二个信号的下降沿后至少经过死区时间,第一个信号才出现高电平,通过两个死区时间保证两个PWM信号发生器输出的信号不会出现同时为高电平。(The invention discloses a method for controlling dead time of a PWM signal, a controller and related electronic equipment. The method comprises the following steps: s1, starting the first PWM waveform generator to make the first PWM waveform generator output the first signal; the first PWM waveform generator is negative; s2, waiting for a preset time; s3, starting the second PWM waveform generator to enable the second PWM waveform generator to output a second signal; the second PWM waveform generator is positive in polarity. After the first signal output by the first PWM signal generator has a falling edge, the second PWM signal generator outputs the high level of the second signal by waiting for dead time, and the control of the duty ratio of the output signals of the two PWM signal generators ensures that the first signal has the high level after the falling edge of the second signal at least passes through the dead time, and ensures that the signals output by the two PWM signal generators are not simultaneously at the high level by the two dead time.)

控制PWM信号死区时间的方法、控制器及相关的电子设备

技术领域

本发明涉及一种控制PWM信号死区时间的方法,同时涉及一种控制PWM信号死区时间的控制器及相关的电子设备,属于电脉冲技术领域。

背景技术

PWM(Pulse Width Modulation)是脉冲宽度调制的缩写。它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化。

近年来,智能家居行业成了新的风口。在智能家居领域,PWM应用越来越非常广泛,例如智能灯具。智能家居对PWM信号的要求也变得越来越高,智能家居电器经常有用到前后两个功率器件的情况,功率器件一般都会因为结电容而产生开启/关闭时候的延迟效应,这种延迟效应可能导致前后功率器件同时开启,进而造成大电流损坏设备的情况,为了精确的控制死区时间,智能家居电器常采用PWM信号控制前后功率器件,死区时间是避免前后功率器件同时开启而设计的保护时间。如果死区时间过小,依然存在由于片间差异造成大电流的风险;如果死区时间过大,则会降低功率器件的效率。

在授权公告号为CN110557013B的中国发明专利中,公开了一种PWM死区时间控制系统。该系统包括可控充放电电流生成模块、死区时间产生模块以及逻辑电路模块,主要利用模拟电路实现了PWM死区时间的产生、可控。但是,该系统采用了数量较多的PMOS管、NMOS管以及逻辑门电路,电路较为复杂。如何用较少的器件控制两路PWM信号发生器的死区时间,仍然是本领域亟待解决的问题之一。

发明内容

本发明所要解决的技术问题在于提供一种控制PWM信号死区时间的方法。

本发明所要解决的另一技术问题在于一种控制PWM信号死区时间的控制器。

本发明所要解决的又一技术问题在于提供一种控制PWM信号死区时间的电子设备。

根据本发明实施例的第一方面,提供一种控制PWM信号死区时间的方法,包括以下步骤:

步骤S1,启动第一PWM波形发生器,以使第一PWM波形发生器输出第一信号;第一PWM波形发生器为负极性;

步骤S2,等待预定时间;

步骤S3,启动第二PWM波形发生器,以使第二PWM波形发生器输出第二信号;第二PWM波形发生器为正极性;

其中,第一信号的频率与第二信号的频率相同,死区时间为预定时间与执行步骤S3的执行时间之和;死区时间、第一信号的空占比,第二信号的空占比,满足以下条件:D1+D2+(2×T1)/T2≤1;其中,D1为第一信号的空占比,D2为第二信号的占空比,T1为死区时间,T2为第一信号的周期。

其中较优的,步骤S2,包括以下步骤:

利用循环语句,等待预定时间;

其中较优的,步骤S3,包括以下步骤:

使能第二PWM波形发生器;

其中较优的,步骤S1之前,还包括以下步骤:

初始化第二PWM波形发生器;

配置第二PWM波形发生器的频率和占空比。

其中较优的,步骤S1之前,还包括以下步骤:

将第二PWM波形发生器的控制寄存器的第一控制值读取到缓存中;

将缓存中的第一控制值改写为第二控制值;

则使能第二PWM波形发生器,包括以下步骤:

将第二控制值写入第二PWM波形发生器的控制寄存器;

其中,第一控制值中用于使能PWM波形发生器的控制位的状态为未使能,第二控制值中用于使能PWM波形发生器的控制位的状态为使能。

根据本发明实施例的第二方面,提供一种控制PWM信号死区时间的控制器,包括:

第一启动模块,用于启动第一PWM波形发生器,以使第一PWM波形发生器输出第一信号;第一PWM波形发生器为负极性;

等待模块,用于等待预定时间;

第二启动模块,用于启动第二PWM波形发生器,以使第二PWM波形发生器输出第二信号;第二PWM波形发生器为正极性;

其中,第一信号的频率与第二信号的频率相同,死区时间为预定时间与执行步骤S3的执行时间之和;死区时间、第一信号的空占比,第二信号的空占比,满足以下条件:D1+D2+(2×T1)/T2≤1;其中,D1为第一信号的空占比,D2为第二信号的占空比,T1为死区时间,T2为第一信号的周期。

其中较优的,等待模块,包括:

等待子模块,用于利用循环语句,等待预定时间;

其中较优的,第二启动模块,包括:

使能子模块,用于使能第二PWM波形发生器;

其中较优的,该控制器还包括:

初始化模块,用于初始化第二PWM波形发生器;

配置模块,用于配置第二PWM波形发生器的频率和占空比。

其中较优的,该控制器还包括:

读取模块,用于将第二PWM波形发生器的控制寄存器的第一控制值读取到缓存中;

改写模块,用于将缓存中的第一控制值改写为第二控制值;

则使能子模块,包括:

写入子模块,用于将第二控制值写入第二PWM波形发生器的控制寄存器;

其中,第一控制值中用于使能PWM波形发生器的控制位的状态为未使能,第二控制值中用于使能PWM波形发生器的控制位的状态为使能。

根据本发明实施例的第三方面,提供一种电子设备,包括上述任意一种的控制器。

与现有技术相比较,本发明在第一个PWM信号发生器输出的第一个信号出现下降沿后,通过等待死区时间再让第二个PWM信号发生器输出第二个信号的高电平,再通过对两个PWM信号发生器输出信号的占空比的控制保证第二个信号的下降沿后至少经过死区时间,第一个信号才出现高电平,通过两个死区时间保证两个PWM信号发生器输出的信号不会出现同时为高电平。

附图说明

图1为本发明提供的一种控制PWM信号死区时间的方法流程图;

图2为本发明实施例中,安排两处死区时间的示意图;

图3为本发明实施例中,步骤S3的耗费时间示意图;

图4为现有技术中,连续启动两个PWM信号发生器输出波形时间差示意图;

图5为本发明提供的一种控制PWM信号死区时间的控制器示意图;

图6为智能灯具中,控制PWM信号死区时间的方法流程图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

图1为本发明的第一实施例提供的一种控制PWM信号死区时间的方法流程图。该方法至少包括以下步骤:

步骤S1,启动第一PWM波形发生器,以使第一PWM波形发生器输出第一信号;第一PWM波形发生器为负极性;

步骤S2,等待预定时间;

步骤S3,启动第二PWM波形发生器,以使第二PWM波形发生器输出第二信号;第二PWM波形发生器为正极性;

其中,第一信号的频率与第二信号的频率相同,死区时间为预定时间与执行步骤S3的执行时间之和;死区时间、第一信号的空占比,第二信号的空占比,满足以下条件:D1+D2+(2×T1)/T2≤1;其中,D1为第一信号的空占比,D2为第二信号的占空比,T1为死区时间,T2为第一信号的周期。

本发明的执行主体是控制器(Central Processing Unit,中央处理器),控制器通过指令来控制PWM波形发生器的启动。本发明中的两个PWM波形发生器按照相同的频率工作。

PWM波形发生器分为负极性和正极性,负极性的PWM波形发生器,在启动后首先输出低电平信号(产生一个由高变低的下降沿),而正极性的PWM波形发生器启动后首先输出高电平信号(产生一个由低变高的上升沿)。另外,两个PWM波形发生器输出的信号的频率是相同的,因此只要一个周期的第一信号与第二信号满足设立死区时间的要求,后面所有周期内的第一信号和第二信号都满足设立死区时间的要求。

在特定的应用场景下,被两路PWM信号控制的设备不能同时工作。例如,由于供电功率限制,灯具中分别受两个PWM信号发生器控制的两个LED灯泡不能同时工作,若同时工作(死区)两个灯泡都不能工作在满功率的状态下,两个灯泡的亮度偏暗或出现其他故障。这时就需要两路PWM信号发生器要相互配合,当一个PWM信号发生器输出高电平控制一个继电器导通启用一个灯泡的时候,另外一个PWM信号发生器必须输出低电平关闭另外一个灯泡。

逻辑上控制器控制两个PWM波形发生器输出的信号一定会避免这种情况(两个PWM信号发生器的控制逻辑不同时为高电平),但有客观上由于硬件限制可能会导致出现某段时间某个PWM信号发生器输出的信号是不定状态的。例如,控制器控制第一信号出现下降沿,硬件上信号不能马上就由高电平变为低电平,而是有一个切换的过程,在这一段时间输出的信号是不定状态的。若在这段时间内,另一个PWM信号发生器的输出高电平信号,可能出现两个PWM信号发生器同时输出高电平的情况。因而,通常需要等待不定状态的信号稳定在低电平后,再把另一个信号变为高电平。等待的这段时间称为死区时间。简而言之,死区时间就是一个PWM信号发生器等待另外一个信号发生器输出的信号稳定的从高电平变低电平后,再输出高电平信号所要等待的时间。

在实际应用中,死区时间可能会比一个信号稳定从高变低,稳定输出低电平的时间要长。因为,设立死区时间的目的是防止两个PWM信号控制的功率器件同时工作。PWM信号通常用于控制功率器件的开关,即使PWM信号稳定,功率器件的开关也需要另外一段时间来达到稳定,实际应用中死区时间是信号稳定和功率器件开关状态稳定的两端时间之和。死区时间是由硬件性能决定的,有的硬件切换高低电平的速度快,死区时间就短,反之,死区时间就长。

图2为本发明实施例中,安排的两处死区时间的示意图,如图2所示,PWM1为第一PWM信号,PWM2为第二PWM信号,A1-B1为两路PWM信号的时间差。图中“1”为安排第一死区时间的区域,“2”为安排第二死区时间的区域。本发明首先启动第一PWM信号发生器输出第一信号,成功启动后,第一信号出现第一个下降沿,信号由高电平变低电平,这时信号不稳定,第二PWM信号发生器等待第一个死区时间(图2中的“1”)后再启动,第二PWM信号发生器输出的第二信号从低电平变成高电平。

负极性的第一PWM波形发生器的硬件在产生下降沿后一定时间内,输出的第一信号的电平是不稳定的,为了防止正极性的第二PWM波形发生器输出的第二信号与第一信号同时为高电平的情况出现。本发明中第二PWM波形发生器等待第一信号由出现下降沿到稳定为低电平的时间(即死区时间),然后再启动输出高电平,这样的等待能够在确保第一信号稳定为低电平的时候,再输出第二信号的高电平。这样可以防止第一信号在状态不确定也可能输出高电平的时候,第二信号也为高电平。

第一个死区时间的是通过错开两个PWM信号发生器启动的时间来形成的,负极性的第一PWM信号发生器,先启动,第一信号由高变低,过了死区时间第二PWM信号发生器输出的第二信号由低变高。第一个死区时间由两部分构成,第一部分是步骤S2等待的预定时间,第二个部分是步骤S3启动第二PWM信号发生器所需的时间。预定时间是用户可以按需设置的,而现有技术启动第二PWM信号发生器的时间通常需要完成三个步骤:

1.初始化第二PWM信号发生器;

2.配置第二PWM信号发生器的频率和占空比;

3.使能第二PWM信号发生器。

其中,第1步对PWM波形发生器进行初始化,初始化具体可以包括打开PWM的时钟门控、将计时器TIMER的模式切换成PWM工作模式等操作。第2步配置PWM波形发生器的占空比和频率,需要向PWM波形发生器的存储这两种信息的寄存器进行写入来完成。

启动第二PWM信号发生器的时间是随机值。图4为现有技术中,连续启动两个PWM信号发生器输出波形时间差示意图。这里的两个PWM信号发生器都为正极性,PWM1为在先启动的PWM波形发生器输出信号的波形,PWM2为在后启动的PWM波形发生器输出信号的波形,PWM1开始输出高电平与PWM2开始输出高电平的时间差(图中A1-A2)为完成上述3个步骤所需的时间(不包括S2步骤中等待的预定时间)。正常的软件流程PWM波形周期的起始位置时间差为一个随机值,这是因为使能PWM1与使能PWM2之间并非一个连续的操作,而是三个步骤,程序经过编译后,可能会因为效率的原因,在非连续的操作中插入其他操作。

因此,死区时间中一部分是可控的(预设时间),另一部分是不可控的(启动第二PWM信号发生器的时间)。但可以通过优化,减少不可控的部分占死区时间的比例,提高控制死区时间的精度。

在上述第一实施例的基础上,本发明的第二实施例进一步提供一种经过改进的方法,即:

步骤S2,进一步包括以下步骤:

利用循环语句,等待预定时间;

步骤S3,进一步包括以下步骤:

使能第二PWM波形发生器;

步骤S1之前,还包括以下步骤:

初始化第二PWM波形发生器;

配置第二PWM波形发生器的频率和占空比。

实际应用中,等待时间的循环语句可以是while(--delay),或者for(i=0;i<delay;i++)。其中,delay为用户可操作的用于设定预定时间的时间差参数,与预定时间存在固定的对应关系。while(--delay)语句的控制精度相对于for(i=0;i<delay;i++)的对预定时间的控制精度更高,建议使用while(--delay)语句。

若为while(--delay),delay为1时,此while(--delay)的C语言代码经过编译可生成如下汇编语句:

LOOP:

SUBS R0,#1

BNE LOOP

其中,R0即为delay,R0每个循环数据-1,若R0>0,则BNE语句跳转到LOOP,否则就结束循环。SUBS语句执行时间为1个控制器时钟周期,BNE语句若跳转LOOP则为3个控制器时钟周期,若不跳转结束循环则为1个控制器时钟周期,即上述语句进行跳转的每个循环执行时间为4个控制器时钟周期,最后一个周期结束循环,不跳转结束循环的执行时间为2个控制器时钟周期。while(--delay)的总执行时间为(delay×4–2)个控制器时钟周期(即为预定时间)。

第二实施例改变了启动PWM信号发生器的步骤次序,将启动第二PWM信号发生器的步骤1和步骤2挪到步骤S1之前,这样能够缩短步骤S3的时间,这样就减少不可控的部分占死区时间的比例,提高控制死区时间的精度。图3为第二实施例步骤S3耗费时间示意图,将步骤1和步骤2挪到步骤S1之前,S3步骤的执行时间理论上为8个控制器时钟周期。

实际应用中,还能够进一步从C语言代码的执行效率方面进一步缩短步骤S3的执行时间,以提高死区时间的控制精度。

在第二实施例的基础上,本发明进一步提供一种方法,即在步骤S1之前,还包括以下步骤:

将第二PWM波形发生器的控制寄存器的第一控制值读取到缓存中;

将缓存中的第一控制值改写为第二控制值;

则使能第二PWM波形发生器,包括以下步骤:

将第二控制值写入第二PWM波形发生器的控制寄存器;

其中,第一控制值中用于使能PWM波形发生器的控制位的状态为未使能,第二控制值中用于使能PWM波形发生器的控制位的状态为使能。

实际应用中,使能第二PWM波形发生器的C语言语句为:

PWM2->CR|=1;

经过编译器的编译,汇编指令角度观察,展开之后为以下三个指令:

1)读取PWM2控制寄存器的值;

2)将其中的使能位修改为1;

3)将新的PWM2的值写入PWM2控制寄存器。

按照上述拆分,可以将C语言代码拆分成两句:

pwm2_val=PWM2->CR|1;

PWM2->CR=pwm2_val。

其中,pwm2_val为缓存中的中间变量。本实施例将步骤1)和步骤2)挪到步骤S1之前执行(理论上为6个控制器时钟周期),然后只在步骤S3中执行步骤3),能够进一步压缩了步骤S3的时间为2个控制器时钟周期(理论值)。

不考虑步骤S2,步骤S1和步骤S3的C语言代码可以调整为:

pwm1_val=PWM1->CR|1;

pwm2_val=PWM2->CR|1;(步骤S1之前)

步骤S1:PWM1->CR=pwm1_val;

步骤S3:PWM2->CR=pwm2_val。

步骤S2的循环语句放在步骤S1与步骤S3之间,在进行编译的时候,能够防止编译器将其他操作插入到步骤S1和步骤S3之间,这样启动第二PWM信号发生器的时间不再是随机时间,而是确定的时间。这样,若步骤S2若使用while(--delay)语句,死区时间与参数delay之间的关系为(4×delay-2+2)×控制器时钟周期=4×delay×控制器时钟周期,即启动第一PWM信号发生器输出信号与启动第二PWM信号发生器输出信号的时间差。若控制器时钟为32MHz,死区时间为delay×0.125μs。

以上介绍了第一死区时间的形成与改进的方式。本发明中还包括第二死区时间(图2中的“2”)。第二信号的下降沿后,第一信号需要至少要在死区时间后,再输出高电平。

如果要形成第二死区时间,需要控制两个PWM信号发生器的占空比。使得“2”的位置能够插入一个死区时间。极限情况下,一个第一信号的周期(等于第二信号的周期)中有两个死区时间和一个第一信号的高电平脉冲时间和一个第二信号的高电平脉冲时间,即第一死区时间+第二信号的高电平脉冲时间+第二信号的高电平脉冲时=第一信号一个周期的时间,因而D1+D2+(2×T1)/T2=1;其中,D1为第一信号的空占比(因第一信号为负极性,高电平对第一信号来说相当于是空),D2为第二信号的占空比,T1为死区时间,T2为第一信号的周期。若D1+D2+(2×T1)/T2<1,则在“2”区域经过第二死区时间,第一信号还要在经过一段时间才变为高电平,更不会出现两个PWM信号的高电平“重叠”的情况。若D1+D2+(2×T1)/T2>1,则“2”区域无法满足死区时间的要求。或者在“2”区域第一信号与第二信号的高电平出现“重叠”的情况。

另外,第一PWM信号发生器也可以是正极性的,在第一PWM信号发生器之后有一个反相器门电路。此时,D1+D2+(2×T1)/T2≤1中,D1为第一信号的占空比。由于反相器门电路的速度非常快,信号通过的延时为ns级别,根据上文两路PWM信号的时间差为μs级别,因此计算是否满足死区时间的条件时,可以不予考虑。

由于在本发明实施例中,启动第一PWM信号发生器输出信号与启动第二PWM信号发生器输出信号的时间差是可以准确设定的,因而可以通过信号时间差,第一PWM信号的占空比、第二PWM信号的占空比来判断两路PWM信号是否满足死区时间的条件。即满足D1+D2+(2×T1)/T2≤1。

本发明在第一个PWM信号发生器输出的第一个信号出现下降沿后,通过等待死区时间再让第二个PWM信号发生器输出第二个信号的高电平,再通过对两个PWM信号发生器输出信号的占空比的控制保证第二个信号的下降沿后至少经过死区时间,第一个信号才出现高电平,通过两个死区时间保证两个PWM信号发生器输出的信号不会出现同时为高电平。

图5为本发明第四实施例提供的一种控制PWM信号死区时间的控制器,至少包括:

第一启动模块,用于启动第一PWM波形发生器,以使第一PWM波形发生器输出第一信号;第一PWM波形发生器为负极性;

等待模块,用于等待预定时间;

第二启动模块,用于启动第二PWM波形发生器,以使第二PWM波形发生器输出第二信号;第二PWM波形发生器为正极性;

其中,第一信号的频率与第二信号的频率相同,死区时间为预定时间与执行步骤S3的执行时间之和;死区时间、第一信号的空占比,第二信号的空占比,满足以下条件:D1+D2+(2×T1)/T2≤1;其中,D1为第一信号的空占比,D2为第二信号的占空比,T1为死区时间,T2为第一信号的周期。

在第四实施例的基础上,本发明进一步提供一种控制器。在该控制器中,等待模块具体包括:

等待子模块,用于利用循环语句,等待预定时间;

第二启动模块,具体包括:

使能子模块,用于使能第二PWM波形发生器;

该控制器还包括:

初始化模块,用于初始化第二PWM波形发生器;

配置模块,用于配置第二PWM波形发生器的频率和占空比。

在第四实施例的基础上,本发明进一步提供一种控制器,还包括:

读取模块,用于将第二PWM波形发生器的控制寄存器的第一控制值读取到缓存中;

改写模块,用于将缓存中的第一控制值改写为第二控制值;

则使能子模块,包括:

写入子模块,用于将第二控制值写入第二PWM波形发生器的控制寄存器;

其中,第一控制值中用于使能PWM波形发生器的控制位的状态为未使能,第二控制值中用于使能PWM波形发生器的控制位的状态为使能。

本发明的第五实施例提供了一种电子设备,包括上述任意一种的控制器。

本发明实施例中的电子设备可以是智能灯具,智能灯具可以具有wifi、蓝牙或者红外线等远程通信模块。通信模块可以与终端进行通信。终端可以是电脑、手机或者遥控器。

下面,以终端为遥控器,两路PWM信号发生器控制两个灯泡的亮灭,并且设置有死区时间为例,结合图6对智能灯具中,控制PWM信号死区时间的方法流程进行说明。具体包括如下步骤:

步骤S1,遥控器设置灯1的PWM占空比,灯2的PWM占空比亮度和时间差参数,发送给控制器,并要求控制器使能灯1和灯2的PWM信号发生器;

步骤S2,控制器根据上述参数确定是否满足死区时间的条件,若不满足则发送通知给遥控器,要求用户更改数据,返回步骤S1;若满足则转至步骤S4;

步骤S3,发送通知给遥控器,要求用户更改数据,转至步骤S1;

步骤S4,控制器对灯1的第一PWM信号发生器和灯2的第二信号发生器进行初始化,并设置第一PWM信号发生器、第二PWM信号发生器的占空比和频率;

步骤S5,控制器将第一PWM信号发生器的控制寄存器的数据和第二PWM信号发生器的控制寄存器的数据读取到缓存中,修改两个缓存数据的使能位的状态为“使能”;

步骤S6,控制器从缓存向第一PWM信号发生器的控制寄存器写入使能第一PWM信号发生器的数据,使能第一PWM信号发生器;

步骤S7,控制器等待预定时间;

步骤S8,控制器从缓存向第二PWM信号发生器的控制寄存器写入使能第二PWM信号发生器的数据,使能第二PWM信号发生器。

上面对本发明所提供的控制PWM信号死区时间的方法、控制器及相关的电子设备进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质内容的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种改善交错式PFC轻载效率的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!