单片机的无刷直流电机速度伺服系统设计方案_第1页
单片机的无刷直流电机速度伺服系统设计方案_第2页
单片机的无刷直流电机速度伺服系统设计方案_第3页
单片机的无刷直流电机速度伺服系统设计方案_第4页
单片机的无刷直流电机速度伺服系统设计方案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

论文名称:基于单片机的直流伺服电机测速系统设计学科专业:申请人:指导老师:摘要在工程实践中,经常会遇到各种需要测量电机转速的场合,例如在发动机、电动机、机床主轴等旋转设备的实验运转和控制中,常需要分时或连续测量、显示其转速及瞬时速度。当前主要流行的测速方法有霍尔测速、磁电式测速和光电编码测速等,但是霍尔测速不仅价格相对较高,而且信号杂波大,需要额外的滤波电路开销;而磁电式测速容易受外界环境干扰,因此不适合用于强电磁干扰的工业环境,本系统采用光电编码测试进行速度伺服系统设计。为了能精确地测量转速,且保证测量的实时性,本文提出了一种基于单片机的直流伺服电机测速系统设计方案。该系统通过定时器模拟PWM控制电机转速,采用外部中断的边沿触发功能捕获测速脉冲,并以此分析计算出电机转速,然后显示到LED数码管上面;止匕外,为了达到更精确的电机控制,设计的串行通信方案,通过PC机下传指令改变PWM输出占空比,以此控制电机转速。系统软件在KeilC51集成开发环境中采用C语言编写,并在Proteus软件中搭建电路,仿真验证了方案的可行性。关键词:测速;单片机;直流伺服电机;串行通信ABSTRACT1/29摘要1ABSTRACT2目录3第一章绪论5课题研究意义5国内外发展现状5论文组织6第二章系统方案设计7硬件设计方案7软件设计方案8第三章硬件设计9硬件框图设计9主控制器模块9控制器芯片选型9最小系统设计10与PC机通信模块11电机驱动模块13引脚排列13L298N电路原理图132/29

