步进电机控制系统设计毕业论文_第1页
步进电机控制系统设计毕业论文_第2页
步进电机控制系统设计毕业论文_第3页
步进电机控制系统设计毕业论文_第4页
步进电机控制系统设计毕业论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要本设计是根据步进电机的工作方式,结合所学单片机、数字设备接口等专业理论知识和基本技能,对实际问题进行研究与解决的一次综合训练。通过设计全过程,培养了利用所学的知识解决实际问题的能力和创新精神。本设计对步进电机的工作原理和步进方式作了深刻的研究。步进电机是一种将电脉冲转化为角位移的执行机构。当接收到一个脉冲信号,就驱动步进电机按设定的方向转动一个固定的角度;同时其转速也将与脉冲频率成正比率改变。结合步进电机的这个特性,本设计将实现步进电机的各项基本功能,如:步进电机的正转、反转、加速、减速、制动等。任何复杂的步进电机的工作都是基于这些功能设计而成,这使得步进电机设计应用非常简便,也非常广泛

2、。本设计主要包括硬件设计和软件设计。硬件设计是系统重要组成部分,是系统运行实现的平台,包括脉冲发生模块、电流驱动模块、LED显示模块和键盘选择模块等。软件设计更具灵活,其设计将根据具体功能要求来实现。根据步进电机控制系统功能设计要求,本设计完成了步进电机多功能的按键选择和LED指示显示,并且使得每个模块完成各自功能又相互影响、合作。关键字:步进电机;电脉冲;脉冲发生器;步进电机控制系统AbstractThe design is based on the stepper motor work, combined with the microcontroller, digital equipmen

3、t interface and other professional theoretical knowledge and basic skills, to study and solve a comprehensive training on practical problems. Through the whole process of design, training the knowledge solution actual problem ability and creative spirit.The design of the working principle and the st

4、epper mode makes a profound study on. Stepping motor is a kind of electrical pulses into angular displacement of the implementing agencies. When receiving a pulse signal, will drive the stepper motor rotate in the direction set by a fixed point of view; at the same time, the speed and pulse frequenc

5、y positive rate change. The characteristics of stepping motor, the basic functions, the design of the stepper motor to achieve such as: stepper motor forward, reverse, acceleration, deceleration, brake etc. Any complex stepper motor work is a design based on these functions, which makes the design a

6、pplication of stepping motor is very simple, also very widely.This design mainly includes hardware design and software design. The hardware design is an important part of the system, the system is a platform, including pulse generating module, current drive module, LED display module and keyboard se

7、lection module. The software design is more flexible, the design will be based on the specific functional requirements to achieve. According to the design of control system for stepping motor functional requirements, completed the design of stepper motor function selection keys and LED display, and

8、their respective functions and influence each other, so that each module cooperation.Keywords: Stepper motor;Electric pulse;Pulse generator ;Stepper motor control system目 录摘 要IAbstractI第一章 绪论11.1概述11.2步进电机控制系统研究目标与内容11.2.1步进电机控制系统研究目标11.2.2步进电机控制系统研究内容2第二章 微控制器32.1处理器的选型32.2 STM32F10X系列微控制器简介32.2.1

9、STM32F10X系列微控制器概述32.2.2 ARM Cortex-M3内核处理器概述42.2.3 STM32F10x系列微控制器特性62.3 STM32F10x内部结构62.3.1 STM32F10X的系统结构62.3.2 STM32F10X的时钟结构72.3.3 STM32F10X的GPIO结构102.4 STM32F103C8微控制器简介11第三章 主要元器件123.1步进电机123.1.1特性与应用123.1.2工作原理123.2 ULN2003达林顿阵列驱动芯片153.2.1特性与应用153.2.2工作原理153.3按键开关163.4 发光二极管17第四章 系统硬件设计184.1硬

10、件系统设计概要184.2脉冲发生模块184.3电流驱动模块194.4步进电机204.5 LED显示模块214.6按键模块224.5系统功能模块动作说明23第五章 软件系统设计255.1软件系统设计概述255.2系统软件设计环境265.2.1 Keil MDK简介275.2.2 uVision4 IDE集成开发环境285.2.3工程设置295.2系统初始化配置305.2.1系统时钟初始化配置305.2.2嵌套向量中断控制器配置325.3 延时模块335.3.1 延时模块的功能335.3.2 SysTick定时器345.3.3 配置SysTick355.4 步进电机工作模块355.4.1 步进电机

