【关键词】直流电机精确控制可移植性stm32微控制器
大部分直流电机驱动在系统中集成,依靠控制器对外部参数进行分析处理后输出的驱动指令来实现各种动作,在集成电路的条件下可完成直流电机的保护和驱动,但驱动部分无法移植;本次研究拟设计一种基于stm32微控制器的直流电机驱动器,实现电机控制、检测、保护、通讯、显示为一体,具有响应速度快、控制精度高的特点,同时也保证了可移植性。
1总设计方案
以stm32主控芯片为控制系统,其余组成部分为驱动电路、电源电路、检测电路、显示电路、通信电路等。该驱动器拟设计成双电机驱动模式,在根据指令完成保护、驱动操作的同时还能对电机运行参数进行实时监测显示和反馈,如图1所示。
2电路硬件设计
2.1控制系统
本驱动器采用STM32F103RCT6微处理器,基于Cortex-M3内核,最高的时钟频率为72MHZ,拥有丰富的外设资源,包含了DMA控制器、ADC、还拥有专用于电机控制的高级定时器,有强大的边沿捕获能力和PWM功能,可以使设计大大的简化,系统总功耗降低;采用SWD仿真接口,引脚更少,连接更为简单安全,代码也能以更快的速度下载到Flash当中。
2.2驱动电路
驱动器采用VNH3SP30芯片作为电机驱动单元,VNH3SP30是意法半导体公司生产的专用于电机驱动的大电流功率集成芯片,最大电流为30A、电源电压高达40V,内含欠压、过压保护电路,具有过热报警输出和自动关断等功能。
STM32单片机通过光耦隔离来实现对驱动芯片的控制和信号反馈,单片机通过控制INA和INB管脚高低电平来实现电机的正反转及制动,通过PWM信号控制电机转速,ENA和ENB管脚实现芯片的过热、过压、欠压及过流反馈,如图2所示。
2.3电源电路
电源电路设计参数值具体包括如下:
(1)stm32微处理器和通信芯片供电电压3.3V;
(2)VNH3SP30芯片驱动和检测电路供电电压5V;
(3)增量式码盘供电电压12V;
(4)VNH3SP30芯片电机驱动供电电压24V。
在电源电路中,电源输入电压为24V,通过LM2576S-12.0,LM2576S-5.0以及SPX1117IMPX-3.3稳压芯片将电压分别降为12V、5V、3.3V后供给各电路。
2.4检测电路
检测电路包括电流检测、电压检测以及转速检测,主要用于对流过电机的电流、电机两端电压以及电机转速进行检测。电压、电流、转速信息不仅可对电机运行提供保护,而且还能用于对电机运行特性参数进行调整。
电流检测元件使用电流传感器(ACS712),在该传感器内设置有高精准性的低偏置线性霍尔传感器电路,可对交流、直流电流成比例的电压进行输出和检测。电压检测则以分压电路实现,将直流电机并联到电阻上,将电阻输出电压调节到stm32的ADC采集范围内。转速检测预留增量式码盘接口,将码盘固定于电机上,电机轴和码盘转子相连,处理器通过采集码盘信息从而计算出电机转速。
2.5显示电路
驱动器预留LCD显示电路接口,LCD分别接在stm32的PA8~12、PB6~7等共计16个端口,对电机驱动时的转速、电压、电流以及故障等运行情况进行显示。
2.6通信电路
通信电路设计采用SP3232芯片,实现上位机与电机驱动器之间的通信,用于实现控制器对电机的转向、转速的控制及电机运行电压、电流、转速、运行状态等情况的反馈。
3软件设计
软件设计以stm32自带的固件库为基准,与直接控制寄存器相比可有效降低编程难度和耗时,驱动器功能主要包含PWM控制和ADC信号采集。驱动器控制以脉宽调制实现,通过对占空比进行调节,达到控制电机转速的目的。考虑到电压波动负载变化会对转速产生影响,因此本设计中以PID算法对转速波动进行调节;由于ADC采集会受到电压和电流波动的影响,因此可将每秒采集的数据量累积到10求均值,再将均值与电机欠压、过压、过流的临界值进行比对,若超过临界值则反馈故障状态;232通信主要实现上位机对电机转向、转速的实时控制和运行状态的反馈。
4总结
本文基于stm32微控制器对直流电机驱动器的驱动和运行控制进行了设计,实现了驱动部分对电机运行状态的监测和反馈,同时节约了控制系统的程序空间,提高控制精度,赋予了驱动系统可移植性。
参考文献
[1]吴勇,王友仁,王强,等.基于STM32的无刷直流电机正弦波驱动控制系统设计[J].微电机,2015(09):39-42.
[2]邱恒.基于STM32单片机的直流电机调速系统设计研究[J].电子世界,2016(07):156-156.
[3]刘学俊.基于STM32的永磁直流无刷电机的控制及其在绕线机上的应用[D].厦门大学,2014.5-6.
在直流伺服控制系统中,通过专用集成芯片或中小规模的数字集成电路构成的传统PWM控制电路往往存在电路设计复杂,体积大,抗干扰能力差以及设计困难、设计周期长等缺点?因此PWM控制电路的模块化、集成化已成为发展趋势。它不仅可以使系统体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高。随着电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA)工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图设计系统工程的诸多不便。针对以上情况,本文给出一种基于复杂可编程逻辑器件(CPLD)的PWM控制电路设计和它的仿真波形。
1PWM控制电路基本原理
为了实现直流伺服系统的H型单极模式同频PWM可逆控制,一般需要产生四路驱动信号来实现电机的正反转切换控制。当PWM控制电路工作时,其中H桥一侧的两路驱动信号的占空比相同但相位相反,同时随控制信号改变并具有互锁功能;而另一侧上臂为低电平,下臂为高电平。另外,为防止桥路同侧对管的导通,还应当配有延时电路。设计的整体模块见图1所示。其中,d[7:0]矢量用于为微机提供调节占空比的控制信号,cs为微机提供控制电机正反转的控制信号,clk为本地晶振频率,qout[3:0]矢量为四路信号输出。其内部原理图如图2所示。
该设计可得到脉冲周期固定(用软件设置分频器I9可改变PWM开关频率,但一旦设置完毕,则其脉冲周期将固定)、占空比决定于控制信号、分辨力为1/256的PWM信号。I8模块为脉宽锁存器,可实现对来自微机的控制信号d[7:0]的锁存,d[7:0]的向量值用于决定PWM信号的占空比。clk本地晶振在经I9分频模块分频后可为PWM控制电路中I12计数器模块和I11延时模块提供内部时钟。I12计数器在每个脉冲的上升沿到来时加1,当计数器的数值为00H或由0FFH溢出时,它将跳到00H时,cao输出高电平至I7触发器模块的置位端,I7模块输出一直保持高电平。当I8锁存器的值与I12计数器中的计数值相同时,信号将通过I13比较器模块比较并输出高电平至I7模块的复位端,以使I7模块输出低电平。当计数器再次溢出时,又重复上述过程。I7为RS触发器,经过它可得到两路相位相反的脉宽调制波,并可实现互锁。I11为延时模块,可防止桥路同侧对管的导通,I10模块为脉冲分配电路,用于输出四路满足设计要求的信号。CS为I10模块的控制信号,用于控制电机的正反转。
2电路设计
本设计采用的是Lattice半导体公司推出的is-plever开发平台,该开发平台定位于复杂设计的简单工具。它采用简明的设计流程并完整地集成了LeonardoSpectrum的VHDL综合工具和ispVMTM系统,因此,无须第三方设计工具便可完成整个设计流程。在原理设计方面,本设计采用自顶向下、层次化、模块化的设计思想,这种设计思想的优点是符合人们先抽象后具体,先整体后局部的思维习惯。其设计出的模块修改方便,不影响其它模块,且可重复使用,利用率高。本文仅就原理图中的I12计数器模块和I11延迟模块进行讨论。
计数器模块的VHDL程序设计如下:
entitycounteris
port(clk:instdlogic;
Q:outstdlogicvector(7downto0);
cao:outstd_logic);
endcounter;
architecturea_counterofcounteris
signalQs:std_logic_vector(7downto0);
signalreset:std_logic;
signalcaolock:std_logic;
begin
process(clk,reset)
begin
if(reset=‘1')then
Qs<=“00000000”;
elsifclk'eventandclk=‘1'then
Qs<=Qs+‘1';
endif;
endprocess;
reset<=‘1'whenQs=255else
‘0';
caolock<=‘1'whenQs=0else
‘0';
Q<=Qs;
cao<=resetorcaolock;
enda_counter;
图2PWM可逆控制电路原理图
在原理图中,延迟模块必不可少,其功能是对PWM波形的上升沿进行延时,而不影响下降沿,从而确保桥路同侧不会发生短路。其模块的VHDL程序如下:
entitydelayis
port(clk:instd_logic;
input:instd_logic_vector(1downto0);
output:outstd_logic_vector(1downto0)
enddelay;
architecturea_delayofdelayis
signalQ1,Q2,Q3,Q4:std_logic;
begin
process(clk)
begin
ifclk'eventandclk=‘1'then
Q3<=Q2;
Q2<=Q1;
Q1<=input(1);
endif;
endprocess;
Q4<=notQ3;
output(1)<=input(1)andQ3;
output(0)<=input(0)andQ4;
enda_delay;
图3为原理图中的若干信号的波形仿真图。
1整车系统设计思路
智能小车控制系统采用MK60DN512作为核心控制单元,由安装在车身支架上的OV7620数字摄像头负责采集道路信号;智能小车后轮安装有光电测速传感器,用来采集车轮的转速数据,并将信号传到核心控制单元进行分析处理,处理完毕后反馈到相应的驱动模块,驱动舵机和电机运转,从而完成智能小车的转向、前进及制动[1]。智能小车控制系统包括以下模块:MK60DN512最小系统、转向舵机模块、电机及其驱动模块、速度反馈模块、摄像头视频信号处理模块和电源管理模块[2]。
2智能小车机械结构设计
在智能小车机械结构的设计与安装调试时,需要考虑以下几个方面:
1)智能小车在安装过程中的可靠性与行驶过程中的稳定性。
2)智能小车在安装过程中的轻便简洁性。
3)是否能够方便准确地进行数字摄像头OV7620的检测与调试。
4)车体保证较低的重心以确保智能小车顺利转弯、加速。
经过不断地调试、摸索、对比之后,完成了对智能小车机械结构的初步设计,主要内容有以下几个方面:
1)为了减少转向舵机的力臂滞后时间,将舵机直立架在车前,并使用专业的金属框架牢牢固定住,以防松动,避免影响舵机转向角度的准确性。
2)数字摄像头OV7620及其支架安装在车身中部,减少车前数据采集盲区,将车身重心略微前移,防止智能小车转弯时侧滑,增加智能小车的弯道通过性。
3)为了减少车身质量,采用了强度高、质量轻的碳纤维管。
4)在底盘设计上,底盘是支承、安装各部件的总成,是形成智能小车整体造型结构的基础;可以接受电机传递的驱动动力,带动智能小车行进,以保证智能小车在跑道上的快速行驶。由于合适的重心对于小车过弯性能和小车速度这两个方面起了很大的作用,适当地调整前后底盘高度,使得智能小车车模整体重心下降到合理位置,既可以顺利过坡,又不会与跑道摩擦接触。
3智能小车硬件电路系统设计
3.1智能小车总体电路设计
通过简化总体硬件电路设计方案,采用模块化设计方案,减少不必要的电子元件的使用,就可以有效地减轻PCB板的使用质量及其占用智能小车的有效空间,从而达到轻量化的目的。硬件电路总体结构设计如图2所示。
3.2电源分配板的电路设计
采用比较节能的线性稳压电路设计方案。电源分配如图3所示。TPS7350是一款差线性电源稳压芯片,它具有功率消耗低、额定电压小等特点,而且只需极少的元件就能够构建满足智能小车硬件电路设计要求的稳压电路,该芯片还拥有过流、过压及电压反接等电压保护设计,能够有效地保护智能小车的硬件电路,避免电压过大或电流反接而导致的硬件电路烧毁事件的发生。
3.3电机驱动板的电路设计
采用由BTN7970B驱动芯片搭建的H桥电路设计方案,减小驱动电路的内阻,增大额定承载电流,可以让智能小车获得更大的加减速度及提高在直道上行驶的极限速度。H桥电路原理如图4所示。
4智能小车的软件系统设计
智能小车系统软件设计部分主要有:图像采集及处理、道路判断、舵机打角、电机控制以及速度信息反馈处理等。
4.1图像采集及处理算法
OV7620能够提供的三种数据制式中,采用YUV16位数据制式来提取Y信号亮度信息,生成黑白图像,同时采用HREF-行同步信号、VSYNC-场同步信号来作为图像数据采集的控制信号[4]。为了提高智能小车控制系统的实时性,视频图像信号采集采用外部中断触发的方式进行。采样系统的程序流
4.2路径优化
1)增加智能小车摄像头视场的长度和宽度。根据实验调试的观察,当智能小车采集到的图像能够覆盖比较完整的S弯道时,通过微处理器计算出来的中心就会处于实际道路中央附近,此时智能小车会以一个比较好的路径快速通过S弯道;反之智能小车容易误处理为普通的单向弯道,这样导致智能小车的行驶速度大大减慢。因此,尽量增大摄像头视场的长度和宽度就很有必要了。由于视场的长度与单片机处理的图像行数成正比,所以采用由运算放大器制作的模拟比较器进行图像二值化,可以令单片机的处理速度大大提高,增加了单片机处理的图像行数,达到的视场长度为200cm以上;为了增加视场宽度,除了增加每行采集的图像点数之外,采用了广角镜头,有效地增加了摄像头视场的宽度。
2)进行加权算法的相关优化。采用对整场有效行的中心加以求加权平均值的算法,在低速情况下可以有效地优化智能小车的行进路径,但在智能小车速度提高到一定程度之后,由于过弯时轮胎的侧滑,路径不是很好找,而且由于数字摄像头采集图像分布不均,基本上2/3的行分布于车体前方40cm左右的范围内,所求出的加权平均值容易受车体近处的图像影响,因此整场图像求加权的算法对于高速情况下智能小车的路径选择优化效果不太明显。考虑减小车体前部一定范围内的图像参与加权的行数和权重,同时增大摄像头视场前部图像的权重,最后经过调试得到了一套较为合适的数据,使其能够有效优化高速情况下的智能小车的路径算法。
5结论