




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1《嵌入式系统》课程设计报告(基于ARM的步进电机控制系统)院系:机电学院学生姓名:专业:应用电子技术教育班级:指导教师:田丰庆付广春完成时间:2013年3月28日目录TOC\o"1-1"\h\z\t"标题2,2,标题3,3"前言·························································1摘要························································11系统总体方案设计···········································21.1步进电机单八拍通电方式工作原理·····················21.2总体设计思路········································32GPIO口的设置···············································32.1GPIO端口的应用·····································32.2STM32中GPIO端口的功能·····························42.3GPIO端口的配置····································43系统的延时函数············································错误!未定义书签。4电机的驱动电路···········································8参考文献·····················································9附录1 主程序··············································10附录2 总体原理图···········································13PAGE13PAGE13前言步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。摘要嵌入式系统(Embeddedsystem)是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电器工程师协会的定义,嵌入式系统为控制,监视或辅助设备,机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成,与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的,所以经常称为“固件”。本文的主要工作是基于STM32步进电机控制系统的设计,随着越来越多的高科技产品逐渐融入到日常生活中,步进电机控制系统发生了巨大的变化。单片机,C语言等前沿学科的技术日趋成熟与实用化,使得步进电机的控制系统有了新的研究方向与意义。本文描述了一个由STM32微处理器,步进电机,键盘等模块构成的,该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘上不同按键的按下产生信号,用此信号对步进电机的速度,启停及转动方向进行控制,并通过LED显示出数据。关键词:嵌入式STM32步进电机1系统的总体设计方案1.1步进电机单八拍通电方式的工作原理设A相首先通电,转子齿与定子A、A′对齐。然后在A相继续通电的情况下接通B相。这时定子B、B′极对转子齿2、4产生磁拉力,使转子顺时针方向转动,但是A、A′极继续拉住齿1、3,因此,转子转到两个磁拉力平衡为止。这时转子顺时针转过了11.25°。接着A相断电,B相继续通电。这时转子齿2、4和定子B、B′极对齐,转子的位置又转过11.25°。这样,如果按A→B→C→D→A…的顺序轮流通电,则转子便顺时针方向一步一步地转动,步距角11.25°。电流换接八次,磁场旋转一周,转子前进了一个齿距角。如果按D→C→B→A…的顺序通电,则电机转子逆时针方向转动。这种通电方式称为四拍方式。图11.2总体设计思路本文主要利用STM32芯片对步进电机的启停.正反转及转速的控制,通过对该芯片的GPIO口进行设置,使其与辅助按键相对应,步进电机还需要加外部驱动电路对其进行驱动,从而实现按按键来控制电机的转速。图22GPIO的设置2.1GPIO口的应用函数GPIO_Init的具体实现在库文件“stm32f10x_gpio.c”中,其作用是定义各个通用IO端口的模式,对应到外设的输入/输出功能有以下三种情况:(1)外设对应的引脚为输入:则根据外围电路的配置可以选择浮空输入.带上拉输入或带下拉输入。(2)ADC对应的引脚:配置引脚为模拟输入。(3)外设对应的引脚为输出:需要根据外围电路的配置选择对应的引脚为复用功能的推挽输出或复用功能的开漏输出。如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。将引脚配置成复用输出功能后,如果外设没有被激活,它的输出将不确定。2.2STM32中GPIO的功能(1)最基本的功能是可以驱动LED.产生PWM.驱动蜂鸣器等。(2)具有单独的位设置或位清楚,编程简单。(3)具有外部中断/唤醒能力,端口配置成输入模式时,具有外部中断能力。(4)具有复用功能,复用功能的端口兼有I/O功能等。(5)GPIO口的配置具有锁定机制,当配置好GPIO口后,在一个端口位上执行了锁定,可以通过程序锁住配置组合,在下一次复位之前,将不能再更改端口位的配置。2.3GPIO端口的配置步进电机有四相,分别定义为A.B.C.D,它们均为高电平无效,低电平有效,在不同时刻送入对应电平,使四个相以A_B_C_D的顺序供电,实现步进电机的正转,以D_C_B_A的顺序供电实现反转。各个按键对应的GPIO口如下图所示,其中S1为启动,S2为停止,S3为正转,S4为反转,S5为加速,S6为减速。图3下面是GPIO口的端口配置程序#include"key_led.h" *函数名:LED_GPIO_Config*描述:配置LED端口为推挽输出 *输入:无*输出:无voidLED_GPIO_Config(void){ /*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*开启GPIOC的外设时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); /*选择要控制的GPIOC引脚*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; /*设置引脚模式为通用推挽输出*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*设置引脚速率为50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /*调用库函数,初始化GPIOC*/ GPIO_Init(GPIOC,&GPIO_InitStructure); }*函数名:KEY_GPIO_Config*描述:配置按键端口为下拉输入*输入:无*输出:无voidKEY_GPIO_Config(void){ /*定义一个GPIO_InitTypeDef类型的结构体*/ GPIO_InitTypeDefGPIO_InitStructure; /*开启GPIOA的外设时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); /*选择要控制的GPIOA引脚*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; /*设置引脚模式为通用推挽输出*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; /*设置引脚速率为50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /*调用库函数,初始化GPIOA*/ GPIO_Init(GPIOA,&GPIO_InitStructure); /*开启GPIOD的外设时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); /*选择要控制的GPIOD引脚*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2; /*设置引脚模式为通用推挽输出*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; /*设置引脚速率为50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /*调用库函数,初始化GPIOD*/ GPIO_Init(GPIOD,&GPIO_InitStructure);#ifndef__KEY_LED_H#define __KEY_LED_H#ifndef__KEY_LED_H#define __KEY_LED_H#include"stm32f10x.h"/******************************************************///LED宏定义#defineA_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_12)#defineA_ON GPIO_SetBits(GPIOC,GPIO_Pin_12)#defineB_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_13)#defineB_ON GPIO_SetBits(GPIOC,GPIO_Pin_13)#defineC_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_14)#defineC_ON GPIO_SetBits(GPIOC,GPIO_Pin_14)#defineD_OFF GPIO_ResetBits(GPIOC,GPIO_Pin_15)#defineD_ON GPIO_SetBits(GPIOC,GPIO_Pin_15)/******************************************************///KEY宏定义#defineKEY1_VALUE GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)#defineKEY2_VALUE GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)#defineKEY3_VALUE GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)#defineKEY4_VALUE GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)#defineKEY5_VALUE GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5)#defineKEY6_VALUE GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)/******************************************************/voidLED_GPIO_Config(void);voidKEY_GPIO_Config(void);#endif/*__KEY_LED2_H*/3系统的延时函数#include"delay.h" *函数名:Delay_nus(int16)*描述:微秒级延时 n<32767*输入:无*输出:无#include"key_led.h"voidDelay_nus(u16n){ u16j; while(n--) { j=8; while(j--); }}*函数名:Delay_nms(int16)*描述:毫秒级延时 n<32767*输入:无*输出:无voidDelay_nms(u16n){ if(KEY2_VALUE==0) { n=n-100; } if(KEY3_VALUE==0) { n=n+100; } while(n>0) { n--; Delay_nus(1100); }4电机的驱动电路由于信号实验板上的电源较弱,带动不了电机,因此需加驱动电路。本驱动电路采用四个S8050三极管对信号进行放大,获取相应的驱动信号对步进电机进行驱动。图4参考文献[1]梅遂生、杨家德.光电子技术—信息装备的新秀[M].北京:国防工业出版社.1999年.88-102[2]陆坤、奚大顺、李之权等.电子设计技术[M].四川:电子科技大学出版社.1997年.682-688,838-941[3]谢自美、阎树兰、赵云娣等.电子线路设计·实验·测试(第二版)[M].湖北:华中理工大学出版社.2000年.293-300[4]杨邦文.新型实用电路制作200例[M].北京:人民邮电出版社.1998年.175-288[5]宋春荣、刘芳芳、杨礼成等.通用集成电路速查手册[M].山东:山东科学技术出版社.1995年.30-107[6]赵俊超.集成电路设计VHDL教程(第一版)[M].北京:北京希望电子出版社.2002年[7]潘松、黄继业等.EDA技术实用教程(第一版)[M].科学出版社2002年10月[8]张金泉一种新型民用防火防盗报警器的研制.燕山大学学报,2000,24(1):71-73[9]邓凯.智能化住宅安防系统的应用.冶金矿山设计与建设,2000,32(3):47-48[10]吕俊芳,潘军,陈巍.光电感烟火灾探测器的电路设计.航空计测技术,1999[11]王殊,窦征.一氧化碳、光电感烟和感温三复合火灾探测器.消防技术产品信息,2000,[12]多传感元件火灾探测技术.消防技术与产品信息,1997,(1):42-44 [13]尹长松.光散射在烟尘探测中的应用.光散射学报,1996,8(1):42-45[14]国家标准局.点型感烟火灾探测器技术要求及实验方法(GB4715-84).1985[15]张毅刚,彭喜源,谭晓的.MCS-51单片机应用设计.第二版.哈尔滨:哈尔滨工业大学出版社,1997:8-22[16]杨峰,柳永胜,殷小贡.新型DTMF信号收/发芯片MT8888及其应用.现代电子1998,(9):1-4[17]龙可微.X25045芯片及其应用.电子技术应用,1999,(9):70-72附录1.主程序#include"stm32f10x.h"#include"key_led.h"#include"delay.h"/*类型声明*//*宏定义*//*变量*/voidLED_INVERTED_ORDER(void);voidLED_IS_TURN(void);/*函数声明*//*函数功能*/*@函数名称 main*@函数说明主函数*@输入参数无*@输出参数无*@返回参数无u16sj=0;u8zheng=2;u16qiting=100;intmain(void){ LED_GPIO_Config(); KEY_GPIO_Config(); A_OFF; B_OFF; C_OFF; D_OFF; qiting=2; zheng=2; sj=100; while(1) { if(KEY1_VALUE==0) { qiting=1; } while(qiting==1) { if(KEY2_VALUE==0) {qiting=0;} if(KEY3_VALUE==0) {zheng=1; } if(zheng==1) { sj=1000; LED_IS_TURN(); } if(KEY4_VALUE==0) {zheng=0; } if(zheng==0) { sj=1000; LED_INVERTED_ORDER(); }}}}*函数名:LED_IS_TURN*描述:LED1-LED2-LED3-LED1正转*输入:无*输出:无*/v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 作协议合同范本
- 关于管道疏通合同范本
- 别墅弱电智能合同范本
- 产品合同范本模板写
- 农资代理合同范本
- 上海婚宴延期合同范本
- 上海小时工外包合同范本
- 个人续签合同范本
- 农村开发项目合同范本
- 写电子产品合同范本
- 玩具公司职位说明书汇编
- 平面设计创意与制作课件
- 化学专业英语元素周期表
- 新湘版小学科学四年级下册教案(全册)
- Q∕SY 06349-2019 油气输送管道线路工程施工技术规范
- 肾内科临床诊疗规范(南方医院)
- 实验心理学课件(周爱保博士版)
- 04 第三章 环境污染物的生物转运和生物转化 -毒物动力学
- 珍爱生命 安全第一 中小学主题教育班会
- 杀虫双(单)合成反应的研究及其工艺条件的优化
- 膨胀螺栓选型计算_20160606
评论
0/150
提交评论