由于MCU和DSC的成本大幅下降,目前多数马达控制设计中都使用MCU和数字信号控制器(DSC)来执行马达控制算法。本文介绍了一些方法和技巧,可将MCU或DSC的逻辑层输入/输出口(I/O)与功率电子驱动电路接口,并讲述了如何正确地进行相关硬件及软件开发的方法。
在进行MCU或DSC的逻辑层输入/输出口(I/O)与功率电子驱动电路的接口设计时,除了性能和价格需要权衡考虑外,还有许多方面要折衷处理。我们可根据以下问题来选择接口元件:1. 本电路需要驱动何种马达?2. 该马达采用何种算法进行控制?3. 控制器外设可简化哪些接口要求?4. 电气安全要求是什么?5. 此设计是否用于产品开发?
栅极驱动接口电路
HSPACE=12 ALT="图1:自举电路给一只电容器充电,电容器上的电压基于高端输出晶体管源极电压上下浮动。">
半桥输出电路结构可用于控制多种马达,包括有刷直流马达、无刷直流马达、交流感应式马达及永磁交流马达。电源级电路需要一个栅极驱动接口电路,该电路至少应具备以下功能:1. 将MCU的逻辑输出电平进行转换,在晶体管的栅极和源极间提供一个10-15V的电平。2. 在晶体管的开通和关断时提供足够大的驱动电流,以克服米勒电容的影响。
高端输出器件向来是栅极驱动接口电路的一个问题。在电源输出级电路中,无论是高端或低端输出都应该采用N沟道器件。在裸片尺寸和击穿电压固定的情况下,P沟道器件的导通电阻往往比N沟道器件高。使用P沟道器件可简化栅极驱动电路,但会增加设计成本。裸片尺寸越大成本越高,而且P沟道器件往往比同类的N沟道器件成本高。
由于低端器件的电位是相对于电路的接地点而言的,因此在电源级电路中产生一个用于低端器件的栅极电源电压十分容易。栅极控制电压必须以源极电压为参考,在高端晶体管中它是满幅电压。因此,电源级电路中的高端器件需要一个栅极电源,该电源基于源极电压上下浮动。
现在有许多便宜的IC可简化栅极驱动电路的设计。但其中有些只是简单的大电流驱动电路,不具备高端器件所需的电平转换电路。另一些则包括电平转换电路,可直接与逻辑及功率器件接口。选择栅极驱动器时要视设计的绝缘要求而定。光电耦合器既可以满足电平转换要求,又使我们可在设计中选用简单的栅极驱动器IC。
在许多马达控制设备中,线路总电源从与AC线路直接相连的全波整流电路获得并经过滤波。整流器的低端电压成为整个电路的参考电压(0V)。不过,这一参考电压并非接地电压。在低端也存在交流电压,它在OV左右和峰值线电压间来回波动。在许多低成本应用中,将MCU或DSC基于这一低端电位上下浮动是有意义的。不过,如果设计要求测试或现场服务的话,出于安全考虑最好加上信号隔离。至少在产品开发阶段使用的马达驱动硬件应该具有信号隔离功能。
即使从尽量减少破坏来考虑,也应该采用隔离电路。在某一具体设计中,即使没有隔离反馈信号,也应该隔离栅极控制信号。否则,电源器件可能会损坏或短路,从而使得直流总线电压通过驱动电路耦合回来并流入逻辑器件中。
栅极驱动器IC通常具有其它特性,包括欠压断电保护、插入一段死区、防止高端功率器件和低端功率器件交叉导通以及过电流自动关机等。不过这些功能也会增加额外成本。
有多种方法可产生栅极驱动电路的电源。原则上来说,高端驱动电路应该产生一个比DC总线电压高出10-15V的电压,用于输出级电路。由于自举电路无需浮动电源,因此是最便宜的。如图1所示,自举电路给一只电容器充电,电容器上的电压基于高端输出晶体管源极电压上下浮动。下面的晶体管开通时将高端晶体管的源极电压拉到0 V,只有此时电路才对电容器充电。电容器必须储备足够的电荷,以便在上端的晶体管处于开通状态时维持所需的栅极电压。由于带有电容器,自举电源无法保证上面的晶体管一直开通。当自举电容器上的电压下降时,高端器件便会关断。
由自举电路的局限性所产生的副作用与马达类型有关。对用正弦波电流驱动的马达而言,自举电路会限制加在反相器上的PWM占空比。我们可以通过改变自举电路中元件的大小来增大占空比。不过,由于BLDC和SR电动机需要换相,因此通常不采用自举电路。
如果高端器件的栅极驱动必须保持连续,那么必须使用浮动电路来产生比直流总线电压高10 V至15 V的电压。我们可以采用充电泵电路,它的电压是相对高端晶体管的源极电压而言的。另一种方法则是用一个高频信号来调制栅极信号,这样在栅极驱动信号出现时,高频信号也会出现。在图2中,调制信号通过一只变压器耦合到晶体管的栅极和源极,并在变压器的次级经过整流产生栅极驱动电压。但是,这两种方法都会增加设计的成本。
马达反馈信号
马达和电源控制电路需要提供各种信号,这些信号视马达的类型及控制算法而定。采集一种反馈信号的方法很多。例如,许多马达控制算法需要知道负载中的相电流。测量相电流的最简单方法是使用霍尔效应电流传感器。霍尔传感器与驱动马达的高压电路完全隔离,它使用逻辑电路的电源,连接到MCU或者DSC中的A/D转换器时所需元件极少,缺点则是成本高。
测量相电流的另一个方法是采用PWM电流传感器IC。它测量一只与负载串联、对电流敏感的电阻器上的电压降。经过设计,这些器件基于功率输出级输出的满幅电压上下浮动,并采用自举电源供电。这种传感器的输出是PWM信号,它的占空比与感应电阻器中的电流成正比,并有两种方法与微控制器连接。第一种方法是采用一个RC滤波器网络对PWM的输出信号滤波,并把它转换成模拟信号。这个方法的缺点是,控制算法要求滤波器输出中没有纹波和相位误差。此外使用滤波器也增加了设计的成本。另外一个方法是直接把PWM的输出信号送到微控制器上的输入采集外设引脚上(图3)。这一外设在输入信号处于上升沿和下降沿(或两者)时采集数字时基信号的脉冲数,并用应用软件进行处理,从而计算出输入信号的周期、频率或者占空比。
当控制器上有“输入采集”引脚时,我们也可以在设计中加上隔离式模拟放大器,通过数字转换来得到相电流。用V/F或者电压/PWM转换器把模拟信号转换成数字信号。模拟信号可用数字式光耦合器通过隔离电路传到控制器。与模拟隔离方案相比,V/F转换器+光耦合器方案成本较低。HSPACE=12 ALT="图4:用差动放大器来放大电阻器两端的电压,然后送入A/D转换器的输入端。">
测量相电流的第三个方法是,在电源级电路的每个低端晶体管源极串联一只感应电阻器(图4),用差动放大器来放大电阻器两端的电压,然后送入A/D转换器的输入端。在使用这个方法时,A/D转换器必须与控制晶体管的PWM信号同步。为了得到精确的电流信号,应当在电源输出级中的低端晶体管开通时进行测量。在使用分流电阻进行测量时,内建有A/D同步逻辑电路的控制器很有用。
进行软件开发
用传统的仿真器来开发马达控制软件比较困难。使用仿真器时,设计人员可以在任何时刻停止应用软件的执行,以便查看寄存器值以及代码执行情况。但是,在某些时刻停止软件执行其实会对马达和电源电路造成极大影响。
在停止软件执行时,PWM 控制值不再更新,马达和电源输出级电路中便会出现较大的直流电流。为了解决这一问题,应该通过仿真器将PWM信号置于不会损坏负载的状态。例如,dsPIC30F系列PWM外设部件可在仿真器停止时将所有PWM输出引脚设置在低电平状态。这时所有输出器件都关断,马达慢慢停下来。在产品开发过程中,加入额外的硬件保护功能十分有用。这些功能可在产品开发过程出现软件错误时保护硬件不受损坏,并可在正式生产时去除以节省成本。这些功能包括限流、总线电压过载保护及在高、低端晶体管同时导通时关机。
本文小结
在选定某种控制器后,我们便要选择相应的元件来连接控制器和电源输出级电路。通用MCU能够满足算法需求,但是它可能不具备与马达控制直接相连的外设部件。我们必须在接口电路中增加相应硬件,以保护输出器件或处理反馈信号。