电机测速模块14LED显示模块15本章小结16第四章软件设计17软件框架17电机控制18LED显示20RS23翎口通信21本章小结22第五章系统测试23电机测试23串行通信测试25本章小结28第六章结论29已完成工作29后续工作29致ft31参考文献32附录33第一章前言第一章前言课题研究意义1.1课题研究意义1.1电机测速在工程实际应用中必不可少,当前的电机测速主要分为直接法和间接法。直接法即直接观测机械或者电机的机械运动,测量特定时间内机械旋转的圈数,从而测出机械运动的转速。间接法即由于机械转动导致其他物理量变化,测量这些物理量的变化与转速的关系来得到转速。当然,电机测速方法3/29还可以分为轮轴测速方法和非轮轴测速方法,其中轮轴测速运用发电机和光电变换原理,而非轮轴测速采用多普勒雷达和加速度计。随着微型计算机的广泛应用,单片机技术的日新月异,特别是高性能单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法,使得许多控制功能及算法可以采用软件技术来完成,使系统能达到更高的性能。在工农业生产和工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的实验、运转和控制中,常需要测量和显示其转速。测量转速的方法分为模拟式和数字式两种。模拟式采用测速发电机为检测元件,得到的信号是模拟量。数字式通常采用光电编码器、圆光栅、霍尔元件等为检测元件,得到的信号是脉冲信号。讫今为止,已在现代汽车上广泛应用的霍尔器件有:在分电器上作信号传感器、ABS系统中的速度传感器、汽车速度表和里程表、液体物理量检测器、各种用电负载的电流检测及工作状态诊断、发动机转速及曲轴角度传感器、各种开关等等。国内外发展现状目前见到的许多关于直流电机的测速与控制类文献中,以研究无刷直流电机较多,采用电涡流式传感器,磁电式传感器,光电式传感器作为测速电机的重要元件。霍尔传感器的电机测速装置由单片机控制,能够做出使电机加速,减速的动作,还能够精确测速电机的转速,来控制电机的工作情况等多种功能。因此,霍尔传感器的电机测速装置可以看成简单的“计数器”,可广泛的应用于工厂电机的工作监控,汽车行驶速度显示,温室机器人的精密控制等技术领域,也可应用于复杂恶劣的航天航空工作环境,具有良好的民用和军用应用前景,从发展趋势上看,总体的研究方向是提出质量更精确的测速方案,以及在考虑在复杂的环境中工作也能保持性能的稳定性。更加广泛的应用国民的生活生产中去。在研究方法上,有的采用软件仿真,从理论作深入的研究;有的通过实践总结提出一些具有使用价值的实践方法。4/29论文组织本文提出一种基于单片机的无刷直流电机速度伺服系统设计方案,并在Proteus软件中仿真验证了方案的可行性。针对该方案的具体实施方法,本文完成了以下工作:1)提出了一种无刷直流电机测速方案。即通过增量式光电编码器测量电机转速,并采用单片机的外部中断管脚捕获光电编码器的输出脉冲,通过分析计算单位时间内脉冲个数确定电机转速。2)完成了系统的软硬件设计。硬件设计通过Protues软件搭建电路连接图,软件通过KeilC51集成开发环境编写PWM、串行通信、电机驱动、电机测速及LED显示等各级模块驱动程序。3)仿真验证了方案的可行性。在Protues软件中通过LED数码管显示所测转速与实际转速误差在3%以内;此外,通过VPSD软件虚拟串口对,模拟用行通信实现了PC机对电机转速的控制。论文具体章节安排如下:第一章,介绍了本课题的研究背景、意义及相关国内外发展现状。第二章,分硬件和软件两部分介绍了系统的总体设计方案。第三章,详细叙述了系统硬件设计的原理、方案及方法。第四章,详细叙述了系统软件设计的流程。第五章,在Protues中搭建仿真平台,对系统方案进行了测试和分析。第六章,总结课题的研究工作,并指出了存在的问题和进一步的研究方向。第二章系统方案设计硬件设计方案本系统设计的是一个无刷直流电机测速装置,该系统由主控模块<MCU)、电机驱动模块、电机测速模块、LED显示模块和PC机控制模块组5/29成。通过微控制器产生PWM及电机驱动模块控制电机转动,然后通过电机测速模块测得当前电机转速,并显示到LED显示器上。PC机控制模块可以用于调节电机转速。系统方案设计框图如图2-1所示。图2-1系统方案设计框图1)系统控制模块的核心部件采用AT89C51单片机,用于控制电机的顺时针、逆时针转动,同时通过测速模块采集电机转速等信息并显示到LED数码管上。止匕外,还可通过用行口接收PC机下传的指令,改变电机转速。2)LED显示模块用于显示当前电机的转速信息,考虑到所使用电机转速不大,每分钟转动圈速在1000以内,因此通过4位7段LED数码管进行显示。3)电机驱动模块可采用专用直流电机驱动芯片,通过单片机的I/O口来控制电机驱动芯片的控制信号,从而达到控制直流电机的目的。也可采用H型桥式驱动电路,这种驱动电路可以很方便地实现直流电机的四象限运动,分别对应正转、正转和制动、反转、反转和制动。经分析,专用直流电机驱动芯片电路规模较小,且容易使用单片机来控制,完全可以实现预期的功能,成本相对较低。因此采用L298N来控制小车的运行。软件设计方案软件设计非常重要,它是系统的中枢,影响着整个系统性能的优劣。本系统软件设计方案是以上述硬件电路为基础的,包括电机控制模块、电机测速模块、串口通信模块及LED显示模块的程序设计与实现。程序设计采用C语言编写,编程环境是集成KeilC51编译器的集成编译环境。语音导航小车设计的软件设计结构框图如图2-2所示。6/29电机驱动模块程序的设计实现了对电机转动方式和转动速度的控制;电机测速子程序的设计实现了对电机实际转速的采集,并通过液晶显示子程序将采集后分析计算的实际转速显示出来;用行口通信程序通过与PC机接入,实现对电机转速的上行控制。软件的设计应尽量采用函数化、模块化,便于主函数的调用,便于系统调试。具体设计过程及详细内容见第四章。第三章硬件设计硬件框图设计1.1本文选用AT89C51单片机作为系统的主控制器,用L298N电机驱动芯片驱动直流电机转动,用外部中断1捕获电机转动圈速的脉冲,然后交给主控制器分析计算得到当前电机转速,并通过4位7段数码管显示出当前转速。止匕外,一个按键通过外部中断0控制电机转动方向,且PC机通过串行通信控制电机转动速度。系统硬件框图如图3-1所小。7/29主控制器模块主控制器模块是系统硬件设计的核心,本节通过控制芯片选型和搭建最小系统两部分阐述。控制器芯片选型最小系统设计与PC机通信模块RS-232是美国电子工业协会EIA<ElectronicIndustryAssociation)制定的一种用行物理接口标准。RS-232总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。RS-232标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。RS-232标准规定驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如采用150pF/m的通信电缆时,最大通信距离为15m;若每M电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。8/29

