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

付费下载

下载本文档

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

文档简介

湖南科技大学信息与电气工程学院基于ARM的步进电机控制课程设计报告专业电子信息工程班级一班姓名陈信维学号0904030112指导教师罗朝辉第1页目录1设计目的与要求211设计目的212设计要求22方案设计与论证221设计分析222方案论证223方案选择23硬件电路231硬件结构332器件连接说明44软件设计55调试76结论与心得77参考文献7附录程序8第2页1、设计的目的与要求11设计目的(1)本次课程设计是在学习了深入浅出ARM7LPC213X/214X课程之后综合利用所学知识完成一个计算机应用系统设计并在实验室实现。(2)通过课程设计,巩固和加深了对“微机原理与接口技术”课程中所学的理论知识和实验能力,基本掌握计算机接口应用电路的一般设计方法,提高电子电路的设计和实验能力。(3)加深对计算机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。12设计要求(1)设计一个步进电机的控制系统。(2)可通过键盘设定转速和方向。(3)能够显示当前的转速。2、方案的设计与论证21设计分析步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。本次课程设计所设计的步进电机的控制系统可通过键盘设定转速和方向,并能显示转速。22方案论证方案一采用ARM7的脉宽调制器PWM产生脉冲对步进电机进行控制。方案二利用定时器定时中断进行步进电机的控制。23方案选择第一种方案中PWM技术是采用脉宽调制技术,即占空比不同的方波电压产生不同的平均电流使步进电机转动,通过调节占空比即可调节电机转速。虽然很精确,但设置较繁琐。第二种方案中采用定时器定时中断的方式,只需要几条简单的指令就可以产生具有一定频率和数目的脉冲信号,而且在整个脉冲产生过程中,CPU可用来处理其他工作,大大提高了系统的实时处理能力。考虑到系统的实时性及程序的繁简程度我选择了第二种方案。3、硬件电路31硬件结构(1)EASYARM2138开发板是广州周立功公司设计的EASYARM系列开发套件之一,采用了PHILIPS公司基于ARM7TDMIS核、单电源供电、LQFP64封装的LPC2138,具有JTAG仿真调试、ISP编程等功能。第3页开发板上提供了一些键盘、LED、蜂鸣器等常用功能部件,还具有RS232接口电路、I2C存储器电路。另外,用户也可以更换兼容的CPU进行仿真调试,如LPC2132、LPC2138、LPC2142等。灵活的跳线组合(开发板内使用的所有I/O均可断开连接),还有用户I/O接口,极大地方便了用户进行32位ARM嵌入式系统的开发实验。(2)定时器(3)中断LPC2138通过向量中断控制器(VIC)管理中断。外设中断信号需要经过2个开关才能到达ARM内核,真正产生异常,逻辑示意图如下图所示。如果在VIC中使能了相应外设的中断,外设中断才能到达VIC并向内核发送中断请求;只有使能了内核中断IRQ或者第4页FIQ,内核才能真正产生异常。硬件图如下中断的过程示意图如下(4)按键的连接图不按下时为高电平,按下时变为低电平。(5)UART0特性第5页管脚描述6步进电机接口由于LPC2138的GPIO驱动能力有限,必须通过ULN2003达林顿集成驱动芯片驱动步进电机,在步进电机和驱动电路间连接了电阻,防止控制紊乱而造成的电机损坏。32器件连接说明(1)在EASYARM2138开发板上,当跳线JP6分别选择TXD0和RXD0端时方可进行UART0通信实验。(2)KEY1连接P016;KEY2连接P017;KEY3连接P018,KEY4连接P019,KEY5连接P020,KEY6连接P021。(3)步进电机的四个输入端口分别接EASYARM2138开发板上P22P25四个端口。4、软件设计系统软件采用C语言编程,程序详情请参见附录。第6页程序的流程图如下否是是否是否是否是否是否是开始初始化参数设置SPI管脚连接,P030连接到AD03,P12516连接GPIO,设置BJDJ_QD控制口为输出,初始化SPI,IRQ中断使能,定时器0初始化,启动定时器,设置并启动定时器0中断IRQ。步进电机进入最近一次设定的模式(初始时为模式0)是否有按键按下KEY1按下进入模式0八拍正转。在数码管上显示0,同时在上位机上显示转速。KEY2按下进入模式1八拍反转。在数码管上显示1,同时在上位机上显示转速。KEY3按下进入模式2双四拍正转。在数码管上显示2,同时在上位机上显示转速。KEY4按下进入模式3双四拍反转。在数码管上显示3,同时在上位机上显示转速。KEY5按下进行减速。在数码管上显示5,同时在上位机上显示转速。KEY6按下进行加速。在数码管上显示6,同时在上位机上显示转速。第7页4、调试按照器件连接说明连接好EASYARM2131开发板上的跳线,然后将步进电机与EASYARM2131开发板连接上。运行程序,开始调试。在一开始的时候,由于用定时器设置的中断时间太长导致看不见电机有明显的转动。通过修改定时时间,渐渐地电机转动变得明显了。然后测试按键功能时发现,案件的检测不够灵敏,有时候需要按几下才能检测到,后来经过修改延时消抖的时间,将其变短且在每次按下按键时不急于松开而保持一会儿,这样按键检测变得较为灵敏了。在调试中发现单双八拍和双四拍要比单四拍的转动更加有效。单四拍模式的时候电机只是震动并没有转动,用肉眼观察不到转速的快慢,故最后舍弃了这种模式。调试的最终结果是程序开始时电机进入模式0,如果没有按键按下则一直保持模式0。当有按键按下时,且按键为KEY1KEY4则电机根据不同按键的按下进入不同的转动模式(KEY1对应模式0八拍正转,KEY2对应模式1八拍反转,KEY3对应模式2双四拍正转,KEY4对应模式3双四拍反转)。当按键KEY5按下时,电机转速变慢,且随着KEY5按下次数的增多电机逐渐变慢直至停止;当按键KEY6按下时,电机转速变快,且随着KEY5按下次数的增多电机逐渐变快。同时在上位机上可以看见当前的转速。5、课程设计体会一方面,通过这一周的课程设计,我对课本上关于LPC2138的硬件结构的知识有了更加深刻的理解,而且对其用法掌握得更加熟练。在课程设计过程中,能够不断地发现问题,并想办法解决,如此提高了我自己解决问题的能力。在编写程序方面,我对ARM7编程结构和技巧也有了深刻的理解和领会。此次课程设计还让我知道什么是实时系统以及如何构建一个简单的实时系统。现在我已经基本掌握了构建实时系统的方法。还有我明白了流程图的重要性,以前在编程的时候,我从不写流程图,直接开始写程序,这样出现了不该出现的问题。但这次课程设计时,我试着先写出流程图然后按照流程图编写程序,结果错误少了很多,即使有错误只要根据流程图一查就知道错在哪里,这让我节省了大量的时间和精力。所以我认识到,以后要编写程序时,先写流程图是很有必要的。另一方面,我感觉这一周的课程设计我自己的效率太低。有时候被一些问题困惑了很久,但经过老师的指点,我才恍然大悟,原来只要换个方式思考问题就能想到很好的方法。6、参考文献1周立功深入浅出ARM7LPC213X/214X(上册)M北京北京航空航天大学出版社,2008146175,226240,2752862周立功ARM嵌入式系统实验教程(三)M北京北京航空航天大学出版社,2005134140第8页3冷洪滨,邬义杰基于计数器/定时器的步进电机可编程控制接口电路设计J北京组合机床与自动化加工技术,20044周明德微型计算机硬件软件及其应用北京清华大学出版社,1993附录实训程序INCLUDE“CONFIGH“DEFINEHC595_CS10DLYFORI0I80X0Y/函数名称MSPI_INIT函数功能初始化SPI接口,设置为主机。入口参数无出口参数无/VOIDMSPI_INITVOIDPINSEL0PINSEL0SPCCR0X52/设置SPI时钟分频SPCR03|/CPHA0,数据在SCK的第一个时钟沿采样14|/CPOL1,SCK为低有效15|/MSTR1,SPI处于主模式06|/LSBF0,SPI数据传输MSB位7在先07/SPIE0,SPI中断被禁止/函数名称MSPI_SENDDATA函数功能向SPI总线发送数据入口参数DATA待发送的数据出口参数返回值为读取的数据/UINT8MSPI_SENDDATAUINT8DATAIOCLRHC595_CS/片选74HC595SPI_SPDRDATAWHILE0SPI_SPSR/等待SPIF置位,即等待数据发送完第11页毕IOSETHC595_CSRETURNSPI_SPDR/此表为LED0F以及L、P的字模/UINT8CONSTDISP_TAB10/01234567890XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90/函数名称QUDONG函数功能驱动步进电机转动入口参数无出口参数无/VOIDQUDONGIO1SET0X0F22/不输出SWITCHBJ_MODCASE0/八拍正转IO1CLRBJCNT8BREAKCASE1/八拍反转IO1CLRBJ7CNT8BREAKCASE2/双四拍正转IO1CLRBJCNT421BREAKCASE3/双四拍反转IO1CLRBJ7CNT42BREAKDEFAULTBREAKT0IR0X01/清除中断标志/VICVECTADDR0X00/通知VIC中断处理结束/函数名称IRQ_TIMER0函数功能定时器0中断服务程序,定时调用QUDONG程序,使步进电机按节拍转动。入口参数无出口参数无/VOID_IRQIRQ_TIMER0VOID第12页TCNTQUDONGMSPI_SENDDATADISP_TABI/发送显示T0IR0X01/清除中断标志/VICVECTADDR0X00/通知VIC中断处理结束/函数名称MAIN函数功能程序初始化,AD采样和按键调节电机转速,通过串口向上位机发送显示数据。调试说明需要将跳线JP6分别选择TXD0和RXD0端KEY1KEY6连接P016P021,步进电机四个输入端分别接P122P125。/UINT8RCV_DATAINTMAINVOIDUINT32ADC_DATA,TEMP,ZHUANSU100,ZHUANSU1100,ZHUANSU2200UINT32BAPAIZHENGZHUAN,BAPAIFANZHUAN,SHSIPAIZHENGZHUAN,SHSIPAIFANZHUANCHARSTR20PINSEL00X00005505/设置SPI管脚连接PINSEL10X10000000/PINSEL1128/P030连接到AD03IODIRHC595_CSPINSEL2PINSEL2/P12516连接GPIOIO1DIRBJ_QD/设置BJDJ_QD控制口为输出UART0_INITMSPI_INIT/初始化SPIIRQENABLE/IRQ中断使能/定时器0初始化/T0TC0/定时器设置为0/T0PR0/时钟不分频/T0MCR0X03/设置T0MR0匹配后复位T0TC,并产生中断标志/T0MR0FPCLK/ZHUANSU/05秒钟定时/T0TCR0X01/启动定时器/设置定时器0中断IRQ/VICINTSELECT0X00/所有中断通道设置为IRQ中断/VICVECTCNTL00X20|0X04/设置定时器0中断通道分配最高优先级/VICVECTADDR0UINT32IRQ_TIMER0/设置中断服务程序地址/VICINTENABLE10X04/使能定时器0中断/WHILE1IFIO0PINIFIO0PINI0MSPI_SENDDATADISP_TAB0/发送到数码管显示BAPAIZHENGZHUAN3ZHUANSU/20SPRINTFSTR,“BAPAIZHENGZHUAN4D“,BAPAIZHENGZHUAN/发送到上位机显示ISENDSTR0,4,0X30,STRWHILEIO0PINIFIO0PINIFIO0PINI2MSPI_SENDDATADISP_TABI/发送到数码管显示BAPAIFANZHUAN3ZHUANSU/20SPRINTFSTR,“BAPAIFANZHUAN4D“,BAPAIFANZHUAN/发送到上位机显示ISENDSTR0,6,0X30,STRWHILEIO0PINIFIO0PINIFIO0PINI3MSPI_SENDDATADISP_TABI/发送到数码管显示SHSIPAIZHENGZHUAN3ZHUANSU/10SPRINTFSTR,“SHSIPAIZHENGZHUAN4D“,SHSIPAIZHENGZHUAN/发送到上位机显示ISENDSTR0,8,0X30,STRWHILEIO0PINIFIO0PIN第14页IFIO0PINI4MSPI_SENDDATADISP_TABI/发送到数码管显示SHSIPAIFANZHUAN3ZHUANSU/10SPRINTFSTR,“SHSIPAIFANZHUAN4D“,SHSIPAIFANZHUAN/发送到上位机显示ISENDSTR0,10,0X30,STRWHILEIO0PINIFIO0PINIFIO0PINZHUANSU220ZHUANSU1ZHUANSU/按键KEY5减速MSPI_SENDDATADISP_TABI/发送到数码管显示IFZHUANSU2ZHUANSU

温馨提示

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

评论

0/150

提交评论