电动车无刷电机是目前最普及的电动车用动力源,无刷电机以其相对有刷电机长寿,免维护的特点得到广泛应用,然而由于其使用直流电而无换向用的电刷,其换向控制相对有刷电机要复杂许多,同时由于电动车负载极不稳定,又使用电池作电源,因此控制器自身的保护及对电机,电源的保护均对控制器提出更多要求。
自电动车用无刷电动机问世以来,其控制器发展分两个阶段:第一阶段为使用专用无刷电动机控制芯片为主组成的纯硬件电路控制器,这种电路较为简单,其中控制芯片的代表是摩托罗拉的MC33035,这个不是这里的主题,所以也不作深入介绍。第二阶段是以MCU为主的控制芯片。这是这篇文章介绍的重点,在MCR版本的设计中,揉和了模拟、数字、大功率MOSFET驱动等等许多重要应用,结合MCU智能化控制,是一个非常有启迪性的设计。
今以应用最广泛的以PIC16F72为智能控制中心,350W的整机电路为例,整机电路如图1
图1:350W整机电路图
字串5
整机电路看起来很复杂,我们将其简化成框图再看看:
580)this.width=580" border=0>
图2:电路框图
电路大体上可以分成五部分:
一、电源稳压,供应部分;
二、信号输入与预处理部分;
三、智能信号处理,控制部分;
四、驱动控制信号预处理部分;
五、功率驱动开关部分。
下面我们先来看看此电路最核心的部分:PIC16F72组成的单片机智能处理、控制部分,因为其他电路都是为其服务或被其控制,弄清楚这部分,其它电路就比较容易明白。
580)this.width=580" border=0>
图3:PIC16F72在控制器中的各引脚应用图
我们先来简单介绍一下PIC16F72的外部资源:该单片机有28个引脚,去掉电源、复位、振荡器等,共有22个可复用的IO口,其中第13脚是CCP1输出口,可输出最大分辨率达10BIT的可调PWM信号,另有AN0-AN4共5路AD模数转换输入口,可提供检测外部电路的电压,一个外部中断输入脚,可处理突发事件。内部软件资源我们在软件部分讲解,这里并不需要很关心。 字串1
各引脚应用如下:
1:MCLR复位/烧写高压输入两用口
2:模拟量输入口:放大后的电流信号输入口,单片机将此信号进行A-D转换后经过运算来控制PWM的输出,使电流不致过大而烧毁功率管。正常运转时电压应在0-1.5V左右
3:模拟量输入口:电源电压经分压后的输入口,单片机将此信号进行A-D转换后判断电池电压是否过低,如果低则切断输出以保护电池,避免电池因过放电而损坏。正常时电压应在3V以上
4:模拟量输入口:线性霍尔组成的手柄调速电压输入口,单片机根据此电压高低来控制输出给电机的总功率,从而达到调整速度的目的。
5:模拟/数字量输入口:刹车信号电压输入口。可以使用AD转换器判断,或根据电平高低判断,平时该脚为高电平,当有刹车信号输入时,该脚变成低电平,单片机收到该信号后切断给电机的供电,以减少不必要的损耗。
6:数字量输入口:1+1助力脉冲信号输入口,当骑行者踏动踏板使车前行时,该口会收到齿轮传感器发出的脉冲信号,该信号被单片机接收到后会给电机输出一定功率以帮助骑行者更轻松地往前走。
7:模拟/数字量输入口:由于电机的位置传感器排列方法不同,该口的电平高低决定适合于哪种电机,目前市场上常见的有所谓120°和60°排列的电机。有的控制器还可以根据该口的电压高低来控制起动时电流的大小,以适合不同的力度需求。
字串5
8:单片机电源地。
9:单片机外接振荡器输入脚。
10:单片机外接振荡器反馈输出脚。
11:数字输入口:功能开关1
12:数字输入口:功能开关2
13:数字输出口:PWM调制信号输出脚,速度或电流由其输出的脉冲占空比宽度控制。
14:数字输入口:功能开关3
15、16、17:数字输入口:电机转子位置传感器信号输入口,单片机根据其信号变化决定让电机的相应绕组通电,从而使电机始终向需要的方向转动。这个信号上面讲过有120°和60°之分,这个角度实际上是这三个信号的电相位之差,120°就是和三相电一样,每个相位和前面的相位角相差120°。60°就是相差60°。
18:数字输出口:该口控制一个LED指示灯,大部分厂商都将该指示灯用作故障情况显示,当控制器有重大故障时该指示灯闪烁不同的次数表示不同的故障类型以方便生产、维修。
19:单片机电源地。
20:单片机电源正。上限是5.5V。
21:数字输入口:外部中断输入,当电流由于意外原因突然增大而不在控制范围时,该口有低电平脉冲输入。单片机收到此信号时产生中断,关闭电机的输出,从而保护重要器件不致损坏或故障不再扩大。
22:数字输出口:同步续流控制端,当电流比较大时,该口输出低电平,控制其后逻辑电路,使同步续流功能开启。该功能在后面详细讲解。
字串9
23--28:数字输出口:是功率管的逻辑开关,单片机根据电机转子位置传感器的信号,由这里输出三相交流信号控制功率MOSFET开关的导通和关闭,使电机正常运转。
有了智能化的控制中心,就需要有其它电路来为其服务,我们在这里从头开始介绍。
一、电源部分
见图4:
580)this.width=580" border=0>
控制器有三组电源,第一组当然是提供总能源的电池,板子上的电解电容C1:1000μF,63V)C11:47μF,63V及C13,C33:0.1μF63V是退耦用的,用于消除由于电源线、电路板走线所带来的电阻、寄生电感等引起的杂波干扰,由于工作在大电流、高频率、高温状态下,特别对电解电容有损耗角小、耐高温的要求,普通的电解电容容易发热爆裂。
第二组电源提供12-15V的电压,这组电压主要提供给MOSFET的开通电压,由于场效应管的驱动要求比较特殊,必须有10V以上20V以下的电压才能很好导通,所以必须有合适的电压供给,同时该组电压也为后面5V稳压块提供预稳压。这组电压由LM317提供,输出大约13.5V。由于LM317的输入输出压差不能超过40V,而输入电压可能高达60V,因此在前面加了一个330Ω,2W的电阻,既预先降压,又替317分担了一部分功耗。 字串8
第三组电源是5V,由LM78L05提供,由于78L05提供的最大电流只有100mA,所以另并联了两个1.5K的电阻以扩流,同时也分担一部分功耗。在整个系统中,对5V电源的要求比较高,不单单是因为逻辑电路,MCU等的电源电压都不能过高,而且由于MCU的所有AD转换都是以5V电压为基准,所以当5V不准时会出现电流,欠压值,手柄控制等均不能达到设计要求的情况,甚至不能动作,因此该电压的范围应被严格限制在4.90-5.10V之间。
二、信号输入与预处理部分
这部分电路包括电源电压输入、工作电流比较,放大输入、手柄电压输入、电机转子位置传感器的霍尔信号输入、刹车信号输入及各种其它功能开关信号输入等。
1.电源电压输入:由于MCU只接受0-5V的信号,所以电源电压必须经过分压才能输入MCU。
2.工作电流放大、输入:电路如图5
图5:略
U3A是一个放大电路,它将康铜丝R55采样过来的电流信号经过6.5倍放大送入单片机。最早的设计在R23上并联了一个0.1μF的电容组成低通放大器,后来为了更好地实时检测电流,将该电容去掉,这样放大后的电压和电流的实际变化基本一致以便MCU采样值更接近于实际值。
U3B是一个比较器接法,实际也是一个比较器,正常时的电流绝对不会让该比较器翻转,当电流由于某种原因突然增大到一定程度,该比较器翻转从而触发单片机的外部中断,单片机就会完全关闭电机的输出进入保护状态,避免故障进一步扩大。
字串8
这里有人会问,为什么放大器的放大倍数取得这么小,如果放大倍数再大一点的话,单片机经过AD转换后的数字相对比较大,分辨率可以做得比较高,何乐而不为呢?这种想法是有道理的,但是限于LM358的频率响应不够高,15KHz(PWM的工作频率大约为15.6K)的方波经358放大之后变成梯形波了,我们目前对电流峰值的采样应当采取梯形波的上边,如果放大倍数过大,梯形波的上边就会变得很窄而使单片机采样困难,甚至采样错误,比如采样到梯形波的斜边,因而不能正确反映电流的实际大小,这就会导致电流控制的紊乱。所以宁愿放大倍数取小点以保证采样位置的准确无误。
图6:略
3.手柄输入部分:手柄输出的电压范围在1.2-4.2V的范围内,经过阻容滤波后输入到单片机处理。手柄需要一个5V的电源才能工作。
图7:略
4.电机转子位置传感器输入部分:由于该传感器安装在电机内部,采用开路输出的办法,所以除提供5V电源外,每个传感器都必须接上拉电阻,并对其输出的信号进行阻容滤波以抗干扰,同时在电源处接二极管、接地采用细铜膜做保险丝,防止电机相线与霍尔信号线短路后高电压反串近来损坏板子上别的零件。
图8:略
5.刹车信号输入:由于刹车信号开关往往和刹车灯共用一个开关,每个厂商的刹车电压也不统一,所以必须接入二极管防止高压串入。高电平输入部分,要做到8-50V输入时都能正常工作。 字串3
6.其它功能开关信号比较简单,功能实现均依靠内部程序实现,在硬件中就不一一介绍。
三、智能信号处理,控制部分,上面已经介绍过,不再重复。
四、驱动控制信号预处理部分;
驱动控制信号大致由两种信号合成:PWM信号和相位逻辑开关信号,这里不得不先介绍一下功率开关部分:功率开关部分是由三组半桥开关组成的三相开关,用以改变电机线圈的通电顺序和通电方向,我们一般把与电源正相接的功率管称为上桥,与电源地相接的功率管称为下桥,参考图一,上桥的相位逻辑开关信号由A+、B+、C+提供,这三个控制信号必须与PWM信号合成后控制对应的上桥,下桥的相位逻辑开关信号由A-、B-、C-提供,基本上直接被用来控制下桥的开关。单片机这六个脚上都接了一个2.2K-10K的电阻到地,是为了防止单片机处在复位时,由于这些脚均处于高阻状态,有可能会引入干扰信号而导致后面逻辑电路误动作,这个比较简单,但是我们现在看到控制部分的电路图并非上面所说的那么简单,实际电路中间弯弯绕绕经过了4个逻辑电路处理后才到达上下桥的驱动电路,许多朋友会问:为什么要如此复杂呢?
其实这些电路都是为了实现一个功能:同步续流。
为什么要同步续流
需要说明一下,这里的“同步续流”,被一些人称为“同步整流”,同步整流是用在电源上的名词,用在这里明显不太合适。 字串3
先参考图9
580)this.width=580" border=0>
图9:同步续流示意图
假设此时A相上桥和C相下桥通电,当A相上桥PWM占空比没有达到100%时,通过电机线圈的电流是断续的,但上桥关闭的时候,由于电机线圈是一个电感,线圈上必定会出现一个自感反电动势,这个反电动势必须维持线圈电流的方向不变,由于A相上桥已经关闭,这个电流就会通过原来已经开通的C相下桥,地,A相下桥的续流二极管继续流动,见图6。当总电流小时这个自感电流并不大,但总电流大时,线圈中储存的能量多起来,这个自感电流也会相当大,我们知道MOSFET的续流二极管本身的压降大约在0.7-1V,在通过的自感电流大时,功耗便会相当大,假设自感电流为10A,二极管压降为0.7V时,功耗为7W,显然这个发热量是相当大的,这时下桥便会变得很烫,假如我们此时把下桥打开,让自感电流直接从MOSFET的沟道里走掉(MOSFET导通时电流可以双向流通),再假设MOSFET导通电阻RDSON=10mΩ,10A的时候功耗就变为1W,理论上就可以大大降低下桥的功耗,从而降低温升。但在实际上,由于上下桥在交叉导通时需要一个死区以避免双管直通造成电源短路,这个作用会打一些折扣,不过效果还是很明显。这也是为什么很多产品的下桥会用好一点的管子的原因。 字串6
同步续流的实现
1.倒向,截波与死区控制,
电路见图10
图10:倒向,死区发生器.略
单片机产生的PWM占空比信号一路通过与门,经R53,R52,C71截波(缩小占空比)后输出,相位不变,截波量大约为1.5μS,形成PWM信号,此路输出至上桥驱动,与上桥逻辑开关信号相与后驱动上桥MOSFET。另一路经R57和C24,反相器U5A移相,相移量大约750nS,再经U5B反相,形成PWM-信号,最后合成至下桥驱动。此时两个信号输出时相位相同,但PWM-信号占空比比PWM信号占空比大1.5μS,但由于PWM-信号已经偏移750nS,所以PWM信号刚好套在PWM-信号中间,两边空出750nS作为MOSFET开关的死区。
处理后波形示意图如图11
580)this.width=580" border=0>
图11:死区发生器输出波形
2.同步续流的逻辑关系
图12为A相驱动电路的实际电路
580)this.width=580" border=0> 字串3
图12
因为三相驱动相同,所以我们这里仅以A相为例说明同步续流功能的实现过程
当A向的逻辑开关信号“A+”为高电平时,A相上桥被“PWM”信号驱动,在整机电流较小的情况下,PV信号为高电平,不管或非门U3C其它两个输入脚电平如何,其输出总是低,所以此时或非门U2B仅受“A-”信号控制,“A-”信号是下桥的逻辑开关,它仅在下桥需要导通时置高,平时为低。当整机电流比较大,而PWM占空比小于100%时,由于A相上桥在PWM间隙关断导致电机线圈中出现较大感应电流,感应电流通过另一相的下桥和A相下桥的二极管泄放,为降低该二极管的功耗,此时应将A相下桥MOSFET打开以减小压降,这时单片机将“PV”信号端拉低,在PV信号和反向后的“A+”信号共同作用下,“PWM-”信号通过U3C传递到U2B,而此时由于“A-”为低,所以U2B受“PWM-”信号控制,在PWM信号关断的间隙使下桥MOSFET导通。当“A+”信号为低电平时,“PWM-”信号并不影响下桥,保证了下桥的正确逻辑而不会误导通。
五、功率驱动开关部分。
以单独一组A相上下桥驱动为例,见图12 字串4
见了这种电路,很多人首先会问:为何上桥的驱动电路如此复杂?
很显然,这么复杂的电路一定有其用途,如果要简单一点话,上桥的功率开关直接用P沟道的MOSFET来做就可以,这样驱动电路会简单很多,但P沟道的功率MOSFET又贵又难买,为了节省成本,只能用N沟道的代替,但N沟道的MOSFET导通时其栅极G的电压必须比源极S高出10V以上才能保证完全导通,这样在上桥导通时,假设电源电压为48V,那么上桥G极的电压就必须比电源电压高12V,也就是大于60V才行。但怎样获得比电源电压还高的驱动电压呢?一般情况可以通过变压器耦合驱动信号,电荷泵升压提供高压等方法,而在这里,则采用了一种叫做“高压浮栅型驱动电路”来驱动上桥。
顾名思义,浮栅驱动的栅极是浮动的,这是一个很形象的描述,我们根据线路图来分析一下栅极是怎样“浮动”起来的
我们先看一下C5的接法,这是整个驱动的关键所在,C5正极通过二极管接到13.5V电源(实际在13.5V左右),负极很奇怪地接到电机的相位线,与它所驱动的MOSFET V1的源极接在一起,在电机不动的情况下,所有的MOSFET关闭,此时C5通过二极管D1,电阻R40充电至接近13.5V,当A+和PWM的合成信号使U4A的3脚输出高电平时,q1导通带动t1导通,这样12V多的电压就会加到V1的栅极使V1导通,而V1导通使电源电压加至负载,也就是V1的源极电压会升高至48V,而此时由于C5充满电,C5上的电压仍然是12V,所以可以维持t1的导通并使V1栅极的电压始终保持高于VCC,这样V1的栅极就好像随着源极电压浮动而浮动,所以叫做“浮栅驱动”。这时如果U4A的3脚一直维持高电平的话,在电容k1和MOSFET本身GS间电容充饱电之后,C5上的储存的电荷主要通过t1的BE结,电阻a1到三极管q1放电(由于此时二极管D7处于正偏状态,所以t2的BE结反偏而截止,因此t2并不参与放电),如果C5足够大,那么可以在相当长的一段时间内保证V1的驱动电压在合理的范围内。这里b1放在q1的射极上组成一个近似恒流的驱动电路,用以保证在C5正极电压升得很高时,通过三极管q1的放电电流不致过大而导致电容很快放完。当U4A的3脚输出低电平时,q1,t1迅速关闭,t2开始导通,将k1和栅极本身积累的电荷迅速泄放,V1被关闭,而此时由于另两组中的一组之下桥维持在导通状态,电容C5就会通过电机绕组和该下桥迅速充电补充电能,为下一个周期做准备。
字串4
从上面的过程可以看出,电容C5的充电量应该是越大越好,但电容大了,可能二极管来不及给电容充电,电容小了,又不能保证导通时间,所以这种驱动不能使V1长时间维持在导通状态,这也是为什么PWM信号要耦合到上桥的一个原因。
其次对于这个驱动电路有人还会产生一个疑问:按理说用作功率开关的MOSFET,为了减少开关损耗,应尽量避免MOSFET工作在放大状态,按照这个原则,驱动MOSFET的电平应该是快速上升、快速下降,而且这个速度是越快越好,但此电路中增加了电阻e1、e2,电容k1、k2,这四个元件在这里的作用显然有悖于快升快降的原则,实际上这四个零件在电路中的作用也确实是有意减慢MOSFET的开启速度,使驱动MOSFET的电压波形上升沿没那么陡峭,为什么要这样做呢?
这个要从MOSFET的结构来看,MOSFET本身各极之间存在极间电容,这个电容被称为密勒电容。而我们现在这种上下桥类似推挽结构的电路,上桥导通时,由于下桥漏极的电压急剧升高,这种电压变化会通过下桥的密勒电容传递给下桥的栅极,我们把上桥导通时下桥漏极电压升高的速度以Δv/Δt表示,当Δv/Δt足够大时,传递给下桥栅极的电荷便会积蓄到足以使下桥导通的地步,这样就会导致上下桥直接将电源短路,而解决这个问题最简单的办法,就是让上下桥开通的速度不要那么快,所以加上阻容延时,并且这里的k1,k2还有吸收部分冲击电压的功效,这里就不多做描述了。