电机驱动模块电机的驱动采用双向PWM脉宽调制方式控制。采用这种控制方式可以方便地实现电机的正反转和转速变化。驱动芯片采用L298N,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,在6〜46V的电压下,可以提供2A的额定电流。L298N还有过热自动关断功能,并有反馈电流检测功能。引脚排列引脚排列如图成电流传感信号。分别接2个电机。3-4所示,1脚和引脚排列如图成电流传感信号。分别接2个电机。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间5、7、10、12脚接输入控制电平,控制电机的正反转,利用单片机产生PWM信号接到ENA、ENB控制使能端,控制电机的转速和停转。口出片鸟&脚连逋图3-2L298N实物图IS令::口出片鸟&脚连逋图3-2L298N实物图IS令::OWT»UT3nHFIL'i4CNMUI:DCNMUI:AZZZ>SUPPttVOLTAGE□OUTPUTSCMH»VrIERA31如防MC1舄3.4.2L298N电路原理图由于小车电机为7.2V,故L298N的VSS接7.2V电源。由单片机直接输出两路PWM驱动L298N,改变PWM调制脉冲占空比,可以实现精确调速。脉冲频率对电机转速有影响,脉冲频率高、连续性好,但带负载能力差;脉冲频率低则反之。为了保证L298N的正常工作,加装了片外续流二极管。图3-5所示为电机驱动L298N电路原理图。9/29

VCC划U3P2051HLVSSIN2OUTVCC划U3P2051HLVSSIN2OUTIH4OUT2ENAENBOUT3GNDONDOUT4GHDVCC4P2.112P2.2103P2.312P2.46L3P25111L415390HD□ID6GNDIN40077~\1N40071H4D07图3-3电机驱动L298N原理图电机测速模块一般情况下电机均采用光电编码器测速。光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,是目前应用最多的传感器。一般的光电编码器主要由光栅盘和光电探测装置组成。在伺服系统中,由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转.经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。此外,为判断旋转方向,码盘还可提供相位相差90°的2个通道的光码输出,根据双通道光码的状态变化确定电机的转向。根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式3种。由于本文采用Proteus软件对整体设计进彳T仿真,因此在Proteus中采用带转速编码输出的电机模型进行仿真,该类电机在Proteus软件中的关键字为MOTOR-ENCODER0该模型采用增量式旋转编码测试电机转速,并提供两路具有90。相位差的编码脉冲,可利用其中任何一个实现对转速的检测。电机模型下面实时显示了当前的转速信息,单位为圈/分钟。止匕外,为方便测速,可通过电机属性窗口的PulsesperRevolution选项设置电机每转动一圈输出的脉冲10/29

