09-10学年(Ⅱ)开放性实验项目
题目:
院系名称: 专业班级:
学生姓名: 学 号:
指导教师: 王伟生 教师职称: 讲 师
实训地点: 创新实验室 地 点:中原路校区2-417
指导教师评语
签名: 年 月 日
《自动化系统综合实训》任务书
――――题目: 直流电机闭环调速系统设计
一、实训的目的及任务
1. 实训的目的
《自动化系统综合实训》作为自动化专业本科生的一门综合性实践性课程,应用已学的计算机、模拟数字电路、微控制器原理、传感器技术、可编程控制器技术、工业过程控制技术等知识,进行综合实践的训练,培养学生思考、解决问题的能力,努力开拓学生的知识面和创造力。
2. 实训的任务
本实践环节主要以51、HCS12微控制器和PIC为主要应用对象,学习速度、位置等系统的实验制作方法,熟悉实验制作和程序过程,并能以动态的形式进行实时显示,以便能较快适应测控一体化的技术应用需求。
二、实训的内容与要求
学生的实验制作直流电机闭环调速系统,实现PWM调速、LED显示设定速度和实际速度。
三、实训可提供的材料
包括:霍尔元件、直流电动机、、按键开关、电路基板电阻电容若干、焊锡、核心实验板、FREESCALE 实验器材及软件等其他耗材。
使用仪器:稳压电源,万用表,实验工具箱(创新或电工实验室可提供)。
四、实训模式
本课程为实训教学,以分组形式完成。教师分阶段提出问题、解答学生的疑问,检查学生的进度和完成情况
五、实训学时分配
地点:中原路校区2#楼207室、211室。
时间:第19、20周。
六、 实训成绩评定
1.电路板制作及系统运行效果 :70分
2.实训报告:30分。
七、 参考资料
1 严隽永译.嵌入式微控制器.北京:机械工业出版社.2005
2 杨国田,白焰.68HC12微控制器原理、应用于开发技术.北京:电力出版社.2003
3何立民.微控制器应用系统设计.北京:北京航空航天大学出版社.2002
4胡汉才.MCS-51单片机原理与应用.北京:北京清华大学出版社,1997,7
5 常小玲.电气控制技术与可编程控制器.北京:机械工业出版社.2006,12
审查意见: 领导签字:
2006年12月31日
摘 要
直流电机在社会生产中有着广泛的应用,本文给出了一种基于摩托罗拉单片机的直流调速系统,HCS12是Motorola新推出的高性能16位微控制器,具有强大的功能。霍尔测速及简单控制系统就是以它为控制核心,利用它的定时器输入捕捉和实时时钟实现了对电机转速的检测和实时显示功能。本系统可以实现PWM调速,以动态的形式显示速度和实际速度,以便能较快适应测控一体化的技术应用需求。Motorola单片机功能丰富、速度高、功耗低、稳定性强,是全球单片机的主流产品,MC9S12DG128属于摩托罗拉公司M68HCS12系列单片机,HCS12是继HC12系列之后推出的16位MCU ,可以很好的满足需求。
关键词 微控制器 直流电机 霍尔元件
1 引言…………………………………………………………………………4
2 系统总体设计方案…………………………………………………………4
2.1 直流电机的基本结构…………………………………………………5
3 元器件的选择与说明………………………………………………………5
3.1 微控制器的选择………………………………………………………5
3.2 霍尔元件的选择………………………………………………………6
4 硬件电路设计………………………………………………………………7
4.1 电机驱动电路和反馈电路设计………………………………………7
4.2 显示电路设计…………………………………………………………7
5 系统软件设计………………………………………………………………8
5.1 系统程序设计…………………………………………………………10
6 系统调试……………………………………………………………………10
7 总结…………………………………………………………………………11
8 参考文献……………………………………………………………………12
9 附录 1………………………………………………………………………13
10 附录 2………………………………………………………………………16
1 引言
直流电机应用广泛,具有宽广的调速范围,较强的过载能力和较大的起动转矩等特点,广泛应用于对起动和调速要求较高的生产机械,如电力机车、内燃机车、工矿机车、城市电车、电梯、轧钢机等的拖动电机。MC9S12DG128是美国MOTOROLA推出的一款中档16BIT嵌入式微控制器,以CPU12为核心,丰富的内部资源和外部接口资源可以满足各种ECU数据的处理以及发送和接收。可以很好的满足我们的要求。霍尔测速与简易控制系统利用HCS12处理核心和霍尔元件的对磁场敏感特性实现对电动机转速的测量与控制。速度是很多控制系统都要涉及到的重要参数,该系统硬件电路设计简单,利用C语言实现程序的设计,能满足很多速度控制系统的要求。本设计主要是通过微控制器来实现直流电机的调速,以此加强动手能力,适应测控技术的快速发展。
2 系统总体设计方案
系统总体设计方框图如图1所示。
图1 系统总体设计方框图
系统工作原理:当电动机转动,靠近霍尔传感器,在霍尔效应的作用下产生霍尔脉冲,产生的输出脉冲作为单片机的输入脉冲信号送MCU的PT1口。MCU的PORTP口作为四位数码管的位码控制口,PORTA口作为四位数码管的段码控制口。在电动机上的转轴上粘贴上小磁块,霍尔开关固定在靠近转轴的位置。电机启动时转轴旋转,当磁块转过霍尔元件时,霍尔测速检测电路就会不断地产生脉冲输出信号输入到微控制器,经数据处理送八段数码管显示,再经过比较后,决定加速或减速。
2.1 直流电机的基本结构
直流电机由定子和转子两个基本部分组成。
定子主要由主磁极、换向磁极、机座、端盖和电刷装置等组成。
(1)主磁极由磁极铁心和励磁绕组组成。a.磁极铁心:由l~1.5mm厚的低碳钢板冲片叠压铆接而成。是磁路部分。b.励磁线圈:是磁路部分,产生主磁场。
(2)换向磁极也是由铁心和换向磁极绕组组成,位于两主磁极之间,是比较小的磁极。作用:是产生附加磁场,以改善电机的换向条件,减小电刷与换向片之间的火花。
(3)机座由铸钢或厚钢板制成。作用:来安装主磁极和换向磁极等部件和保护电机,它既是电机的固定部分,又是电机磁路的一部分。(4)端盖与电刷。作用:支持转子的转轴,固定电刷架。
转子(电枢)的组成:主要由电枢铁心、电枢绕组、换向器、转轴和风扇等组成。(1)铁心:由0.5㎜厚硅钢片叠压而成。作用:用来嵌放电枢绕组,是直流电机
磁路的一部分。
(2)电枢绕组:其作用是产生感应电动势和电磁转矩。
(3)换向器:换向器又称整流子,其作用是将直流电动机输人的直流电流转换成电枢绕组内的交变电流,进而产生恒定方向的电磁转矩,或是将直流发电机电枢绕组中的交变电动势转换成输出的直流电压。3.气隙是电机磁路的重要部分。转子要旋转,定子与转子之间必须要有气隙,称为工作气隙。气隙大小对电机性能有很大影响。
3 元器件的选择与说明
本次设计直流电机有学校提供,型号为JOHNSON(5伏)。以下说明微控制器和霍尔元件的选择。
3.1 微控制器的选择
根据以前的学习情况,本设计选用Motorola的16位单片机MC9S12DG128,下面简单地介绍一下MC9S12DG128。Motorola单片机功能丰富、速度高、功耗低、稳定性强,是全球单片机的主流产品,MC9S12DG128属于摩托罗拉公司M68HCS12系列单片机,HCS12是继HC12系列之后推出的16位MCU ,由标准的片内设备构成,包括8KB的RAM,128KB的FLASH EEPROM,2KB的EEPROM,两个同步串行通信接口(SCI),两个串行外设接口(SPI),一个8通道IC/OC捕获计时器,两个8通道、10位模数转换器(ADC),一个8通道脉宽调制器(PWM),个离散数字I/O通道,20根数字I/O线,有中断和激活功能,两个CAN口,软件兼容模块(MSCAN12),和一个内部IC总线。
3.2 霍尔元件的选择
霍尔元件是一种基于霍尔效应的磁传感器,已发展成一个品种多样的磁传感器产品族,并已得到广泛的应用,本文简要作一介绍。
霍尔元件是应用霍尔效应的半导体,置于磁场中的静止载流导体,当它的电流方向与磁场方向不一致时,载流导体上平行于电流和磁场方向上的两个面之间产生电动势差,这种现象称霍尔效应。
霍尔元件应用的基本原理是霍尔效应。霍尔效应是一种磁敏效应,一般在半导体薄片的长度X方向上施加磁感应强度为B的磁场,则在宽度Y方向上会产生电动势UH,这种现象即称为霍尔效应。UH称为霍尔电势,其大小可表示为:
UH=RH/d*IC*B (1)
式中,RH称为霍尔系数,由半导体材料的性质决定;d为半导体材料的厚度。
设RH/d=K,则式(1)可写为:
UH=K*IC*B (2)
可见,霍尔电压与控制电流及磁感应强度的乘积成正比,K称为乘积灵敏度。K值越大,灵敏度就越高;元件厚度越小,输出电压也越大。 在式(2)中,若控制电流IC,为常数,磁感应强度B与被测电流成正比,就可以做成霍尔电流传感器;另外,若仍固定IC为常数,B与被测电压成正比,又可制成霍尔电压传感器。霍尔传感器的基本结构如图2所示。
图2 霍尔传感器应用电路图
4 硬件电路设计
从功能上划分,硬件电路分为驱动电路、手动输入电路和显示电路三大部分,手动输入电路比较简单不再赘述。
4.1 电机驱动电路和反馈电路设计
电机驱动电路和反馈电路设计如图3所示。
图3 电机驱动和反馈电路
4.2 显示电路设计
数码管通常有共阴极和共阳极两种接法。限流电阻是外接的,一般共阳极数码管必须外接电阻,共阴极不一定外接电阻。要显示某字形就应使此字形的相应字段点亮,实际就是送一个用不同电平组合代表的数据至数码管。这种装入数码管中显示字形的数据称为字形码。七段式LED显示器有静态显示与动态扫描两种方式,动态显示需要耗费大量的CPU时间,且亮度不够;而静态亮度高,CPU负担很小,但所需硬件驱动芯片较多;二者各有优缺点,在实际应用中应根据系统的具体情况综合考虑。数据处理采用MCU实现,显示模块采用动态显示方式,考虑到日常需求,这里采用3位数码管显示,系统硬件接线图如图4所示。
图4 显示电路
5 系统软件设计
本程序可以实现PWM输出、调速,并以动态的形式显示速度和实际速度对霍尔传感器检测到的脉冲数计数。当贴有磁片的电机旋转经过霍尔元件时,霍尔电路将电平拉低,MCU的定时器模块的将会捕捉到这一变化,而产生中断,进入中断服务程序。中断服务程序将累计脉冲数,为转速的测量提供数据。系统软件流程图如下页图5所示。
否
是
否
是 否
是
图5 系统软件流程图
中断程序流程图如下页图6所示:
否
是
图6 中断程序流程图
5.1 系统程序设计
C语言作为高级语言,它更接近和体现人的设计思想,随着C语言编译技术的不断提高,用C语言编写的程序代码的质量和效率越来越接近汇编代码,而且用C语言能实现各种复杂的算法。考虑到程序较为复杂,因此在本次设计中,大部分程序代码采用C语言编写,必要时用C语言和汇编混合编程,源程序请参考附录。
6 系统整机调试
将直流电机的驱动电路,数码管显示电路及按键电路,与最小系统板连接好后,下载调试好的程序到目标板上,然后运行,检查系统的运行状况,发现了许多问题,经过有关老师和同学得帮助,不断修正,反复调试,最终一一解决了遇到的问题,完成了系统设计的功能,达到了题目的要求。
总 结
本次课程设计的主要内容是通过软件和硬件的结合利用霍尔元件实现对电动机转速的测量。设计中主要用到中断,利用中断程序检测脉冲个数,根据规定时间内监测到的脉冲数通过计算将结果用数码管显示。此次的课程设计,最关键的是对整个控制过程的熟悉和编程问题。此次实训中, 由于某些原因和时间、条件的,电路的设计还不够完善,电路制作不够理想,系统功能还需进一步完善。两周的课程设计,除了感到时间紧迫外,留给我印象最深的是要编写一段正确的程序,必须要有耐心,要有坚持的毅力。由于缺少相关的经验,刚拿到设计任务时没有一点思路,感觉相当困难,后来经过查阅资料,才有了一些思路。在整个系统的设计过程中,花费时间最多的是硬件的调试,调试时遇到了大量的错误,最后在老师和同学的帮助下终于调试通过,使整个电路可正常工作。通过不断的纠正错误,我深刻地体会到在设计过程中,需要反复实践,其过程很可能相当烦琐,有时还特别想放弃,此时更加需要静下心来,仔细查找原因。总体来说,这次实训使我受益匪浅,也为今后进一步学习相关知识打下了一定基础,在摸索该如何设计电路与软件使之实现所需功能的过程中,培养了我的设计思维,增加了实际操作能力,让我体会到了成功的喜悦和快乐。最后,在此向给与我帮助和指导的有关老师和同学表示衷心的感谢。
参 考 文 献
1 严隽永译.嵌入式微控制器. 北京:机械工业出版社,2005年9月
2 杨国田,白焰.68HC12微控制器原理、应用与开发技术.北京:电力出版社,2003年07月
3 童诗白,华成英.模拟电子技术基础.北京:高等教育出版社,2001年1月
4 荣君雅. 数字电子技术. 北京:机械工业出版社,1995年6月
5 余家春.Protell99SE电路设计实用教程. 北京:中国铁道出版社,2003年1月
附录1:源程序
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
//键盘各键值常量定义
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
v数码管显示函数
void delay(uint); 延时函数
v初始化
void RTIInit(void);
void Accumulator(void); 输入捕捉初始化
uchar MA[]={0XC0,0XF9,0XA4,0X60,0X99,0X92,0X82,0XF8,0X80,0X90};
uint Tempfreq;
uint
uint Freq;
void main(void)
{
DDRA=0xFF;
Freq=0;
DDRB=0XFF;
DDRP=0XF0;
Tempfreq=0;
OC0Cnt=0;
PwmInit();
RTIInit();
Accumulator();
while(1)
{
}
if(Freq } else if(Freq>dispvalue){ PWMDTY0--; } } void PwmInit(void) { 关通道 PWMCTL = 0x00; //通道不级联 PWMPRCLK = 0x66; //PCKA2:0= PWMSCLA = 0x7d; //Clock SA=Fbus/PWMPRCLK/(2*PWMSCLA)=12.5kHz PWMSCLB = 0x7D; PWMCLK = 0xff; //为各通道选择PWM时,PCLKn=1,SA is source of ch 0 PWMPOL = 0xff; //高脉冲激发序列 PWMPER0 = 0xf0; PWMDTY0 = 0x20; PWMCAE = 0x00; PWME = 0x01; 开通道 } void RTIInit(void){ RTICTL=0x74; CRGINT|=0x80; } void Accumulator(void){ TSCR1=0X80; //ECT模块使能 TSCR2=0X87; T输入捕捉 T中断屏蔽 T通道0下降沿捕捉 T通道0标志位 } void display(uint DispValue) {int g,s,b,q; q= DispValue/1000; b= (DispValue-q*1000)/100; s=(DispValue-q*1000-b*100)/10; g=DispValue- q*1000-b*100-s*10; PTP=0XB0; PORTA=MA[s]; delay(2); PTP=0X70; PORTA=MA[g]; delay(2); PTP=0XE0; PORTA=MA[q]; delay(2); PTP=0XD0; PORTA=MA[b]; delay(2); } //************************ //中断程序 //************************ interrupt void timer(void) { CRGFLG&=0xEF; if (OC0Cnt<49) else { } } XDEF PUBLIC delay delay DEL LDX #$200 DEL 附录2:总电路图