基于单片机SH79F168的航模无刷直流电机控制方案
1 概述
本文引用地址://m.amcfsurvey.com/article/220164.htm无位置传感器的无刷直流电机(Brushless Direct Current Motor,BLDCM)由于其快速、可靠性高、体积小、重量轻等特点,在航模领域得到了广泛的应用。但是与有刷电机和有位置传感器的无刷直流电机相比,其控制算法要复杂得多。加上航模设计中对重量和体积的要求非常严格,因此要求硬件电路尽可能简单,更增加了软件的难度。
本文提出了一种基于中颖8位单片机SH79F168的控制方案,借助于该芯片片内集成的针对电机控制的功能模块,只需很少的外围电路即可搭建控制系统,实现基于反电动势法的无位置传感器BLDC控制,在保证稳定性和可靠性的基础上大大降低了系统成本。而且该芯片与传统8051完全兼容,易于上手,从而也降低了研发成本。
2 系统硬件设计
本方案选用中颖的8位单片机SH79F168做为主控芯片。该芯片采用优化的单机器周期8051核,内置16K FLASH存储器,兼容传统8051所有硬件资源,采用JTAG仿真方式,内置16.6M振荡器,同时扩展了如下功能:
双DPTR指针. 16位 x 8乘法器和16位/8除法器.
3通道12位带死区控制PWM,6路输出,输出极性可设为中心或边沿对齐模式;同时集成故障检测功能,可瞬时关闭PWM输出;
7通道10位ADC模块;
内置放大器和比较器,可用作电流放大采样和过流保护;
增强的外部中断,提供4种触发方式;
提供硬件抗干扰措施;
Flash自编程功能,方便存储参数;
主系统硬件架构如图1所示,从图中可以看出该系统大部分功能都由片内集成的模块完成。外围电路的简化一方面可以提高系统可靠性,另一方面也降低了成本。
![基于单片机SH79F168的航模无刷直流电机控制方案](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_0.jpg)
图 1 系统硬件架构
三相逆变桥采用上桥PMOS用三极管驱动,下桥NMOS用PWM端口直接驱动的方式,如图2所示。
![基于单片机SH79F168的航模无刷直流电机控制方案](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_1.jpg)
图 2 三相逆变桥
SH79F169片内集成了三通道6路PWM端口,可分别独立配置为PWM输出或者IO输出。将PWM01~PWM21配置为PWM输出,直接驱动三相逆变桥的下桥;PWM0~PWM2配置为IO端口,经过晶体管反相电路后驱动三相逆变桥的上桥。
外部中断输入INT4x配置为双沿触发,即输入信号的上升沿和下降沿都能触发中断,可用于捕捉调速给定信号。
3 系统软件设计
由于SH79F168的硬件已经完成了大量的任务,软件的部分相对简化很多。主程序流程图如图3所示。
![基于单片机SH79F168的航模无刷直流电机控制方案](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_2.jpg)
图 3 主程序流程图
为便于理解,该流程图经过了尽量的简化,只保留最关键的步骤。主流程中没有列出“检测BEMF”和“换相”两个关键的步骤,因为它们分别在PWM中断和timer0中断中进行。
3.1 反电动势过零点检测
在PWM输出高期间,假设断开相绕组端电压为 ,反电动势为 ,供电电压为 ,则三者之间有如下关系[1]:
![4.jpg](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_3.jpg)
SH79F168提供PWM周期中断和占空比中断。当周期中断发生时不断检测断开相的端电压,并与 比较,直到检测到过零点或者PWM输出低(根据PWM占空比中断标志位判断),即可实现在PWM输出高期间的反电动势过零点检测。每次换相后就切换到另一个通道,检测下一个断开相的端电压,如此循环,实现实时检测。
需要注意是刚换相后的一段时间内,由于MOS管的续流,断开相绕组的电压会出现尖峰。为了准确检测反电动势,可以选择在刚换相的一到两个PWM周期内不进行采样,避开尖峰电压。
3.2 起动算法
BLDC电机的反电动势和转速正相关,在起动和低速运行阶段,电机产生的反电动势为零或很小,因此往往需要经过一段强制加速,使反电动势上升到能够检测过零点的水平。
航模电机一般在较低速时即会产生比较明显的反电动势,这个特点为起动提供了很大的便利。先给电机任意两相通电,使电机获得一个初速度,这时检测断开相电压并等待其发生过零。若检测到过零点则换相,若经过较长一段时间还没有检测到过零则强制换相,重复这个过程直至电机稳定运行。这种起动方式,不但实现简单,而且稳定可靠。在这种方式不能适用时,再根据应用场合考虑选用特定的起动方式,可参考文献[2],限于篇幅本文不详述。
3.3 换相计算
一般在用反电动势法进行BLDC控制的时候,需要对每两次换相的间隔时间进行计时,得到60°电角度时间,然后除以2作为检测到过零点后30°延时的定时值。这就需要用到两个定时器/计数器,一个用作计数器对每两次换相的间隔进行计数,另一个用作定时器实现30°延时。本方案中为了节省timer资源,用一个timer同时完成两项功能。
在每次换相后,检测到该通电状态下的过零点之间,timer0用作计数器;在检测到过零点之后,之前的计数值即为30°电角度,将其作为定时值装入timer0,timer0用作定时器开始定时。定时时间到后,在timer0中断中进行换相。然后timer0又用作计数器,如此循环。正常情况下,由于电机转速很高,每次换相到检测到过零点之间的时间很短,timer0在计数模式下不会发生中断。若timer0在计数模式时发生中断,必然是计数溢出,说明电机经过较长的时间还没有检测到过零点,而这可以作为电机堵转的标志。根据实际情况,可对timer0在计数模式下连续发生中断的次数进行计数,超过一定值即认为发生堵转。这样,timer0还实现了堵转保护的功能。
4 系统测试及总结
图4~6分别为PWM占空比约为20%、50%和100%时,在电机运转过程中用示波器捕捉到的各相电压和过零点位置波形。
![5.jpg](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_4.jpg)
图 4 PWM占空比为20%
![6.jpg](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_5.jpg)
图 5 PWM占空比为50%
![基于单片机SH79F168的航模无刷直流电机控制方案](http://m.amcfsurvey.com/editerupload/fetch/20140120/220164_1_6.jpg)
图 6 PWM占空比为100%
各图中最上方的方波中每个高低翻转的位置即对应程序中检测到过零点的时刻,下面三个梯形波分别为A、B、C三相的端电压。由图中可以看出PWM占空比越高时系统运行越稳定。本系统经测试在PWM占空比低至8%时还能稳定运行。
采用本方案的航模电调通过厂家的各项测试,性能良好,稳定可靠,且节省了成本。目前已进入批量生产阶段,产生了良好的经济效益。
参考文献
[1] Jianwei Shao. Direct Back EMF Detection Method for Sensorless Brushless DC Motor Dives. Thesis submitted to the Faculty of the Virginia Polytechnic Institute and the State University in Partial fulfillment of the requirements for the degree of Master, 2003.
[2] 吴筱辉, 程小华, 刘杰. 反电动势法检测转子位置的直流无刷电机系统起动方法. 中小型电机, 2005, 32(5)
评论