LED显示模块LED又称为数码管,它主要由7段发光二极管组成的不同组合,可以显示a〜g为数字和字符显示段,h段为小数点显示,通过a〜g为7个发光段的不同组合,可以显示0〜9和A〜F共16个数字和字母。LED可以分为共阴极和共阳极两种结构。共阴极结构即把8个发光二极管阴极连在一起。这种装入数码管中显示字形的数据称字形码,又称段选码。点亮LED显示器有两种方式:一是静态显示:二是动态显示。所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止。如图3-6所示为4位静态LED显示电路。该电路每一位可单独显示。只要在要显示的那位段选线上保持段选电平,该位就能保持显示相应的显示字符。这种电路的优点是:在同一瞬间可以显示不同的字符;但缺点就是占用端口资源较多。从下图可以看出,每位LED显示器需要单独占用8根端口线,因而,在数据较多时不采用此中设计,而是采用动态显示方式。+5VPPPPPPPP1.01.11.21.31.41.5+5VPPPPPPPP1.01.11.21.31.41.51.61.751日BB日PPPP2.02.12.22.311/29图3-5LED动态显示电路所谓动态显示,就是将要显示的多位LED显示器采用一个8位的段选端口,然后采用动态扫描方式一位一位地轮流点亮各位显示器。如下图3-7所示为4位LED动态显示电路。本设计用到的是LED显示器动态显示方式。本章小结本章详细讲述了基于单片机的无刷直流电机速度伺服系统的硬件设计方案。系统选择低成本的AT89C51单片机做为微控制器,通过L298N驱动芯片驱动直流电机,并采用光电编码器进行电机测速,LED数码管采用动态显示方式显示当前所测得的电机转速,最后通过RS232与上层PC机通信,实时接收PC机下传的PWM占空比设定值,以控制电机转动速度。整体的硬件设计在保证系统可靠运行的前提下,以最小化硬件成本为目标进行规划。第四章软件设计软件框架基于单片机的无刷直流电机速度伺服系统软件主要由主程序体和中断服务程序两部分组成,如图4-1所示。主程序体先进行初始化,然后判断相应标志位确定电机的转动方向,最后计算并显示电机转速值,电机转速单位为圈/分钟。其中:初始化程序包含定时器初始化、外部中断初始化及变量初始化等,初始化定时器0工作于方式一,用于产生PWM驱动电机转速,定时器1工作于方式二,为串行通信提供9600bps的波特率,串行通信初始化为无奇偶校验位、8位数据位、1位停止位和允许接收中断的工作模式,外部中断0和外部中断1均初始化为边沿触发,分别用于捕获按键和电机转速脉冲;初始化之后判断并驱动电机程序、电机转动与计算程序组成了主程序的主循环体。止匕外,中断服务程序分别完成相应的中断响应功能,外部中断0的中断服务程序用于改变转向标志位的状态,外部中断1的中断服务子程序用于捕获电机的转速脉12/29

冲,用行口的中断服务子程序用于接收并设定PC机下传的PWM占空比,而定时器0的中断服务子程序完成技术初值的重新装载,并生产相应占空比的PWM波,用于控制电机转动开始外部中断0服务

程序转向标志位

取反捕获转速脉冲外部中断开始外部中断0服务

程序转向标志位

取反捕获转速脉冲外部中断1服务程序定时器0中断服

务程序生成PWM调节转速串口中断服务

