基于单片机的直流电机控制系统的设计.docx
- 文档编号:12507797
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:33
- 大小:533.77KB
基于单片机的直流电机控制系统的设计.docx
《基于单片机的直流电机控制系统的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机控制系统的设计.docx(33页珍藏版)》请在冰点文库上搜索。
基于单片机的直流电机控制系统的设计
摘要
本文主要介绍了以凌阳SPCE061A单片机为核心来控制电动机转向与转速,并通过数码管显示出转速的具体实时数值。
基于SPCE061A的16位特性,数字信号处理DSP(DigitalSignalProcess)功能以及快速的处理能力,使得数据采集和运算处理十分的方便简单,另外由于集成开发环境IDE(IntegratedDevelopmentEnvironment)支持标准的C语言数据库,使得复杂的数学运算变得轻而易举,大大减少了编程的难度。
本设计充分利用了SPCE061A的资源,发挥了芯片的性能,并利用PID算法实现直流电机PWM调速的方法,比较精确的实现了普通直流电机的转速测量和转速调节功能。
实践证明,该系统具有结构简单、操作方便、测量精度高、稳定性好等特点。
关键词:
凌阳单片机,无刷直流电机,PID算法,测速,调速
ABSTRACT
Inthispaper,takingtoSunplusSPCE061AMCUasthecoretocontrolthemotorsteeringandspeed,andspeedthroughthedigitaldisplaythevalue.Basedon16-bitfeaturesSPCE061A,DSP(DigitalSignalProcess)function,andfastprocessingpower,makingdatacollectionandprocessingoperationsareveryeasytouse,anotherasIDE(IntegratedDevelopmentEnvironment)supportsthestandardC-languagedatabase,whichmakescomplexmathematicaloperationbecomeseasy,thusgreatlyreducingthedifficultyofprogramming.ThedesignmakesfulluseoftheresourcesSPCE061Aplayedachip'sperformanceanduseofPIDalgorithmPWMDCMotorSpeedway,moreaccuraterealizationofacommonDCmotorspeedmeasurement,andspeedadjustmentfunction.Practicehasprovedthatthesystemhasasimplestructure,easyoperation,highaccuracy,goodstability.
Keywords:
sunplusSCM,brushlessDCmotor,PIDalgorithm,speedmeasurement,speedadjustment
目录
1绪论1
1.1选题背景及其意义1
1.2无刷直流电机的发展史1
1.3设计的目的和要求2
2直流电机控制系统3
2.1转速信号的采集3
2.2直流电机的转向与转速控制设计4
3硬件电路设计6
3.1SPCE061A单片机简介6
3.2电机驱动芯片SPGT62C19B简介9
3.3控制板与驱动板的接口联接方法10
3.4硬件框图11
3.5组件选择与设计12
3.6电机驱动电路的设计12
3.7硬件电路实物图13
4软件设计14
4.1C语言的简介14
4.2汇编语言的简介16
4.3模块化设计16
4.4本次课题的软件设计17
5系统的安装、调试及运行实验结果20
5.1软硬件安装与调试20
5.2实验结果22
6总结23
参考文献24
致谢26
1绪论
1.1选题背景及其意义
在现代医疗器械、保健设备、家用电器控制器、工业控制、通讯产品、语音识别类产品与智能家居控制器等等仪器中,例如日常所见的跑步机、治疗仪等、冰箱、空调、洗衣机、语音信箱、数字录音系统产品、语音识别遥控器、智能语音交互式玩具等,往往带有一个小控制系统。
该系统主要由一个小型直流电动机,控制电路板以及各种开关组成。
通过控制电路,以实现调节不同的转速。
类似的控制系统,工程人员以往采用PLC控制器来实现。
因为PLC控制器操作起来方便,而且程序的编写也相对简单。
但是,这种控制器有不足之处,如成本高,一个PLC控制器价值为上千元。
另外,PLC控制器体积相对比较大,而且比较耗电。
随着技术的进步,人们总希望达到同样功能的控制系统应体积小,能耗低。
因此,用小型的芯片代替传统的PLC控制器是一种必然的趋势。
凌阳SPCE061A单片机[1]具有体积小,价格低廉,编程易懂,操作简单等优点,因此选此作为研究对象,并以此为核心来实现对电动机转速[2]的控制。
系统以凌阳SPCE061A单片机为核心[3-4],采用了多模块化协同控制电动机,实现电动机的调速。
随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理数据处理以及数字信号处理,DSP(DigitalSignalProcessing)等领域。
凌阳的16位单片机就是为适应这种发展而设计的。
单片机功能强大,方便今后的功能扩展。
1.2无刷直流电机的发展史
过去有刷直流电机以其优良的转矩特性在运动控制领域得到了广泛的应用[5]。
但是,机械电刷却是有刷直流电机的一个致命的弱点。
为此,早在1917年,Boiiger就提出了用整流管代替有刷直流电机的机械电刷,从而诞生了无刷直流电机的基本思想。
1955年,美国D.Harrison等人首次申请了用晶体管换向线路代替有刷直流电机机械电刷的专利,标志着现代无刷电机的诞生。
近40年来,由于电机本体及其相关学科的迅猛发展,“无刷直流电机”的概念已由最初的具有电子换向的直流电机发展到泛指一切具有有刷直流电机外部特性的电子换向电机。
无刷直流电机的发展亦使得电机理论与大功率开关器件、模拟和数字专用集成电路、微处理技术、现代控制理论以及高性能材料的结合更加紧密。
如今无刷直流电机集特种电机、变速机构、检测元件、控制软件与硬件于一体,形成为新一代电动伺服系统,且体现着当今应用科学的许多最新成果,因此是机电一体化的高技术产物。
无刷直流电机真正进入实用阶段应从1978年开始,当时原西德MANNESMANN公司的Indramat分部在汉诺威贸易博览会上,正式推出MAC经典无刷直流电机及其驱动器。
80年代在国际上开展了深入的研究,先后研制成方波无刷电机和正弦波无刷直流电机,在10多年的时间里,无刷直流电机在国际上已得到较为充分的发展,在一些较为发达的国家里,无刷直流电机将在未来的几年中成为主导电机,并逐步取代其它类型的电机。
无刷直流电机在近10年里得到迅速推广应用的另一个原因,是由于电力电子技术和集成控制技术高速发展的结果,性能优良、价格低廉的电子元器件为制造无刷直流电机创造了基本条件。
80年代初期,电机本体与换向驱动电路的价格比大约为1:
10,而当今已降至1:
1~3,这就为大量推广应用创造了先决条件。
1.3设计的目的和要求
本方案以SPCE061A单片机为控制核心,实现对无刷直流电机的转速测量,并利用PID算法实现PWM调速,为进一步研究和优化直流电机控制方法提供了基础。
本次设计最终具有下列功能:
(1)可通过控制板上的3个按键设定电机的转动方向,转速;
(2)可实时测量电动机的实际转速,并在LED数码管上显示出来;
(3)可对电机进行PID转速调节,使其转速趋近于设定值。
方案具有一定可扩展性,例如优化速度调节算法,提高转速稳定度和响应速度,增加语音播报转速功能,或将测得的转速上传至PC处理等。
2直流电机控制系统
在电气时代的今天,电动机在工农业生产、人们日常生活中起着十分重要的作用。
直流电机是最常见的一种电机,在各领域中得到广泛应用。
研究直流电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。
本方案以SPCE061A单片机为控制核心[6],实现对普通直流电机的转速测量,并利用PID算法实现PWM调速[7],为进一步研究和优化直流电机控制方法提供基础。
直流电机的控制系统由以SPCE061A为核心的控制器[8]、SPGT62C19B电机驱动器和直流电机3部分组成。
驱动器接收控制器的信号,发出电机能接受电信号,还包括各种必要的过流过载保护电路。
控制器输出的脉冲和方向信号是先输入进驱动器,再由驱动器来控制电机的速度和方向。
2.1转速信号的采集
信号的采集——控制技术的关键环节,不仅是系统控制的根本出发点也是最终衡量系统控制性能的重要依据。
在一个完善的闭环控制系统当中,首先要检测当前被控对象的状态,就必须对被控对象的状态信息(比如常见的温度,流量,速度,液位等信息)进行采集,并能够将此信息还原为实际的温度,流量等状态信息[9-10],并对该信息进行分析才能了解控制过程的好坏,才能做出进一步的优化。
所以说信号采集在系统控制中起着至关重要的作用。
随着数字化的普及和控制技术水平的不断进步,数字化控制已成为现代控制的主流,数字信号的采集成为数字控制系统中的重要单元。
本设计在直流电机的转轴上安置了光栅转盘,光栅转盘的两侧分别装有鼠标用红外发射和接收管[11]。
如图2-1当直流电机转动时,光栅将不断改变红外对管的通断状态。
当红外发射管与红外接收管之间被直流电机光栅转盘的不透明部分遮挡时,红外接收管处于截止状态,此时的SPEED输出高电平。
反之,当光栅转盘的通光槽转至红外对管之间时,红外接收管处于导通状态,此时SPEED输出低电平。
将SPEED连接到单片机的I/O口,即可通过定时计数的方法计算出电机转动速度[12]。
图2-1直流电机的光栅转盘
2.2直流电机的转向与转速控制设计
2.2.1直流电机正反转控制
本次设计利用电动机驱动芯片SPGT62C19B的通道1,即其16号引脚来控制电机转向。
通过设定PHASE1的逻辑电平,可实现电机的正反转控制。
2.2.2直流电机PWM调速
PWM调速控制的基本原理是按一个固定频率来接通和断开电源,并根据需要改变一个周期内接通和断开的时间比(占空比)来改变直流电机电枢上电压的“占空比”,从而改变平均电压,控制电机的转速。
在脉宽调速系统中,当电机通电时其速度增加,电机断电时其速度减低[13-15]。
只要按照一定的规律改变通、断电的时间,即可控制电机转速。
而且采用PWM技术构成的无级调速系统,启停时对直流系统无冲击,并且具有启动功耗小、运行稳定的特点。
设电机始终接通电源时,电机转速最大为Vmax,且设占空比为D=t/T,则电机的平均速度Vd为:
Vd=VmaxD(2-1)
由公式可知,当改变占空比D=t/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。
严格地讲,平均速度与占空比D并不是严格的线性关系,在一般的应用中,可将其近似地看成线性关系。
本设计就采用PWM调速方法。
PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。
SPGT62C19B的两个输出通道可以分别控制一台直流电机。
电机调速可以通过不断改变I01和I11的高低电平状态,使输出通道产生PWM波形信号,从而利用PWM的占空比来调节电机转速。
在直流电机驱动控制电路中,PWM信号由外部控制电路提供,并经高速光电隔离电路、电机驱动逻辑与放大电路后,驱动H桥下臂MOSFET的开关来改变直流电机电枢上平均电压,从而控制电机的转速,实现直流电机PWM调速。
2.2.3PID算法设计
如图2-2,将预置的初值与传感器反馈信号比较得到偏差(e),对偏差(e)进行PID运算处理得到控制量(u),通过此控制量来控制转速。
由于速度本身具有很大的惯性,因此必须对转速的变化趋势作出分析,并且根据需要及时反方向抑制,以防止出现较大的超调量和波动。
在PID控制中,I具有很强的滞后效应,而D则具有很强的预见性,
选用PID算法,能够很好的控制超调,并且稳态误差也很小。
图2-2PID控制流程图
3硬件电路设计
本设计系统由单片机控制板和电机驱动板组成。
其中控制板以SPCE061A单片机为核心,电机驱动模块以SPGT62C19B芯片为核心。
3.1SPCE061A单片机简介
SPCE061A是继μ’NSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。
较高的处理速度使μ’NSP能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以μ’NSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择[16-18]。
3.1.1SPCE061A性能
1.16位μ’NSP微处理器;
2.工作电压(CPU)VDD为2.4~3.6V(I/O)VDDH为2.4~5.5V
3.CPU时钟:
0.32MHz~49.152MHz;
4.内置2K字SRAM;
5.内置32KFLASH;
6.可编程音频处理;
7.晶体振荡器;
8.系统处于备用状态下(时钟处于停止状态);
9.2个16位可编程定时器/计数器(可自动预置初始计数值);
10.2个10位DAC(数-模转换)输出通道;
11.32位通用可编程输入/输出端口;
12.14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;
13.具备触键唤醒的功能;
14.使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
15.锁相环PLL振荡器提供系统时钟信号;
16.32768Hz实时时钟;
17.7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;
18.声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;
19.具备串行设备接口;
20.具有低电压复位(LVR)功能和低电压监测(LVD)功能;
21.内置在线仿真电路ICE(In-CircuitEmulator)接口;
22.具有保密能力;
23.具有WatchDog功能。
3.1.2SPCE061A结构概览
SPCE061A的结构比较简单,在芯片内部集成了ICE仿真电路接口、FLASH程序存储器、SRAM数据存储器、通用IO端口、定时器计数器、中断控制、CPU时钟、模-数转换器AD、DAC输出、通用异步串行输入输出接口、串行输入输出接口、低电压监测低电压复位等若干部分[19]。
各个部分之间存在着直接或间接的联系。
SPCE061A的结构如图:
图3-1SPCE061A的结构图
3.1.3SPCE061A的引脚排列
SPCE061A有两种封装片,一种为84个引脚,PLCC84封装形式[20];它的排列如图3-2所示;另一种为80个引脚,LQFP80封装,它的排列如图3-3所示,本次设计采用80引脚的LQF80封装。
图3-2PLCC84封装排列图
图3-3LQFP80封装引脚排列图
3.1.4SPCE061A开发方法
SPCE061A的开发是通过在线调试器PROBE实现的。
它既是一个编程器(即程序烧写器),又是一个实时在线调试器。
用它可以替代在单片机应用项目的开发过程中常用的软件工具——硬件在线实时仿真器和程序烧写器。
它利用了SPCE061A片内置的在线仿真电路ICE(In-CircuitEmulator)接口和凌阳公司的在线串行编程技术[21-22]。
PROBE工作于凌阳IDE集成开发环境软件包下,其5芯的仿真头直接连接到目标电路板上SPCE061A相应管脚,直接在目标电路板上的CPU---SPCE061A调试、运行用户编制的程序。
PROBE的另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在线调试功能。
图4是计算机、PROBE、用户目标板三者之间的连接示意图。
图3-4用户目标板、PROBE、计算机三者之间的连接图
3.2电机驱动芯片SPGT62C19B简介
SPGT62C19B电动机驱动器是CMOS单片集成电路能够驱动一个双极步进电机或双向控制两个直流电动机两种绕组。
桥的两个输出可以保持40V和提供高达750mA的连续电流。
最大输出电流,取决于选择的参考电压,感应电阻和两个逻辑输入。
SPGT62C19B可提供24引脚PowerDIP和SO封装。
本设计采用前者封装。
SPGT62C19B有6个控制引脚,具体如下表3-1所示:
表3-1SPGT62C19B的控制引脚
引脚
名称
用途
8
I02
通道2的电流大小控制
9
I12
通道2的电流大小控制
10
PHASE2
通道2的电流方向控制
16
PHASE1
通道1的电流方向控制
17
I11
通道1的电流大小控制
20
I01
通道1的电流大小控制
3.3控制板与驱动板的接口联接方法
(1)控制板内部的接口联接
控制板将SPCE061A的32个I/O口全部引出:
IOA0-IOA15,IOB0-IOB15对应的SPCE061A引脚为:
A口,41-48,53-60;B口,5-1,81-76,68-64。
而且该I/O口是可编程的,即可以设置为输入或输出。
设置为输入时,分为悬浮输入或非悬浮输入,非悬浮输入又可以设置为上拉输入还是下拉输入。
在5V的情况下,上拉电阻为150K,下拉电阻为110K;设置为输出时,可以选择同向输出或者方向输出。
(2)SPGT62C19B与单片机之间的连接
SPGT62C19B与单片机之间的接口在模组上标示为“J3”,是10PIN排针的形式。
该接口的各管脚的相对应联接如下表3-2:
表3-2J3的各管脚相应联接
1
2
3
4
5
6
7
8
9
10
VDD
PH1
PH2
SPEED
I01
I02
I11
I12
--
GND
其中PH1、PH2、I01、I02、I11、I12对应着SPGT62C19B的6个控制引脚。
而SPEED则是速度检测信号输出脚。
可以直接用10PIN排线将J3接口与控制板IOB的低8位(即控制板的J6)相连。
应注意的是,模组接口标示为“VDD”的脚应与“61板”接口标示为“+”的脚相对应,不能接反。
另外,控制板的I/O供电电压应在4.5V~5.5V之间。
因此,要把控制板的I/O电压选择跳线(控制板的J5)跳至“5V”位置,并保证控制板供电电压在4.5V以上。
(3)控制板与电机驱动板的联接
控制板与电机控制模组的硬件连接如下图3-5所示,控制板的IOB低8位(J6)连接电机模组的J3接口,IOA高8位(控制板的J9)连接模组的J2,IOB高8位(控制板的J7)连接模组的J1。
图3-5控制板与电机模组连接图
(4)在线调试器PROBE和EZ_PROBE接口
4为PROBE的接口,该接口有5pin,其中上下两个分别是(VSS)和3.3V电源(VCC),通过它将PROBE与PC机连接起来进行调试,仿真和下载程序的。
J11是EZ_PROBE的接口。
3.4硬件框图
SPCE061A单片机作为主控芯片,通过I/O端口来控制SPGT62C19B电机驱动芯片,从而实现对直流电机的控制。
电机模组上的光栅转盘和红外对管将直流电机的转动信息反馈给单片机,单片机针对测得的实际转速来调节SPGT62C19B的控制状态,从而使转速趋近预设置。
同时,电机转速可通过4位数码管显示出来。
控制板的三个按键用来对直流电机的转动方向、转速等进行设定。
图3-6系统总体硬件结构图
电机驱动模块以SPGT62C19B芯片为核心,还包括直流电机、电机接口、控制接口、4个LED数码管、外接电源插座、光栅转盘、红外对盘、外接电源指示灯等部件。
ULN2003A是单片式7路达林顿三极管阵列,在本模组中用来驱动4位LED数码管。
图3-7电机控制模组结构图
3.5组件选择与设计
(1)本系统电源设计
本设计的内核SPCE061A的电压为3.3V,而I/O端口的电压选择5V。
在实际操作中,采用横浮开关电源,型号为HF35W-D-B,其具有5V和12V两种恒压输出。
先让控制板通上5V电压,然后通过芯片SPY0029获得3.3V电压,供单片机使用。
(2)外部复位
复位是对控制内部的硬件初始化,控制板本身具有上电复位功能,即通电就自动复位。
另外,还具有外部按键复位电路,在引脚6上外加一个低电平就可以令其复位。
(3)电动机型号选择
此次设计所选的直流电机型号为310CA,其电压范围为3V-12V,在5V的供电电压下,其空载转速在4000转/分左右,空载电流约20mA,运转电流约300mA。
3.6电机驱动电路的设计
直流电机控制中常用H桥电路作为驱动器的功率驱动电路。
由于功率MOSFET是压控元件,具有输入阻抗大、开关速度快、无二次击穿现象等特点,满足高速开关动作需求,因此常用功率MOSFET构成H桥电路的桥臂。
H桥电路中的4个功率MOSFET分别采用N沟道型和P沟道型,而P沟道功率MOSFET一般不用于下桥臂驱动电机,这样就有两种可行方案:
一种是上下桥臂分别用2个P沟道功率MOSFET和2个N沟道功率MOSFET;另一种是上下桥臂均用N沟道功率MOSFET。
相对来说,利用2个N沟道功率MOSFET和2个P沟道功率MOSFET驱动电机的方案,控制电路简单、成本低。
但由于加工工艺的原因,P沟道功率MOSFET的性能要比N沟道功率MOSFET的差,且驱动电流小,多用于功率较小的驱动电路中。
而N沟道功率MOSFET,一方面载流子的迁移率较高、频率响应较好、跨导较大;另一方面能增大导通电流、减小导通电阻、降低成本,减小面积。
综合考虑系统功率、可靠性要求,以及N沟道功率MOSFET的优点,本设计采用4个相同的N沟道功率MOSFET的H桥电路,具备较好的性能和较高的可靠性,并具有较大的驱动电流。
3.7硬件电路实物图
图3-8硬件电路实物图
4软件设计
4.1C语言的简介
C语言是CombinedLanguage(组合语言)的中英混合简称,是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发等[23]。
4.1.1C语言的发展历史
C语言的原型ALGOL60语言。
(也称为A语言)
1963年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言。
1967年,剑桥大学的MartinRichards对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的KenThompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。
意思是将CPL语言煮干,提炼出它的精华。
并且他用B语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 直流电机 控制系统 设计