11、步进相序表355.4.2 步进电机控制365.5 按键扫描37第六章 运行结果38第一章 绪论1.1概述步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。虽然步进电机是一种数控原件,易于同数字电路接口。但是,一般数字电路的信号能量远远不足以驱动步进电机工作,必须有一个与之匹配的驱动电路来驱动步进电机。步进电机本体和步进电机驱动电路两者密不可分的组成步进电机系统。微

12、处理器具有可编程特性,可以控制端口脉冲的输出,从而驱动步进电机驱动电路(以下也可以成为电流驱动电路),达到步进电机的转角和转速的精确控制,使得步进电机的应用更加方便、灵活。结合微处理器对其他信号的采集、运算及控制,使得步进电机的使用更加广泛、智能化。步进电机的使用在工控、家电、航天等领域都有非常广的应用。1.2步进电机控制系统研究目标与内容1.2.1步进电机控制系统研究目标结合步进电机的角位移特性,可以通过控制通过其中的脉冲数目精确的步进电机的转角,达到精确控制的功能。对于脉冲的控制输出直接交给微处理器。微处理器控制端口的脉冲数和脉冲频率的输出,使得步进电机的转角、转速的控制灵活。本课题的研究

13、目标是将实现步进电机的基本功能,包括:正转、反向、加速、减速、制动等。实现了这些基本功能就可以使得步进电机在每个领域正常的工作。结合微处理器的课编程特性可以实现步进电机的其他精确控制,同时延展出LED显示功能反馈用户步进电机的工作状态,延展按键选择功能提供用户人机交互功能,使得步进电机的控制更加方便、直接。1.2.2步进电机控制系统研究内容本课题将通过微处理器控制脉冲数和脉冲频率的输出控制电流驱动器从而达到步进电机的各项控制。1) 正转:步进电机将以一定转速沿逆时针转动。这是步进电机的最基本控制。2) 反向:步进电机将以获得反向信号时刻同样的速率反向转动。3) 加速:步进电机将以越来越快的转速

14、转动。(在极限频率以内)4) 减速:步进电机将以越来越慢的转速转动。(在极限频率以内)5) 制动:步进电机获得制动信号后将在任何状态下停止转动。6) 其他:改变步进电机的转动的拍数,以不同拍数工作。第二章 微控制器2.1处理器的选型在步进电机控制系统设计中,微控制器起着关键的作用。步进电机控制的数据处理运算并不多,不要求微控制器具有很高的处理速度和较大的RAM存储空间。从成本和电路简化方面考虑,我们希望寻找一款体积较小、功能全面、价格低廉的单片机。通过系统分析,我们确立微处理器的选型原则如下:1) 基于控制类微处理器2) 内置程序存储空间3) 内置数据存储空间4) 具备足够的I/O端口5) 具

15、有常见的封装形式,且便于电路制作和焊接6) 性价比高,容易选购此外还需考虑处理器在市场的应用广泛情况、学习与参考的资料是否丰富。结合以上的选型考虑最终选择STM32F10X系列的处理器作为步进电机电机控制系统设计的核心处理器。2.2 STM32F10X系列微控制器简介2.2.1 STM32F10X系列微控制器概述图2-1 STM32F10X芯片图STM32F10X系列是由意法半导体(STMicroelectronics)公司设计生产的芯片。 ATM32F10X系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:STM32F103

16、“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32F10X功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。2.2.2 ARM Cortex-M3内核处理器概述ARM Cortex-M3 内核处理器是一个低功耗的处理器,具有门数少, 中断延迟小, 调试容易等特点。它是为功耗和价格敏

