《基于STM32的步进电机控制系统(共60页).doc》由会员分享,可在线阅读,更多相关《基于STM32的步进电机控制系统(共60页).doc(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上基于STM32的步进电机控制系统沈阳航空航天大学2010年6月专心-专注-专业摘 要本文的主要工作是基于STM32步进电机控制系统的设计。随着越来越多的高科技产品逐渐融入了日常生活中,步进电机控制系统发生了巨大的变化。单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得步进电机的控制系统有了新的的研究方向与意义。本文描述了一个由STM32微处理器、步进电机、LCD显示器、键盘等模块构成的,提供基于STM32的PWM细分技术的步进电机控制系统。该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使STM32产生周期性PWM信号,用此信号对步进
2、电机的速度及转动方向进行控制,并且通过LCD显示出数据。结果表明该系统具有结构简单、工作可靠、精度高等特点.关键词:STM32微处理器;步进电机;LCD显示;PWM信号;细分技术AbstractAs well as the high-tech products gradually integrated into the daily life, servo control system has undergone tremendous changes. SCM and C language of the frontier disciplines such mature technology an
3、d practical, steering control system is a new research direction and meaning. This paper describes a STM32 microprocessors, steering, LCD display and keyboard, Based on the STM32 servo control system of PWM signal,This system uses STM32 microprocessor as the core, MDK in the environment, according t
4、o the keyboard input , STM32 produce periodic PWM signal, with this signal to the velocity and Angle of steering gear control, and through the LCD display data. The features of the simple hardware, stable operation and high precision are incarnated in the proposed system. Keywords: STM32 microproces
5、sors; Steering system; LCD display;pulse width modulation signal;Subdivide technology目 录第1章 绪 论11.1 课题背景11.2 课题目标及意义21.3 课题任务及要求31.4 课题内容分析与实现31.5 课题论文安排介绍3第2章 步进电机控制系统的总体方案论证52.1 总体方案52.2 步进电机控制系统硬件方案52.3 步进电机控制系统软件方案6第3章 系统的硬件设计73.1 STM32开发板简介73.2 步进电机模块83.2.1 步进电机驱动模块83.2.2 步进电机驱动控制模块103.2.3 步进电机
6、的一些特点113.2.4 步进电机的一些基本参数123.2.5 步进电机的驱动方法133.3 A/D转换模块133.3.1 模拟/数字转换(ADC)介绍133.3.2 模拟/数字转换(ADC)主要特性133.3.3 模拟/数字转换(ADC)功能描述143.4 LCD显示模块163.5 硬件电路17第4章 控制系统软件设计184.1 控制系统软件设计步骤184.2 Keil for ARM软件开发环境194.3 PWM细分技术简介204.3.1 PWM细分技术简介204.3.2 PWM细分技术驱动原理204.3.3 PWM细分调压调速原理224.4 主程序设计234.5 各模块程序设计254.5
7、.1系统初始化254.5.2A/D转换程序设计264.5.3 PWM细分程序设计294.5.4电机控制程序设计304.5.5 LCD显示程序设计32第5章 步进电机控制系统综合调试与分析335.1 硬件电路调试335.2 软件电路调试345.3 系统联调结果与分析34结论35社会经济效益分析36参考文献37致 谢38附录I 电路原理图39附录 程序清单41附录IV 元器件清单56第1章 绪 论随着电力电子技术、微电子技术、控制理论以及永磁材料的快速发展,步进电机得以迅速发展。在现代工业生产中,生产机械一般都用电动机拖动。随着现代化的发展,工业自动化水平不断提高,各种自动控制系统中也日益广泛地应
8、用各种控制电机。为了提高生产率和保证产品质量,大量的生产机械要求步进电机以不同的速度工作。这就要求人们采用一定的方法来改变机组的转速,即对步进电机进行调速。对电机的转速不仅要能调节,而且要求调节的范围宽广,过程平滑,调节的方法要简单、经济。步进电机在上述方面都具有独到的优点,使它得到广泛的应用。本文针对步进电机具有起动转距大、体积小、重量轻、转矩和转速容易控制以及效率高等十分优良的特点, 根据自动控制原理, 采用PWM细分控制方式, 设计了一个步进电机控制系统,以更好地对步进电机进行精确而又迅速的控制。1.1 课题背景STM32系列32位闪存微控制器使用来自于ARM公司具有突破性的Cortex
9、-M3内核,该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。Cortex-M3在系统结构上的增强,让STM32受益无穷;Thumb-2指令集带来了更高的指令效率和更强的性能;通过紧耦合的嵌套矢量中断控制器,对中断事件的响应比以往更迅速;所有这些又都融入了业界领先的功耗水准。STM32系列给MCU用户带来了前所未有的自由空间,提供了全新的32位产品选项,结合了高性能、实时、低功耗、低电压等特性,同时保持了高集成度和易于开发的优势。由于集成了更丰富的资源、方便使用的架构以及低功耗的特性,加上有竞争力的价格,使得从16位升级到32位变得容易。在工业生产中,常
10、常要用到步进电机在一些对位置控制要求不高的电机控制系统如传动控制系统中,传统电机如步进电机仍有很大的优势,而要对其进行精确而又迅速的控制,就需要复杂的控制系统。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。通过细分来控制步进电机可以更加精确。细分的基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器工作在10细分状
11、态时,其步距角只为电机固有步距角的十分之一,也就是:当驱动器工作在不细分的整步状态时,控制系统每发一个步进脉冲,电机转动1.8;而用细分驱动器工作在10细分状态时,电机只转动了0.18。细分功能完全是由驱动器靠精确控制电机的相电流所产生的,与电机无关。 步进电机的细分技术实质上是一种电子阻尼技术,其主要目的是提高电机的运转精度,实现步进电机步距角的高精度细分。其次,细分技术的附带功能是减弱或消除步进电机的低频振动,低频振荡是步进电机(尤其是反应式电机)的固有特性,而细分是消除它的唯一途径,如果步进电机有时要在共振区工作(如走圆弧),选择细分驱动器是唯一的选择。 驱动器细分后的主要优点为:完全消
12、除了电机的低频振荡;提高了电机的输出转矩,尤其是对三相反应式电机,其力矩比不细分时提高约30-40% ;提高了电机的分辨率,由于减小了步距角、提高了步距的均匀度,提高电机的分辨率是不言而喻的。 1.2 课题目标及意义STM32是近年来发展非常迅速的处理器,有很好的应用前景。将其应用于步进电机的调速控制,有极大的使用价值。以脉宽调制技术为代表的电机数字驱动技术也在迅猛发展,将计算机应用于这一领域正好可以发挥其在数字控制方面的优势.微电子技术和计算机技术的发展,为计算机控制技术的发展和应用奠定了坚实的基础。可以这样说,没有微处理器的仪器不能称其为仪器,没有微型机的控制系统更谈不上现代工业控制系统。
13、随着微型计算机、超大规模集成电路、新型电力电子开关器件和传感器的出现,以及自动控制理论、电力电子技术、计算机控制技术的深入发展,电气传动装置日新月异地更新换代,直流传动系统也在不断地更新和发展。步进电机是常用的动力提供元件,在日常生活中占据着重要的地位。步进电机是最常见的一种电机,在各领域中得到广泛应用。研究步进电机的速度控制,有着非常重要的意义。研究直流电机的控制方法,对提高控制精度、节约能源等都具有重要意义。本方案以STM32为控制核心,实现普通步进电机的转速、正反转调节功能,为进一步研究和优化步进电机控制方法提供基础。1.3 课题任务及要求通过STM32实现对步进电机的精确控制,通过按键
14、实现正转、反转、加速、减速,并将这些信息通过TFT彩色LCD显示出来。1.4 课题内容分析与实现本设计是一种采用STM32为核心实现步进电机控制系统。基于设计目标的要求,本设计需要实现的硬件部分是系统的SPGT62C19B电机控制模组以及整个控制系统的编程。首先,根据课题背景综合成本和控制精度指标等因素,选择需要的步进电机。其次,基于成本和结构复杂的原因,本设计通过A/D转换代替键盘输入,将电压模拟信号转换为数字信号并通过LCD显示出来。再次,设计SPGT62C19B电机控制模组,并完成硬件搭建。最后,整体硬件和软件联调,实现任务要求。1.5 课题论文安排介绍本文的主要工作是基于STM32的步
15、进电机控制系统的设计,介绍了整个控制系统的设计思想、主要模块的电路原理、程序结构以及测试结果等内容,整体上分为软件和硬件的两大部分来设计。本次课题设计内容安排可分为三部分:第一部分是硬件设计,包括方案主要模块的电路设计、元器件的选择等。具体的硬件电路是SPGT62C19B电机控制模组步进电机驱动模块和STM32开发板两大电路模块。先对每一个模块的各个芯片测试成功后,再焊接其对应的整个模块电路,且每一部分都要进行单独调试,各个部分调试成功后,联接调试整个硬件电路,对在途中出现的错误进行分析和改正,最后得出结论。第二部分是软件设计,软件采用C语言编写,软件设计的思想主要是自顶向下,模块化设计,逐一
16、设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。第三部分在软硬件模块调试都成功的前提下,进行硬、软件连调,这是整个控制系统设计的关键,也是设计的重点、难点所在。本文对步进电机控制系统的设计进行了详细的介绍,共分五章。第1章简要介绍了整个课题的研究背景、目的、意义及整个任务的要求安排;第2章是针对此次课题的任务进行总体方案介绍;第3章具体介绍了步进电机控制系统的硬件设计,包括SPGT62C19B电机控制模块电路的设计;第4章阐述了步进电机控制系统的软件设计,包括PWM细分等子程序的设计;第5章是针对硬件调试、软件调试和整机连调的结果进行了具体的分析和说明。第2
17、章 步进电机控制系统的总体方案论证步进电机控制系统的整个设计中最重要的部分是利用PWM细分实现步进电机调速的处理,虽然PWM调速很早就开始研究应用,但如何用PWM细分调速的快速性和准确性至今仍是生产和科研的课题。随着微电子技术的发展与普及,更多高性能的单片机应用使得PWM细分实现步进电机PWM调速的快速性和准确性都有了极大的提高。2.1 总体方案根据课题要求,本设计采用STM32cortex-M3处理器,由SPGT62C19B电机控制模块作为直流电机的驱动芯片,由ADC输入电位器产生调速命令,用TFT彩色LCD作为显示模块。2.2 步进电机控制系统硬件方案本系统主要由一块STM32平台、SPG
18、T62C19B型步进电机驱动模块构成,以STM32为核心,包括电机驱动、电机、A/D转换、LCD显示等模块。系统的结构框图如图 2.1所示。STM32作为主控芯片,通过I/O端口来控制SPGT62C19B型步进电机驱动芯片,从而实现对步进电机的控制。通过ADC输入电位器产生调速命令反馈给STM32,STM32调节SPGT62C19B型步进电机驱动模块的状态,从而使电机改变转速和方向。同时,电机转速可由彩色液晶LCD显示出来,用ADC输入电位器来对步进电机的转动方向和转速等进行设定。图2.1控制系统结构框图2.3 步进电机控制系统软件方案硬件功能的实现离不开软件的设计与完成。软件设计是步进电机控
19、制系统设计中最重要、最关键的部分,也是本次毕业设计的难点之处。由于本系统使用STM32平台,运用Keil for ARM开发环境,在Keil u Vision软件平台进行开发。本课题软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。各个部分函数都可相互调用又相对独立可调,保证调试的便利与程序的可读性。第3章 系统的硬件设计本系统采用STM32作为主控制器,采用ADC输入电位器作为输入部分,步进电机及其驱动电路采用SPGT62C19B型步进电机驱动模块。下面分别对STM32以及相关模块的特性进行具体介绍。3.1 ST
20、M32开发板简介根据本课题设计的任务要求,须采用STM32作为开发平台,因此本课题设的控制电路由采用 ST 的STM32F103RB 芯片及其外围电路组成。芯片的引脚图如图3.1所示。图3.1STM32F103RB芯片引脚排列图1.1.2 STM32F103RB开发板硬件资源特性采用 ST 的STM32F103RB 芯片*(72MHz,128KB Flash,20KB SRAM,2SPI,2I2C,USB,CAN,PWM,2ADC,3USART,3 个16 位定时器8 位/16 位单片机的终结者) 工业级设计,可稳定运行于-40 到85 摄氏度 1 个串
21、口 1 个CAN 端口 1 个USB 接口 1 个SD 卡插槽 1 个160x128 图形点阵彩色TFT LCD 标准 20 针JTAG 口,用于下载与调试 1 个可调模拟电压控制用于ADC 输入,用来测试 STM32F103 的模数转换特性。 1 只扬声器用于测试PWM 输出。 1 只五向游戏杆,作为开关量输入用。 1 片I2C 器件24C02已经将芯片所有信号引出,方便二次开发 。STM32 系列32 位闪存微控制器基于突破性的AR
22、M Cortex-M3 内核,这是一款专为嵌入式应用而开发的内核。Cortex-M3 内核:英国ARM 公司力推内核,致力于替代8 位/16 位单片机。使用THUMB-2 指令集,32 位性能,16 位密度,与ARM7TDMI 相比,Cortex-M3 内核要快35%,代码减少45%。STM32 系列产品得益于Cortex-M3 在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的 Thumb-2 指令集,大幅度提高的中断响应,而且所有新功能都同时具有业界最优的功耗水平。3.2 步进电机模块3.2.1 步进电机驱动模块本设计选用专用的电机驱动芯片SPGT62C19B。SPGT62C19
23、B电机控制模组是为学生以及单片机爱好者学习步进电机和直流电机控制而设计的学习套件。模组采用凌阳SPGT62C19B电机驱动芯片,配置两相步进电机和直流电机各一台,并提供4位LED数码管用来显示电机转速等信息。模组针对SPCE061A单片机设计,可以方便地用排线与SPCE061A精简开发板(即“61板”)连接,可作为单片机教学、产品开发前期验证等辅助工具使用。模组配备的步进电机为35BYJ26型永磁步进电机,工作方式为双极性两相四拍。步进电机是一种将电脉冲转化为角位移的执行机构。当步进电机接收到一个脉冲信号,它就按设定的方向转动一个固定的角度(称为“步距角”)。可以通过控制脉冲个数来控制角位移量
24、,从而达到准确定位的目的;同时可以通过控制脉冲频率实现步进电机的调速。SPGT62C19B是低电压单片式步进电机驱动器集成电路芯片,可驱动一台两相步进电机,或者两台直流电机。它带有双路H桥,可分别驱动两个独立的PNP功率管。每一个H桥都有各自独立的使能引脚,因此非常适合于需要独立控制的步进电机驱动系统。SPGT62C19B输出电压可达40v,输出电流可达750mA,由输入的逻辑电平来决定输出脉冲的宽度及频率,所以由这款芯片组成的电机驱动系统将脉冲发生器、脉冲分配器、脉冲放大器合为一体,省去了很多外围器件。SPGT62C19B的内部由两组完全相同的控制电路组成了两路输出通道。输入控制信号经前级缓
25、冲后送入片内控制器,然后由控制部分进行处理并驱动晶体管,最后由OUT端口输出驱动信号以控制电机的运行。SPGT62C19B的控制脚有如下6个:表3.2.1SPGT62C19B的控制引脚引脚 名称 用途 20 I01 通道1的电流大小控制17 I11 通道1的电流大小控制16 PHASE1 通道1的电流方向控制8 I02 通道2的电流大小控制9 I12 通道2的电流大小控制10 PHASE2 通道2的电流方向控制以通道1为例,控制口I01与I11的不同逻辑组合可使通道1输出端产生不同大小的电流输出: 表3.2.2控制脚I01与I11逻辑组合与输出电流的关系I01逻辑值I11逻辑值输出电流 0 0
26、 Imax 1 0 2/3*Imax 0 1 1/3*Imax 1 1 0 上表中,Imax是输出电流的上限值,它与图 2.3中Vref和Rs的值有关。其关系式为: Imax = Vref /10*Rs: PHASE1的逻辑电平值决定了该通道的电流输出方向。PHASE1与电流方向的对应关系表3.2.3 控制脚PHASE1与输出电流的关系PHASE1逻辑值输出电流方向 0 OUT1B - OUT1A 1 OUT1A - OUT1B 3.2.2 步进电机驱动控制模块步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日
27、俱增,在各个国民经济领域都有应用。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制
28、变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声
29、和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,也是本次细分驱动方案所选用的步进电机。3.2.3 步进电机的一些特点1一般步进电机的精度为步进角的3-5%,且不累积。2步进电机外表允许的最高温度。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200
30、度以上,所以步进电机外表温度在摄氏80-90度完全正常。3步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。4步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(
31、电机转速从低速升到高速)。步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。3.2.4 步进电机的一些基本参数电机固有步距角:它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0.9/1.8(表示半步工作时为0.9、整步工作时为1.8),这个步距角可以称之为电机固有步距角,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。步进电机的相数:是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相
32、数不同,其步距角也不同,一般二相电机的步距角为0.9/1.8、三相的为0.75/1.5、五相的为0.36/0.72 。在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。如果使用细分驱动器,则相数将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。保持转矩(HOLDING TORQUE):是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。比如,当人们说2N.m的步进
33、电机,在没有特殊说明的情况下是指保持转矩为2N.m的步进电机。3.2.5 步进电机的驱动方法不能直接接到工频交流或直流电源上工作,而必须使用专用的驱动器,如图3.5.1所示,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。图中点划线所包围的二个单元可以用微机控制来实现。图3.5.1 步进电机驱动控制器框图3.3 A/D转换模块本次设计采用ADC输入电位器作为输入部分。3.3.1 模拟/数字转换(ADC)介绍12 位ADC 是一种逐次逼近型模拟数字转换器。它有18 个通道,可测量16 个外部和2 个内部信号源。各通道的A/D 转换可以单次、连续、扫描或间断模式执。ADC 的结果可以左对齐或右
34、对齐方式存储在16 位数据寄存器中。3.3.2 模拟/数字转换(ADC)主要特性 12-位分辨率 转换结束,注入转换结束和发生模拟看门狗事件时产生中断 单次和连续转换模式 从通道0 到通道n 的自动扫描模式 自校准 带内嵌数据一致的数据对齐 通道之间采样间隔可编程 规则转换和注入转换均有外部触发选项 间断模式 双重模式(带2 个ADC 的器件) ADC 转换时间: STM32F103xx 增强型产品:ADC 时钟为56MHz 时为1s(ADC 时钟为72MHz 为1.17s) STM32F101xx 基本型产品:ADC 时钟为28MHz 时为1s(ADC 时钟为36MHz 为1.55s) AD
35、C 供电要求:2.4V 到3.6V ADC 输入范围:VREF- VIN VREF+ 规则通道转换期间有DMA 请求产生。3.3.3 模拟/数字转换(ADC)功能描述ADC开关控制通过设置ADC_CR1 寄存器的ADON 位可给ADC 上电。当第一次设置ADON 位时,它将ADC 从断电状态下唤醒。ADC 上电延迟一段时间后(tSTAB),再次设置ADON 位时开始进转换。通过清除ADON 位可以停止转换,并将ADC 置于断电模式。在这个模式中,ADC 几乎耗电(仅几个A)。单次转换模式单次转换模式,ADC 只执一次转换。这个模式既可通过设置ADC_CR2 寄存器的ADON 位(只适用于规则通
36、道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT 位为0。一旦选择通道的转换完成: 如果一个规则通道被转换: 转换数据被储存在 16 位ADC_DR 寄存器中 EOC(转换结束)标志被设置 如果设置 EOCIE,则产生中断。 如果一个注入通道被转换: 转换数据被储存在 16 位的ADC_DRJ1 寄存器中 JEOC(注入转换结束)标志被设置 如果设置 JEOCIE 位,则产生中断。然后ADC 停止。连续转换模式在连续转换模式中,当前面ADC 转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2 寄存器上的ADON 位启动,此时CONT位是1。每
37、个转换后: 如果一个规则通道被转换: 转换数据被储存在 16 位的ADC_DR 寄存器中 EOC(转换结束)标志被设置 如果设置 EOCIE,则产生中断。 如果一个注入通道被转换: 转换数据被储存在 16 位的ADC_DRJ1 寄存器中 JEOC(注入转换结束)标志被设置 如果设置 JEOCIE 位,则产生中断。ADC 管脚:名称信号类型注解VREF+输入,模拟参考正极ADC使用的高端/正极参考电压,2.4V VREF+ VDDAVDDA输入,模拟电源等效于VDD的模拟电源且:2.4V VDDA VDD(3.6V)VREF-输入,模拟参考负极ADC使用的低端/负极参考电压,VREF- = VS
38、SAVSSA输入,模拟电源地等效于VSS的模拟电源地ADC_IN15:0模拟输入信号16个模拟输入通道3.4 LCD显示模块显示电路是本设计硬件的主要构成部分,STM32外接TFT模块,MzT24彩色TFT模块是一个2.4英寸的TFT模块,内置TFT控制器,对外连接直接通过8位的8080总线进行指令和数据的传输。MzT24有像素点数为240320,色彩深度为16位色,也就是每一个像素点需要用16位的数据来表示其显示的内容。MzT24模块的显示操作非常简便,需要改变某一个像素点的颜色时,只需要对该点所对应的2个字节的显存进行操作即可。这部分电路连接时主要是把数据准确稳定的显示出来,因此连接电路时
39、需注意端口对应的准确连接,否则严重影响数据显示的稳定,甚至出现显示不出来数据。在外接LCD显示时,需在LED_A端口外接一个电路放大电压,否则无法达到需要的电压值,使电压由3.3V放大到5V,这样才能够点亮LCD显示器,当键盘的输入量经过AD转换和STM32微处理器进行数据的处理,由模拟量转换成数据量,传给LCD进行数据的显示。本系统采用型号为MzT24彩色TFT模块的LCD,因为STM32开发板Z32R所使用的LCD也为此型号,技术资料齐全,缩短开发周期。扩展LCD接口原理图如图所示。3.5 硬件电路硬件电路实物图如图3.5所示:第4章 控制系统软件设计4.1 控制系统软件设计步骤对于一个完
40、整的嵌入式应用系统的开发,硬件的设计与调试工作仅占整个工作量的一半,应用系统的程序设计也是嵌入式系统设计一个非常重要的方面,程序的质量直接影响整个系统功能的实现,好的程序设计可以克服系统硬件设计的不足,提高应用系统的性能,反之,会使整个应用系统无法正常工作。不同于基于PC平台的程序开发,嵌入式系统的程序设计具有其自身的特点,在编写嵌入式系统应用程序时,可采取如下几个步骤:(1) 明确所要解决的问题:根据问题的要求,将软件分成若干个相对独立的部分,并合理设计软件的总体结构(2) 合理配置系统的资源:与基于8位或16位微控制器的系统相比较,基于32位微控制器的系统资源要丰富得多,但合理的资源配置可
41、最大的限度发挥系统的硬件潜能,提高系统的性能。对于一个特定的系统来说,其系统资源,如Flash、EEPROM、SDRAM、中断控制等,都是有限的,应合理配置系统资源。(3) 程序的设计、调试与优化:根据软件的总体结构编写程序,同时采用各种调试手段,找出程序的各种语法和逻辑错误,最后应使各功能程序模块化,缩短代码长度以节省存储空间并减少程序的执行时间。此外,由于嵌入式系统一般都应用在环境比较恶劣的场合,易受各种干扰,从而影响到系统的可靠性,因此,应用程序的抗干扰技术也是必须考虑的,这也是嵌入式系统应用程序不同于其他应用程序的一个重要特点。系统的软件程序是通过对硬件设备的控制来完成控制任务的,只有
42、充分了解硬件系统的工作过程才能确定软件的任务,最终达到完美的统一。在进行软件程序编写之前首先要进行系统的需求分析,以确定系统要实现的功能,明确系统最终的任务指标。在本课题中,软件主要实现的是驱动电机、数据处理、通信、PWM信号产生等功能。因为直接编写整套程序很烦琐并且容易出现错,所以我们可以采用自上向下逐层分解的方式,把复杂的系统进行合理分解。将软件划分为若干个相互独立的部分,再根据各部分的关系设计出软件的整体框架。在程序设计时尽可能采用结构化模块设计,根据软件任务导出软件模块,每个软件模块功能要单一,尽量把各个模块之间的联系减少到最底。4.2 Keil for ARM软件开发环境Keil u
43、Vision调试器可以帮助用户准确的调试ARM器件的片内外围功能(中断、I/O口、A/D转换器和PWM模块等功能)ULINK USB-JTAG转换器将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD),使用户可在目标硬件上调试代码。通过使用Keil uVision IDE/调试器和ULINK USB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入式程序。图4.1 Keil软件开发平台4.3 PWM细分技术简介步进电机的细分控制,从本质上讲是通过对步进电机的励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电机步距角的细分。一般情
44、况下,合成磁场矢量的幅值决定了步进电机旋转力矩的大小,相邻两合成磁场矢量之间夹角的大小决定了步距角的大小。因此,要想实现对步进电机恒转矩的均匀细分控制,必须合理控制电机绕组中的电流,使步进电机内部合成磁场的幅值恒定,且每个进给脉冲所引起的合磁场的角度变化也要均匀。4.3.1 PWM细分技术简介细分的基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器工作在10细分状态时,其步距角只为电机固有步距角的十分之一,也就是:当驱动器工作在不细分的整步状态时,控制系统每发一个步进脉冲,电机转动1.8;而用细分驱动器工作在10细分状态时,电机只转动了0.18。细分功能完全是由驱动器靠精确控制
45、电机的相电流所产生的,与电机无关。 步进电机的细分技术实质上是一种电子阻尼技术,其主要目的是提高电机的运转精度,实现步进电机步距角的高精度细分。其次,细分技术的附带功能是减弱或消除步进电机的低频振动,低频振荡是步进电机(尤其是反应式电机)的固有特性,而细分是消除它的唯一途径,如果步进电机有时要在共振区工作(如走圆弧),选择细分驱动器是唯一的选择。4.3.2 PWM细分技术驱动原理所谓细分驱动就是把机械步距角细分成若干个电的步距角,当转子从一个位置转到下一个位置的时候,会出现一些“暂态停留点”。这样使得电机启动时的过调量或 者停止时的过调量就会减小,电机轴的振动也会减小,使电机转子旋转过程变得更
46、加平滑,更加细腻,从而减小了噪声。其电机驱动示意图如图4.2所示。图4.2 电机驱动示意图当分别给各相绕组通电时,各相绕组产生的旋转磁场如下:仅有A相导通时,旋转磁场指向A;仅有B相导通时,旋转磁场指向B;仅有C相导通时,旋转磁场指向 C;仅有D相导通时,旋转磁场指向D。依次为各相绕组通电,每切换一次,旋转磁场矢量转过90,电机转过一个步距角1.8。当旋转磁场矢量转过 360时,电机转过一个齿距,这种工作方式称为整步工作。 如果改变上述加电过程,采用四相八拍工作,即通电顺序依次为: 此工作方式称半步工作,旋转磁场的矢量变化如图4.3所示。每改变一次通电状态,旋转磁场的矢量转过45。图4.3 四
47、细分驱动磁场矢量图同理,旋转磁场转过360,电机转过一个齿距。 由半步原理给予启发,如果让旋转磁场矢量每次转过22.5,这样就实现了四细分驱动。其旋转磁场矢量变化如图4.4所示。图4.4 电机四细分驱动磁场矢量图为了使电机输出转距大小一致,也就是使电机匀速转动,我们控制流入A,B,C,D各相电流的大小,具体按公式sin2+cos2=1来计算。图4.5给出了四细分驱动时各相电机输入电流值的变换曲线。图4.5 四细分驱动转距均匀输出原理图4.3.3 PWM细分调压调速原理电流矢量恒幅均匀旋转细分驱动方法。同时改变两相电流的大小,使电流合成矢量恒幅均匀旋转。这种方式可称为步进电机的模拟运行,它是一种基于交流同步电机概念的特殊细分技术,实质是对运行于交流同步电机状态