程序改变占空比图4-1系统软件框架电机控制电机控制子程序包括PWM<脉宽调制)函数、前进函数和后退函数等部分组成,用于控制小车的运行方式及运行速度。利用软件产生PWM信号的基本思想是:单片机上电后,定时器T0初始化后开始计时,产生定时器溢出中断后,计数值加1,当计数值达到基准时间时,清计数寄存器。当计数值小于预定占空比值时,输出高电平,反之,则输出低电平。可以通过调整预定占空比值,控制输出高低电平时间<即PWNft冲的占空比),进而控制电机的转动速度。例如:设PWM脉冲的周期为1s,则100个10ms的时间片段为一个周期。假设要求占空比为90%,则I/O口在一个周期的前90ms输出为高电平,而在这个周期的后10ms输出为低电平,则在此I/O口输出占空比为90%的PWM。PWM脉冲模拟程序如清单4.1所示。程序清单4.1PWM脉冲模拟voidInit(>〃定时器0初始化(13/29TMOD=0x01。〃定时器0工作在方式1ET0=1。//开定时器0中断TR0=1。〃开定时器0EA=1。〃开中断PWM=1。〃开始输出高电平)voidtime_0(>interrupt1〃定时器0中断服务子函数(TH0=(65536-10000>/256。//10ms计数初值赋值TL0=(65536-10000>%256。dida++。//计数变量加一if(dida>=DutyCycle>PWM=0。〃电平转换elsePWM=1。if(dida==100>//计数变量超出则清零(dida=0。MotorSpeed=MotorPluse。〃统计脉冲MotorPluse=0。))通过控制L298N两个输入口的的高低电平来编写电机的顺时针和逆时针转动程序,假设IN1=1,IN2=0电机顺时针转动,则IN1=0,IN2=1电机逆时针转动。其逻辑功能如表4-1所示,转动控制程序如清单4.2所示。表4-1L298N的逻辑功能ENA(ENB>IN1<IN3)IN2(IN4>电机运转情况HHL顺时针HLH逆时针H同IN2(IN4>同IN1(IN3>快速停止LXX停止程序清单4.2电机的顺时针和逆时针转动函数voidTurnClock(>(R=1。L=0。)14/29voidTurnAntiClock(>(R=0。L=1。)选择电机的顺时针或逆时针转动是通过一个按键实现的,该按键接入单片机的外部中断0,当外部中断0检测到一个边沿跳变后即进入中断服务子函数,在中断服务子函数中改变电子转动方向标志位的状态,这样一来便可以在主程序中通过该标志位的状态判断电机转动方向。电机转向控制的程序如清单4.3所示。程序清单4.3电机转向控制voidInit(>(IT0=1。〃边沿触发方式EX0=1。//允许外部中断0触发EA=1。)voidmain(>(Init(>。while(1>(if(Flag>TurnAntiClock(>。elseTurnClock(>。))voidEx0(>interrupt0//外部中断0中断服务函数(Flag=!Flag。〃改变标志位状态)综上所示,电机控制部分由Flag标志位控制电机的转动方向、PWM控制电15/29机的转动速度,而外部中断0的按键和定时器0分别改变Flag标志位的状态及生成PWM。LED显示第三章已经提及,本系统的LED采用动态方式显示,即四位数码管共用一套段选接口,通过位选选中点亮的位。仿真采用共阴极数码管,P1为段选接口,P2A7〜P2A4分别为个位、十位、百位和千位的位选编码。由于人眼的视觉停留,保持不同位显示之间的短暂延时,即可给视觉带来同时显示的效果,本系统在不同位显示之间延时1ms以达到此效果。LED数码管显示程序如清单所示。程序清单4.4LED数码管显示voiddelay(uinti>//延时1ms子程序(uintj。for(i。i>0。i-->for(j=110。j>0。j-->。)voidLEDDisplay(>(P1=table[MotorSpeed/100]。P2&=〜0x20。delay(1>。P2|=0xf0。P1=table[MotorSpeed%100/10]。P2&=~0x40。delay(1>。P2|=0xf0。P1=table[MotorSpeed%10]。P2&=~0x80。delay(1>。P2|=0xf0。)16/29

4.4RS232串口通信用行口程序的设计主要是配置UART的工作模式和编写用行口中断服务子函数。配置寄存器TMOD的定时器1工作方式和定时器1的计数初值TH1、TL1等可以设定用口通信的波特率;配置寄存器SCON可以设定用□通信的奇偶校验方式、数据位和停止位等参数。在数据收发方面,本系统通过中断方式接收上层PC机下传的PWM占空比指令,通过判定寄存器RI的状态判断是否为接收中断。用行口控制程序如清单4.5所示。程序清单4.5申行口控制voidInit(>//TMR1工作于方式//TMR1工作于方式2TMOD=0x21。TH1=0xfd。TL1=TL1=0xfd。〃波特率为9600SCON=0x50。SCON=0x50。TR1=1。ES=1。〃启动T1〃允许串行中断EA=1。voidSerial_ISR(void>interrupt4//串行口中断服务子函数(EA=0。if(RI>(RI=0。DutyCycle=SBUF。}EA=1。}4.5本章小结本章首先叙述了本文软件设计的框架,并给出了相应的程序流程图,然后分模块详细阐述了电机控制、LED显示和RS232串口通信等的程序设计思路和17/29

具体实施方案,并给出了对应的程序清单第五章系统测试本章拟在Proteus软件中仿真分析系统的性能。在该软件中,MCS-51单片机的关键字为AT89C51,电机驱动芯片L298N的关键字为L298,编码电机的关键字为MOTOR-ENCODER,4位7段数码管的关键字为7SEG-MPX4-CA,9针串口的搜索关键字为COMPIM,单位按钮的关键字为BUTTON。按照所设计的方案搭建硬件电路如图5-1所示,下面主要分别就电机和串行通信两部分进行性能测试分析。U1U2<XJT1OUTZ一(Km(Xjr*GNDi9T.UIP174SJEI^A5ENSBEM*EF£POOTADOpq1依mpasMxPOiAflirafiMDB用&曷附PQ7W7pzw*aPJ1U1U2<XJT1OUTZ一(Km(Xjr*GNDi9T.UIP174SJEI^A5ENSBEM*EF£POOTADOpq1依mpasMxPOiAflirafiMDB用&曷附PQ7W7pzw*aPJ1牌9P2班加PZ顼II救小壮咫!MA”PZSAMR27W.ISP3W题raiiTXDP3;'.'ifcjTCpaariSTiP3*T&p95ml由WRPSTMD图5-1Proteus硬件连接电路KTAL1I转向控制楼键r/min电机测试5-1所示。本文3.5节已经提及,电机测速过程中的每转脉冲数可在属性窗口设置。在Proteus5-1所示。18/29表5-1电机参数设置参数名设置值额定电压12V线圈电阻12Q线圈电感100mH空载转速360RPM负载率50%每转的脉冲数60由第4章软件设计可知,外部中断1用于捕获测速模块获得的脉冲,定时器0每10ms产生一次中断,每中断100轮刷新一次电机编码脉冲MotorSpeed的值,那么MotorSpeed即表征了MCU每秒捕获的脉冲个数。由表5-1可知,电机每转动一圈产生60个脉冲,那么MotorSpeed/60则为电机每秒转动的圈数,也就是说,MotorSpeed/60X60=MotorSpeed为电机每分钟转动的圈速,即MotorSpeed为测速单元得到的电机实际转速。将该值显示到LED数码管上如图5-2所示。图中电机模块下面显示了PWM占空比为90%时,电机的实际转速值为63.2r/min,而测试单击测得的转速值为65r/min,光电编码测量值的误差率小于3%。19/29

UIFSIENAUEEAF10P1JP12F13P14P15F1iBP17POO//MX)PO.1/^)1FORMPO.3/^K3P0.4//MFO.5/^06POe/«eP0.7/W7P2.(WF2.1即UIFSIENAUEEAF10P1JP12F13P14P15F1iBP17POO//MX)PO.1/^)1FORMPO.3/^K3P0.4//MFO.5/^06POe/«eP0.7/W7P2.(WF2.1即6F2j2/A10P2,3/A11P2平昌信P25/A13P2,6/A14P2.7/A15P3.0/RXDF3.1I/TXDP3.2/irmDP3.3/mpa./roP3.&T1pg由而高P3.7/SD■3B*g4U2■375・1IN1IVCCVSIN20UT1IN3IN40UT2EII2ENB0UT3SENSA0UT4SENSBGKDz孕12・Ij■3213■2111■1"1呻■22■2345-*2±A]转向控制按键ATS9C51DCD。号RRXDRTSTXDCTSOTRRI□ERROR口COMPIM<TEXT>图5-2仿真结果r/min串行通信测试串行通信用于PC机通过下传PWM占空比的值给单片机,以此控制电机的转速。仿真测试串行通信需通过VSPD软件虚拟出一对用口,分别与Proteus中的串口和PC机绑定。串口绑定需在Keil集成开发环境与Proteus软件中同时进行,具体操作按如下步骤执行。Stepl:打开VSPD软件,新建一对虚拟串口COM2和COM4V由于作者主机已有物理端口COM1和COM3,因此虚拟的串口对为COM2与COM4),本系统将COM2与单片机绑定,COM4与PC机v用用口调试助手代替)绑定,进行单片机与PC机的通信。Step2在Keil中将生成的程序与COM2绑定。在Keil集成开发环境的菜单栏单击Debug->Start/StopDebugSession,然后点确定进入Debug模式,在左下角的COMMAND窗口中输入“MODECOM29600,0,8,1[回车]”和“ASSIGNCOM2<SIN>SOUT[回车]”,然后退出Debug模式,重新编译链接,生成的20/29hex文件即与COM2绑定了。其中这两行指令的具体解释为MODECOM29600,0,8,1%分别设置COM2的波特率、奇偶校验位、数据位、停止位ASSIGNCOM2<SIN>SOUT%把单片机的串口和COM2绑定到一起。因为所用的单片机是AT89C51,只有一个串口,所以用SIN,SOUT,如果单片机有多个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。Step3在Proteus软件中绑定COM2。双击AT89C51单片机元件,在弹出的对话框中选定晶振为11.0592MHz,以配合9600bps的波特率,若晶振设定不对会出现乱码现象;然后双击COMPIM虚拟串口元件,在弹出的编辑对话框中选定端口,并设置通信的波特率、数据位等参数如图5-3所示。然后点击运行按钮,运行单片机程序。Step4设置PC机用口参数。PC机通过串口调试助手与COM4绑定,并将其波特率、校验位、数据位和停止位等通信参数设置成与COM2相同,如图5-4所示。然后在发送数据区内输入“1”,单击手动发送,以此下传PWM占空比值49(%>给单片机。再次观察电机转速为43r/min,如图5-5所示,明显叫90%占空比时的65r/min小,可知占空比设定指令正确下达,电机转速改变。图5-3COMPIM虚拟串口属性设置21/29

图5-4PC机串口通信参数设置I-14B2"■XT^LIXTAURSTEApoaacoPO1/«d叩衣用湿P0J3/AD2P0.-V®4RD⑸剧>5POS/ACePO.7/^7ESBFB«0*2"R.s-&!帝g«PSEN户1图5-4PC机串口通信参数设置I-14B2"■XT^LIXTAURSTEApoaacoPO1/«d叩衣用湿P0J3/AD2P0.-V®4RD⑸剧>5POS/ACePO.7/^7ESBFB«0*2"R.s-&!帝g«PSEN户1。PUP12P13P14Fl5P16M7P1DDRRTCDRPRDsD5RC&XTXTT)□EARDR□P2.0*6F2.1MF2.27A10P2.3/A11P2安弁愠P2.5/A13P2&/A14建了炳15P3.0imDP3.-1H5®P3.2^™P3.3flNTriP34TOP3.57T1P3.&^RP3.7JED8・1QT珞l1*二H连-I转向控制按提--IB_■17-LJr/minCOMPIM<TEXT>图5-5串口改变占空比仿真结果此时再观察VSPD软件右侧发送与接受数据,如图5-6所示,可以看到不但所虚拟的串口分别成功地与Protues和PC机的用口调试助手绑定,而且两者之22/29

间能正常通信,PC机每次下传的数据都被单片机所接收到图5-6VPSD串口连接情况综上所述,本系统所提出的基于单片机的无刷直流电机测速方案具有一定的可行性。不仅如此,PC机还可随时通过用口下传指令给单片机,实现对电机的伺服控制本章小结本章在Proteus软件中搭建了系统硬件电路,并加载了软件生成的单片机hex文件,控制系统运行。系统测试分电机测速和串行通信测试两部分实现,由实验结果可知:<1)单片机模拟的PWM能通过L298N驱动芯片正确控制电机转动,并且所设计的测速方案运行可靠,误差能控制在3%以内;<2)PC机与单片机通信正常,PC机下传的占空比指令能被单片机正确接收并执行,最终电机转速改变。23/29第六章结论已完成工作本文提出了一种基于单片机的无刷直流电机速度伺服系统设计方案,并在Proteus软件中仿真验证了方案的可行性。该系统通过定时器模拟PWM控制电机转速,采用外部中断的边沿触发功能捕获测速脉冲,并以此分析计算出电机转速,然后显示到LED数码管上面;止匕外,为了达到更精确的电机控制,设计的串行通信方案,通过PC机下传指令改变PWM输出占空比,以此控制电机转速。针对该方案的具体实施方法,本文完成了如下工作:1)提出了一种无刷直流电机测速方案。即通过增量式光电编码器测量电机转速,并采用单片机的外部中断管脚捕获光电编码器的输出脉冲,通过分析计算单位时间内脉冲个数确定电机转速。2)完成了系统的软硬件设计。硬件设计通过Protues软件搭建电路连接图,软件通过KeilC51集成开发环境编写PWM、串行通信、电机驱动、电机测速及LED显示等各级模块驱动程序。3)仿真验证了方案的可行性。在Protues软件中通过LED数码管显示所测转速与实际转速误差在3%以内;此外,通过VPSD软件虚拟串口对,模拟用行通信实现了PC机对电机转速的控制。后续工作当然,由于时间和能力的限制,论文不可避免地存在一些问题,本文仍需进一步的改进和完善。1)当前情况下,PC机只下达了PWM占空比调节指令,后续工作中可以设计更加复杂的通信协议,下达更加丰富的控制指令。2)所设计的方案只是在Proteus仿真软件中仿真验证通过,若能搭建具体的硬件电路进行验证分析,则更具说服力。3)电机控制是一个经典问题,后期最好能根据测得的转速设计相应的PID控制算法,提升被控对象的响应时间和超调量等性能指标,以期达到更加24/29精确的伺服跟踪效果致谢[1]谭浩强.高级程序设计<第三版).北京:清华大学出版社,2005.7.[2]周兴华.手把手教你学单片机C程序设计.北京:北京航空航天大学出版社,2007.10.[3]李全利,迟荣强.单片机原理及接口技术.北京:高等教育出版社,2004.1.[4]李广弟,朱月秀,王秀山.单片机基础.北京:北京航空航天大学出版社,2001.7.[5]秦志强,陈伟,王文斌.基础机器人制作与编程.北京:电子工业出版社,2007.8[6]边春元,李文涛等.C51单片机典型模块设计与应用.北京:机械工业出版社,2008.4[7]孙绪才.与L298N在直流电机PWM调速系统中的应用.潍坊学院学报,2009.7.[8]贾金叶.基于超声波测距的机器人语音提示系统.河北建筑工程学院学报,2009.3.25/29[9]席细平,马重芳,王伟.超声波技术应用现状.山西化工学报,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论