17、感的应用领域而专门设计的、具有较高性能的处理器,应用范围可从低端微控制器到复杂SoC。ARM Cortex-M3 内核处理器使用了ARM v7-M 体系结构,是一个可综合的、高度可配置的处理器。它包含了一个高效的哈佛结构三级流水线,可提供快速的1.25DMIPS/MHz 的处理。在一个具有32个物理中断的标准处理器实现上(0.13um Metro 50MHz),达到了突出的0.06mW/MHz 能效比。为降低器件成本,ARM Cortex-M3 处理器采用了与系统部件紧耦合的实现方法,来缩小芯片面积,其内核面积比现有的三级流水线内核缩小了30%。ARM Cortex-M3 处理器实现了Thum

18、b-2指令集架构,具有很高的代码密度,可降低存储器需求,并能达到非常接近32 位ARM 指令集的性能。图2-2 Cortex-M3部件图Cortex-M3内核具有如下特点:1) ARMv7-M Thumb-2指令架构(ISA)的子集,包括了所有16位和32位的Thumb-2基本指令,不包括SIMD 、DSP和ARM系统访问。2) 采用哈弗持利器结构,在取指的同时可以读取/存储数据。3) 三级流水线。4) 单周期32位乘法。5) 硬件除法器。6) Thumb-2和Debug状态。7) Handler和Tread模式。8) 处理器状态自动保存于回复,保证低延时的ISR进入和退出。9) 课打断-继续

19、LDM/STM,PUSH/POP。10) 支持ARMv6de BE8/LE(大小端)。11) ARMv6不对齐访问。2.2.3 STM32F10x系列微控制器特性ATM32F10X系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的控制类芯片,以下将罗列其部分功能特性:核心1) ARM 32位的Cortex-M3CPU2) 72MHz,高达90DMips,1.25DMips/MHz3) 单周期硬件乘法和除法加快计算存储器1) 从32K字节至128K字节闪存程序存储器2) 从6K字节至20K字节SRAM3) 多重自举功能时钟、复位和供电管理1) 2.0至3.6伏供电和I/O管脚2) 上电

20、/断电复位(POR/PDR)、可编程电压监测器(PVD)、掉电监测器3) 内嵌4至16MHz高速晶体振荡器4) 内嵌经出厂调校的8MHz的RC振荡器5) 内嵌40kHz的RC振荡器6) 内嵌PLL供应CPU时钟7) 内嵌使用外部32kHz晶体的RTC振荡器多达80个快速I/O口1) 26/36/51/80个多功能双向5V兼容的I/O口2) 所有I/O口可以映像到16个外部中断2.3 STM32F10x内部结构2.3.1 STM32F10X的系统结构下图是STM32F10X的系统结构图,其中主要部分包括:四个主控端:Cortex-M3内核指令总线,数据总线以及系统总线、DMA(通用DMA)四个受

21、控端:内部SRAM、内部Flash存储器、AHB到APB桥(AHB2APBX)该桥用来连接有的APB设备图2-3 STM32F10X系统结构图除了Flash、系统时钟的必须使用的模块,其他设备在图中标出的部分在本文中需要使用,这些都是基于APB2桥设备。所以在时钟配置是,只需开启APB2上的时钟,这样不仅精简了代码量而且降低了功耗。这在较大工程中是必须设计考虑的。2.3.2 STM32F10X的时钟结构在STM32F10X处理器中系统时钟SYSCLK来源有三个:l HSI内置时钟振荡器l HSE外部时钟振荡器l PLL时钟系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时

22、钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5大模块使用:1) 送给AHB总线、内核、内存和DMA使用的HCLK时钟。2) 通过8分频后送给Cortex的系统定时器时钟。3) 直接送给Cortex的空闲运行时钟FCLK。4) 送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2

23、倍频,时钟 输出供定时器2、3、4使用。5) 送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。图2-4 时钟树2.3.3 STM32F10X的GPIO结构通用输入输出接口(每个GPIO端口都可以由软件配置成输出(推挽或开漏)、 输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模

24、拟的复用外设共用。除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。 在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。 在APB2上的I/O脚可达18MHz的翻转速度。图2-5 端口位的基本结构在本课题步进电机控制系统设计中使用GPIO输出脉冲序列,结合输出特性将配置成推挽输出。采用50MHZ速率输出(不考虑功耗)。推挽输出的特性:1) 推挽输出可以输出高,低电平,连接数字器件2) 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.要实现线与需要用OC(open collector)门电路.是两

