基于stm32的步进电机控制系统嵌入式课程设计_第1页
基于stm32的步进电机控制系统嵌入式课程设计_第2页
基于stm32的步进电机控制系统嵌入式课程设计_第3页
基于stm32的步进电机控制系统嵌入式课程设计_第4页
基于stm32的步进电机控制系统嵌入式课程设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

摘要本文的主要工作是基于STM步3进2电机控制系统的设计。随着越来越多的高科技产品逐渐融入了日常生活中,步进电机控制系统发生了巨大的变化。单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得步进电机的控制系统有了新的的研究方向与意义。本文描述了一个由STM微3处2理器、步进电机、LC显D示器、键盘等模块构成的,提供基于STM的32PW细M分技术的步进电机控制系统。该系统采用STM微3处2理器为核心,在MD的K环境下进行编程,根据键盘的输入,使STM产3生2周期性PW信M号,用此信号对步进电机的速度及转动方向进行控制,并且通过LC显D示出数据。结果表明该系统具有结构简单、工作可靠、精度高等特点.关键词:STM32微处理器;步进电机;LCD显示;PWM信号;目录任务提出与方案论证 任务提出 方案论证 总体设计 2.1系统的硬件设计 .控2制系统软件设计 详细设计及仿真 .设1计主要程序部分 .调2试与仿真 总结 实物图和仿真图1任务提出与方案论证步进电机控制系统的整个设计中最重要的部分是利用PWM细分实现步进电机调速的处理,虽然PW调M速很早就开始研究应用,但如何用PW细M分调速的快速性和准确性至今仍是生产和科研的课题。随着微电子技术的发展与普及,更多高性能的单片机应用使得PW细M分实现步进电机PW调M速的快速性和准确性都有了极大的提高。1.1任务提出总体方案根据课题要求,本设计采用STM32cor处t理e器x,由-SMP3GT6电机控制模块作为直流电机的驱动芯片,由ADC输入电位器产生调速命令,用TF彩T色LC作D为显示模块。1.2方案论证步进电机控制系统硬件方案本系统主要由一块STM平3台2、SPGT62型C步1进9电B机驱动模块构成,以STM为3核2心,包括电机驱动、电机、A/转D换、LC显D示等模块。系统的结构框图如图2.所1示。STM作3为2主控芯片,通过I/端O口来控制SPGT62型C步1进9电B机驱动芯片,从而实现对步进电机的控制。通过AD输C入电位器产生调速命令反馈给STMSTM调3节2SPGT62型C步1进9电B机驱动模块的状态,从而使电机改变转速和方向。同时,电机转速可由彩色液晶LC显D示出来,用AD输C入电位器来对步进电机的转动方向和转速等进行设定。步进电机控制系统软件方案硬件功能的实现离不开软件的设计与完成。软件设计是步进电机控制系统设计中最重要、最关键的部分,也是本次毕业设计的难点之处。由于本系统使用STM平3台2,运用Keilfo开r发环A境R,M在Keilu软V件i平s台i进o行n开发。本课题软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。各个部分函数都可相互调用又相对独立可调,保证调试的便利与程序的可读性。总体设计第一部分具体介绍了步进电机控制系统的硬件设计,包括SPGT62电C机1控制模块电路的设计;第二部分阐述了步进电机控制系统的软件设计;2.1系统的硬件设计本系统采用STM作3为2主控制器,采用AD输C入电位器作为输入部分,步进电机及其驱动电路采用SPGT62型C步1进9电B机驱动模块。下面分别对STM以3及相关模块的特性进行具体介绍。(1)步进电机模块本设计选用专用的电机驱动芯片SPGT62。CS1P9GBT62电C机1控9制B模组是为学生以及单片机爱好者学习步进电机和直流电机控制而设计的学习套件。模组采用凌阳SPGT62电C机1驱9动B芯片,配置两相步进电机和直流电机各一台,并提供4位LE数D码管用来显示电机转速等信息。模组配备的步进电机为35BY型永磁步进电机,工作方式为双极性两相四拍。步进电机是一种将电脉冲转化为角位移的执行机构。当步进电机接收到一个脉冲信号,它就按设定的方向转动一个固定的角度(称为“步距角”)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率实现步进电机的调速。(2)LCD显示模块显示电路是本设计硬件的主要构成部分,STM外3接2TF模T块,MzT彩2色4TF模T块是一个2.英8寸的TF模T块,内置TF控T制器,对外连接直接通过8位的808总0线进行指令和数据的传输。MzT有2像4素点数为24×032,0色彩深度为16位色,也就是每一个像素点需要用16位的数据来表示其显示的内容。MzT模块的显示操作非常简便,需要改变某一个像素点的颜色时,只需要对该点所对应的2个字节的显存进行操作即可。这部分电路连接时主要是把数据准确稳定的显示出来,因此连接电路时需注意端口对应的准确连接,否则严重影响数据显示的稳定,甚至出现显示不出来数据。2.控2制系统软件设计控制系统软件设计步骤:对于一个完整的嵌入式应用系统的开发,硬件的设计与调试工作仅占整个工作量的一半,应用系统的程序设计也是嵌入式系统设计一个非常重要的方面,程序的质量直接影响整个系统功能的实现,好的程序设计可以克服系统硬件设计的不足,提高应用系统的性能,反之,会使整个应用系统无法正常工作。不同于基于PC平台的程序开发,嵌入式系统的程序设计具有其自身的特点,在编写嵌入式系统应用程序时,可采取如下几个步骤:(1)明确所要解决的问题:根据问题的要求,将软件分成若干个相对独立的部分,并合理设计软件的总体结构(2)合理配置系统的资源:与基于8位或16位微控制器的系统相比较,基于32位微控制器的系统资源要丰富得多,但合理的资源配置可最大的限度发挥系统的硬件潜能,提高系统的性能。对于一个特定的系统来说,其系统资源,如Fla、sEhEPR、OSMDR、A中M断控制等,都是有限的,应合理配置系统资源。(3)程序的设计、调试与优化:根据软件的总体结构编写程序,同时采用各种调试手段,找出程序的各种语法和逻辑错误,最后应使各功能程序模块化,缩短代码长度以节省存储空间并减少程序的执行时间。此外,由于嵌入式系统一般都应用在环境比较恶劣的场合,易受各种干扰,从而影响到系统的可靠性,因此,应用程序的抗干扰技术也是必须考虑的,这也是嵌入式系统应用程序不同于其他应用程序的一个重要特点。Keilfo软r件开A发R环M境本次设计的软件部分采用模块化的设计思想,将各个功能都编成了相应的子程序。程序运行时,通过主程序的调用及相应模块之间的嵌套调用,实现系统的整体功能。本设计所需的STM的3外2设包括PA口、PB口、PC口和定时器端口,所以也要对外设的时钟进行设置。由于PA口、PB口、PC口在APB系1统总线外设上,定时器TIM和2TIM在3APB系2统总线外设上,所以要对APB和1APB总2线的时钟频率进行设置。经过APB与1APB的2分频,将SYSC转L换K成可以进行外设及TI可M以接收的系统时钟。在时钟初始化子程序中先对系统时钟的模式进行选择,即将系统时钟设置为HS模E式(外部时钟模式),然后设置AH时B钟等于系统时钟,且设置了低速或高速AH,B最后使能的时钟,时钟初始化子程序的流程。

