基于C8051F313单片机的一种无刷直流电机调速控制系统
扫描二维码
随时随地手机看文章
前 言
随着环境的污染和能源的紧张,电动自行车以无废气污染,无噪音,利用电能和使用方便等优点,越来越受到人们的喜爱,成为生活中的代步交通工具。本文介绍采用美国公司SILICon laboratories(Silabs)的高速SoC型C8051F313单片机设计的一种无刷直流电机调速控制系统。该系统充分利用C8051F313的片上资源,设计方案电路简单,需要的外围元件少,控制器的整体成本低,性能好。
C8051F313
C8051F313属于Silabs的高速SOC型单片机C8051F系列。C8051F系列单片机集成度高,完全兼容传统的8051单片机内核和指令系统,但其各方面的性能都远远超越了传统的8051单片机。由于采用了“流水线”结构方式处理指令,70%的指令的执行时间为1个或2个系统时钟,突破了传统的8051单片机运行效率低的弱点,特别是它执行乘法指令只要4个系统时钟,执行除法指令只要8个系统时钟。另外C8051F系列单片机片上集成了丰富的外设,极大地降低了对外围元器件的需求:模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus(I2C)、增强型UART、SPI、可编程计数/定时器阵列(PCA)、电源监视器、看门狗定时器(WDT)、时钟振荡器等。另外还有片上的FLASH程序存储器、RAM和XRAM。在编程语言上,支持汇编和C编程。
系统硬件设计
整个控制系统主要包括转子位置检测电路、测速电路、调速电路、MOSFET全桥驱动电路、限流电路等,图1是控制系统框图。直流电源通过MOSFET电路向电动机定子绕组供电;转子位置检测电路检测转子的位置,并根据转子的位置信号来控制MOSFET的导通和截止,从而实现电子换向;测速电路检测电机的转速,调速电路根据测速电路的检测结果,动态地调整电机的转速(调速)。本设计可根据需要设计成60o或120o电角度换相。
转子位置检测电路和测速电路
本设计中的无刷直流电动机为三相无刷直流电机,3个霍尔位置传感器的空间间距为120o。3个霍尔传感器的输出H1、H2、H3分别直接接到C8051F313的PCA(可编程计数器/定时器阵列)的三个捕捉/比较模块:CEX0、CEX1和CEX2。捕捉/比较模块可以对霍尔信号的上升沿和下降沿进行捕捉,并产生中断。这种检测无刷电机转子位置的方法比使用A/D转换或使用比较器的方法更具优越性。外围电路简单,几乎不需要任何外围元器件,实时性又非常高,可靠快速地对霍尔信号进行捕捉。同时使用一个定时器对中断的间隔进行计时。这个时间就反映了电机的转速,软件上通过一定的算法处理,就可以得到电机此时的转速。这种方法得到的电机转速比较真实地反映了电机的实际转速。
MOSFET全桥驱动电路
这部分电路实际上完成电机换相驱动和调速的功能。C8051F313根据转子位置检测电路的检测结果,对无刷直流电机进行实时的换相驱动,同时根据转速检测电路检测到的转速对无刷直流电机进行调速。本设计采用PWM方式对电枢电压进行控制,实现调速。
图2中的Ua为直流无刷电机电枢两端的电压,PWM的周期为T(为一个固定值),改变PWM的占空比,即改变T1的时间,那么直流无刷电机电枢两端的平均电压发生改变,电机的转速也就发生了变化,实现了调速的目的。Ua的计算公式为:
Ua = (T1/(T1 + T2))× Ud
这就是直流无刷电机电枢电压的PWM调速的计算公式。按照相反的次序给直流无刷电机通电,就可以使用直流无刷电机的反转。
在本设计中使用C8051F313的PCA(可编程计数器/定时器阵列)的一个捕捉/比较模块CEX3来产生PWM,并且根据换相和调速的实际需要,通过Crossbar(数字交叉开关)动态地将1路PWM波分时送到到MOSFET全桥的3个下管,进行调速。
软件设计
由于C8051F313兼容传统的8051单片机,汇编指令和传统的8051单片机指令一样,同时支持目前国内使用最广的Keil C仿真软件,只要有过51单片机编程经验或使用过Keil C的人,就可以很轻松的上手C8051F313的编程工作,而不需要事前投入大量时间进行学习。
本设计使用C语言编程,程序可移植性强。其程序流程图如图3所示。
结语
本设计充分利用了C8051F313片上的资源,特别是PCA的资源。使用PCA的3个捕捉/比较模块巧妙地实现了直流无刷电机转子位置的检测;一个捕捉/比较模块产生一路PWM波实时动态地分配到MOSFET桥的三个下管进行调速,同时也实现了直流无刷电机转速的准确测量。整个系统实时性强,可靠性高,性能好。由于C8051F系列单片机片上集成了丰富的外设,极大地降低了对外围元器件的需求,整个系统成本比较低。