25、个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。2.4 STM32F103C8微控制器简介STM32F103C8增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2

26、C和SPI、3个USART、一个USB和一个CAN。STM32F103C8增强型系列工作于-40C至+105C的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。完整的STM32F103C8增强型系列产品包括从36脚至100脚的五种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。这些丰富的外设配置,使得STM32F103C8增强型微控制器适合于多种应用场合:l 电机驱动和应用控制 l 医疗和手持设备l PC外设和GPS平台l 工业应用:可编程控制器、变频器、打印机和扫描仪l 警报系统,视频对讲,和暖气通风空调系统S

27、TM32F103C8封装实物图见STM32F103C8芯片图(图2-1)。封装图如下:图2-6 STM32F103C8封装图第三章 主要元器件3.1步进电机3.1.1特性与应用步进电机是一种可以把电脉冲信号(数字信号)直接转换成相应的角位移或线位移(模拟信号)的精密执行元件,在非超载的情况下,电机的转速、停止的位置分别与脉冲输入电机绕组的脉冲频率和脉冲个数成比例。步进电机广泛应用在各种自动化控制系统和精密机械等领域,如数控机床、绘图仪、自动记录仪表和数-模转换等装置,在航空航天遥测等高端精密领域中应用也十分广泛。图3-1 步进电机实物图3.1.2工作原理步进电机更具通过每个绕组的电流反向可分为

28、单极性和双极性。单极性步进电机单极性步进电机之所以称为单极性是因为每个绕组中电流仅沿一个方向流动。它也被称为两线步进电机,因为它只含有两个线圈。两个线圈的极性相反,卷绕在同一铁芯上,具有同一个中间抽头。单极性步进电机还被称为4相步进电机,因为它有4个激励绕组。单极性步进电机的引线有5或6根。如果步进电机的引线是5根,那么其中一根是公共线(连接到V+),其他4根分别连到电机的4相。如果步进电机的引线是6根,那么它是多段式单极性步进电机有两个绕组,每个绕组分别有一个中间抽头引线。图3-2 单极性步进电机原理图单极性步进电机的步进方式单极性步进电机可以来用三种步进方式:单拍、双拍、半拍方式。(以5线

29、4相为例)1) 单拍:A B C D 它指每次仅给一个绕组通电,使得转子旋转,并且运动到转子永磁体与具体相反记性的绕组对齐的位置。2) 双拍:AB BC CD DA 它同时给两个绕组通电,这样就使转子旋转,并且在永磁体到达两个通电绕组的中间位置点时平衡。双拍方式的优点是比单拍方式多获得41.4%的输出力矩,不过代价是需要花费后者的双倍的能量,因为它有两相绕组同时通电。3) 半拍:A AB B BC C CD D DA 它工作时的则让两个绕组通电与单个绕组通电方式交替的进行。半拍方式的输出力矩比双拍方式小,随设计不同,在15% - 30%之间变化,不过它可以获得双拍方式两倍的步进分辨率(每圈两倍

30、的步数)。图3-3 单极性步进电机单拍通电方式双极性步进电机双极性步进电机之所以如此命名,是因为每个绕组都可以两个方向通电。因此每个绕组都既可以是N极又可以是S极。它又被称为单绕组步进电机,因为每极只有单一的绕组,它还被称为两相步进电机,因为具有两个分离的线圈。 双极性步进电机有四根引线,每个绕组两条。与同样尺寸和重量的单极性步进电极相比,双极性步进电机具有更大的驱动能力,原因在于其磁极(不是中间抽头的单一线圈)中的场强是单极性步进电机的两倍。双极性步进电机的每个绕组需要一个可逆电源,通常由H桥驱动电路提供。由于双极性步进电机比单极性步进电机的输出力矩大,因此总是应用于空间有限的设计中。这也是

