《2022年嵌入式课程设计.pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式课程设计.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式课程设计课 程 设 计 报 告 书题目 : 基于 stm32 的步进电机控制系统课程: 嵌入式系统课程设计专业: 电子信息科学与技术2016 年 4 月 15 日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 12 页 - - - - - - - - - - 嵌入式课程设计课程设计任务书学 号学 生 姓名专业(班级) 设计题目基于 stm32 的步进电机控制系统设计技术参数1. 基于 STM32 平台; 2. 实现步进电机的控制 ; 3.LCD显示。设计要求通过 STM32 实现对步进电
2、机的精确控制,经按键实现正转、反转以及转一定角度 ,再通过 TFT彩色 LCD显示图片与系统信息。参考资料1 杜春雷、 STM32体系结构与编程、北京: 清华大学出版社 , 2003 2 刘灿伟、 基于 STM32的步进电动机调速系统的研究、华北电力大学硕士学位论文, 2007 3 周立功、 STM32微控制器基础与实践 (第二版 )、 北京: 北京航空航天大学出版社, 2005 4 张绮文 , 谢建雄 , 谢劲心、 北京: STM32嵌入式常用模块与综合系统设计实例精讲、 电子工业出版社 , 2007 5 谭浩强、C程序设计、北京: 清华大学出版社 , 1999 精品资料 - - - 欢迎下
3、载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 12 页 - - - - - - - - - - 嵌入式课程设计6 顾绳谷、电机及拖动基础、机械工业出版社 , 2007 7 陈世元、电机学、中国电力出版社 , 2005 8 张民、 微机控制步进脉宽调速系统设计、辽宁工程技术大学学报 , 2001 9 张广溢 , 郭前岗、电机学、重庆: 重庆大学出版社 , 2002 10 李发海、 电机与拖动基础、 北京: 北京广播电视大学出版社 , 1993 11 于海生、微型计算机控制技术、清华大学出版社 , 2006 12 邵裕森
4、, 戴先中、过程控制工程、机械工业出版社 , 2000 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 12 页 - - - - - - - - - - 嵌入式课程设计学生姓名 : 学号: 专业: 课程设计题目 : 基于 stm32 的步进电机控制系统成绩: 指导教师 : 年月日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 12 页 - - - - - - - - - - 嵌入式课程设计信息
5、工程学院课程设计成绩评定表摘要本文的主要工作就是基于STM32 步进电机控制系统的设计。 随着越来越多的高科技产品逐渐融入了日常生活中, 步进电机控制系统发生了巨大的变化。单片机、C 语言等前沿学科的技术的日趋成熟与实用化, 使得步进电机的控制系统有了新的的研究方向与意义。本文描述了一个由STM32 微处理器、步进电机、 LCD显示器、键盘等模块构成的, 提供基于 STM32 的 PWM 细分技术的步进电机控制系统。 该系统采用 STM32 微处理器为核心 , 在 MDK 的环境下进行编程 , 根据键盘的输入, 使 STM32 产生周期性 PWM 信号, 用此信号对步进电机的速度及转动方向进行
6、控制, 并且通过 LCD显示出数据。结果表明该系统具有结构简单、工作可靠、精度高等特点、关键词 : STM32微处理器 ;步进电机 ;LCD显示;PWM 信号; 目录1 任务提出与方案论证. . 6 1、1 任务提出 . . 6 1、 2 方案论证. 6 2 总体设计 . 7 2.1 系统的硬件设计. 7 2、 2 控制系统软件设计. . 8 3 详细设计及仿真. . 9 3、 1 设计主要程序部分. . 9 3、 2 调试与仿真 . 10 4 总结 . 11 5 实物图与仿真图. . 12 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - -
7、 - - - - - - - -第 5 页,共 12 页 - - - - - - - - - - 嵌入式课程设计1 任务提出与方案论证步进电机控制系统的整个设计中最重要的部分就是利用PWM 细分实现步进电机调速的处理 , 虽然 PWM 调速很早就开始研究应用, 但如何用 PWM 细分调速的快速性与准确性至今仍就是生产与科研的课题。随着微电子技术的发展与普及, 更多高性能的单片机应用使得PWM 细分实现步进电机 PWM 调速的快速性与准确性都有了极大的提高。1、1 任务提出总体方案根据课题要求 , 本设计采用 STM32cortex-M3处理器 , 由 SPGT62C19B电机控制模块作为直流电
8、机的驱动芯片, 由 ADC 输入电位器产生调速命令 , 用 TFT彩色 LCD作为显示模块。1、2 方案论证步进电机控制系统硬件方案本系统主要由一块STM32平台、 SPGT62C19B 型步进电机驱动模块构成, 以STM32 为核心 , 包括电机驱动、电机、 A/D转换、 LCD显示等模块。系统的结构框图如图 2 、1 所示。STM32 作为主控芯片 , 通过 I/O 端口来控制 SPGT62C19B 型步进电机驱动芯片 ,从而实现对步进电机的控制。通过ADC输入电位器产生调速命令反馈给STM32,STM32 调节 SPGT62C19B 型步进电机驱动模块的状态, 从而使电机改变转速与方向。
9、同时, 电机转速可由彩色液晶LCD显示出来 , 用 ADC 输入电位器来对步进电机的转动方向与转速等进行设定。步进电机控制系统软件方案硬件功能的实现离不开软件的设计与完成。软件设计就是步进电机控制系统设计中最重要、最关键的部分, 也就是本次毕业设计的难点之处。由于本系统使用 STM32 平台, 运用 Keil for ARM开发环境 , 在 Keil u Vision软件平台进行开发。 本课题软件设计的思想主要就是自顶向下, 模块化设计 , 逐一设计各个子模块 ,分别进行调试 , 最后的连调整个程序 , 判断就是否达到预期的要求, 做出结论。各精品资料 - - - 欢迎下载 - - - - -
10、 - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 12 页 - - - - - - - - - - 嵌入式课程设计个部分函数都可相互调用又相对独立可调, 保证调试的便利与程序的可读性。2 总体设计第一部分具体介绍了步进电机控制系统的硬件设计, 包括 SPGT62C19B 电机控制模块电路的设计 ; 第二部分阐述了步进电机控制系统的软件设计; 2.1 系统的硬件设计本系统采用 STM32 作为主控制器 , 采用 ADC 输入电位器作为输入部分 , 步进电机及其驱动电路采用SPGT62C19B 型步进电机驱动模块。下面分别对STM32 以及相关模块
11、的特性进行具体介绍。(1)步进电机模块本设计选用专用的电机驱动芯片SPGT62C19B。SPGT62C19B 电机控制模组就是为学生以及单片机爱好者学习步进电机与直流电机控制而设计的学习套件。模组采用凌阳 SPGT62C19B 电机驱动芯片 , 配置两相步进电机与直流电机各一台, 并提供 4 位 LED数码管用来显示电机转速等信息。模组配备的步进电机为35BYJ26型永磁步进电机 , 工作方式为双极性两相四拍。步进电机就是一种将电脉冲转化为角位移的执行机构。当步进电机接收到一个脉冲信号, 它就按设定的方向转动一个固定的角度 (称为“步距角” )。可以通过控制脉冲个数来控制角位移量, 从而达到准
12、确定位的目的 ; 同时可以通过控制脉冲频率实现步进电机的调速。(2)LCD显示模块显示电路就是本设计硬件的主要构成部分,STM32外接 TFT模块,MzT24彩色TFT模块就是一个 2、8 英寸的 TFT模块, 内置 TFT控制器, 对外连接直接通过8位的 8080 总线进行指令与数据的传输。 MzT24有像素点数为 240320,色彩深度为 16 位色, 也就就是每一个像素点需要用16 位的数据来表示其显示的内容。MzT24模块的显示操作非常简便, 需要改变某一个像素点的颜色时, 只需要对该点所对应的 2 个字节的显存进行操作即可。 这部分电路连接时主要就是把数据准确稳定的显示出来 , 因此
13、连接电路时需注意端口对应的准确连接, 否则严重影响数据显示的稳定 , 甚至出现显示不出来数据。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 12 页 - - - - - - - - - - 嵌入式课程设计2、2 控制系统软件设计控制系统软件设计步骤 : 对于一个完整的嵌入式应用系统的开发, 硬件的设计与调试工作仅占整个工作量的一半 , 应用系统的程序设计也就是嵌入式系统设计一个非常重要的方面,程序的质量直接影响整个系统功能的实现, 好的程序设计可以克服系统硬件设计的不足 , 提高应用系统的性
14、能 , 反之, 会使整个应用系统无法正常工作。不同于基于 PC平台的程序开发 , 嵌入式系统的程序设计具有其自身的特点,在编写嵌入式系统应用程序时, 可采取如下几个步骤 : (1) 明确所要解决的问题: 根据问题的要求 , 将软件分成若干个相对独立的部分, 并合理设计软件的总体结构(2) 合理配置系统的资源 : 与基于 8 位或 16 位微控制器的系统相比较 , 基于32 位微控制器的系统资源要丰富得多, 但合理的资源配置可最大的限度发挥系统的硬件潜能, 提高系统的性能。对于一个特定的系统来说, 其系统资源 , 如Flash 、EEPROM、SDRAM、中断控制等 , 都就是有限的 , 应合理
15、配置系统资源。(3) 程序的设计、调试与优化 : 根据软件的总体结构编写程序, 同时采用各种调试手段 , 找出程序的各种语法与逻辑错误, 最后应使各功能程序模块化, 缩短代码长度以节省存储空间并减少程序的执行时间。此外, 由于嵌入式系统一般都应用在环境比较恶劣的场合, 易受各种干扰 , 从而影响到系统的可靠性 , 因此, 应用程序的抗干扰技术也就是必须考虑的, 这也就是嵌入式系统应用程序不同于其她应用程序的一个重要特点。Keil for ARM软件开发环境本次设计的软件部分采用模块化的设计思想, 将各个功能都编成了相应的子程序。程序运行时 , 通过主程序的调用及相应模块之间的嵌套调用, 实现系
16、统的整体功能。本设计所需的 STM32 的外设包括 PA口、PB口、PC口与定时器端口 , 所以也要对外设的时钟进行设置。由于PA口、PB口、PC口在 APB1系统总线外设上 ,精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 12 页 - - - - - - - - - - 嵌入式课程设计定时器 TIM2与 TIM3在 APB2系统总线外设上 , 所以要对 APB1与 APB2 总线的时钟频率进行设置。 经过 APB1与 APB2的分频 , 将 SYSCLK 转换成可以进行外设及TIM可以接收
17、的系统时钟。在时钟初始化子程序中先对系统时钟的模式进行选择, 即将系统时钟设置为HSE模式( 外部时钟模式 ), 然后设置 AHB时钟等于系统时钟 ,且设置了低速或高速AHB,最后使能的时钟 , 时钟初始化子程序的流程。3 程序设计及仿真3、1 设计主要程序部分( 主函数 )#include led、h #include delay、h #include key、h #include sys、h #include lcd 、h #include usart 、h #includedrive、h #include chinese、h /?D?#include image2lcd、h/ ?exte
18、rn const u8 gImage_jiemian; float t1; u16 t,t11,t12,t13,t14,result; unsigned char beatcode28=0 x0e,0 x0c,0 x0d,0 x09,0 x0b,0 x03,0 x07,0 x06; unsigned char beatcode18=0 x06,0 x07,0 x03,0 x0b,0 x09,0 x0d,0 x0c,0 x0e; int main(void) unsigned char temp=0,angle=0,index=0,flag1; unsigned long beat=0; int
19、 key=2; Drive_Init(); uart_init(9600); / ?3?a9600 delay_init(); KEY_Init(); LCD_Init(); LED_Init(); while(1) key=KEY_Scan(0); if(key=1) temp+; if(temp2) temp=0; if(key=2) angle+=15; if(angle=360) angle=0; flag1=1; if(temp=2) for(index=0;indexODR=beatcode2index; delay_ms(2); else if(temp=1) 精品资料 - -
20、- 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 12 页 - - - - - - - - - - 嵌入式课程设计for(index=0;indexODR=beatcode1index; delay_ms(2); else if(temp=0) GPIOA-ODR=0; while(flag1) beat=(angle*4076)/360; while(beat-) GPIOA-ODR=beatcode1index; index+; index=index&0 x07; delay_ms(2); flag1=0;
21、 LED0=!LED0; delay_ms(10); 3、2 调试与仿真调试包括硬件调试、 软件调试与整体联调。 由于硬件与软件的研制就是相对独立进行的 , 因此软件调试就是在硬件完成之前, 而硬件也就是在无完整软件情况下进行调试的。在调试中找出缺陷, 判断故障源 , 对硬、软件做出修改 , 反复进行这一过程 , 直至确信没有错误之后接入单片机进行整机联调。软件系统的调试任务就是要查出程序设计当中的语法及逻辑错误, 并加以纠正。由于本课题设计软件程序的编写就是按功能模块的划分来完成的, 所以软件调试可以采用“先分块独立测试后组合联机” 、 “先单步调试后联合调试” 的方法。所谓的“先分块独立后
22、组合联机”就就是首先将软件程序进行模块分类, 把与硬件无关的模块进行独立调试, 把与硬件相关的程序模块进行软、 硬联合仿真调试。当各模块都独立调试完成后, 可将各程序模块连接起来进行联调, 以解决在程序模块连接中可能出现的逻辑错误。系统软、硬件的联调就是一个不断完善的过程, 常常需要反复多次修改补充才能调试出一个性能良好的系统。在联调过程中我们经常遇到故障, 这时需要对系统进行检查 , 万用表就是使用最多的检查工具。在系统联调时不排除某个元件被烧坏或者不工作 , 如 SPGT62C19B 芯片被烧坏 , 重新换个芯片。以下为在对各个模块进行调试过程中出现的问题, 以及问题的分析与解决过程: 精
23、品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 12 页 - - - - - - - - - - 嵌入式课程设计一、 程序仿真正确 , 将程序下载到 STM32 处理器中时 ,LCD显示的数据不稳定。原因分析与解决方法 : 既然能够显示数据 , 说明硬件 LCD连接就是正确的。可知, 还就是在软件编写时出现了问题, 便从 LCD显示程序一步步检查 , 最后发现定义数据的类型出现了错误。二、软件编写完成后进行调试时下载不了程序。原因分析与解决方法: 软件配置没有设置好, 经过指导老师的指导找到了
24、问题的所在 , 重新配置好软件后程序顺利的下载。4 总结本设计将步进电机作为控制对象, 基本实现了 PWM 细分技术下的控制调速的功能。本文设计的基于STM32 的舵机控制系统就就是在这种背景基础上设计的。本设计就是在各种仪器连接使用的基础上设计而成的, 只有充分了解有关STM32微处理器以及各部分之间的关系才能达到要求。整个课题的开发过程主要包括了硬件电路设计与软件程序的编写两个部分,主要任务就是开发一个以STM32为核心的控制系统 , 通过在 MDK 的环境下编程 ,由 STM32 产生 PWM 信号, 可实现键盘对舵机角度与速度的控制, 能够通过 LCD 显示步进电机方向与速度。 通过整
25、机联调验证了系统的可行性, 能满足设计要求 , 达到了设计的指标。 硬件部分就是利用STM32 体积小、易扩展、集成度高、可靠性高、功耗低、中断处理能力强等特点。软件部分采用模块化设计, 这些模块包括主程序、ADC 转换子程序、 PWM 细分子程序与 LCD显示子程序。 通过运用 STM32 平台、PWM 细分技术 , 成功开发出基于STM32平台的步进电机调速系统, 并得出以下结论: (1) 本系统由常用的步进电机与STM32 平台构成 , 实现简单 ; (2) 本系统成功完成多级调速 , 实现了 PWM 信号的精确输出 ; (3) 本系统通过 TFT彩色 LCD显示出步进电机的转速与正反转; (4) 本系统实现 ADC输入电位器来调节步进电机的转速与方向; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 12 页 - - - - - - - - - - 嵌入式课程设计整个过程中只有亲自动手才能学到相关的知识, 为自己以后专业学的更扎实、牢固打下基础。5 实物图与仿真图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 12 页 - - - - - - - - - -
限制150内