程序设计及仿真.1设计主要程序部分(主函数)delay_init();for(index=0;index<8;innit();dex++)LCD_Init());LED_Init();{GPIOA->eatcodeindex];while(1)delay_ms(2);}#includekey=KEY_Scan(0);elseif(temp==0)//ÖÐÎÄÏÔʾif(key==1)GPIOA->ODR=0;#include¼ {ÆÏÔʾtemp++;externconstu8 if(temp>2)gImage_jiemian[];temp=0;while(flag1)floatt1;{u16}t,t11,t12,t13,t14,resiful(tk;ey==2)beat=(angle*4076)/360;{while(beat--)unsignedchar angle+=15;{beatcode2[8]={0x0e,0x0c,0ifx(0angle>=360)d,0x09,0x0b,0x03,0x07an,gl0e=x0;6}GPR=beatcode1[inde;flag1=1; ;}index++;unsignedchar if(temp==2)beatcode1[8]={0x06,0x0{7,0x0index=index&0x07;3,0x0b,0x09,0x0d,0x0c,0x0e}delay_ms(2);;for(index=0;index<8};inflag1=0;intmain(void)dex++){unsignedchar {GPIOA->ODR=beatcode}2[temp=0,angle=0,index=i0nde,xf]l;ag1;unsignedlongbeat=0; delay_ms(2);LE}0;intkey=2;}}Drive_Init(); elseif(temp==1)delay_ms(10);uart_init(96//0´0); {}®¿Ú³õʼ»¯Îª9600调2试与仿真调试包括硬件调试、软件调试和整体联调。由于硬件和软件的研制是相对独立进行的,因此软件调试是在硬件完成之前,而硬件也是在无完整软件情况下进行调试的。在调试中找出缺陷,判断故障源,对硬、软件做出修改,反复进行这一过程,直至确信没有错误之后接入单片机进行整机联调。软件系统的调试任务是要查出程序设计当中的语法及逻辑错误,并加以纠正。由于本课题设计软件程序的编写是按功能模块的划分来完成的,所以软件调试可以采用“先分块独立测试后组合联机”、“先单步调试后联合调试”的方法。所谓的“先分块独立后组合联机”就是首先将软件程序进行模块分类,把与硬件无关的模块进行独立调试,把与硬件相关的程序模块进行软、硬联合仿真调试。当各模块都独立调试完成后,可将各程序模块连接起来进行联调,以解决在程序模块连接中可能出现的逻辑错误。系统软、硬件的联调是一个不断完善的过程,常常需要反复多次修改补充才能调试出一个性能良好的系统。在联调过程中我们经常遇到故障,这时需要对系统进行检查,万用表是使用最多的检查工具。在系统联调时不排除某个元件被烧坏或者不工作,如SPGT62芯C片1被9烧B坏,重新换个芯片。以下为在对各个模块进行调试过程中出现的问题,以及问题的分析与解决过程:一、程序仿真正确,将程序下载到STM处3理2器中时,LC显D示的数据不稳定。原因分析与解决方法:既然能够显示数据,说明硬件LC连D接是正确的。可知,还是在软件编写时出现了问题,便从LC显D示程序一步步检查,最后发现定义数据的类型出现了错误。二、软件编写完成后进行调试时下载不了程序。原因分析与解决方法:软件配置没有设置好,经过指导老师的指导找到了问题的所在,重新配置好软件后程序顺利的下载。总结本设计将步进电机作为控制对象,基本实现了PW细M分技术下的控制调速的功能。本文设计的基于STM的3舵2机控制系统就是在这种背景基础上设计的。本设计是在各种仪器连接使用的基础上设计而成的,只有充分了解有关STM微3处2理器以及各部分之间的关系才能达到要求。整个课题的开发过程主要包括了硬件电路设计和软件程序的编写两个部分,主要任务是开发一个以STM为3核2心的控制系统,通过在MD的K环境下编程,由STM产3生2PW信M号,可实现键盘对舵机角度和速度的控制,能够通过LC显D示步进电机方向和速度。通过整机联调验证了系统的可行性,能满足设计要求,达到了设计的指标。硬件部分是利用STM体3积2小、易扩展、集成度高、可靠性高、功耗低、中断处理能力强等特点。软件部分采用模块化设计,这些模

温馨提示

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

评论

0/150

提交评论