31、软盘驱动器的磁头步进机械系统的驱动之所以总是采用双极性步进电机的原因。 可以相当简单地使用数字万用表来查找两个绕组。如果在某两根引线之间能够测量到阻值,那么这两根引线之间就属于一个绕组,其他两根线之间是另外一个绕组。双极性步进电机的步距通常是1.8,也就是每周200步。图3-4 双极性步进电机原理图双极性步进电机的步进方式双极性步进电机具有和单极性步进电机相同的步进方式,仅仅由于绕组配置的不同,在实现上存在一些差别。(以4线2相为例)1) 单拍:(-A) B A (-B)2) 双拍:(-A B) AB (A-B) (-A-B)3) 半拍:(-A) (-A B) B AB A (A-B) (-B

32、 (-A-B)3.2 ULN2003达林顿阵列驱动芯片3.2.1特性与应用ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成。灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。在自动化密集的的场合会有很多被控元件如继电器,微型电机,风机,电磁阀,空调,水处理等元件及设备,这些设备通常由CPU所集中控制,由于控制系统不能直接驱动被控元件,这需要由功率电路来扩展输出电流以满足被控元件的电流,电压。ULN2003高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围语广。因此,许多公司都生产高压大电

33、流达林顿晶体管阵列产品,从而形成了各种系列产品。ULN2003达林顿阵列驱动芯片实物图如下(型号:ULN2003APG):图3-5 ULN2003实物图3.2.2工作原理ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成芯片。ULN2003也是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平,继电器得电吸合。 该电路的特点如下:ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。功能特点:1) 高电压

34、输出50V 2) 输出钳位二极管3) 输入兼容各种类型的逻辑电路4) 应用继电器驱动器图3-6 ULN2003原理图3.3按键开关按键开关是一种电子开关,使用时轻轻点按开关按钮就可使开关接通,当松开手时开关即断开,其内部结构是靠金属弹片受力弹动来实现通断的。按键开关由于接触电阻小、按动有清脆的手感手感明显、高度规格齐全等方面的原因,在家用电器方面得到广泛的应用如:影音产品、数码产品、遥控器、通讯产品、家用电器、安防产品、玩具、电脑产品、健身器材、医疗器材、验钞笔、雷射笔按键等等。但轻触开关也有它不足的地方,频繁的按动会使金属弹片疲劳失去弹性而失效。因此现在大部分电器的按钮都使用导电橡胶或锅仔开

35、关五金弹片直接来代替,比如电脑键盘,电视机遥控器等。图3-7 按键开关实物图3.4 发光二极管发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。发光二

36、极管只能往一个方向导通(通电),叫作正向偏置(正向偏压)。发光二极管具有的反向击穿电压约5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。 图3-8 LED原理图 图3-9 LED实物图第四章 系统硬件设计4.1硬件系统设计概要步进电机控制系统的设计分为两大部分:硬件系统设计部分和软件系统设计部分。硬件系统设计部分的设计包括脉冲发生模块、电流驱动模块、LED显示模块和键盘选择模块四个部分。软件系统设计部分的设计包括键盘扫描模块、脉冲发出模块、LED显示模块、延时模块和速度调节模块等。本章主要介绍硬件系统设计部分,硬件系统设计是系统的重要组成部分,是系统运行实现的平台。

37、如下图4-1是硬件系统设计框图,其中包括了硬件系统设计的主要设计内容,在图中同时也简要说明了各个模块的关联关系。这样设计可以使得每个模块独立设计,使得设计过程简单,又能表示出各个模块之间的直接作用关系,方便以后的管理。LED显示模块块步进电机脉冲发生模块微处理器模块电流驱动模块按键模块图4-1 硬件系统设计框图本课题采用为处理器的是意法半导体(STMicroelectronics)公司设计并生产的STM32F103C8处理器专门为要求高性能、低成本、低功耗、基于控制类的嵌入式应用系统而设计。本课题充分应用了STM32F103C8处理器的时钟、SYSTICK定时器、中断口等功能。详细参考第二章微

38、控制器。4.2脉冲发生模块 步进电机的脉冲序列是由微处理器通用输入输出GPIO端口输出产生的。本课题将采用GPIOA的四个端口GPIOA_Pin_0,GPIOA_Pin_1,GPIOA_Pin_2,GPIOA_Pin_3分别对步进电机的A,B,C,D四个相序输入脉冲序列。脉冲序列和脉冲的频率通过软件来设定。图4-2 脉冲发生模块接口图4.3电流驱动模块步进电动机虽然是一种数控元器件,易于与数字处理器结合开发,但是由于低电压和较小的电流不能驱动其正常工作,而且步进电机也不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器。所以步进电动机和步进电机驱动器之间是密不可分的。本课题采

39、用的驱动芯片是ULN2003达林顿芯片。ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点适应于各类要求高速大功率驱动的系统。ULN2003达林顿芯片详细参考3.2节ULN2003达林顿阵列驱动芯片。ULN2003是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平,继电器得电吸合。本课题使用其中四个输入端口,用来驱动步进电机工作。如下图4-3电流驱动模块电路连接图所示:ULN2003达林顿芯片中IN3、IN4、IN5、IN6作为脉冲信号输入端口,信号来源于脉冲发生模块

40、的脉冲输出,即处理器GPIOA的四个端口GPIOA_Pin_0,GPIOA_Pin_1,GPIOA_Pin_2,GPIOA_Pin_3输出的相应电平输出。输入信号通过ULN2003达林顿芯片后信号的电流、电压将远高远直接从处理器端口输出的信号,这样才能用于驱动步进电机的正常工作。ULN2003达林顿芯片中OUT4、OUT5、OUT6、OUT7引脚作为电流驱动模块的输出,直接提供输入步进电机各相绕组。图4-3 电流驱动模块电路连接图4.4步进电机步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。可以通过控制脉

41、冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。单极性步进电机含有两个线圈。两个线圈的极性相反,卷绕在同一铁芯上,具有同一个中间抽头。单极性步进电机还被称为4相步进电机,因为它有4个激励绕组。单极性步进电机的引线有5或6根。如果步进电机的引线是5根,那么其中一根是公共线(连接到V+),其他4根分别连到电机的4相。如果步进电机的引线是6根,那么它是多段式单极性步进电机有两个绕组,每个绕组分别有一个中间抽头引线。单极性步进电机可以来用三种步进方式:单拍、双拍、半拍方式。本课题采用半拍方式。其工作方式通电换相的相序为A AB B

42、 BC C CD D DA,共8个状态。这8个脉冲序列将直接由具有高压大电流的电流驱动模块ULN2003达林顿芯片输入。其控制信号将有STM32F103C8处理器GPIOA的四个端口GPIOA_Pin_0,GPIOA_Pin_1,GPIOA_Pin_2,GPIOA_Pin_3控制输出。如果GPIOA端口输出的控制信号中,用“0”和“l”分别代表绕组通电和断电,则可用8个控制字来对应这8个状态。在程序中,只要依次将这8个控制字送到GPIOA口,每送一个控制字,就完成一拍,步进电机转过一个步距角,每步转角3.75。程序可根据这个原理来设计。如下图4-4步进电机电路图,图中A1、B1、C1、D1为步

43、进电机的四相绕组直接接口,这些接口的电流将直接通过步进电机各相绕组,驱动步进电机工作。图4-4 步进电机电路图4.5 LED显示模块发光二极管LED是半导体二极管的一种,可以把电能转化成光能,为发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。在电路及仪器中LED作为指示灯用于状态显示,或者组成文字或数字显示,在现今广告领域应用非常广泛。LED 驱动电路除了要满足安全要求外,另外的基本功能应有两个方面,一是尽可能保持恒流特性,尤其在电源电压发生15的变动时,仍应能保持输出电流在10的范围内变动。二是驱动电路应保持较低的自身功耗,这样才能使LED 的系统效率保持在较高水平。如下图4

44、-5 LED电路图中有8路发光二极管,每一个发光二极管接在独立的端口上,可以独立的工作。LED为共阳极接入电路,如果想点亮任何一盏LED灯只需给相应的端口低电平,也即在控制LED亮灭时只需控制相应接入处理器接口的电平输出即可。图4-5 LED电路图本课题将使用LED灯指示步进电机的工作状态,步进电机正转与反转将使用不同的LED指示;同时LED闪烁的速率将表示步进电机的转速,LED闪烁的速率越快表明步进电机的转速也越快,这样非常直接说明步进电机工作状态,给用户方便的交互平台。4.6按键模块按键开关是一种电子开关,使用时轻轻点按开关按钮就可使开关接通,当松开手时开关即断开,其内部结构是靠金属弹片受

45、力弹动来实现通断的。按键模块中每一个按键都是一个常开的开关电路,当所设置的功能键或数字键按下时,则处于闭合状态,对于一组键或一个键盘,需要通过接口电路与单片机相连,以便把键的开关状态通知单片机。单片机可以采用查询或中断方式了解有无键输入并检查哪一个键被按下,并通过转移指令转入执行该键的功能程序,执行完又返回到原始状态。一般有独立按键和矩阵键盘两种接口方式。本课题需要按键接口不是很多,采用独立按键方式,独立式按键是指直接用GPIO口线构成的单个按键电路。每个独立式按键单独占有一根GPIO口线,每根GPIO口线的工作状态不会影响其他GPIO口线的工作状态,这是一个最简单易懂的按键结构。图4-6 按

46、键电路图如上图4-6按键电路图所示,图中有8路独立的按键,每个按键可以与单独的端口连接,如下图4-5 LED电路图中有8路独立的按键,每一个按键接在独立的端口上,可以独立的工作。按键为共阴极接入电路,如果检测到相应的端口为低电平,就表明按键被按下,也即在检测按键是否按下只需扫描相应接入处理器接口的电平输入即可。本课题将使用按键作为步进电机的工作状态选择的输入信息,步进电机正转与反转将由同一个按键切换产生信号(正转与反转时两个相反状态,可以使用同一个按键,这样提高资源的利用率);步进电机加速、减速、制动将由不同按键选择作为输入信号。将步进电机的工作状态控制赋予按键功能上,极大的提高了人机的交互平

47、台。 4.5系统功能模块动作说明在整个系统设计中,不同的模块演绎着各色不同的功能,通过设计的关联,不同的动作,不同的模块将产生不同的信息、效果。下面将简介系统功能模块的动作说明。1) 初始状态:处理器运行正转程序,步进电机以初始转速正转,即逆时针转动。指示正转的LED根据相应的转速闪烁,指示反转的LED熄灭。2) 正反转切换按键按下时,若步进电机处于正转状态,处理器接收到反转信号,运行反转程序,步进电机反转,指示反转的LED根据相应的转速闪烁,指示正转的LED熄灭;若步进电机处于反转状态,处理器接收到正转信号,运行正转程序,步进电机正转,指示正转的LED根据相应的转速闪烁,指示反转的LED熄灭

48、。3) 加速按键按下时,处理器接收到加速信号,运行加速程序,步进电机转动方向不改变加速转动直至极限频率,指示LED不改变闪烁频率加快。减速按键按下时,处理相反。4) 制动按键按下时,处理器接收到制动信号,运行制动程序,步进电机在任何状态下都立刻禁止。5) 无按键按下时,处理器不改变运行的程序,运行效果将不改变,知道有功能选择按下。理解功能模块的动作,还需要结合软件系统的设计,接下来第五章将介绍软件系统设计。第五章 软件系统设计5.1软件系统设计概述键4电机反转按键是否按下否是开始电机正转判断是哪个按键按下LED显示软件系统设计主要完成键盘扫描、LED显示指示、控制ULN2003使能端和脉冲输出

49、。主程序主要完成硬件初始化、子程序调用等功能。适当使各项功能模块化。为了节省处理器资源,输出精准的脉冲,合理利用处理器SYSTICK定时器控制脉冲的频率,改变转速。根据以上分析得到的程序流程图如下图所示。初始化时钟NVIC管理键1键1键3电机加速键4电机减速键5电机停止返回图5-1 程序流程图本课题软件系统设计将采用的是32位基于ARM微控制器STM32F101xx与STM32F103xx的固件函数库。该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也可以轻松应用每

50、一个外设。因此,使用本固态函数库可以大大减少用户的程序编写时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用API (application programming interface 应用编程界面)驱动,API对该驱动程序的结构,函数和参数名称都进行了标准化。因为该固件库是通用的,并且包括了所有外设的功能,所以应用程序代码的大小和执行速度可能不是最优的。对大多数应用程序来说,用户可以直接使用之,对于那些在代码大小和执行速度方面有严格要求的应用程序,该固件库驱动程序可以作为如何设置外设的一份参考资料,根据实际需求对其进行调整。该固件库

51、用户手册的整体架构如下: l 定义,文档约定和固态函数库规则。l 固态函数库概述(包的内容,库的架构),安装指南,库使用实例。l 固件库具体描述:设置架构和每个外设的函数。STM32F101xx和STM32F103xx在整个文档中被写作STM32F101x。5.2系统软件设计环境STM32 微处理器基于ARM 核,所以很多基于ARM 嵌入式开发环境都可用于STM32开发平台。开发工具都可用于STM32 开发。选择合适的开发环境可以加快开发进度,节省开发成本。本章将先对STM32常用的开发工具Keil MDK进行简单介绍,并构建工程模板。5.2.1 Keil MDK简介Keil是德国知名软件公司

52、Keil(现已并入ARM 公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。uVision当前最高版本是uVision3,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发ARM应用的工程师,都对它十分喜欢。使用 Keil 来开发嵌入式软件,开发周期和其他的平台软件开发周期是差不多的,大致有以下几个步骤:1. 创建一个工程,选择一块目标芯片,并且做一些必要的

53、工程配置。2. 编写 C 或者汇编源文件。3. 编译应用程序。4. 修改源程序中的错误。5. 联机调试。如下图5-2 Keil软件开发周期图所示,这种结构图完整描述了Keil 开发软件的整个过程。图5-2 Keil软件开发周期图5.2.2 uVision4 IDE集成开发环境uVision4 IDE是一款集编辑、编译和项目管理于一身的基于窗口的软件开发环境。uVision4集成了C语言编辑器,宏编译,链接/定位,以及HEX文件产生器。uVision4具有如下特性:l 功能齐全的源代码编辑器l 用于配置开发工具的设备库l 用于创建工程和维护工程的项目管理器l 所有的工具配置都采用对话框进行l 集

54、成了源码级的仿真调试器,包括高速CPU和外设模拟器l 用于往Flash ROM下载应用程序的Flash编程工具l 完备的开发工具帮助文档,设备数据表和用户使用向导如下图5-3所示 为uVision4 IDE集成开发环境:项目管理窗口编辑窗口输出窗口图5-3 uVision4 IDE集成开发环境5.2.3工程设置工程建立好了之后,还要对工程进行进一步的设置,以满足要求。首先用鼠标右键(注意用右键)点击左边工程窗口的“Target 1”,会出现一个菜单,选择“Options for Target Target 1”(也可以通过点击工程窗口的Target 1”,然后使用菜单“Project”-“Op

55、tions for Target Target 1”),即出现工程配置的对话框,如下图所示:在Device中选择型号为 STM32F103C8的芯片,这样KEIL就会在编译时采用正确的启动文件;在Target中设置晶振时钟为8MHz,这样在软件仿真的时候就会更加接近硬件上的效果,尤其是延时等。将Output和listing项生成的文件放在预先建立的Obj文件夹中,方便以后工程文件管理。基于C/C+编程,在这里定义需要的宏还有设置头文件的包含路径,在C/C+页中进行设置l 图中1定义宏:STM32FX0X_MD是STM32F103C8芯片启动文件的规格,表示芯片文中等密度的;USE_STDPERIPH_DRIVER是基于库编程而需要的宏定义,如果但是使用寄存器编程不需要设置,本文是基于库编程,发挥本芯片的功能;l 图中2设置头文件的包含路径,使编译的时候工程能够找到编译的头文件。21图5-4 工程设置对话框此外如果需要调试则需要对Debug页进行设置,uVision4 IDE支持在线仿真调试和ULINK在线调试。5.2系统初始化配置5.2.1系统时钟初始化配置在处理器正常工作前,肯定要做一些初始化工作,其中最

温馨提示

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

评论

0/150

提交评论